| |
|
|
Pedro Miguel | Hallo,
Bis jetzt habe ich mit der serielle schnittstelle Texte empfangen. Habe nun ein neues Projekt in der ich von eine elektronische Platine binäre Daten empfangen und sofort auswerten muss. Die Auswertung sieht folgendes Masse aus. Es werden von der Platine kontienurlich 12 bis 16 Bytes gesendet. Auf der Xprofan seite muss ich die Bytes empfangen und sofort die einzelnen Bits durch TestBit auswerten um damit Led Graphiken als ON OFF anzuzeigen. Die baurate ist 38400, 8 Bits, None, 1 Stopbit
Weiss jemand ob das mit Xprofan zu machen ist?
Danke für jede Unterstützung
Gruss Pedro |
|
|
| |
|
|
|
| Como XProfans Cuerdas binärsicher son gibts no hay diferencia zwischen Texto oder
Binärdaten auslesen por ReadCom$ -
simplemente ReadCom$ uso. Den Bytewert uno (Ansi-) Zeichens de una
XProfan-String simplemente z.B. por byte(addr$(cadena$),num&) auslesen. KompilierenMarcaSeparación Nach ähnlichem Verfahren lese Yo el Daten mobiler Barcode-Scanner de. |
|
|
| |
|
|
|
Pedro Miguel | Hola si,
Gracias, voluntad lo al Wochenende testen
Von el Platine se z.b gesendet.
master = 254 destiny = 18 txcoma = 7 total = 1234
printbin master,destiny,total,txcoma
El Bytes y Words voluntad sin jeglichen Trenzeichen gesendet
Nach el Testen Me estoy dando Feedback y komme otra vez darauf zurück
Gruss Pedro |
|
|
| |
|
|
|
GDL | Hallöle,
Aunque purer Anfängercode, aber él va en me en allen media Anlagen y Rechnern.
Das Problema es, dass du 2 Protokolle hast. Ein Protokoll encima el gültige Signo y una Protokoll en Zeichenfolge. En me forma drei 255 y una 0 en Reihe el Beginn uno Datenprotokoll. KompilierenMarcaSeparación
proc einlesen'BMelder Stellpulttaster
'COM Schnittstelle auslesen
'Schnittstelle wird am Proganfang geöffnet und erst am Progende geschlossen
declare sync%,lb%
settext _text&[12],"Einlesestatus : aktiv "+time$(0)+" "+left$(time$(1),5)\
+" Zeitwechsel ist ein Einlesevorgang."
'Schnittstelle auslesen 3mal 255 und 1mal 0 hintereinander ist Sync
'Empfangsprotokoll 255 255 255 0 Bahnhof Punkt Lok Auswahl Fehlerbyte
'Auswahl
'254 = Stellpult
'253 = Geschwindigkeit
'252 = Standardgeschwindigkeit bei Umschalten auf Grün anfordern
'ja
clear cstart%
clear sync%
clear lb%
comwert$=@ReadCom$(comi1&,1)
@ComError(comi1&)
case str$(ord(comwert$))="255":inc sync%
whilenot comwert$=""
comwert$=@ReadCom$(comi1&,1)
@ComError(comi1&)
case str$(ord(comwert$))="255":inc sync%
If str$(ord(comwert$))="0"'Beginn des Datenprotokolls
' Hat hier nichts mit Start,Stopbit zu tun, sondern ersetzt das Handshaking
if sync%=3
lb%=1' Die drei 255 Startbyte wurden beim folgendem Nullbyte erkannt
else
clear sync%
clear cstart%
clear lb%
endif
endif
if lb% =1
inc cstart%
_inhalt%[cstart%]=ord(comwert$)
endif
if cstart% = 5
clear cstart%
clear sync%
clear lb%
'Fehlerbyte erzeugen
'Fehlerbyte vergleichen
'Bei Fehler _inhalt%[5]=0
if _inhalt%[5]=253
settext _text&[8],"Lok : "+right$("00"+str$(_inhalt%[4]),3)
auswerten1
'Falls dieser BMelder etwas auslöst
tasterbahnhof%=_inhalt%[2]
tasterwert%=_inhalt%[3]
tasterwert%=tasterwert%+(tasterbahnhof%*256)-256'Punkte gehen hier von 1 bis 999
bm_auswerten
elseif _inhalt%[5]=254
settext _text&[8],"Taster : "+right$("00"+str$(_inhalt%[3]),3)
settext _text&[9],"Stellwerk : "+right$("00"+str$(_inhalt%[2]),3)
tasterbahnhof%=_inhalt%[2]
tasterwert%=_inhalt%[3]
auswerten
elseif _inhalt%[5]=252
settext _text&[8],"Lok : "+right$("00"+str$(_inhalt%[4]),3)
real_speed
endif
wend
Tal vez kannst du dir qué abguggen. Como ya he dicho, todos sería una Profi determinado anders lösen. |
|
|
| |
|
|