diff --git a/signaldispatch.h b/signaldispatch.h index 7b1fbbf..8fb8719 100644 --- a/signaldispatch.h +++ b/signaldispatch.h @@ -1,9 +1,10 @@ #pragma once +#include void printSignalState(uint8_t id, Serial* serial) { - snprintf(buffer, SNPRINTF_BUFFER_SIZE, - "SIGNAL NUMBER: %u ADDRESS: %u SUBADDRESS: %u TYPE: %u CURRENT PACKET: %x STATE: %u\n", + snprintf_P(buffer, SNPRINTF_BUFFER_SIZE, + PSTR("SIGNAL NUMBER: %u ADDRESS: %u SUBADDRESS: %u TYPE: %u CURRENT PACKET: %x STATE: %u\n"), id, signals[id].getAddress(), signals[id].getSubaddress(), signals[id].getType(), signals[id].getPacket(), signals[id].getState()); serial->write(buffer, SNPRINTF_BUFFER_SIZE); @@ -76,7 +77,7 @@ int signalDispatch(char* inBuffer, Serial* serial) { cli(); uint16_t i = strtol(token, nullptr, 16 ); - snprintf(buffer, SNPRINTF_BUFFER_SIZE, "SENDING: %x to %x\n", i, signals[id].getAddress()); + snprintf_P(buffer, SNPRINTF_BUFFER_SIZE, PSTR("SENDING: %x to %x\n"), i, signals[id].getAddress()); serial->write(buffer, strlen(buffer)); while(!serial->dataIsWaiting()) { diff --git a/traindispatch.h b/traindispatch.h index 9740c65..0c4dea4 100644 --- a/traindispatch.h +++ b/traindispatch.h @@ -2,13 +2,14 @@ #include #include #include +#include #include "serial.h" #include "writepin.h" void printTrainState(int id, Serial* serial) { - snprintf(buffer, SNPRINTF_BUFFER_SIZE, - "TRAIN NUMBER: %u ADDRESS: %u CURRENT PACKET: %x SPEED: %i FUNCTIONS: %s FUNCTIONMASK: %s QUIRKS: %s\n", + snprintf_P(buffer, SNPRINTF_BUFFER_SIZE, + PSTR("TRAIN NUMBER: %u ADDRESS: %u CURRENT PACKET: %x SPEED: %i FUNCTIONS: %s FUNCTIONMASK: %s QUIRKS: %s\n"), id, trains[id].getAddress(), trains[id].getLastPacket(), trains[id].getSpeed(), bit_rep[trains[id].getFunctions() & 0x0F], bit_rep[trains[id].getFunctionMask() & 0x0F], @@ -62,7 +63,7 @@ int trainDispatch(char* inBuffer, Serial* serial) { for(uint16_t j = 0; j < 255; j++) { - snprintf(buffer, SNPRINTF_BUFFER_SIZE, "TRYING ADDR: %x\n", j); + snprintf_P(buffer, SNPRINTF_BUFFER_SIZE, PSTR("TRYING ADDR: %x\n"), j); serial->write(buffer, strlen(buffer)); cli(); for(uint8_t k = 0; k < 10; k++) @@ -116,7 +117,7 @@ int trainDispatch(char* inBuffer, Serial* serial) for(uint16_t j = 0; j < 1024 && !serial->dataIsWaiting(); j++) { trains[id].sendRaw(j); - snprintf(buffer, SNPRINTF_BUFFER_SIZE, "TRYING: %x\n", j); + snprintf_P(buffer, SNPRINTF_BUFFER_SIZE, PSTR("TRYING: %x\n"), j); serial->write(buffer, strlen(buffer)); sei(); _delay_ms(250); @@ -133,7 +134,7 @@ int trainDispatch(char* inBuffer, Serial* serial) { cli(); uint16_t i = strtol(token, nullptr, 16 ); - snprintf(buffer, SNPRINTF_BUFFER_SIZE, "SENDING: %x to %x\n", i, trains[id].getAddress()); + snprintf_P(buffer, SNPRINTF_BUFFER_SIZE, PSTR("SENDING: %x to %x\n"), i, trains[id].getAddress()); serial->write(buffer, strlen(buffer)); for(uint8_t j = 0; j < 100; j++) { diff --git a/turnoutdispatch.h b/turnoutdispatch.h index 3008769..ea152ba 100644 --- a/turnoutdispatch.h +++ b/turnoutdispatch.h @@ -1,9 +1,10 @@ #pragma once +#include void printTurnoutState(uint8_t id, Serial* serial) { - snprintf(buffer, SNPRINTF_BUFFER_SIZE, - "TURNOUT NUMBER: %u ADDRESS: %u SUBADDRESS: %u CURRENT PACKET: %x DIRECTION: %u\n", + snprintf_P(buffer, SNPRINTF_BUFFER_SIZE, + PSTR("TURNOUT NUMBER: %u ADDRESS: %u SUBADDRESS: %u CURRENT PACKET: %x DIRECTION: %u\n"), id, turnouts[id].getAddress(), turnouts[id].getSubaddress(), turnouts[id].getPacket(), turnouts[id].getDirection()); serial->write(buffer, SNPRINTF_BUFFER_SIZE); @@ -70,7 +71,7 @@ int turnoutDispatch(char* inBuffer, Serial* serial) { cli(); uint16_t i = strtol(token, nullptr, 16 ); - snprintf(buffer, SNPRINTF_BUFFER_SIZE, "SENDING: %x to %x\n", i, turnouts[id].getAddress()); + snprintf_P(buffer, SNPRINTF_BUFFER_SIZE, PSTR("SENDING: %x to %x\n"), i, turnouts[id].getAddress()); serial->write(buffer, strlen(buffer)); while(!serial->dataIsWaiting()) {