improve it

This commit is contained in:
2022-01-13 13:59:08 +01:00
parent e3dcd77744
commit 6a02c2f8cd
4 changed files with 181 additions and 118 deletions

View File

@ -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);
}