Ah okay. Danke![]()
Ah okay. Danke![]()
@ Willa
Danke für die Antwort.
Hätte man auch drauf kommen können.![]()
Ich hab noch ne ältere Bascomversion ohne die 328 Unterstützung.
Ich nehm dein Angebot dankend an.
MfG SVen
Das GUI ist jetzt in meinem Blog veröffentlicht.
Viele Grüße, William
-> http://william.thielicke.org/
Guten morgen Willa,
ich habe mir gerade Dein GUI angeschaut. Gute Sache. Die Angabe der COM-Schnittstellen finde ich aber nicht so toll. Warum gibst Du nicht nur die COM's aus, die auf dem jeweiligen Rechner zur Verfügung stehen. Ist über den Error-Level einfach zu machen. Die COM's 1 bis 30 sind somit nicht notwendig und es werden nur die Vorhandenen angegeben. Ansonsten gute Arbeit von Dir.
Peter
_________________________________________________
[-X Quis custodiet ipsos custodes![]()
Ground-Effect-Stability-Robotwww.peter-holzknecht.de
Davon habe ich noch gar nichts gehört, kannst du das etwas näher beschreiben?Ist über den Error-Level einfach zu machen.
Viele Grüße, William
-> http://william.thielicke.org/
Mach ich.
Beim Programmstart in einer For-Schleife alle Com-Ports 1 bis 30 nach einander öffen. Gibt es beim Öffnen einen Errorlevel ungleich 0, dann gibt es den COM-Port auf diesem Rechner nicht. Dann nichts weiter machen und versuchen den nächsten COM-Port öffnen. Is der Error-Level = 0 beim Öffnen des Ports, dann ist dieser vorhanden und wird in die ComboBox eingetragen. Somit hast Du in der ComboBox nur die Com-Ports stehen, die der Rechner zur Verfügung stellt.
_________________________________________________
[-X Quis custodiet ipsos custodes![]()
Ground-Effect-Stability-Robotwww.peter-holzknecht.de
Hi holzi!
Ich habe im Netz eine Möglichkeit dafür gefunden:
Bei der Zeile ports = SerialPort.GetPortNames() bekomme ich eine Warnung mit der ich irgendwie nichts anfangen kann:Code:comport.Items.Clear 'comport.Sorted=true Dim ports As String() Dim port As String ports = SerialPort.GetPortNames() 'Ports des Rechners ermitteln For Each port In ports Try With SerialPort .PortName = port .ReadTimeout = Int32.Parse(50) 'ReadTimeout in ms .Open() End With Catch es As Exception Finally If SerialPort.IsOpen = True Then Me.comport.Items.Add(port) End If SerialPort.Close() End Try Next port
Außerdem dauert das Öffnen der verfügbaren COM ports ca. 8 Sekunden... Ist etwas lang, geht das vielleicht schneller...? Wenn nicht, würde ich da noch einen Button einfügen "Refresh available COM ports" und alle verfügbaren COM ports in einer Textdatei speichern. So müsste die Abfrage nicht jedes Mal durchgeführt werden, sondern nur wenn der User glaubt es könnte sich was geändert haben...Zugriff des freigegebenen Members, konstanten Members, Enumerationsmembers oder geschachtelten Typs über eine Instanz; der qualifizierende Ausdruck wird nicht ausgewertet. (BC42025) - C:\Users\William\Documents\SharpDevelop Projects\TriGUI_v1\TriGUI_v1\MainForm.vb:22
Viele Grüße, William
-> http://william.thielicke.org/
Hi Willa,
ich mach das in VB und das geht so schnell, dass das beim Programmstart nicht bemerkt wird.
Ich würde das wirklich über eine FOR-Schleife von 1 bis 30 machen. Wenn das Öffnen des Ports auf einen Fehler läuft, dann im Catch nichts machen und bei OK im Finaly den Port eintragen
Du könntest auch die Ports aus der Regestry auslesen. Sie stehen in HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm
Dann die dort gefundenen Ports in die Combox einfügen.
_________________________________________________
[-X Quis custodiet ipsos custodes![]()
Ground-Effect-Stability-Robotwww.peter-holzknecht.de
Hi Villa,
könntest Du den Source-Code Des Programms veröffentlichen? Mich interessiert daran speziell Deine Datenübertrgung an das Board. Wäre prima von Dir.
Peter
_________________________________________________
[-X Quis custodiet ipsos custodes![]()
Ground-Effect-Stability-Robotwww.peter-holzknecht.de
Hi Peter, ich kann dir den Code schicken wenn du mir ne Mail an trashcan(bbeeii)gmx.com sendest. Ich möchte ihn im Mom noch nicht offiziell ins Netz stellen, weil ich daran noch viel ändern werde und ich dann immer das kompilierte Programm UND die Quellcodes aktuell halten muss....
Die Datenübertragung habe ich glaube ich ganz gut gelöst (strings als Kommandos und Bytearrays für die Daten). Jedenfalls funktionierts gut und sicher.
Viele Grüße, William
-> http://william.thielicke.org/
Lesezeichen