Tag, ich möchte eine Software programmieren, die ein Gerät simuliert, welches eigentlich über einen Com-Port angeschlossen ist. Nun möchte ich mir da natürlich jede Menge Hardware-gefrickel sparen (Laptop) und die eigentliche Software für das Gerät auf einen von Simulator erstellten Com-Port zugreifen lassen. Nur: wie erstelle ich in C# einen virtuellen Com-Port und nutze ihn so, dass ich auf der "Hardwareseite" sitze (den die eigentliche Software greift ja auf der anderen zu). Bei google habe ich bis jetzt nur Hinweise auf ein kostenpflichtiges Spezialtool (Shareware) od. ähnliches gefunden. Da ich das Programm aber als Freeware/Open-Source betreiben möchte, ist das natürlich nicht aktzeptabel. Hat evtl. wer ne Idee? VG Matthias
Glaskugel: der virtuelle Com Port wird durch dein Target erzeugt (vermutlich nimmst du einen FTDI Chip). In deiner Anwendung benutzt du ganz normal den seriellen Port, als wäre es ein "echter". Mach mal genauere Angaben
@ m. keller: Ich weiß nicht, wo und wie ich da jetzt genauere Angaben machen soll. Eigentlich klemmt ein Gerät direkt am Rechner, sei's jetzt über nen echten Com-Port oder einen USB2RS232-Wandler. Dieses Gerät soll durch eine Software simuliert werden. Und da ich ein Stück Software leider weder in nen Com-Port noch in nen USB2RS232-Wandler stecken kann soll mir die Software gleich nen virtuellen Com-Port erzeugen. Prinzipiell würde es auch gehen, wenn ich mir an den Rechner zwei Com-Ports klemm und die mit einem Nullmodem Kabel verbinde. Die Gerätesoftware greift dann auf den einen Com-Port zu und der Simulator kommunziert mit dem anderen Com-Port mit der Software. Ist halt dann ewiges gefrickel und ich will, dass dies prinzipiell auf jeden Rechner möglich ist da ich anderen Softwareentwicklern meinen Simulator bereitstellen will, um Gerätesoftware zu erstellen ohne sich das Gerät extra anschaffen zu müssen. Ich hab mal versucht das ganze schnell in Paint zu skizzieren. Das grau eingekreiste ist quasi so wie's Original ist, und dass ganze soll dann in Software gegossen werden. Ich hoffe das waren jetzt genügend Infos für deine Glaskugel. Wenn du willst noch mehr Infos: ich will ein per Unilink2seriell-Adapter angeschlossenes Radio simulieren, so dass andere Entwickler ihre Software bequem daran anpassen können. Der Adapter: http://www.mictronics.de/?page=unilink @ Rufus t. Firefly das hört sich schonmal sehr interessant an, danke.
Da gibts auch die Profilösungen (falls das interessant ist): - http://www.virtual-serial-port-control.com - http://www.eltima.com/ Ralf
Da man eh an beiden Softwaren gleichzeitig entwickeln muss, wuerde ich das mit zwei Rechnern machen und einer wirklichen Schittstelle.
@?? (Gast) Da da wahrscheinlich auch Hobbyprogrammierer mitentwickeln werden, ist eine Zweirechner-Lösung wahrscheinlich sehr unpraktisch. @Ralf: zumindest die erste Software scheint so ziemlich genau das zu sein, was ich suche. Problem nur: 199$.
> zumindest die erste Software scheint so ziemlich genau das zu sein, was ich suche. Beide sind das, was du suchst, denn beide Firmen bieten Lösungen an, um einzelne virtuelle COM-Ports zu erstellen... > Problem nur: 199$. Für die Developer-License. Jeder "normale" User muss die "normale" Lizenz erwerben. Bei Eltima wären es somit für das SerialPortActiveX - 130 Euro für die DeveloperLicense - 44 Euro für die UserLicense (Angaben lt. Website) Bei Fabula sind es - 140 Euro für die DeveloperLicense - 70 Euro für die UserLicense (Dollarpreise umgerechnet mit Google) Die SingleUser ist bei Eltima also wesentlich günstiger. Ralf
Was sich aber leider immer noch mit meinen Willen spießt, mein Proggi als Freeware/OpenSource für jedermann anzubieten. Schade :( Trotzdem danke!
> Was sich aber leider immer noch mit meinen Willen spießt, mein Proggi > als Freeware/OpenSource für jedermann anzubieten. Ach so, sorry, der Ansatz ist mir entgangen. Hm... das oben genannte COM0COM-Projekt lässt sich nicht entsprechend umpappen? Also den SourceCode passend modifizieren? Da hätte ich dann wiederum Interesse dran :) Ich hätte auch ein, zwei nette Projekte, bei denen ich einen virtuellen Port brauchen könnte, aber halt nicht im Paar. Ralf
> Ich hätte auch ein, zwei nette Projekte, bei denen ich einen > virtuellen Port brauchen könnte, aber halt nicht im Paar. Äh, und was soll so ein virtueller Comport "nicht im Paar" machen? Wohin soll der seine Daten senden bzw. woher sollen die kommen? Pärchenweise ist schon der beste Ansatz.
Ähm... sehr viel ;-) Wenn du nen USB2serial Wandler hast, hast du auch nur einen ComPort. Wenn du ein Gerät an nen echten ComPort anschließt, hast du an deinem PC auch nur einen ComPort. Ein ComPort hat zwei Seiten, auf der einen sitzt die Software, und an der anderen entweder ein Gerät oder über ein Nullmodemkabel ein anderes Gerät. Man bräuchte von obig genannter Software quasi nur die Hälfte, den man füttert die Daten nicht über einen zweiten Comport in den Null-modem-emulator dass dieser diese Daten an den anderen weitergibt, sondern füttert die Daten direkt in den emulator. Ich bin leider noch nicht dazugekommen mir die Software genau anzusehen, aber prinzipiell würde mir die sogar schon als Null-modem-emulator genügen. Auch die Software "hub4com" hört sich interessant an, könnte ein guter Ersatz für X-Port sein, welches bei mir regelmässig mit nem Bluescreen abstürzt...
> Äh, und was soll so ein virtueller Comport "nicht im Paar" machen? Wohin > soll der seine Daten senden bzw. woher sollen die kommen? Man kann damit viele Sachen machen. z.B. einen Sniffer aufbauen, oder einen "Verteiler", etc. Im Prinzip ist die Zwei-virtuelle-COM-Port-über-Nullmodem-Kabel-Sache nichts anderes, da wird intern wahrscheinlich auch zweimal ein COM-Port erzeugt, und die Daten der Ports jeweils durchgeschleift. Man könnte sich mit so einem Teil seinen eigenen USB-Seriell-Wandler machen, mit allen Features, die man bei FTDI & Co. vermisst :) So etwas in der Art würde ich nämlich gerne machen... Ralf
> Man bräuchte von obig genannter Software quasi nur die Hälfte, > den man füttert die Daten nicht über einen zweiten Comport in den > Null-modem-emulator dass dieser diese Daten an den anderen weitergibt, > sondern füttert die Daten direkt in den emulator. Und welchen Vorteil sollte das haben? Du bräuchtest für das "direkt in den emulator"-Füttern eine spezielle Programmierschnittstelle (die immerhin mit einem Devicetreiber kommuniziert) und bist daran gebunden, dann nur diese Variante zu nutzen. Wenn Du aber mit der virtuellen seriellen Schnittstelle kommunizierst, dann ist das eine standardisierte Programmierschnittstelle, die Dir alle Freiheitsgrade lässt, nämlich auch eine echte serielle Schnittstelle oder einen USB-Seriell-Adapter oder einen Ethernet-Device-Server zu nutzen. Im Zusammenhang mit dem com0com-Projekt gibt es auch eine Software, die über das Netzwerk zwei serielle Schnittstellen verbindet. Zusammen mit je einem com0com-Pärchen lässt sich das mit beliebiger Software nutzen. > Man kann damit viele Sachen machen. z.B. einen Sniffer > aufbauen, oder einen "Verteiler" Das ist ein Argument. Kommerziell gibt es auch entsprechende Produkte, es wäre zugegeben schön, wenn com0com da Erweiterungsmöglichkeiten böte.
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.