Compare commits
	
		
			2 Commits
		
	
	
		
			a2aa302121
			...
			5ae054f314
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 5ae054f314 | |||
| 3e571a515d | 
| @@ -90,7 +90,7 @@ const configData_t ConfigData_defaults = { | ||||
|     0 // checksum | ||||
| }; | ||||
|  | ||||
| void InitEEPROM(); | ||||
| boolean InitEEPROM(); | ||||
| void EEPROM_Process(); | ||||
| void StoreConfig_EEPROM(); | ||||
| void GetConfig_EEPROM(); | ||||
|   | ||||
| @@ -35,12 +35,13 @@ boolean checkEEPROMavailable(); | ||||
|  * | ||||
|  * This function initializes the EEPROM using the I2C_eeprom instance and checks if it's available. | ||||
|  */ | ||||
| void InitEEPROM() | ||||
| boolean InitEEPROM() | ||||
| { | ||||
|   Wire.begin(); | ||||
|   ConfigData = ConfigData_defaults; | ||||
|   PersistenceData = {0}; | ||||
|   ee.begin(); | ||||
|   checkEEPROMavailable(); | ||||
|   return checkEEPROMavailable(); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -79,7 +79,7 @@ void LoRa_Process() | ||||
|     if (e220ttl.available() > 1) | ||||
|     { | ||||
|         ResponseContainer rc = e220ttl.receiveMessageRSSI(); | ||||
|         // Is something goes wrong print error | ||||
|         // If something goes wrong, print error | ||||
|         if (rc.status.code != 1) | ||||
|         { | ||||
|             Serial.println(rc.status.getResponseDescription()); | ||||
| @@ -96,34 +96,45 @@ void LoRa_Process() | ||||
| #elif defined(FEATURE_ENABLE_UARTLORA) | ||||
|  | ||||
|     static char packageInput[32]; | ||||
|     static bool packageRecieved = false; | ||||
|     static bool packageReceived = false; | ||||
|     static unsigned int bufferPtr = 0; | ||||
|     int recievedSize = 0; | ||||
|     int receivedSize = 0; | ||||
|  | ||||
|     while (SerialLoRa.available() && packageRecieved == false) | ||||
|     while (SerialLoRa.available() && !packageReceived) | ||||
|     { | ||||
|         if (bufferPtr < sizeof(packageInput) - 1) | ||||
|         { | ||||
|             packageInput[bufferPtr] = SerialLoRa.read(); | ||||
|             packageInput[bufferPtr + 1] = 0; // always terminate String | ||||
|             char c = SerialLoRa.read(); | ||||
|             packageInput[bufferPtr] = c; | ||||
|             packageInput[bufferPtr + 1] = '\0'; // always terminate string | ||||
|  | ||||
|             if (packageInput[bufferPtr] == '\n') | ||||
|             if (c == '\n') | ||||
|             { | ||||
|                 packageRecieved = true; | ||||
|                 recievedSize = bufferPtr; | ||||
|                 packageReceived = true; | ||||
|                 receivedSize = bufferPtr; | ||||
|                 bufferPtr = 0; | ||||
|                 Debug_pushMessage("Got LoRa UART: %s\n", packageInput); | ||||
|             } | ||||
|             else if ((packageInput[bufferPtr] >= 0x30) || (packageInput[bufferPtr] <= 0x5A)) // only accept Numbers, UpperCase-Letters and some special chars | ||||
|             else if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c == ' ' || c == ',' || c == '.')) // Accept numbers, uppercase letters, and some special chars | ||||
|             { | ||||
|                 bufferPtr++; | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 Debug_pushMessage("Invalid character received: %c\n", c); | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             Debug_pushMessage("Buffer overflow. Resetting buffer.\n"); | ||||
|             bufferPtr = 0; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if (packageRecieved) { | ||||
|         Parse_LoRa_UartCommand(packageInput, recievedSize); | ||||
|         packageRecieved = false; | ||||
|     if (packageReceived) | ||||
|     { | ||||
|         Parse_LoRa_UartCommand(packageInput, receivedSize); | ||||
|         packageReceived = false; | ||||
|     } | ||||
|  | ||||
| #endif | ||||
| @@ -251,14 +262,14 @@ void Parse_LoRa_UartCommand(char input[], int size) | ||||
|     while (ptr != NULL) | ||||
|     { | ||||
|         strncpy(command, ptr, sizeof(command) - 1); // Platz für Nullterminator lassen | ||||
|         command[sizeof(command) - 1] = '\0'; // Nullterminator setzen | ||||
|         command[sizeof(command) - 1] = '\0';        // Nullterminator setzen | ||||
|  | ||||
|         ptr = strtok(NULL, delimiter); | ||||
|  | ||||
|         if (ptr != NULL) | ||||
|         { | ||||
|             strncpy(value, ptr, sizeof(value) - 1); // Platz für Nullterminator lassen | ||||
|             value[sizeof(value) - 1] = '\0'; // Nullterminator setzen | ||||
|             value[sizeof(value) - 1] = '\0';        // Nullterminator setzen | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|   | ||||
| @@ -110,13 +110,19 @@ void setup() | ||||
|  | ||||
| 	Serial.print("\n\n-------------------START-------------------\n"); | ||||
| 	Serial.print(globals.DeviceNameId); | ||||
| 	Serial.print("\nby Hiabuto Defense\n"); | ||||
| 	Serial.print("\nby Hiabuto Defense\n\n"); | ||||
|  | ||||
| 	// Initialize EEPROM, load configuration, and persistence data from EEPROM | ||||
| 	InitEEPROM(); | ||||
| 	GetConfig_EEPROM(); | ||||
| 	GetPersistence_EEPROM(); | ||||
| 	Serial.print("\nEE-Init done"); | ||||
| 	if (InitEEPROM()) | ||||
| 	{ | ||||
| 		GetConfig_EEPROM(); | ||||
| 		GetPersistence_EEPROM(); | ||||
| 		Serial.printf("Initialized EEPROM at Address 0x%02X\n", I2C_EE_ADDRESS); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		Serial.print("EEPROM not Initialized\n"); | ||||
| 	} | ||||
|  | ||||
| 	if (i2c_io.begin()) | ||||
| 	{ | ||||
| @@ -209,7 +215,6 @@ void setup() | ||||
|  | ||||
| 	// Start cyclic EEPROM updates for Persistence Data Structure (PDS) | ||||
| 	tmrEEPROMCyclicPDS.start(); | ||||
| 	Serial.print("\nSetup Done\n"); | ||||
|  | ||||
| 	disp_FAC_1.init(); | ||||
| 	disp_FAC_1.setBrightness(5); | ||||
| @@ -218,7 +223,6 @@ void setup() | ||||
| 	disp_FAC_3.init(); | ||||
| 	disp_FAC_3.setBrightness(5); | ||||
|  | ||||
| 	tmrEEPROMCyclicPDS.start(); | ||||
| 	tmrFactionTicker.start(); | ||||
| 	tmrInputGetter.start(); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user