improve it
This commit is contained in:
15
main.cpp
15
main.cpp
@ -8,6 +8,7 @@
|
||||
#include "train.h"
|
||||
#include "eeprom.h"
|
||||
#include "bitrep.h"
|
||||
#include "ringbuffer.h"
|
||||
|
||||
#define MAX_TRAINS 16
|
||||
#define COMMAND_BUFFER_SIZE 64
|
||||
@ -126,7 +127,7 @@ void trainDispatch(char* inBuffer, Serial* serial)
|
||||
serial->write_p(PSTR("Trains:\n"));
|
||||
for(uint8_t i = 0; i < storedTrains; i++)
|
||||
{
|
||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE, "NUMBER: %u ID: %s%s CURRENT PACKET: %x", i, bit_rep[trains[i].getAddress() >> 4], bit_rep[trains[i].getAddress() & 0x0F], trains[i].getLastPacket());
|
||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE, "NUMBER: %u ID: %s%s CURRENT PACKET: %x SPEED: %u", i, bit_rep[trains[i].getAddress() >> 4], bit_rep[trains[i].getAddress() & 0x0F], trains[i].getLastPacket(), trains[i].getSpeed());
|
||||
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
||||
serial->write_p(PSTR(" PROTOCOL: "));
|
||||
if(trains[i].getProtocol() == Train::M_DELTA)serial->write_p(PSTR("delta\n"));
|
||||
@ -258,7 +259,7 @@ void serialDispatch(Serial* serial)
|
||||
{
|
||||
char buffer[COMMAND_BUFFER_SIZE];
|
||||
unsigned int length = serial->getString(buffer, COMMAND_BUFFER_SIZE);
|
||||
if(length > 2)
|
||||
if(length > 0)
|
||||
{
|
||||
serial->write_p(PSTR("Got: "));
|
||||
serial->putChar('\"');
|
||||
@ -271,13 +272,13 @@ void serialDispatch(Serial* serial)
|
||||
if(token != NULL)
|
||||
trainDispatch(token, serial);
|
||||
}
|
||||
else if(length > 4 && strncmp(token, "erase", 4) == 0)
|
||||
else if(strncmp(token, "erase", 4) == 0)
|
||||
{
|
||||
for(uint16_t i = 0; i < EPPROM_SIZE; i++) EEPROM_write_char(i, 0);
|
||||
serial->write_p(PSTR("EEPROM erased\n"));
|
||||
storedTrains = 0;
|
||||
}
|
||||
else if(length > 3 && strcmp(token, "dump") == 0)
|
||||
else if(strcmp(token, "dump") == 0)
|
||||
{
|
||||
for(uint16_t i = 0; i < EPPROM_SIZE; i++)
|
||||
{
|
||||
@ -286,7 +287,7 @@ void serialDispatch(Serial* serial)
|
||||
}
|
||||
serial->putChar('\n');
|
||||
}
|
||||
else if(length > 3 && (strcmp(token, "stop") == 0 || strcmp(token, "s") == 0 ))
|
||||
else if((strcmp(token, "stop") == 0 || strcmp(token, "s") == 0 ))
|
||||
{
|
||||
for(uint16_t i = 0; i < storedTrains; i++)
|
||||
{
|
||||
@ -295,12 +296,12 @@ void serialDispatch(Serial* serial)
|
||||
sei();
|
||||
}
|
||||
}
|
||||
else if(length > 3 && strcmp(token, "power") == 0)
|
||||
else if(strcmp(token, "power") == 0)
|
||||
{
|
||||
token = strtok(NULL, " ");
|
||||
if(token != NULL)powerDispatch(token, serial);
|
||||
}
|
||||
else if(length > 3 && strcmp(token, "help") == 0)
|
||||
else if(strcmp(token, "help") == 0)
|
||||
{
|
||||
printHelp(serial);
|
||||
}
|
||||
|
Reference in New Issue
Block a user