mirror of
https://github.com/airgradienthq/arduino.git
synced 2025-07-28 16:07:16 +02:00
Include cellular signal in rssi to measurement cycle
This commit is contained in:
@ -117,6 +117,7 @@ static uint32_t factoryBtnPressTime = 0;
|
|||||||
static AgFirmwareMode fwMode = FW_MODE_I_9PSL;
|
static AgFirmwareMode fwMode = FW_MODE_I_9PSL;
|
||||||
static bool ledBarButtonTest = false;
|
static bool ledBarButtonTest = false;
|
||||||
static String fwNewVersion;
|
static String fwNewVersion;
|
||||||
|
static int lastCellSignalQuality = 99; // CSQ
|
||||||
|
|
||||||
SemaphoreHandle_t mutexMeasurementCycleQueue;
|
SemaphoreHandle_t mutexMeasurementCycleQueue;
|
||||||
static std::vector<Measurements::Measures> measurementCycleQueue;
|
static std::vector<Measurements::Measures> measurementCycleQueue;
|
||||||
@ -1475,14 +1476,20 @@ void networkSignalCheck() {
|
|||||||
auto result = cell->retrieveSignal();
|
auto result = cell->retrieveSignal();
|
||||||
if (result.status != CellReturnStatus::Ok) {
|
if (result.status != CellReturnStatus::Ok) {
|
||||||
agClient->setClientReady(false);
|
agClient->setClientReady(false);
|
||||||
|
lastCellSignalQuality = 99;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Save last signal quality
|
||||||
|
lastCellSignalQuality = result.data;
|
||||||
|
|
||||||
if (result.data == 99) {
|
if (result.data == 99) {
|
||||||
// 99 indicate cellular not attached to network
|
// 99 indicate cellular not attached to network
|
||||||
agClient->setClientReady(false);
|
agClient->setClientReady(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Serial.printf("Cellular signal strength %d\n", result.data);
|
|
||||||
|
Serial.printf("Cellular signal quality %d\n", result.data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1501,6 +1508,7 @@ void networkingTask(void *args) {
|
|||||||
if (networkOption == UseCellular) {
|
if (networkOption == UseCellular) {
|
||||||
Serial.println("Prepare first measures cycle to send on boot for 20s");
|
Serial.println("Prepare first measures cycle to send on boot for 20s");
|
||||||
delay(20000);
|
delay(20000);
|
||||||
|
networkSignalCheck();
|
||||||
newMeasurementCycle();
|
newMeasurementCycle();
|
||||||
sendDataToServer();
|
sendDataToServer();
|
||||||
measurementSchedule.update();
|
measurementSchedule.update();
|
||||||
@ -1558,7 +1566,10 @@ void newMeasurementCycle() {
|
|||||||
measurementCycleQueue.erase(measurementCycleQueue.begin());
|
measurementCycleQueue.erase(measurementCycleQueue.begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get current measures
|
||||||
auto mc = measurements.getMeasures();
|
auto mc = measurements.getMeasures();
|
||||||
|
mc.signal = cell->csqToDbm(lastCellSignalQuality); // convert to RSSI
|
||||||
|
|
||||||
measurementCycleQueue.push_back(mc);
|
measurementCycleQueue.push_back(mc);
|
||||||
Serial.println("New measurement cycle added to queue");
|
Serial.println("New measurement cycle added to queue");
|
||||||
// Release mutex
|
// Release mutex
|
||||||
|
Reference in New Issue
Block a user