From 9504bc24ab9b888fc5e59c4e072c8228519c6d3c Mon Sep 17 00:00:00 2001 From: jgromes Date: Sun, 14 Nov 2021 11:41:09 +0100 Subject: [PATCH] [SSTV] Update to 5.0.0 --- examples/SSTV/SSTV_Transmit/SSTV_Transmit.ino | 4 +- .../SSTV_Transmit_AFSK/SSTV_Transmit_AFSK.ino | 4 +- src/protocols/SSTV/SSTV.cpp | 53 ++++++++++--------- src/protocols/SSTV/SSTV.h | 42 +++++++-------- 4 files changed, 52 insertions(+), 51 deletions(-) diff --git a/examples/SSTV/SSTV_Transmit/SSTV_Transmit.ino b/examples/SSTV/SSTV_Transmit/SSTV_Transmit.ino index 6b06bae3..3a189c98 100644 --- a/examples/SSTV/SSTV_Transmit/SSTV_Transmit.ino +++ b/examples/SSTV/SSTV_Transmit/SSTV_Transmit.ino @@ -91,7 +91,7 @@ void setup() { // initialize SX1278 with default settings Serial.print(F("[SX1278] Initializing ... ")); int state = radio.beginFSK(); - if (state == ERR_NONE) { + if (state == RADIOLIB_ERR_NONE) { Serial.println(F("success!")); } else { Serial.print(F("failed, code ")); @@ -117,7 +117,7 @@ void setup() { // (lower number = shorter pulses). // The value is usually around 0.95 (95%). state = sstv.begin(434.0, Wrasse, 0.95); - if(state == ERR_NONE) { + if(state == RADIOLIB_ERR_NONE) { Serial.println(F("success!")); } else { Serial.print(F("failed, code ")); diff --git a/examples/SSTV/SSTV_Transmit_AFSK/SSTV_Transmit_AFSK.ino b/examples/SSTV/SSTV_Transmit_AFSK/SSTV_Transmit_AFSK.ino index e27bf67e..8678fa71 100644 --- a/examples/SSTV/SSTV_Transmit_AFSK/SSTV_Transmit_AFSK.ino +++ b/examples/SSTV/SSTV_Transmit_AFSK/SSTV_Transmit_AFSK.ino @@ -90,7 +90,7 @@ void setup() { // initialize SX1278 with default settings Serial.print(F("[SX1278] Initializing ... ")); int state = radio.beginFSK(); - if (state == ERR_NONE) { + if (state == RADIOLIB_ERR_NONE) { Serial.println(F("success!")); } else { Serial.print(F("failed, code ")); @@ -115,7 +115,7 @@ void setup() { // (lower number = shorter pulses). // The value is usually around 0.95 (95%). state = sstv.begin(Wrasse, 0.95); - if(state == ERR_NONE) { + if(state == RADIOLIB_ERR_NONE) { Serial.println(F("success!")); } else { Serial.print(F("failed, code ")); diff --git a/src/protocols/SSTV/SSTV.cpp b/src/protocols/SSTV/SSTV.cpp index 51e8b950..ec5957c5 100644 --- a/src/protocols/SSTV/SSTV.cpp +++ b/src/protocols/SSTV/SSTV.cpp @@ -2,7 +2,7 @@ #if !defined(RADIOLIB_EXCLUDE_SSTV) const SSTVMode_t Scottie1 { - .visCode = SSTV_SCOTTIE_1, + .visCode = RADIOLIB_SSTV_SCOTTIE_1, .width = 320, .height = 256, .scanPixelLen = 432, @@ -19,7 +19,7 @@ const SSTVMode_t Scottie1 { }; const SSTVMode_t Scottie2 { - .visCode = SSTV_SCOTTIE_2, + .visCode = RADIOLIB_SSTV_SCOTTIE_2, .width = 320, .height = 256, .scanPixelLen = 275, @@ -36,7 +36,7 @@ const SSTVMode_t Scottie2 { }; const SSTVMode_t ScottieDX { - .visCode = SSTV_SCOTTIE_DX, + .visCode = RADIOLIB_SSTV_SCOTTIE_DX, .width = 320, .height = 256, .scanPixelLen = 1080, @@ -53,7 +53,7 @@ const SSTVMode_t ScottieDX { }; const SSTVMode_t Martin1 { - .visCode = SSTV_MARTIN_1, + .visCode = RADIOLIB_SSTV_MARTIN_1, .width = 320, .height = 256, .scanPixelLen = 458, @@ -71,7 +71,7 @@ const SSTVMode_t Martin1 { }; const SSTVMode_t Martin2 { - .visCode = SSTV_MARTIN_2, + .visCode = RADIOLIB_SSTV_MARTIN_2, .width = 320, .height = 256, .scanPixelLen = 229, @@ -89,7 +89,7 @@ const SSTVMode_t Martin2 { }; const SSTVMode_t Wrasse { - .visCode = SSTV_WRASSE_SC2_180, + .visCode = RADIOLIB_SSTV_WRASSE_SC2_180, .width = 320, .height = 256, .scanPixelLen = 734, @@ -104,7 +104,7 @@ const SSTVMode_t Wrasse { }; const SSTVMode_t PasokonP3 { - .visCode = SSTV_PASOKON_P3, + .visCode = RADIOLIB_SSTV_PASOKON_P3, .width = 640, .height = 496, .scanPixelLen = 208, @@ -121,7 +121,7 @@ const SSTVMode_t PasokonP3 { }; const SSTVMode_t PasokonP5 { - .visCode = SSTV_PASOKON_P5, + .visCode = RADIOLIB_SSTV_PASOKON_P5, .width = 640, .height = 496, .scanPixelLen = 312, @@ -138,7 +138,7 @@ const SSTVMode_t PasokonP5 { }; const SSTVMode_t PasokonP7 { - .visCode = SSTV_PASOKON_P7, + .visCode = RADIOLIB_SSTV_PASOKON_P7, .width = 640, .height = 496, .scanPixelLen = 417, @@ -172,7 +172,7 @@ SSTVClient::SSTVClient(AFSKClient* audio) { int16_t SSTVClient::begin(const SSTVMode_t& mode, float correction) { if(_audio == nullptr) { // this initialization method can only be used in AFSK mode - return(ERR_WRONG_MODEM); + return(RADIOLIB_ERR_WRONG_MODEM); } return(begin(0, mode, correction)); @@ -198,7 +198,7 @@ int16_t SSTVClient::begin(float base, const SSTVMode_t& mode, float correction) void SSTVClient::idle() { _phy->transmitDirect(); - this->tone(SSTV_TONE_LEADER); + this->tone(RADIOLIB_SSTV_TONE_LEADER); } void SSTVClient::sendHeader() { @@ -207,44 +207,44 @@ void SSTVClient::sendHeader() { _phy->transmitDirect(); // send the first part of header (leader-break-leader) - this->tone(SSTV_TONE_LEADER, SSTV_HEADER_LEADER_LENGTH); - this->tone(SSTV_TONE_BREAK, SSTV_HEADER_BREAK_LENGTH); - this->tone(SSTV_TONE_LEADER, SSTV_HEADER_LEADER_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_LEADER, RADIOLIB_SSTV_HEADER_LEADER_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_BREAK, RADIOLIB_SSTV_HEADER_BREAK_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_LEADER, RADIOLIB_SSTV_HEADER_LEADER_LENGTH); // VIS start bit - this->tone(SSTV_TONE_BREAK, SSTV_HEADER_BIT_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_BREAK, RADIOLIB_SSTV_HEADER_BIT_LENGTH); // VIS code uint8_t parityCount = 0; for(uint8_t mask = 0x01; mask < 0x80; mask <<= 1) { if(_mode.visCode & mask) { - this->tone(SSTV_TONE_VIS_1, SSTV_HEADER_BIT_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_VIS_1, RADIOLIB_SSTV_HEADER_BIT_LENGTH); parityCount++; } else { - this->tone(SSTV_TONE_VIS_0, SSTV_HEADER_BIT_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_VIS_0, RADIOLIB_SSTV_HEADER_BIT_LENGTH); } } // VIS parity if(parityCount % 2 == 0) { // even parity - this->tone(SSTV_TONE_VIS_0, SSTV_HEADER_BIT_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_VIS_0, RADIOLIB_SSTV_HEADER_BIT_LENGTH); } else { // odd parity - this->tone(SSTV_TONE_VIS_1, SSTV_HEADER_BIT_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_VIS_1, RADIOLIB_SSTV_HEADER_BIT_LENGTH); } // VIS stop bit - this->tone(SSTV_TONE_BREAK, SSTV_HEADER_BIT_LENGTH); + this->tone(RADIOLIB_SSTV_TONE_BREAK, RADIOLIB_SSTV_HEADER_BIT_LENGTH); } void SSTVClient::sendLine(uint32_t* imgLine) { // check first line flag in Scottie modes - if(_firstLine && ((_mode.visCode == SSTV_SCOTTIE_1) || (_mode.visCode == SSTV_SCOTTIE_2) || (_mode.visCode == SSTV_SCOTTIE_DX))) { + if(_firstLine && ((_mode.visCode == RADIOLIB_SSTV_SCOTTIE_1) || (_mode.visCode == RADIOLIB_SSTV_SCOTTIE_2) || (_mode.visCode == RADIOLIB_SSTV_SCOTTIE_DX))) { _firstLine = false; // send start sync tone - this->tone(SSTV_TONE_BREAK, 9000); + this->tone(RADIOLIB_SSTV_TONE_BREAK, 9000); } // send all tones in sequence @@ -271,7 +271,7 @@ void SSTVClient::sendLine(uint32_t* imgLine) { case(tone_t::GENERIC): break; } - this->tone(SSTV_TONE_BRIGHTNESS_MIN + ((float)color * 3.1372549), _mode.scanPixelLen); + this->tone(RADIOLIB_SSTV_TONE_BRIGHTNESS_MIN + ((float)color * 3.1372549), _mode.scanPixelLen); } } } @@ -282,7 +282,8 @@ uint16_t SSTVClient::getPictureHeight() const { } void SSTVClient::tone(float freq, uint32_t len) { - uint32_t start = Module::micros(); + Module* mod = _phy->getMod(); + uint32_t start = mod->micros(); #if !defined(RADIOLIB_EXCLUDE_AFSK) if(_audio != nullptr) { _audio->tone(freq, false); @@ -292,8 +293,8 @@ void SSTVClient::tone(float freq, uint32_t len) { #else _phy->transmitDirect(_base + (freq / _phy->getFreqStep())); #endif - while(Module::micros() - start < len) { - Module::yield(); + while(mod->micros() - start < len) { + mod->yield(); } } diff --git a/src/protocols/SSTV/SSTV.h b/src/protocols/SSTV/SSTV.h index fb8fc27a..f24053e4 100644 --- a/src/protocols/SSTV/SSTV.h +++ b/src/protocols/SSTV/SSTV.h @@ -1,5 +1,5 @@ -#if !defined(_RADIOLIB_SSTV_H) -#define _RADIOLIB_SSTV_H +#if !defined(_RADIOLIB_RADIOLIB_SSTV_H) +#define _RADIOLIB_RADIOLIB_SSTV_H #include "../../TypeDef.h" @@ -12,28 +12,28 @@ // http://www.barberdsp.com/downloads/Dayton%20Paper.pdf // VIS codes -#define SSTV_SCOTTIE_1 60 -#define SSTV_SCOTTIE_2 56 -#define SSTV_SCOTTIE_DX 76 -#define SSTV_MARTIN_1 44 -#define SSTV_MARTIN_2 40 -#define SSTV_WRASSE_SC2_180 55 -#define SSTV_PASOKON_P3 113 -#define SSTV_PASOKON_P5 114 -#define SSTV_PASOKON_P7 115 +#define RADIOLIB_SSTV_SCOTTIE_1 60 +#define RADIOLIB_SSTV_SCOTTIE_2 56 +#define RADIOLIB_SSTV_SCOTTIE_DX 76 +#define RADIOLIB_SSTV_MARTIN_1 44 +#define RADIOLIB_SSTV_MARTIN_2 40 +#define RADIOLIB_SSTV_WRASSE_SC2_180 55 +#define RADIOLIB_SSTV_PASOKON_P3 113 +#define RADIOLIB_SSTV_PASOKON_P5 114 +#define RADIOLIB_SSTV_PASOKON_P7 115 // SSTV tones in Hz -#define SSTV_TONE_LEADER 1900 -#define SSTV_TONE_BREAK 1200 -#define SSTV_TONE_VIS_1 1100 -#define SSTV_TONE_VIS_0 1300 -#define SSTV_TONE_BRIGHTNESS_MIN 1500 -#define SSTV_TONE_BRIGHTNESS_MAX 2300 +#define RADIOLIB_SSTV_TONE_LEADER 1900 +#define RADIOLIB_SSTV_TONE_BREAK 1200 +#define RADIOLIB_SSTV_TONE_VIS_1 1100 +#define RADIOLIB_SSTV_TONE_VIS_0 1300 +#define RADIOLIB_SSTV_TONE_BRIGHTNESS_MIN 1500 +#define RADIOLIB_SSTV_TONE_BRIGHTNESS_MAX 2300 // calibration header timing in us -#define SSTV_HEADER_LEADER_LENGTH 300000 -#define SSTV_HEADER_BREAK_LENGTH 10000 -#define SSTV_HEADER_BIT_LENGTH 30000 +#define RADIOLIB_SSTV_HEADER_LEADER_LENGTH 300000 +#define RADIOLIB_SSTV_HEADER_BREAK_LENGTH 10000 +#define RADIOLIB_SSTV_HEADER_BIT_LENGTH 30000 /*! \struct tone_t @@ -187,7 +187,7 @@ class SSTVClient { */ uint16_t getPictureHeight() const; -#ifndef RADIOLIB_GODMODE +#if !defined(RADIOLIB_GODMODE) private: #endif PhysicalLayer* _phy;