All checks were successful
Build Firmware / build (push) Successful in 2m30s
106 lines
3.0 KiB
C
106 lines
3.0 KiB
C
//
|
|
// Created by bruno on 3/30/25.
|
|
//
|
|
|
|
#include "messages.h"
|
|
|
|
|
|
// Convert a 32-bit number to a string (10 digits, zero-padded)
|
|
void u32_to_str(uint32_t num, char *str) {
|
|
for (int i = 9; i >= 0; i--) {
|
|
str[i] = '0' + (num % 10);
|
|
num /= 10;
|
|
}
|
|
str[10] = '\0';
|
|
}
|
|
|
|
// Convert an 8-bit number to a 2-digit string (zero-padded)
|
|
void u8_to_str(uint8_t num, char *str) {
|
|
str[0] = '0' + (num / 100); // Hundreds place
|
|
str[1] = '0' + ((num / 10) % 10); // Tens place
|
|
str[2] = '0' + (num % 10); // Ones place
|
|
str[3] = '\0';
|
|
}
|
|
|
|
|
|
void UI_DisplayMessages(void) {
|
|
char String[19];
|
|
UI_DisplayClear();
|
|
if (gEnteringSMS != SMS_NOT_ENTERING) {
|
|
UI_PrintString("SMS write", 0, 0, 0 /*, 8 */);
|
|
if (gEnteringSMS == SMS_ENTERING_DEST) {
|
|
UI_PrintString("SMS dest", 0, 0, 2 /*, 8 */);
|
|
u32_to_str(dataPacket.dest, String);
|
|
UI_PrintStringSmallNormal(String, 0, 0, 3);
|
|
} else if (gEnteringSMS == SMS_ENTERING_MESSAGE) {
|
|
UI_PrintString("SMS data", 0, 0, 2 /*, 8 */);
|
|
UI_PrintStringSmallNormal((const char *) dataPacket.data, 1, 0, 3);
|
|
}
|
|
} else {
|
|
|
|
|
|
String[0] = 'M';
|
|
String[1] = 'E';
|
|
String[2] = 'S';
|
|
String[3] = 'S';
|
|
String[4] = 'A';
|
|
String[5] = 'G';
|
|
String[6] = 'E';
|
|
String[7] = 'S';
|
|
|
|
for (size_t i = 8; i < 12; i++) {
|
|
String[i] = ' ';
|
|
}
|
|
|
|
uint8_t Data[8];
|
|
EEPROM_ReadBuffer(SEQParameterEEPROM, Data, 8);
|
|
|
|
String[13] = Data[1] == gActiveMessage ? 'L' : ' ';
|
|
String[14] = '0' + gActiveMessage;
|
|
String[15] = '/';
|
|
String[16] = '0' + MESSAGES_COUNT;
|
|
String[17] = 0;
|
|
|
|
UI_PrintString(String, 2, 0, 0 /*, 8 */);
|
|
|
|
String[0] = 'F';
|
|
String[1] = 'r';
|
|
String[2] = 'o';
|
|
String[3] = 'm';
|
|
String[4] = ':';
|
|
String[5] = ' ';
|
|
u32_to_str(loadedPacket.src, &String[6]); // Write at offset 6
|
|
UI_PrintString(String, 2, 0, 1 /*, 8 */);
|
|
|
|
String[0] = 'S';
|
|
String[1] = 'E';
|
|
String[2] = 'Q';
|
|
String[3] = ':';
|
|
String[4] = ' ';
|
|
u8_to_str(loadedPacket.seq, &String[5]); // Write at offset 5
|
|
String[8] = ' ';
|
|
String[9] = 'T';
|
|
String[10] = 'T';
|
|
String[11] = 'L';
|
|
String[12] = ':';
|
|
String[13] = ' ';
|
|
String[14] = 0;
|
|
u8_to_str(loadedPacket.ttl, &String[14]); // Write at new offset
|
|
UI_PrintString(String, 2, 0, 2 /*, 8 */);
|
|
|
|
String[0] = 'F';
|
|
String[1] = 'l';
|
|
String[2] = 'a';
|
|
String[3] = 'g';
|
|
String[4] = 's';
|
|
String[5] = ':';
|
|
String[6] = ' ';
|
|
String[7] = 0;
|
|
u8_to_str(loadedPacket.flags, &String[7]); // Write at offset 7
|
|
UI_PrintString(String, 2, 0, 3 /*, 8 */);
|
|
|
|
UI_PrintString("Data:", 0, 0, 4 /*, 8 */);
|
|
UI_PrintString((const char *) loadedPacket.data, 2, 0, 5 /*, 8 */);
|
|
}
|
|
ST7565_BlitFullScreen();
|
|
} |