diff --git a/SMeter.cpp b/SMeter.cpp index 42bdccf..c3a5486 100644 --- a/SMeter.cpp +++ b/SMeter.cpp @@ -19,22 +19,21 @@ #include "SMeter.h" +#define RSSI_S1 141U +#define RSSI_S9 93U + void CSMeter::getSignal(unsigned int rssi, unsigned int & signal, unsigned int & plus) { - signal = 0U; - plus = 0U; - - if (rssi >= 121) { signal = 1; plus = 0; } - else if (rssi >= 115) { signal = 2; plus = 0; } - else if (rssi >= 109) { signal = 3; plus = 0; } - else if (rssi >= 103) { signal = 4; plus = 0; } - else if (rssi >= 97) { signal = 5; plus = 0; } - else if (rssi >= 91) { signal = 6; plus = 0; } - else if (rssi >= 85) { signal = 7; plus = 0; } - else if (rssi >= 79) { signal = 8; plus = 0; } - else if (rssi >= 73) { signal = 9; plus = 0; } - else if (rssi >= 63) { signal = 9; plus = 10; } - else if (rssi >= 53) { signal = 9; plus = 20; } - else if (rssi >= 43) { signal = 9; plus = 30; } - else if (rssi >= 33) { signal = 9; plus = 40; } + if (rssi > RSSI_S1) { + signal = 0; + plus = 0; + } + else if (rssi >= RSSI_S9 && rssi <= RSSI_S1) { + signal = ((RSSI_S1 - rssi) / 6) + 1; + plus =0; + } + else { + signal = 9U; + plus = RSSI_S9 - rssi; + } } \ No newline at end of file