Hallo, ich suche Beispielcode um via API-Aufrufen die seriellen COM Ports nutzen zu können. Insbesondere: Handle bekommen mit CreateFile Gerät identifizieren Senden und Empfangen Handle schliessen mit CloseFile Danke, Johannes
Gast
#533346
...zwar nicht in VB, aber die Winapi-Aufrufe kannst Du leicht übertragen: http://www.winapi.net/index.php?inhalt=t3 Gruß Matthias
Gast
#533478
>ich suche Beispielcode um via API-Aufrufen die seriellen COM Ports >nutzen zu können. findest du in der MSDN
auf planetsourcecode.com gab es mal was.
Gast
#533653
Hallo Ich hab mich da ein wenig hinein gelesen und dann selbst ein Programm geschrieben, dass den COM Port abfragt und grafisch auf dem Bildschirm darstellt, allerdings in C. Das funktioniert auch noch mit 115200 Baud! Für den gesamten Code bitte nachfragen. Im Prinzip geht das so: erst ein: RS232=CreateFile(PORT,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,NULL,NULL); PORT ist hier zb. "COM1" (mit "") RS232 ist der Handle, den dir Windows zurückliefert Dann die Einstellungen abfragen: GetCommState(RS232,&settings); Dann die Einstellungen bearbeiten: settings.BaudRate=BAUDRATE; settings.ByteSize=8; settings.Parity=NOPARITY; settings.StopBits=ONESTOPBIT;´ Dann die geänderten Einstellungen setzten: SetCommState(RS232,&settings); Tja und dann kannst du theoretisch die Schnittstelle mit: ReadFile(RS232,&data,1,&received_bytes,NULL); auslesen. Was die Befehle jetzt im Detail zu bedienen sind, und was es sonst noch gibt, siehe hier: http://msdn2.microsoft.com/en-us/library/aa363196.aspx
Super, danke. Ihr seid eine große Hilfe. Mit euren Anmerkungen sind mir auch schon erste Erfolge gelungen. Ich arbeite das Ganze noch ein bischen aus, und poste dann hier den vb code.
So, hier ist fast alles was das Herz begehrt. COM-Port mit VBA 6.0 bedienen. Suchbefriffe: Visual Basic COM SERIELL
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | |
Gast
#537169
Hallo, ein kleines Beispiel für VB2005 und der SystemIO (Framework 2.0). Ein Teil des Codes hab ich im Internet gefunden. Das Programm funktioniert (getestet hab ich die Empfangs- und Senderoutine mittels Virtual Serial Port). Die Buffergroesse laesst sich variable einstellen, aber mich wuerde interessieren ob man trotzdem noch einen Ringbuffer implementiert oder nicht.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
Ein Problem mit meinem obigen Code: Der Input und der Output Buffer sind der selbe. Vermutete Lösung: Zwei seperate Handle mit Createfile holen, einer mit Read, der andere mit write rechten. Wobei share enabled werden muss. Ich habe heute keine Zeit mehr das zu testen, kann das jemand bestätigen?
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.