Farten behöver bara 2 tecken då aktuella hastigheter för RUT är 3 - 6 med 0.5 steg (frågan är om decimaler behövs egentligen, har aldrig använt det på någon körning med RUT)Jag kan fixa RUT-programmet så att det pratar med Arduinon.
Förslag på protokoll mellan PC och Arduino. Detta protokoll bygger på Lars förslag att PC:n kan konfigurera Arduinon, men att Arduinon också kan gå självständigt, och att Arduinon ansvarar för att snabbstega om det behövs.
Serieporten konfigureras för 9600 baud, 8 databitar, 1 stoppbit, ingen paritet. (Standardkonfiguration)
Alla kommandon inleds med tecknet #.
PC -> Arduni: Kommando "Ställ klockan"
#1hhmmssfffa
# = Starttecken. Arduino lyssnar på serieporten och börjar lyssna när detta kommer.
1 = Kommando, 1 siffra. Kommando 1 = Snabbklocka. Ardunio bortser från alla andra kommandon, t ex skicka ut texten, m.m.
hh = Timmar, 2 siffror. 00 - 23. Arduino får själv ta hänsyn till 12h-klocka.
mm = Minuter, 2 siffror. 00 - 59.
ss = Sekunder, 2 siffror. 00 - 59.
fff = Fart (hastighet), 3 siffror. 000 - 999. Sista siffran är decimal. Så 045 är hastigheten 4,5.
a = Aktiv. 1 = Klockan går, 0 = klockan stoppad.
Fart, se ovanArduni -> PC: Kommando "RUT-klockan"
Används för att PC:n ska kunna visa RUT-tiden.
#1hhmmssfffas
# = Starttecken.
1 = Kommando, 1 siffra. Kommando 1 = Snabbklocka.
hh = Timmar, 2 siffror. 00 - 23. Arduino får själv ta hänsyn till 12h-klocka.
mm = Minuter, 2 siffror. 00 - 59.
ss = Sekunder, 2 siffror. 00 - 59.
fff = Fart (hastighet), 3 siffror. 000 - 999. Sista siffran är decimal. Så 045 är hastigheten 4,5.
a = Aktiv. 1 = Klockan går, 0 = klockan stoppad.
s = Snabbstega. 1 = RUT snabbstegas, 0 = RUT går i takt.
När det gäller snabbstegning så kommer det finnas andra kommandon för det.
Det kommer att finnas 4 relä om vi använder den shield som diskuteras. Inget relä borde vara felaktigt draget medvetet.Arduino -> PC: Kommando "Statusrapport"
Används för att PC:n ska kunna visa felmeddelanden.
#0ss
ss = Statuskod, 2 siffror
Status "Klockan går"
ss = 01
Status "Klockan stoppad"
ss = 02
Status "Relä 1" felaktigt draget
ss = 03
Status "Relä 2" felaktigt draget
ss = 04
Mvh Daniel
Behöver nog kolla på detta igen ikväll.
/Lars