RX outout table moved to RxDeviceState object

This commit is contained in:
Pawel Spychalski
2017-11-16 13:31:29 +01:00
parent 025315489c
commit 9d609dfa77
4 changed files with 11 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
#define DEVICE_MODE_TX // #define DEVICE_MODE_TX
// #define DEVICE_MODE_RX #define DEVICE_MODE_RX
#define FEATURE_TX_OLED #define FEATURE_TX_OLED
#define FORCE_TX_WITHOUT_INPUT #define FORCE_TX_WITHOUT_INPUT
@@ -13,8 +13,6 @@
#include "main_variables.h" #include "main_variables.h"
#include "qsp.h" #include "qsp.h"
int ppm[16] = {0};
// LoRa32u4 ports // LoRa32u4 ports
#define LORA32U4_SS_PIN 8 #define LORA32U4_SS_PIN 8
#define LORA32U4_RST_PIN 4 #define LORA32U4_RST_PIN 4
@@ -123,7 +121,7 @@ void setup(void)
//initiallize default ppm values //initiallize default ppm values
for (int i = 0; i < 16; i++) for (int i = 0; i < 16; i++)
{ {
ppm[i] = PPM_CHANNEL_DEFAULT_VALUE; rxDeviceState.channels[i] = PPM_CHANNEL_DEFAULT_VALUE;
} }
pinMode(RX_ADC_PIN_1, INPUT); pinMode(RX_ADC_PIN_1, INPUT);
@@ -217,7 +215,7 @@ void loop(void)
if (radioState.bytesToRead != NO_DATA_TO_READ) { if (radioState.bytesToRead != NO_DATA_TO_READ) {
for (uint8_t i = 0; i < radioState.bytesToRead; i++) { for (uint8_t i = 0; i < radioState.bytesToRead; i++) {
qspDecodeIncomingFrame(&qsp, radioState.data[i], ppm, &rxDeviceState, &txDeviceState); qspDecodeIncomingFrame(&qsp, radioState.data[i], &rxDeviceState, &txDeviceState);
} }
radioState.bytesToRead = NO_DATA_TO_READ; radioState.bytesToRead = NO_DATA_TO_READ;
@@ -283,7 +281,7 @@ void loop(void)
if (lastRxStateTaskTime + RX_TASK_HEALTH < currentMillis) { if (lastRxStateTaskTime + RX_TASK_HEALTH < currentMillis) {
lastRxStateTaskTime = currentMillis; lastRxStateTaskTime = currentMillis;
updateRxDeviceState(&rxDeviceState); updateRxDeviceState(&rxDeviceState);
ppm[RSSI_CHANNEL - 1] = map(rxDeviceState.rssi, 0, 164, 1000, 2000); rxDeviceState.channels[RSSI_CHANNEL - 1] = map(rxDeviceState.rssi, 0, 164, 1000, 2000);
if (qsp.deviceState == DEVICE_STATE_FAILSAFE) { if (qsp.deviceState == DEVICE_STATE_FAILSAFE) {
digitalWrite(LED_BUILTIN, HIGH); digitalWrite(LED_BUILTIN, HIGH);
} else { } else {
@@ -322,7 +320,7 @@ void loop(void)
} }
if (currentMillis > sbusTime) { if (currentMillis > sbusTime) {
sbusPreparePacket(sbusPacket, ppm, false, (qsp.deviceState == DEVICE_STATE_FAILSAFE)); sbusPreparePacket(sbusPacket, rxDeviceState.channels, false, (qsp.deviceState == DEVICE_STATE_FAILSAFE));
Serial1.write(sbusPacket, SBUS_PACKET_LENGTH); Serial1.write(sbusPacket, SBUS_PACKET_LENGTH);
sbusTime = currentMillis + SBUS_UPDATE_RATE; sbusTime = currentMillis + SBUS_UPDATE_RATE;
} }

View File

@@ -2,7 +2,7 @@
#include "variables.h" #include "variables.h"
#include <PPMReader.h> #include <PPMReader.h>
void qspDecodeRcDataFrame(QspConfiguration_t *qsp, int output[]) { void qspDecodeRcDataFrame(QspConfiguration_t *qsp, RxDeviceState_t *rxDeviceSate) {
int temporaryPpmOutput[PPM_OUTPUT_CHANNEL_COUNT] = {0}; int temporaryPpmOutput[PPM_OUTPUT_CHANNEL_COUNT] = {0};
//TODO fix it, baby :) //TODO fix it, baby :)
@@ -37,7 +37,7 @@ void qspDecodeRcDataFrame(QspConfiguration_t *qsp, int output[]) {
* Copy tremporary to real output * Copy tremporary to real output
*/ */
for (uint8_t i = 0; i < PPM_OUTPUT_CHANNEL_COUNT; i++) { for (uint8_t i = 0; i < PPM_OUTPUT_CHANNEL_COUNT; i++) {
output[i] = temporaryPpmOutput[i]; rxDeviceSate->channels[i] = temporaryPpmOutput[i];
} }
} }
@@ -159,7 +159,6 @@ void qspClearPayload(QspConfiguration_t *qsp)
void qspDecodeIncomingFrame( void qspDecodeIncomingFrame(
QspConfiguration_t *qsp, QspConfiguration_t *qsp,
uint8_t incomingByte, uint8_t incomingByte,
int ppm[],
RxDeviceState_t *rxDeviceState, RxDeviceState_t *rxDeviceState,
TxDeviceState_t *txDeviceState TxDeviceState_t *txDeviceState
) { ) {
@@ -228,7 +227,7 @@ void qspDecodeIncomingFrame(
qsp->anyFrameRecivedAt = millis(); qsp->anyFrameRecivedAt = millis();
switch (frameId) { switch (frameId) {
case QSP_FRAME_RC_DATA: case QSP_FRAME_RC_DATA:
qspDecodeRcDataFrame(qsp, ppm); qspDecodeRcDataFrame(qsp, rxDeviceState);
break; break;
case QSP_FRAME_RX_HEALTH: case QSP_FRAME_RX_HEALTH:

3
qsp.h
View File

@@ -1,7 +1,7 @@
#include "Arduino.h" #include "Arduino.h"
#include <PPMReader.h> #include <PPMReader.h>
void qspDecodeRcDataFrame(QspConfiguration_t *qsp, int output[]); void qspDecodeRcDataFrame(QspConfiguration_t *qsp, RxDeviceState_t *rxDeviceSate);
void decodeRxHealthPayload(QspConfiguration_t *qsp, RxDeviceState_t *rxDeviceState); void decodeRxHealthPayload(QspConfiguration_t *qsp, RxDeviceState_t *rxDeviceState);
uint8_t get10bitHighShift(uint8_t channel); uint8_t get10bitHighShift(uint8_t channel);
@@ -12,7 +12,6 @@ void encodeRcDataPayload(QspConfiguration_t *qsp, PPMReader *ppmSource, uint8_t
void qspDecodeIncomingFrame( void qspDecodeIncomingFrame(
QspConfiguration_t *qsp, QspConfiguration_t *qsp,
uint8_t incomingByte, uint8_t incomingByte,
int ppm[],
RxDeviceState_t *rxDeviceState, RxDeviceState_t *rxDeviceState,
TxDeviceState_t *txDeviceState TxDeviceState_t *txDeviceState
); );

View File

@@ -116,4 +116,5 @@ struct RxDeviceState_t {
uint8_t a1Voltage = 0; uint8_t a1Voltage = 0;
uint8_t a2Voltage = 0; uint8_t a2Voltage = 0;
uint8_t flags = 0; uint8_t flags = 0;
int16_t channels[16] = {};
}; };