[Morse] Added support for Arduino flash strings
This commit is contained in:
parent
8931efa4e7
commit
fd4da5771c
3 changed files with 26 additions and 2 deletions
|
@ -74,6 +74,9 @@ void loop() {
|
|||
// character array (C-String)
|
||||
morse.print("C-String");
|
||||
|
||||
// string saved in flash
|
||||
morse.print(F("Flash String"));
|
||||
|
||||
// character
|
||||
morse.print('c');
|
||||
|
||||
|
|
|
@ -85,6 +85,10 @@ int16_t MorseClient::begin(float base, uint8_t speed) {
|
|||
return(state);
|
||||
}
|
||||
|
||||
size_t MorseClient::startSignal() {
|
||||
return(MorseClient::write(0x01));
|
||||
}
|
||||
|
||||
size_t MorseClient::write(const char* str) {
|
||||
if(str == NULL) {
|
||||
return(0);
|
||||
|
@ -147,8 +151,17 @@ size_t MorseClient::write(uint8_t b) {
|
|||
return(0);
|
||||
}
|
||||
|
||||
size_t MorseClient::startSignal() {
|
||||
return(MorseClient::write(0x01));
|
||||
size_t MorseClient::print(__FlashStringHelper* fstr) {
|
||||
PGM_P p = reinterpret_cast<PGM_P>(fstr);
|
||||
size_t n = 0;
|
||||
while(true) {
|
||||
char c = pgm_read_byte(p++);
|
||||
if(c == '\0') {
|
||||
break;
|
||||
}
|
||||
n += MorseClient::write(c);
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
size_t MorseClient::print(const String& str) {
|
||||
|
@ -206,6 +219,12 @@ size_t MorseClient::println(void) {
|
|||
return(MorseClient::write(0x02));
|
||||
}
|
||||
|
||||
size_t MorseClient::println(__FlashStringHelper* fstr) {
|
||||
size_t n = MorseClient::print(fstr);
|
||||
n += MorseClient::println();
|
||||
return(n);
|
||||
}
|
||||
|
||||
size_t MorseClient::println(const String& str) {
|
||||
size_t n = MorseClient::print(str);
|
||||
n += MorseClient::println();
|
||||
|
|
|
@ -44,6 +44,7 @@ class MorseClient {
|
|||
size_t write(uint8_t* buff, size_t len);
|
||||
size_t write(uint8_t b);
|
||||
|
||||
size_t print(__FlashStringHelper*);
|
||||
size_t print(const String &);
|
||||
size_t print(const char[]);
|
||||
size_t print(char);
|
||||
|
@ -55,6 +56,7 @@ class MorseClient {
|
|||
size_t print(double, int = 2);
|
||||
|
||||
size_t println(void);
|
||||
size_t println(__FlashStringHelper*);
|
||||
size_t println(const String &s);
|
||||
size_t println(const char[]);
|
||||
size_t println(char);
|
||||
|
|
Loading…
Add table
Reference in a new issue