Bugfix in LoRa-Uart
This commit is contained in:
parent
498d813624
commit
0967b6aa65
@ -68,6 +68,7 @@ bool InitLoRa(void (*MPinHelper)(int, int))
|
|||||||
}
|
}
|
||||||
#elif defined(FEATURE_ENABLE_UARTLORA)
|
#elif defined(FEATURE_ENABLE_UARTLORA)
|
||||||
SerialLoRa.begin(9600);
|
SerialLoRa.begin(9600);
|
||||||
|
returnval = true;
|
||||||
#endif
|
#endif
|
||||||
return returnval;
|
return returnval;
|
||||||
}
|
}
|
||||||
@ -94,35 +95,26 @@ void LoRa_Process()
|
|||||||
}
|
}
|
||||||
#elif defined(FEATURE_ENABLE_UARTLORA)
|
#elif defined(FEATURE_ENABLE_UARTLORA)
|
||||||
|
|
||||||
char packageInput[16];
|
static char packageInput[32];
|
||||||
bool packageRecieved = false;
|
static bool packageRecieved = false;
|
||||||
unsigned int bufferPtr = 0;
|
static unsigned int bufferPtr = 0;
|
||||||
|
|
||||||
if (SerialLoRa.available() && packageRecieved == false)
|
while (SerialLoRa.available() && packageRecieved == false)
|
||||||
{
|
|
||||||
while (bufferPtr < sizeof(packageInput))
|
|
||||||
{
|
|
||||||
packageInput[bufferPtr] = SerialLoRa.read();
|
|
||||||
if (packageInput[bufferPtr] == '\n')
|
|
||||||
{
|
|
||||||
packageInput[bufferPtr] = 0; // terminate String
|
|
||||||
packageRecieved = true;
|
|
||||||
Debug_pushMessage("Got LoRa UART: %s\n", packageInput);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if ((packageInput[bufferPtr] >= 0x30) || (packageInput[bufferPtr] <= 0x5A)) // only accept Numbers, UpperCase-Letters and some special chars
|
|
||||||
{
|
{
|
||||||
if (bufferPtr < sizeof(packageInput) - 1)
|
if (bufferPtr < sizeof(packageInput) - 1)
|
||||||
{
|
{
|
||||||
bufferPtr++;
|
packageInput[bufferPtr] = SerialLoRa.read();
|
||||||
}
|
packageInput[bufferPtr + 1] = 0; // always terminate String
|
||||||
else
|
|
||||||
|
if (packageInput[bufferPtr] == '\n')
|
||||||
{
|
{
|
||||||
packageInput[bufferPtr] = 0; // terminate String, bc Buffer is full (package to long)
|
packageRecieved = true;
|
||||||
packageRecieved = true; // send it anyway to the parser
|
bufferPtr = 0;
|
||||||
Debug_pushMessage("Got LoRa UART: %s\n", packageInput);
|
Debug_pushMessage("Got LoRa UART: %s\n", packageInput);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
else if ((packageInput[bufferPtr] >= 0x30) || (packageInput[bufferPtr] <= 0x5A)) // only accept Numbers, UpperCase-Letters and some special chars
|
||||||
|
{
|
||||||
|
bufferPtr++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user