This commit is contained in:
Pawel Spychalski (DzikuVx)
2017-10-24 21:08:04 +02:00
parent b1c3b36b7c
commit a6b5946a68
2 changed files with 15 additions and 5 deletions

View File

@@ -42,6 +42,7 @@ PPMReader ppmReader(PPM_INPUT_PIN, PPM_INPUT_INTERRUPT, true);
#ifdef DEVICE_MODE_RX #ifdef DEVICE_MODE_RX
uint32_t sbusTime = 0; uint32_t sbusTime = 0;
uint8_t sbusPacket[SBUS_PACKET_LENGTH] = {0}; uint8_t sbusPacket[SBUS_PACKET_LENGTH] = {0};
uint32_t lastRxStateTaskTime = 0;
#endif #endif
/* /*
@@ -54,8 +55,8 @@ RxDeviceState_t rxDeviceState = {};
uint8_t getRadioRssi(void) uint8_t getRadioRssi(void)
{ {
//Map from -164:0 to 0:100 //Map from -164:0 to 0:255
return map(constrain(LoRa.packetRssi() * -1, 0, 164), 0, 164, 100, 0); return map(constrain(LoRa.packetRssi() * -1, 0, 164), 0, 164, 255, 0);
} }
float getRadioSnr(void) float getRadioSnr(void)
@@ -278,6 +279,15 @@ void loop(void)
} }
/* /*
* This routine updates RX device state and updates one of radio channels with RSSI value
*/
if (currentMillis - lastRxStateTaskTime > RX_TASK_HEALTH) {
lastRxStateTaskTime = currentMillis;
updateRxDeviceState(&rxDeviceState);
ppm[RSSI_CHANNEL - 1] = map(rxDeviceState.rssi, 0, 255, 1000, 2000);
}
/*
* RX_HEALTH QSP frame * RX_HEALTH QSP frame
*/ */
if ( if (
@@ -287,9 +297,6 @@ void loop(void)
) )
{ {
qsp.lastFrameTransmitedAt[QSP_FRAME_RX_HEALTH] = currentMillis; qsp.lastFrameTransmitedAt[QSP_FRAME_RX_HEALTH] = currentMillis;
updateRxDeviceState(&rxDeviceState);
qspClearPayload(&qsp); qspClearPayload(&qsp);
encodeRxHealthPayload(&qsp, &rxDeviceState); encodeRxHealthPayload(&qsp, &rxDeviceState);
qsp.frameToSend = QSP_FRAME_RX_HEALTH; qsp.frameToSend = QSP_FRAME_RX_HEALTH;

View File

@@ -6,6 +6,9 @@
#define RC_CHANNEL_MIN 990 #define RC_CHANNEL_MIN 990
#define RC_CHANNEL_MAX 2010 #define RC_CHANNEL_MAX 2010
#define RX_TASK_HEALTH 200 //5Hz should be enough
#define RSSI_CHANNEL 11
#define RX_RX_HEALTH_FRAME_RATE 1000 #define RX_RX_HEALTH_FRAME_RATE 1000
#define TX_RC_FRAME_RATE 500 //ms #define TX_RC_FRAME_RATE 500 //ms
#define RX_FAILSAFE_DELAY (TX_RC_FRAME_RATE * 8) #define RX_FAILSAFE_DELAY (TX_RC_FRAME_RATE * 8)