X-Git-Url: http://git.tdb.fi/?p=model-railway-devices.git;a=blobdiff_plain;f=arduprogram%2Fmain.cpp;fp=arduprogram%2Fmain.cpp;h=a6b989fa64a0839812655cf15f4c21afd762ee49;hp=e9f62ca2dfb8e6c8c18d79079c69003e0326cfd9;hb=10a75dc39bf4cd91d235861f11b1fa0365d75c3e;hpb=285513c401954c5ad012ae4ae5411f72b7f73ffc diff --git a/arduprogram/main.cpp b/arduprogram/main.cpp index e9f62ca..a6b989f 100644 --- a/arduprogram/main.cpp +++ b/arduprogram/main.cpp @@ -271,9 +271,15 @@ void ArduProgram::set_output_state(OutputState s) void ArduProgram::serial_input_available() { - int c = serial.get(); - if(c==0x80) - set_output(); - else - throw runtime_error(format("Command error: %x\n", c)); + unsigned l = serial.get()^0xFF; + if(l<0x10) + { + int c = serial.get(); + if(c==0x80) + set_output(); + else if((c&0xE0)==0x80) + throw runtime_error(format("Command error: %x\n", c)); + while(--l) + serial.get(); + } }