Das müsste gehen. Ne elegantere Lösung fällt mir auf die Schnelle nicht ein, weil diese hier ja schon zimlich kurz und sicher ist.
Hallo,
ich würde gerne meinen PC, bzw Roboter um einige Schnittstellen erweitern. Ist es möglich, die CControl so zu programmieren, dass
sie über die serielle Schnittstelle die Daten vom PC empfängt und
entsprechend verarbeitet und automatisch immer die Daten an den
PC zurückschickt.
Das ganz soll dann verschlüsselt/zusammengefügt geschehen.
ungefähr so:
Es werden in der CControl 8 Digitale Ausgänge und 8 Digitale Eingänge definiert.
ganz einfach konnte man das ja hintereinander schreiben, sprich so:
v1 = 255 '# das sind die 8 digitalen ausgänge (Ausgang 1 entspricht 2^0, Ausgang 2 entspricht 2^1, ...)
v2 = 255 '# Analoger Ausgang 1
v3 = 255 '# Analoger Ausgang 2
v4 = v1 xor v2 xor v3
dann sendet man einfach:
chr(v1) + chr(v2) + chr(v3) + chr(v4)
Die CControl entschlüsselt das und sendet so was ähnliches für die Eingänge zurück. evtl so:
v1 = 255 '# das sind die 8 digitalen Eingänge (Eingang 1 entspricht 2^0, Eingang 2 entspricht 2^1, ...)
v2 = 255 '# Analoger Eingang 1
vn = 255 '# Analoger Eingang n ....
v9 = 255 '# Analoger Eingang 8
v10 = v1 xor v2 xor ....
dann sendet man einfach wieder:
chr(v1) + chr(v2) + .......... + chr(v10)
Wenn man dann was empfängt (egal PC oder CC) wird der XOR-Wert mit dem Rest überprüft. Stimmt das Ergebniss, sind keine Fehler unterlaufen, wenn es Fehlerhaft ist, wird es einfach ignoiert.
Meint ihr das klappt?
Oder gibts da bessere, elegantere Lösungen?
Vielen Dank für eure Hilfe.
nux.
Das müsste gehen. Ne elegantere Lösung fällt mir auf die Schnelle nicht ein, weil diese hier ja schon zimlich kurz und sicher ist.
Back on the road again...
Falls ihr wissen wollt, was ich so in meiner roboterfreien Zeit gertieben hab: www.plasmaniac.de.vu
kann die CControl überhaupt XOR? kennt die den befehl?
Würde so ein Programm möglich sein, ich kann ja nicht parallel arbeiten (Multitasking) sondern immer eine Sequenz abarbeiten.
Also noch mehr Meinungen bitte.
Xor kennt sie nicht, aber das kannst ja aus AND, NAND, NOR und OR machen.
einfach
a1|a0|y
0|0|0
0|1|1
1|0|1
1|1|0
=> y = !a^b v a^!b
wenn das ^ "Hoch" bedeuten soll: Das kann die CC auch net...
Mann müsste dann schreiben:
a2=not a
gosub hochrechnen
y=a2
b=not b
gosub hochrechnen
y=y or a2
Edit: Hier muss nartürlich return hin.
#hochrechnen
for b=1 to 255
a2=a2*not a
next
Edit2: Und hier auch...
Das proggi hab ich grad schnell aus dem Ärmel geschüttelt, kann sein dass das net funtzt...
Back on the road again...
Falls ihr wissen wollt, was ich so in meiner roboterfreien Zeit gertieben hab: www.plasmaniac.de.vu
^ bedeutet "Und" wenn ich recht informiert bin.
v bedeutet "oder".
ODer beides genau umgekehrt, aber glaube, das war schon richtig
^bedeutet Hoch, oder? Wenns AND ist, geht's doch einfach...
Back on the road again...
Falls ihr wissen wollt, was ich so in meiner roboterfreien Zeit gertieben hab: www.plasmaniac.de.vu
^ = hoch
v = "oder"
umgedrehtes "v" = "und"
<p align="center">+++ Lerne die Regeln, dann weißt du, wie man Sie richtig bricht +++</p>
Dann versteh ich diese Aussge von djdune nicht:
y = !a^b v a^!b
Dachte:
y = negiert(a)und(b) oder (a) und negiert(b)
liegt warschinlich daran, dass man mit der Tastatur kein
^ und umgedrehtes v unterscheiden kann (gibt ja nur das ^)
Lesezeichen