www.mikrocontroller.net

Forum: PC-Programmierung Wie stelle ich ein Virituelen COM-Port bereit?


Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mir ein Programm in VB schreiben. Zielplattform wird Windows 
Mobile sein. In der Applikation muss ich eine COM-Schnittstelle für ein 
anderes Programm bereitstellen. Dieses Programm wertet normalerweise 9k6 
RS232 aus. Da ich aber ein GSM-Modem dazwischen habe, möchte ich eine 
Datenverbindung über das andere Programm aufbauen und weitergeben.

Wie mach ich das nun?

COM ansprechen geht bereits! Aber ein COM erzeugen?

Grüße
Alex

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal com0com an:
http://com0com.sourceforge.net/

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Reinhard,

leider ist das in C (C++)!

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Windows-Kerneltreiber schreibt man üblicherweise in C

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Alex: Ist doch egal, in welcher Sprache das geschrieben ist, Du mußt es 
ja nur installieren und ausführen, nicht daran programmieren.

Es stellt Dir paarweise verbundene virtuelle COM-Ports zur Verfügung. 
Den einen öffnest Du mit dem existierenden Programm, den anderen mit 
Deinem VB-Programm und schon können die beiden miteinander reden. 
Zusätzlich muß das VB-Programm natürlich den Port zum GSM-Modem öffnen 
und bei Bedarf die Daten zwischen den beiden Ports hin- und 
herschaufeln.

Angenommen das Modem hängt an COM1 und die beiden virtuellen Ports 
heißen COM2 und COM3, dann sehen die Verbindungen aus Sicht Deiner 
Programme so aus:
GSM-Modem - COM1 - VB-Programm - COM2 - COM3 - Applikation

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh jetzt kapier ichs^^

Ok, jetzt ist nur die Frage wie ich das auf einem Windows Mobile 
5-System zum laufen bekomm!

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich gar nicht, weil Windows CE (oder "Mobile") etwas vollkommen 
anderes ist als Windows NT/2000/XP/Vista. Da dürfte auch die 
Devicetreiberarchitektur anders aussehen.

Sicher, man könnte probieren die com0com-Sourcen mit einem CE-DDK zu 
übersetzen, vielleicht geht's ja.

Aber ohne einen Treiber für Windows CE / Mobile geht das definitiv 
nicht; "normale" Windows-Treiber sind nicht binärkompatibel (alleine 
schon deshalb, weil die meisten CE/Mobile-Geräte keine x86-CPUs 
einsetzen).

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, dann hab ich wohl :

> Zielplattform wird Windows Mobile sein.

