Re: Integer/Long über HWCom senden Kategorie: Programmierung (von André H. - 19.12.2004 13:48) | ||
Als Antwort auf Integer/Long über HWCom senden von Sushi Bert - 8.12.2004 15:09 | ||
| ||
Hallo Bert, > Ich versuch gerade folgendes: > > > byte sbuf[2]; > > sbuf[1]=32450; > hwcom.send(sbuf,2); > > ... > Dieses Versuche ich mit VB zu empfangen. Klappt mit Byte-Variablen prima. > Nur wenn ich integer-Variablen (oder long) senden möchte kann ich diese in VB nicht auswerten. > > Dieses als String zu senden währe möglich, macht aber viel Arbeit alles wieder zu ändern. Dies kann natürlich niche gehen, da Du versuchst einer Bytevariabel einen Integerwert zu zu weisen. Das Endet in einer "AND 0xFF"-Verknüpung. Du kannst, wie schon genannt, die Zahl als String senden. Nachteile: - Es werden unnötig viele Datenbytes über die RS232 übertragen. - Es mu� ein Anschlu�zeichen gesendet werden, da der String keine feste Länge hat. Vorteil: - die Auswertung in VB ist relativ einfach. Aber, warum verwendest Du nicht einfach die Funktionen in hwcom.c2, zum Senden von Longwerte als 4Byte-Datenpaket ? hwcom.putling(); Du brauchst dann nur hwcom.putlong(wert); schreiben, und der Wert wird als vier Bytes mit MSB-First gesendet. Der Vorteil ist hier, da� immer nur 4 Bytes übertragen werden. Somit hast Du alle Vorteile eines festen Formats. In VB kannst Du dies dann sehr einfach wieder zusammensetzten: Function getlong () inputlenold = MSCcomm1.Inputlen MSCcomm1.Inputlen = 1 Wert = 0 For i = 0 To 3 Wert = (Wert * 256) + ASC(MSComm1.Input) Next i MSCcomm1.Inputlen = inputlenold getlong = Wert End Function MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: |