3 Commits

Author SHA1 Message Date
0967b6aa65 Bugfix in LoRa-Uart 2023-05-28 19:36:39 +02:00
498d813624 increase Version after Release 2023-05-25 20:59:18 +02:00
268c204957 added LoraUartCommand Interpreter 2023-05-25 19:59:34 +02:00
4 changed files with 78 additions and 26 deletions

View File

@@ -1 +1 @@
1.03 1.04

View File

@@ -45,6 +45,7 @@ typedef struct Globals_s
bool hasDTC; bool hasDTC;
int loadvoltage_mV = 0; int loadvoltage_mV = 0;
int battery_level = 0; int battery_level = 0;
bool timer_disabled = false;
} Globals_t; } Globals_t;
extern Globals_t globals; extern Globals_t globals;
@@ -58,8 +59,8 @@ typedef struct Constants_s
} Constants_t; } Constants_t;
const Constants_t constants PROGMEM = { const Constants_t constants PROGMEM = {
1,3, // Firmware_Version 1,4, // Firmware_Version
1,3, // Required Flash Version 1,4, // Required Flash Version
GIT_REV // Git-Hash-String GIT_REV // Git-Hash-String
}; };

View File

@@ -67,7 +67,8 @@ bool InitLoRa(void (*MPinHelper)(int, int))
MaintainDTC(DTC_NO_LORA_FOUND, DTC_WARN, true); MaintainDTC(DTC_NO_LORA_FOUND, DTC_WARN, true);
} }
#elif defined(FEATURE_ENABLE_UARTLORA) #elif defined(FEATURE_ENABLE_UARTLORA)
// LORA UART Stuff here 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++;
} }
} }
} }
@@ -151,8 +143,20 @@ void sendStatus_LoRa()
ResponseStatus rs = e220ttl.sendFixedMessage(0xFF, 0xFF, 23, (byte *)&sendStatus, sizeof(sendStatus)); ResponseStatus rs = e220ttl.sendFixedMessage(0xFF, 0xFF, 23, (byte *)&sendStatus, sizeof(sendStatus));
Serial.println(rs.getResponseDescription()); Serial.println(rs.getResponseDescription());
#elif defined(FEATURE_ENABLE_UARTLORA) #elif defined(FEATURE_ENABLE_UARTLORA)
// LORA UART SEND STUFF HERE
SerialLoRa.print(PersistenceData.faction_1_timer);
SerialLoRa.write(";");
SerialLoRa.print(PersistenceData.faction_2_timer);
SerialLoRa.write(";");
SerialLoRa.print(PersistenceData.faction_3_timer);
SerialLoRa.write(";");
SerialLoRa.print(PersistenceData.activeFaction);
SerialLoRa.write(";");
SerialLoRa.print(globals.battery_level);
SerialLoRa.write('\n');
#endif #endif
} }
@@ -245,5 +249,49 @@ void Parse_LoRa_UartCommand(char input[], int size)
} }
Debug_pushMessage("Parsed LoRa UART Command: %s Value: %s\n", command, value); Debug_pushMessage("Parsed LoRa UART Command: %s Value: %s\n", command, value);
if (!strcmp(command, "ENABLE"))
{
globals.timer_disabled = false;
}
else if (!strcmp(command, "DISABLE"))
{
globals.timer_disabled = false;
}
else if (!strcmp(command, "RESET"))
{
PersistenceData.activeFaction = NONE;
PersistenceData.faction_1_timer = 0;
PersistenceData.faction_2_timer = 0;
PersistenceData.faction_3_timer = 0;
}
else if (!strcmp(command, "TMRSTP"))
{
PersistenceData.activeFaction = NONE;
}
else if (!strcmp(command, "TMR1"))
{
PersistenceData.faction_1_timer = atol(value);
}
else if (!strcmp(command, "TMR2"))
{
PersistenceData.faction_2_timer = atol(value);
}
else if (!strcmp(command, "TMR3"))
{
PersistenceData.faction_3_timer = atol(value);
}
else if (!strcmp(command, "EFAC1"))
{
PersistenceData.activeFaction = FACTION_1;
}
else if (!strcmp(command, "EFAC2"))
{
PersistenceData.activeFaction = FACTION_2;
}
else if (!strcmp(command, "EFAC3"))
{
PersistenceData.activeFaction = FACTION_3;
}
} }
#endif #endif

View File

@@ -308,6 +308,9 @@ void SevenSeg_Output()
void tmrCallback_FactionTicker() void tmrCallback_FactionTicker()
{ {
if (globals.timer_disabled == true)
PersistenceData.activeFaction = NONE;
switch (PersistenceData.activeFaction) switch (PersistenceData.activeFaction)
{ {
case FACTION_1: case FACTION_1:
@@ -349,7 +352,7 @@ void tmrCallback_InputGetter()
return; return;
} }
if (btnState[0] == FAC_1_TRG_PRESSED) if (btnState[0] == FAC_1_TRG_PRESSED && globals.timer_disabled == false)
{ {
if (PersistenceData.activeFaction != FACTION_1) if (PersistenceData.activeFaction != FACTION_1)
{ {
@@ -359,7 +362,7 @@ void tmrCallback_InputGetter()
PersistenceData.activeFaction = FACTION_1; PersistenceData.activeFaction = FACTION_1;
} }
if (btnState[1] == FAC_2_TRG_PRESSED) if (btnState[1] == FAC_2_TRG_PRESSED && globals.timer_disabled == false)
{ {
if (PersistenceData.activeFaction != FACTION_2) if (PersistenceData.activeFaction != FACTION_2)
{ {
@@ -369,7 +372,7 @@ void tmrCallback_InputGetter()
PersistenceData.activeFaction = FACTION_2; PersistenceData.activeFaction = FACTION_2;
} }
if (btnState[2] == FAC_3_TRG_PRESSED) if (btnState[2] == FAC_3_TRG_PRESSED && globals.timer_disabled == false)
{ {
if (PersistenceData.activeFaction != FACTION_3) if (PersistenceData.activeFaction != FACTION_3)
{ {