Français
Forum

Serielle Schnittstelle binäre données empfangen

 

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
 
30.10.2012  
 



là XProfans Cordes binärsicher sommes gibts keinen Unterschied entre Text ou bien

Binärdaten auslesen per ReadCom$ -

simple ReadCom$ verwenden. Den Bytewert eines (Ansi-) Zeichens aus einem

XProfan-String simple z.B. per byte(addr$(string$),num&) auslesen.
KompilierenMarqueSéparation
'{$cleq}
cls
var s$="HALLO"
print byte(addr(s$),1),"= 65"
waitinput
en

Pour ähnlichem procéder lese je qui données mobiler Barcode-Scanner aus.
 
30.10.2012  
 




Pedro
Miguel
allô iF,

merci, werde es am Wochenende testen

de qui Platine wird z.b gesendet.

master = 254
destiny = 18
txcoma = 7
total = 1234

printbin master,destiny,total,txcoma

qui Bytes et Words volonté sans jeglichen Trenzeichen gesendet

Pour den Testen gebe je Feedback et viens nochmal puis zurück

Gruss
Pedro
 
30.10.2012  
 




GDL
Hallöle,

ist zwar purer Anfängercode, mais il va chez mir sur allen meinen Anlagen et Rechnern.

cela Problem ist, dass du 2 Protokolle la hâte. un Protokoll sur cela gültige marque et un Protokoll sur qui Zeichenfolge.
chez mir bilden trois 255 et une 0 dans Reihe den Beginn eines Datenprotokoll.
KompilierenMarqueSéparation
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


peut-être peux du dir quoi abguggen. Comme je le disais, cela ganze serait un Profi bestimmt anders lösen.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
10.11.2012  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.852 Views

Untitledvor 0 min.
H.Brill26.09.2024
Langer04.01.2023
Walter08.02.2018
Pedro Miguel10.08.2015
plus...

Themeninformationen

cet Thema hat 3 participant:

Pedro Miguel (2x)
GDL (1x)
iF (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie