mirror of
https://github.com/Genaker/LoraSA.git
synced 2026-03-28 17:42:59 +01:00
Tests pass
This commit is contained in:
15
src/core.cpp
15
src/core.cpp
@@ -18,6 +18,9 @@ uint16_t Scan::rssiMethod(uint16_t *result)
|
||||
for (int r = 0; r < SAMPLES_RSSI; r++)
|
||||
{
|
||||
float rssi = getRSSI();
|
||||
if (rssi < -65535)
|
||||
rssi = -65535;
|
||||
|
||||
uint16_t abs_rssi = abs(rssi);
|
||||
if (abs_rssi < max_signal)
|
||||
{
|
||||
@@ -34,8 +37,16 @@ uint16_t Scan::rssiMethod(uint16_t *result)
|
||||
}
|
||||
else if (RSSI_OUTPUT_FORMULA == 2)
|
||||
{
|
||||
// I like this formula better
|
||||
result_index = uint8_t(abs(rssi) / 2) - 22;
|
||||
if (rssi > HI_RSSI_THRESHOLD)
|
||||
{
|
||||
rssi = HI_RSSI_THRESHOLD;
|
||||
}
|
||||
else if (rssi < LO_RSSI_THRESHOLD)
|
||||
{
|
||||
rssi = LO_RSSI_THRESHOLD;
|
||||
}
|
||||
|
||||
result_index = uint8_t((HI_RSSI_THRESHOLD - rssi) * scale);
|
||||
}
|
||||
|
||||
if (result_index >= res_size)
|
||||
|
||||
@@ -31,7 +31,7 @@ constexpr float LO_RSSI_THRESHOLD = HI_RSSI_THRESHOLD - 66;
|
||||
struct Scan
|
||||
{
|
||||
Scan(int sz)
|
||||
: res_size(sz)
|
||||
: res_size(sz), scale((float)sz / (HI_RSSI_THRESHOLD - LO_RSSI_THRESHOLD + 0.1))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ struct Scan
|
||||
uint16_t rssiMethod(uint16_t *result);
|
||||
|
||||
int res_size;
|
||||
float scale;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user