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
Windows-Kerneltreiber schreibt man üblicherweise in C
@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:
1 | GSM-Modem - COM1 - VB-Programm - COM2 - COM3 - Applikation |
Ahh jetzt kapier ichs^^ Ok, jetzt ist nur die Frage wie ich das auf einem Windows Mobile 5-System zum laufen bekomm!
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).
Hmm, dann hab ich wohl :
> Zielplattform wird Windows Mobile sein.
umsonst hingeschrieben und bin wieder am Anfang meines Problems... :-(
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.
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.
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
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.
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
> 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
Richtig lesen! Er will keinen vorhandenen COM-Port öffnen, sondern eine virtuelle serielle Schnittstelle selbst erzeugen. Sowas wie Com-0-Com halt.
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ß
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
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.
*.* wrote:
> http://www.google.de/search?q=windows+mobile+virtual+com+port
Das nützt rein garnichts, da ich in einem VB-Programm es bereitstellen
muss!
Ich suche kein Programm, sondern einen VB-Code!
VB kann das einfach nicht! Das ist ein Gerätetreiber.
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
> 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.
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
Hi Ralf, danke für die Links! Leider kosten die Programme und sind nicht mit Quellcode erhältlich!
> 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
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
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.
> 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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.