umsonst hingeschrieben und bin wieder am Anfang meines Problems... :-(

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex W. wrote:
> Hmm, dann hab ich wohl :
>
>> Zielplattform wird Windows Mobile sein.
>
> umsonst hingeschrieben und bin wieder am Anfang meines Problems... :-(

Sorry, das hatte ich überlesen.

Aber beschreibe doch Dein eigentliches Problem mal etwas umfassender, 
vielleicht gibt es ja noch eine andere Möglichkeit, das zu erreichen, 
was Du willst.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, bei den PDA-Navi-Fuzzis gibts doch so nen Programm, was einen 
Hardware-COM-Port auf 2 virtuelle aufteilt. Das wäre ein Ansatzpunkt. 
Schau mal bei Navifriends.

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also ich habe bei mir daheim eine Steuerung mit einem GSM-Modem. Diese 
Steuerung kann ich mittels anderem GSM-Modem + Steuerhardware über das 
GSM-Netz fernsteuern. Mein PDA-Handy (Windows Modile 5) hat ja bereits 
ein GSM-Modem eingebaut. Die Software die ich habe, läuft schon per 
Direktverbindung. Allerdings brauch ich eine "Zwischensoftware" die 
diese GSM-Verbindung aufbaut und eine COM-Schnittstelle bereitstellt auf 
die das Steuerprogramm aufbaut.

So siehts im Moment aus :

Steuerung - Hardwareadapter - GSM-Modem   = GSM-Netz =  GSM-Modem - 
Hardwareadapter - PC-Software / PDA-Software

So möchte ich es :

Steuerung - Hardwareadapter - GSM-Modem   = GSM-Netz = GSM-Modem im 
PDA-Handy - Wählsoftware - PDA-Software

Also der Hardwareadapter auf PC-Seite möcht ich durch Software ersetzen

Autor: Claude Schwarz (claudeschwarz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nicht über den GSM Mux Layer (GSM 07.10)? Sollte dein PDA-Handy 
eigentlich haben. Der Mux Layer bietet dir die Virtuellen COM Ports dann 
an (Wie viele davon hängt von der GSM Engine in deinem PDA-Handy ab). 
Habe sowas mal für ein embedded Linux Gerät gemacht, so konnte ich 
parallel zu einer GPRS Verbindung noch eine Analog Einwahl 
bereitstellen. Es sollte eigentlich damit auch möglich sein auf einem 
der Virtuellen COM Ports (nennt sich DLC im Mux Layer) eine Verbindung 
aufzubauen und die einem anderen Virtuellen COM Port zu übergeben. Hab 
mal irgendwo gelesen das der Mux Layer schon Bestandteil von Windows 
Mobile sein soll.

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ich nicht benutzen, da ich zum Datenstrom vom Programm etwas 
verändern muss!

Eigendlich muss ich nur wissen wie ich einen COM-Port in VB bereit 
stelle!
Zielplattform ist Windows Mobile 5

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Eigendlich muss ich nur wissen wie ich einen COM-Port in VB bereit stelle!
Ich kenne mich mit Win CE / Win Mobile nicht aus, auf einem normalen PC 
hat man die serielle Schnittstelle bis VB Version 6 mittels dem 
MSCOMM-Steuerelement öffnen können, für .NET gibts ne eigene integrierte 
Klasse (ab FrameWork-Version 2.0). Zugriff ist auch unter FW1.1 möglich 
(zumindest in C#), dafür muss dann halt ein Fetzen Code her.

Ralf

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig lesen! Er will keinen vorhandenen COM-Port öffnen, sondern eine 
virtuelle serielle Schnittstelle selbst erzeugen. Sowas wie Com-0-Com 
halt.

Autor: joh! (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für Windows Mobile (und auch Windows CE) gibt es ein kostenloses SDK von 
Microsoft, welches sich in Visual Studio einbindet. Für Windows Mobile 6 
benötigt man zur Programmierung allerdings Visual Studio 2005.
Außerdem wird ein .NET-Framework 2.0 und ggf. ein Windows Mobile 
6-Emulator benötigt, um die Software auf einem virtuellen Windows Mobile 
am PC zu testen/debuggen.

Falls die oben genannte Software nicht gefunden wird, kann ich gerne das 
komplette Paket zur Verfügung stellen.

Gruß

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal eine Frage zum besseren Verständnis:

- du willst einen virtuellen COM-Port im System, ok

Was soll eigentlich am anderen Ende der virtuellen "Leitung" sein? 
Virtuelle COM-Ports setzt man ja typischerweise ein, um älterer Software 
das Vorhandensein echter COM-Ports vorzutäuschen. In Wirklichkeit 
wandern die Daten dann über eine IP- oder USB-Verbindung ...

Frank

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank wrote:
> Nochmal eine Frage zum besseren Verständnis:
>
> - du willst einen virtuellen COM-Port im System, ok
>
> Was soll eigentlich am anderen Ende der virtuellen "Leitung" sein?
> Virtuelle COM-Ports setzt man ja typischerweise ein, um älterer Software
> das Vorhandensein echter COM-Ports vorzutäuschen. In Wirklichkeit
> wandern die Daten dann über eine IP- oder USB-Verbindung ...
>
> Frank

Ok ich versuch es nochmal :

ich habe ein Programm X. Dies hat nur eine COM-Verbindung 
(Direktanschluss an Hardware über COM)

Da ich aber ein Zusatzprogramm brauche, auf das Programm X über COM 
zugreiften kann, muss ich einen künstlichen COM erstellen.

Das Zielsystem ist Windows Mobile.

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
*.* wrote:
> http://www.google.de/search?q=windows+mobile+virtu...

Das nützt rein garnichts, da ich in einem VB-Programm es bereitstellen 
muss!

Ich suche kein Programm, sondern einen VB-Code!

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VB kann das einfach nicht! Das ist ein Gerätetreiber.

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VB kann keinen virtuellen COM-Port erzeugen, aber dafür TCP-Sockets. Und 
es gibt massenhaft (freie) COM-TCP-Redirectoren. Also erstellst du mit 
so einem Tool ein Pärchen aus COM-Port und TCP-Socket. An letzerem 
dockst du dein VB-Programm an und schon kannst du mit der Software am 
COM-Port "reden" ...

Frank

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und es gibt massenhaft (freie) COM-TCP-Redirectoren.

Für Windows Mobile (Windows CE)?

Das ist trotz des Namens mit dem Windows, das auf PCs läuft, eher 
entfernt verwandt.

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah Ihr habt mir einen guten Hinweis gegeben!

Ich habe schon mal eine Applikation für WM5 programmiert welche Daten 
über TCP bzw UDP versendet. Also könnte ich einen "Viritual COM zu TCP - 
TCP zu Viritual COM"-Verbindung aufbauen auf die meine App und die 
eigendliuche App zugreift. Hmm, muss ich mal versuchen!

Aber für WinCE (WM5) wird es so keine geben.. muss ich mal suchen

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wäre das hier evtl. auch brauchbar?
http://www.eltima.com/products/virtual-serial-port-mobile/

Ralf

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier wär auch noch was:

http://franson.com/

Ralf

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Ralf,

danke für die Links! Leider kosten die Programme und sind nicht mit 
Quellcode erhältlich!

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> danke für die Links! Leider kosten die Programme und sind nicht mit
> Quellcode erhältlich!
Also, kostenlos so etwas zu erwarten, halte ich für unmöglich. Aber 
erstens sind 40 Euro m.E. nicht viel (für die SingleUser License), ohne 
SourceCode natürlich, und du kannst es doch verwenden, weil die Trial 
Version ja nur soweit beschränkt ist, dass du nur 100kB pro Session 
senden/empfangen kannst. Wenn du die voll hast, dann machst du halt ne 
neue Session.

Natürlich gibts Quellcode, steht ja bei "Purchase", du musst halt 
nachfragen.
Vielleicht gibts ja auch die Möglichkeit, dass du den SourceCode für 
private Zwecke verwenden darfst.

Ich muss gestehen, dass ich jetzt nicht nochmal den ganzen Thread lesen 
will, wo hast du erwähnt, dass du auf einmal auch noch die Sourcen 
willst? Der Ursprungsbeitrag war ja nur der Wunsch nach dem Erzeugen 
eines VCP.
Wofür brauchst du denn noch die Sourcen?

Ralf

Autor: Alex W. (a20q90)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Ralf wrote:
>  wo hast du erwähnt, dass du auf einmal auch noch die Sourcen
> willst? Der Ursprungsbeitrag war ja nur der Wunsch nach dem Erzeugen
> eines VCP.

Ja sorry ist wohl aus meinem allerersten Post nicht hervorgegangen! 
Eventuell habe ich es unverständlich formuliert! Hätte auch erwähnen 
sollen was VB ist!

>ich möchte mir ein Programm in VB schreiben. Zielplattform wird Windows
>Mobile sein. In der Applikation muss ich eine COM-Schnittstelle für ein
>anderes Programm bereitstellen.

VB ist eine Programmiersprache bzw ein Teil von Visual Studio 
(Hersteller ist Microsoft). In VB kann man Programme schreiben. Der Code 
(bzw Dialekt) mit dem der Benutzer in VB die Befehle umsetzt nennt sich 
Basic. Das ist der Quellcode oder auch Sourcecode genannt. Da ich in 
meinem VB-Programm einen VCP erzeugen möchte, und nicht weis wie das 
geht, benötige ich somit den Sourcecode dafür!

Grüße
Alex

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex W. wrote:
> Da ich in meinem VB-Programm einen VCP erzeugen möchte,
> und nicht weis wie das geht, benötige ich somit den
> Sourcecode dafür!

Das ist gleich in mehrfacher Hinsicht ein Trugschluß:

1. Wie andere bereits mehrfach gesagt haben, können nur Treiber einen 
(virtuellen) COM-Port bereitstellen und Treiber kann man nicht in VB 
programmieren.

2. Um "zugekaufte" Funktionalität in einem eigenen Programm nutzen zu 
können, muß man davon nicht unbedingt den Quellcode haben, es reicht 
eine Bibliothek (DLL), die man vom eigenen Programm aus ansprechen kann. 
Mit VB kann man auch in C implementierte DLLs ansprechen.

3. Für VSPD (wie auch com0com) brauchst Du zur Benutzung weder den 
Quellcode noch eine Bibliothek, denn es stellt Dir Paare von COM-Ports 
zur Verfügung, die sozusagen über ein virtuelles Nullmodemkabel 
verbunden sind. Damit braucht also nicht Dein VB-Programm selbst den 
COM-Port zu "produzieren", sondern Du öffnest einfach mit dem 
VB-Programm die eine Seite und mit dem anderen Programm die andere Seite 
so eines verbundenen COM-Port-Paars, und hast genau das, was Du 
brauchst.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ja sorry ist wohl aus meinem allerersten Post nicht hervorgegangen!
> Eventuell habe ich es unverständlich formuliert! ...
Macht ja nix, jetzt sind wir ja alle auf neuestem Stand :)

> ... Hätte auch erwähnen sollen was VB ist!
> VB ist eine Programmiersprache bzw ein Teil von Visual Studio
> (Hersteller ist Microsoft). In VB kann man Programme schreiben. Der Code
> (bzw Dialekt) mit dem der Benutzer in VB die Befehle umsetzt nennt sich
> Basic. Das ist der Quellcode oder auch Sourcecode genannt. Da ich in
> meinem VB-Programm einen VCP erzeugen möchte, und nicht weis wie das
> geht, benötige ich somit den Sourcecode dafür!
grins Danke, aber das wusste ich, ich hab vor meinem Umstieg auf C# 
auch VB gemacht ;)

Ansonsten kann ich mich (bis auf weiteres) erstmal nur dem Beitrag von 
Reinhard Max anschließen.

Ralf

Beitrag #3876969 wurde von einem Moderator gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.