Reformat modbus_tcp.c and fix some typos

This commit is contained in:
L-diy
2023-11-27 00:00:22 +01:00
parent 24b46fa2d8
commit 01f4b58b2b

View File

@@ -12,20 +12,19 @@
// Defines
#define MAX_REG 250
#define EXTENSION_LENGHT 4
#define TEXT_LENGHT 200
#define MULTIPLE_REG 0x10
#define REG_LENGTH 428
#define START_DATA 28
#define MODBUS_MODE 7
#define REG_01 14
#define REG_02 16
#define REG_03 18
#define REG_04 20
#define REG_05 22
#define REG_06 24
#define REG_07 26
#define EXTENSION_LENGTH 4
#define TEXT_LENGTH 200
#define MULTIPLE_REG 0x10
#define REG_LENGTH 428
#define START_DATA 28
#define MODBUS_MODE 7
#define REG_01 14
#define REG_02 16
#define REG_03 18
#define REG_04 20
#define REG_05 22
#define REG_06 24
#define REG_07 26
// Global variables
char registers[MAX_REG];
@@ -43,7 +42,7 @@ static err_t modbus_accept(void* arg, struct tcp_pcb* pcb, err_t err);
static err_t modbus_incoming_data(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err) {
uint8_t counter;
char* pc;
char text[TEXT_LENGHT];
char text[TEXT_LENGTH];
uint8_t background_red = 0;
uint8_t background_green = 0;
uint8_t background_blue = 0;
@@ -54,30 +53,28 @@ static err_t modbus_incoming_data(void* arg, struct tcp_pcb* pcb, struct pbuf* p
uint32_t result_background = 0;
uint32_t text_foreground_color = 0;
memset(text,'_',TEXT_LENGHT); // Putting underscores in the whole array
text[TEXT_LENGHT-1] = '\0';
memset(text, '_', TEXT_LENGTH); // Putting underscores in the whole array
text[TEXT_LENGTH - 1] = '\0';
if (p != NULL) {
// LOG_INFO(TAG, "data not null\n");
// Procces the modbusdata
// Process the modbus data
tcp_recved(pcb, p->tot_len);
pc = (char*)p->payload;
for(uint16_t i = 0; i < MAX_REG; i++) { // putting the bufer in the register array
registers[i] = pc[i]; // getting the error "void value not ignored as it ought to be" on this line
for (uint16_t i = 0; i < MAX_REG; i++) { // Putting the buffer in the register array
registers[i] = pc[i]; // Getting the error "void value not ignored as it ought to be" on this line
}
if(registers[MODBUS_MODE] == MULTIPLE_REG){ // Check if it's a Modbus Write Multiple Registers request (0x10)
//LOG_INFO(TAG, "in writing multiple register mode\n");
background_red = (uint8_t)(registers[REG_01]); // 01
background_green = (uint8_t)(registers[REG_02]); // 02
background_blue = (uint8_t)(registers[REG_03]); // 03
text_color_red = (uint8_t)(registers[REG_04]); // 04
text_color_green = (uint8_t)(registers[REG_05]); // 05
text_color_blue = (uint8_t)(registers[REG_06]); // 06
nr_img = (uint8_t)(registers[REG_07]); // 07
if (registers[MODBUS_MODE] == MULTIPLE_REG) { // Check if it's a Modbus Write Multiple Registers request (0x10)
// LOG_INFO(TAG, "in writing multiple register mode\n");
background_red = (uint8_t)(registers[REG_01]); // 01
background_green = (uint8_t)(registers[REG_02]); // 02
background_blue = (uint8_t)(registers[REG_03]); // 03
text_color_red = (uint8_t)(registers[REG_04]); // 04
text_color_green = (uint8_t)(registers[REG_05]); // 05
text_color_blue = (uint8_t)(registers[REG_06]); // 06
nr_img = (uint8_t)(registers[REG_07]); // 07
// LOG_INFO(TAG, "%d %d %d %d %d %d %d
// ",background_red,background_green,background_blue,text_color_red,text_color_green,text_color_blue,nr_img);
@@ -99,9 +96,8 @@ static err_t modbus_incoming_data(void* arg, struct tcp_pcb* pcb, struct pbuf* p
text_foreground_color |= ((uint32_t)text_color_red) << 16;
text_foreground_color |= ((uint32_t)text_color_green) << 8;
text_foreground_color |= text_color_blue;
// proccesing the image index
size_t number_of_files = llfs_file_count(); // How many files that there are
// Processing the image index
size_t number_of_files = llfs_file_count(); // How many files that there are
llfs_file_t file_list[number_of_files]; // Reserving memory for the list
@@ -112,7 +108,7 @@ static err_t modbus_incoming_data(void* arg, struct tcp_pcb* pcb, struct pbuf* p
lcd_clear_images();
lcd_stop_all_gifs();
lcd_display_text(text, 10, 10, text_foreground_color, result_background, LCD_FONT24); //When no image
lcd_display_text(text, 10, 10, text_foreground_color, result_background, LCD_FONT24); // When no image
lcd_display_text("FILE NOT IN FILESYSTEM", 10, 75, LCD_RED, LCD_BLACK, LCD_FONT24);
} else {
@@ -126,14 +122,13 @@ static err_t modbus_incoming_data(void* arg, struct tcp_pcb* pcb, struct pbuf* p
lcd_stop_all_gifs();
lcd_display_text(text, 10, 10, text_foreground_color, result_background, LCD_FONT24);
lcd_gif_t* gif = lcd_draw_gif_from_fs(file_list[nr_img - 1].name, 0, 75); //GIF on screen
} else if (strcmp(ext,".bmp") == 0) {
lcd_gif_t* gif = lcd_draw_gif_from_fs(file_list[nr_img - 1].name, 0, 75); // GIF on screen
} else if (strcmp(ext, ".bmp") == 0) {
lcd_clear_text();
lcd_clear_images();
lcd_stop_all_gifs();
lcd_display_text(text, 10, 10, text_foreground_color, result_background, LCD_FONT24);
lcd_draw_img_from_fs(file_list[nr_img - 1].name, 0, 75); //BMP on screen
lcd_draw_img_from_fs(file_list[nr_img - 1].name, 0, 75); // BMP on screen
}
}
} else {
@@ -150,10 +145,10 @@ static err_t modbus_incoming_data(void* arg, struct tcp_pcb* pcb, struct pbuf* p
* @brief Sets the function that's being called when theirs incoming data
*/
static err_t modbus_accept(void* arg, struct tcp_pcb* pcb, err_t err) {
LWIP_UNUSED_ARG(arg); // Eliminates compiler warning about unused arguments
LWIP_UNUSED_ARG(err); // Eliminates compiler warning about unused arguments
tcp_setprio(pcb, TCP_PRIO_MIN); // Sets the priority of a connection.
tcp_recv(pcb, modbus_incoming_data); // sets which function is being called when new data arrives
LWIP_UNUSED_ARG(arg); // Eliminates compiler warning about unused arguments
LWIP_UNUSED_ARG(err); // Eliminates compiler warning about unused arguments
tcp_setprio(pcb, TCP_PRIO_MIN); // Sets the priority of a connection.
tcp_recv(pcb, modbus_incoming_data); // Sets which function is being called when new data arrives
return ERR_OK;
}