RX outout table moved to RxDeviceState object
This commit is contained in:
14
crossbow.ino
14
crossbow.ino
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
7
qsp.cpp
7
qsp.cpp
@@ -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
3
qsp.h
@@ -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
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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] = {};
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user