migrate to snprintf_P with progmem strings
This commit is contained in:
@ -1,9 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
|
|
||||||
void printSignalState(uint8_t id, Serial* serial)
|
void printSignalState(uint8_t id, Serial* serial)
|
||||||
{
|
{
|
||||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE,
|
snprintf_P(buffer, SNPRINTF_BUFFER_SIZE,
|
||||||
"SIGNAL NUMBER: %u ADDRESS: %u SUBADDRESS: %u TYPE: %u CURRENT PACKET: %x STATE: %u\n",
|
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(),
|
id, signals[id].getAddress(), signals[id].getSubaddress(), signals[id].getType(),
|
||||||
signals[id].getPacket(), signals[id].getState());
|
signals[id].getPacket(), signals[id].getState());
|
||||||
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
||||||
@ -76,7 +77,7 @@ int signalDispatch(char* inBuffer, Serial* serial)
|
|||||||
{
|
{
|
||||||
cli();
|
cli();
|
||||||
uint16_t i = strtol(token, nullptr, 16 );
|
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));
|
serial->write(buffer, strlen(buffer));
|
||||||
while(!serial->dataIsWaiting())
|
while(!serial->dataIsWaiting())
|
||||||
{
|
{
|
||||||
|
@ -2,13 +2,14 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
#include "serial.h"
|
#include "serial.h"
|
||||||
#include "writepin.h"
|
#include "writepin.h"
|
||||||
|
|
||||||
void printTrainState(int id, Serial* serial)
|
void printTrainState(int id, Serial* serial)
|
||||||
{
|
{
|
||||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE,
|
snprintf_P(buffer, SNPRINTF_BUFFER_SIZE,
|
||||||
"TRAIN NUMBER: %u ADDRESS: %u CURRENT PACKET: %x SPEED: %i FUNCTIONS: %s FUNCTIONMASK: %s QUIRKS: %s\n",
|
PSTR("TRAIN NUMBER: %u ADDRESS: %u CURRENT PACKET: %x SPEED: %i FUNCTIONS: %s FUNCTIONMASK: %s QUIRKS: %s\n"),
|
||||||
id, trains[id].getAddress(),
|
id, trains[id].getAddress(),
|
||||||
trains[id].getLastPacket(), trains[id].getSpeed(),
|
trains[id].getLastPacket(), trains[id].getSpeed(),
|
||||||
bit_rep[trains[id].getFunctions() & 0x0F], bit_rep[trains[id].getFunctionMask() & 0x0F],
|
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++)
|
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));
|
serial->write(buffer, strlen(buffer));
|
||||||
cli();
|
cli();
|
||||||
for(uint8_t k = 0; k < 10; k++)
|
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++)
|
for(uint16_t j = 0; j < 1024 && !serial->dataIsWaiting(); j++)
|
||||||
{
|
{
|
||||||
trains[id].sendRaw(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));
|
serial->write(buffer, strlen(buffer));
|
||||||
sei();
|
sei();
|
||||||
_delay_ms(250);
|
_delay_ms(250);
|
||||||
@ -133,7 +134,7 @@ int trainDispatch(char* inBuffer, Serial* serial)
|
|||||||
{
|
{
|
||||||
cli();
|
cli();
|
||||||
uint16_t i = strtol(token, nullptr, 16 );
|
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));
|
serial->write(buffer, strlen(buffer));
|
||||||
for(uint8_t j = 0; j < 100; j++)
|
for(uint8_t j = 0; j < 100; j++)
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
|
|
||||||
void printTurnoutState(uint8_t id, Serial* serial)
|
void printTurnoutState(uint8_t id, Serial* serial)
|
||||||
{
|
{
|
||||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE,
|
snprintf_P(buffer, SNPRINTF_BUFFER_SIZE,
|
||||||
"TURNOUT NUMBER: %u ADDRESS: %u SUBADDRESS: %u CURRENT PACKET: %x DIRECTION: %u\n",
|
PSTR("TURNOUT NUMBER: %u ADDRESS: %u SUBADDRESS: %u CURRENT PACKET: %x DIRECTION: %u\n"),
|
||||||
id, turnouts[id].getAddress(), turnouts[id].getSubaddress(),
|
id, turnouts[id].getAddress(), turnouts[id].getSubaddress(),
|
||||||
turnouts[id].getPacket(), turnouts[id].getDirection());
|
turnouts[id].getPacket(), turnouts[id].getDirection());
|
||||||
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
||||||
@ -70,7 +71,7 @@ int turnoutDispatch(char* inBuffer, Serial* serial)
|
|||||||
{
|
{
|
||||||
cli();
|
cli();
|
||||||
uint16_t i = strtol(token, nullptr, 16 );
|
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));
|
serial->write(buffer, strlen(buffer));
|
||||||
while(!serial->dataIsWaiting())
|
while(!serial->dataIsWaiting())
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user