Skip to content

Commit 9481a85

Browse files
committed
update
1 parent b60b668 commit 9481a85

2 files changed

Lines changed: 28 additions & 7 deletions

File tree

src/src/rx_uart_in.h

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
#include "CRSF.h"
22
#include "targets.h"
33

4+
//#define DEBUG_RX_UART_IN
5+
6+
#if defined(TARGET_RX_GHOST_ATTO_V1) /* !TARGET_RX_GHOST_ATTO_V1 */
7+
#define CRSF_RX_SERIAL CrsfRxSerial
8+
HardwareSerial CrsfRxSerial(USART1, HALF_DUPLEX_ENABLED);
9+
#elif defined(TARGET_R9SLIMPLUS_RX) /* !TARGET_R9SLIMPLUS_RX */
10+
#define CRSF_RX_SERIAL CrsfRxSerial
11+
HardwareSerial CrsfRxSerial(USART3);
12+
#else
13+
#define CRSF_RX_SERIAL Serial
14+
#endif
15+
416
extern CRSF crsf;
17+
extern GENERIC_CRC8 crsf_crc;
518

619
uint8_t UARTinPacketPtr;
720
uint8_t UARTinPacketLen;
@@ -16,7 +29,9 @@ void RX_UARTinProcessPacket()
1629
if (UARTinBuffer[2] == CRSF_FRAMETYPE_COMMAND)
1730
{
1831
#ifdef PLATFORM_STM32
32+
#ifdef DEBUG_RX_UART_IN
1933
Serial.println("Got CMD Packet");
34+
#endif
2035
if (UARTinBuffer[3] == 0x62 && UARTinBuffer[4] == 0x6c)
2136
{
2237
delay(100);
@@ -27,22 +42,26 @@ void RX_UARTinProcessPacket()
2742
#endif
2843
}
2944

30-
if (UARTinBuffer[2] == CRSF_FRAMETYPE_BATTERY_SENSOR)
45+
switch (UARTinBuffer[2])
3146
{
47+
case CRSF_FRAMETYPE_BATTERY_SENSOR:
3248
crsf.TLMbattSensor.voltage = (UARTinBuffer[3] << 8) + UARTinBuffer[4];
3349
crsf.TLMbattSensor.current = (UARTinBuffer[5] << 8) + UARTinBuffer[6];
3450
crsf.TLMbattSensor.capacity = (UARTinBuffer[7] << 16) + (UARTinBuffer[8] << 8) + UARTinBuffer[9];
3551
crsf.TLMbattSensor.remaining = UARTinBuffer[9];
36-
}
37-
38-
if (UARTinBuffer[2] == CRSF_FRAMETYPE_GPS)
39-
{
52+
break;
53+
54+
case CRSF_FRAMETYPE_GPS:
4055
crsf.TLMGPSsensor.latitude = (UARTinBuffer[3] << 24) + (UARTinBuffer[4] << 16) + (UARTinBuffer[5] << 8) + (UARTinBuffer[6] << 0);
4156
crsf.TLMGPSsensor.longitude = (UARTinBuffer[7] << 24) + (UARTinBuffer[8] << 16) + (UARTinBuffer[9] << 8) + (UARTinBuffer[10] << 0);
4257
crsf.TLMGPSsensor.speed = (UARTinBuffer[11] << 8) + (UARTinBuffer[12] << 0);
4358
crsf.TLMGPSsensor.headng = (UARTinBuffer[13] << 8) + (UARTinBuffer[14] << 0);
4459
crsf.TLMGPSsensor.alt = (UARTinBuffer[15] << 8) + (UARTinBuffer[16] << 0);
4560
crsf.TLMGPSsensor.sats = (UARTinBuffer[17]);
61+
break;
62+
63+
default:
64+
break;
4665
}
4766
}
4867

@@ -96,7 +115,7 @@ void RX_UARTinHandle()
96115

97116
if (UARTinPacketPtr == UARTinPacketLen + 2) // plus 2 because the packlen is referenced from the start of the 'type' flag, IE there are an extra 2 bytes.
98117
{
99-
char CalculatedCRC = CalcCRC((uint8_t *)UARTinBuffer + 2, UARTinPacketPtr - 3);
118+
uint8_t CalculatedCRC = crsf_crc.calc((uint8_t *)UARTinBuffer + 2, UARTinPacketPtr - 3);
100119

101120
if (CalculatedCRC == inChar)
102121
{
@@ -111,7 +130,9 @@ void RX_UARTinHandle()
111130
UARTinPacketPtr = 0;
112131
UARTinPacketLen = 0;
113132
UARTframeActive = false;
133+
#ifdef DEBUG_RX_UART_IN
114134
Serial.println("UART in CRC failure");
135+
#endif
115136
while (Serial.available())
116137
{
117138
Serial.read(); // empty the read buffer

src/user_defines.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
### REGULATORY DOMAIN: ###
1717

18-
#-DRegulatory_Domain_AU_915
18+
-DRegulatory_Domain_AU_915
1919
#-DRegulatory_Domain_EU_868
2020
#-DRegulatory_Domain_AU_433
2121
#-DRegulatory_Domain_EU_433

0 commit comments

Comments
 (0)