Deutsch
Hardware

RS232 Bytesalat ohne Handshaking auflösen

 

GDL
Hi,

vielleicht kann es ein Hobbybastler umgeändert (angepasst)brauchen. Damit synchronisiere ich meine Atmels ohne Handshaking im endlosen Datenstrom.
KompilierenMarkierenSeparieren
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%

        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

    endif

wend

sonst gibt es bei der thread.pcu  Schlüsselfeldsalat
case wennoffen%=1:dbuse(#1)
case dannoffen%=1:dbuse(#2)

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
04.07.2007  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.347 Betrachtungen

Unbenanntvor 0 min.
H.Brill27.04.2024
p.specht25.06.2021
Post17.09.2016
Oldie18.06.2013
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

GDL (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie