X-Git-Url: http://git.tdb.fi/?p=model-railway-devices.git;a=blobdiff_plain;f=arducontrol%2Finterface.c;h=96baba7f0a4d154110bcf826fd804d5f3e7d0f86;hp=96b1f96cd97e8cc1cf78435eb60d0a22123b9b6c;hb=b5f6cc69e07c60ca67e8e736ca2fb90a3ce175ae;hpb=de977f33ed5c55b2b45c8dcae0c0687bd0cbf1e6 diff --git a/arducontrol/interface.c b/arducontrol/interface.c index 96b1f96..96baba7 100644 --- a/arducontrol/interface.c +++ b/arducontrol/interface.c @@ -24,8 +24,7 @@ void interface_check(void) { if(recv_overrun) { - serial_write(0xFE); - serial_write(RECEIVE_OVERRUN); + interface_send1(RECEIVE_OVERRUN); recv_overrun = 0; } if(recv_fill>0) @@ -55,8 +54,7 @@ void process_commands(void) else { length = 0; - serial_write(0xFE); - serial_write(FRAMING_ERROR); + interface_send1(FRAMING_ERROR); } recv_tail += length+1; @@ -67,8 +65,7 @@ void process_commands(void) if(length>0) { uint8_t result = dispatch_command(cmd, length); - serial_write(0xFE); - serial_write(result); + interface_send1(result); } } } @@ -90,6 +87,21 @@ uint8_t dispatch_command(const uint8_t *cmd, uint8_t length) return INVALID_COMMAND; } +void interface_send(const uint8_t *cmd, uint8_t length) +{ + uint8_t i; + + serial_write(~length); + for(i=0; i=sizeof(recv_buf))