This commit is contained in:
2026-04-23 17:20:51 +08:00
parent 4c4cfa76b4
commit c185b3d8b9
77 changed files with 13811 additions and 24616 deletions

View File

@@ -16,9 +16,9 @@
#include "app_leakage.h"
#include "app_com.h"
#include "app.h"
/*<2A><><EFBFBD>ڷ<EFBFBD><DAB7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>*/
#define HMI_TX_BUFFER_NUM (2048)
#define HMI_TX_BUFFER_NUM (4096)
/*<2A>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define GUI_TJC_HMI_TEXT_BUFFER_NUM (256)
@@ -57,9 +57,13 @@
#define W25Q32_PASSWORD_ADDR (W25Q32_USER_DATA_ADDR)/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2>ַ*/
static void gui_tjc_hmi_init(void);
static void gui_tjc_hmi_communication_data_analysis(u8 *p_data, u16 len, void *rx_uart);
static void gui_tjc_hmi_all_page_index_clear(void);
/*<2A><><EFBFBD>ڷ<EFBFBD><DAB7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>*/
static u8 hmi_tx_buffer[HMI_TX_BUFFER_NUM];
/*<2A>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
@@ -87,7 +91,8 @@ static bsp_uart_t * p_rx_uart = NULL;
gui_tjc_hmi_t tjc_hmi =
{
.init = gui_tjc_hmi_init,
.all_page_index_clear = gui_tjc_hmi_all_page_index_clear,
.init = gui_tjc_hmi_init,
};
gui_tjc_hmi_t *p_tjc_hmi = &tjc_hmi;
@@ -95,6 +100,7 @@ gui_tjc_hmi_t *p_tjc_hmi = &tjc_hmi;
static void gui_tjc_hmi_class_update(void)
{
gui_tjc_hmi_all_page_index_clear();
leakage.class_update();
app_com.class_update();
}
@@ -203,6 +209,11 @@ static void parse_ip_string(u8 *str, u8 len, u8 *ip)
}
static void gui_tjc_hmi_all_page_index_clear(void)
{
memset(&p_tjc_hmi->page,0,sizeof(gui_tjc_hmi_page_t));
}
/*<2A><><EFBFBD>ö<EFBFBD>Ӧ<EFBFBD>Ŀؼ<C4BF>
x<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>
y<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>
@@ -260,6 +271,12 @@ static void gui_tjc_hmi_main_send(u8 cmd,u8 opa,u8 *p_data)
page_num++;
}
len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0, 3,
(char *)&hmi_tx_buffer[len],
"%d/%d",
p_tjc_hmi->page.main_index+1,page_num);
char time[20];
sprintf(time,"20%d-%02d-%02d %02d:%02d:%02d",
DS1302.Time.Year,
@@ -272,11 +289,12 @@ static void gui_tjc_hmi_main_send(u8 cmd,u8 opa,u8 *p_data)
/*IP<49><50>ַ*/
len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0,1,(char *)&hmi_tx_buffer[len],
"%d.%d.%d.%d",
"%d.%d.%d.%d:%d",
W5500.IP_Addr[0],
W5500.IP_Addr[1],
W5500.IP_Addr[2],
W5500.IP_Addr[3]);
W5500.IP_Addr[3],
(W5500.W5500_Class[0].ConfigData.Port[0] << 8) | (W5500.W5500_Class[0].ConfigData.Port[1]) );
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬*/
u8 buzzer_state = (buzzer.p_flash_data->sw == USR_ENABLE) ? 11 : 13;
@@ -287,7 +305,10 @@ static void gui_tjc_hmi_main_send(u8 cmd,u8 opa,u8 *p_data)
hmi_tx_buffer[len + i] = 0xFF;
}
len += 3;
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>*/
len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0,2,(char *)&hmi_tx_buffer[len],
"%s",SwVersion);
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
{
switch(opa)
@@ -399,7 +420,7 @@ static void gui_tjc_hmi_main_send(u8 cmd,u8 opa,u8 *p_data)
}break;
case 0x03:/*<2A><>ҳ*/
{
if(0x01 == p_data[5])
if(0x01 == p_data[0])
{
if(page_num - 1 <= p_tjc_hmi->page.main_index)
{
@@ -466,6 +487,7 @@ static void gui_tjc_hmi_curr_alarm_send(u8 cmd,u8 opa,u8 *p_data)
/*<2A><><EFBFBD><EFBFBD><E3B1A8><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
alarm_device_count = 0;
j = 0;
for(i = 0;i<APP_LEAKAGE_SUB_DEVICE_NUM;i++)
{
if(ENABLE != leakage.sub_device_data[i].flash_data.state)
@@ -490,10 +512,7 @@ static void gui_tjc_hmi_curr_alarm_send(u8 cmd,u8 opa,u8 *p_data)
}
}
if(alarm_device_count == 0)
{
return;
}
/*<2A><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
page_num = alarm_device_count / REAL_ALARM_PAGE_NUM;
@@ -502,7 +521,13 @@ static void gui_tjc_hmi_curr_alarm_send(u8 cmd,u8 opa,u8 *p_data)
{
page_num++;
}
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,0, 0,
(char *)&hmi_tx_buffer[len],
"%d/%d",
p_tjc_hmi->page.real_alarm_index+1,page_num);
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
{
@@ -510,167 +535,213 @@ static void gui_tjc_hmi_curr_alarm_send(u8 cmd,u8 opa,u8 *p_data)
{
case 0x01:/*<2A><>ȡʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*/
{
if(p_tjc_hmi->page.real_alarm_index == page_num - 1 && remain_alrm_device_num > 0)
{
for(j=0;j<remain_alrm_device_num;j++)
{
index = p_tjc_hmi->page.real_alarm_index * REAL_ALARM_PAGE_NUM + j;
device_index = alarm_device_index[index];
x = j;
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
y = 0;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.region_name);
/*<2A>豸ID*/
y = 1;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.sub_device_data[device_index].flash_data.modbus_id);
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
y = 2;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.device_name);
/*ͨѶ״̬*/
y =3;
u16 comm_state = 0;
for(ch=0;ch<APP_LEAKAGE_SUB_DEVICE_CH_NUM;ch++)
{
if(leakage.sub_device_data[device_index].ch_data[ch].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
comm_state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
break;
}
}
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD>");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
/*ͨ<><CDA8>״̬*/
for(ch=0;ch<APP_LEAKAGE_SUB_DEVICE_CH_NUM;ch++)
{
u16 ch_state = leakage.sub_device_data[device_index].ch_data[ch].state;
u16 ch_distance = leakage.sub_device_data[device_index].ch_data[ch].distance;
y = 4 + (ch * 3);
if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"©Һ");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
y =5 + (ch * 3);
if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD>ϴ<EFBFBD>");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
y = 6 + (ch * 3);
if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",ch_distance);
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"0");
}
}
}
}
else
{
for(j=0;j<REAL_ALARM_PAGE_NUM;j++)
{
index = p_tjc_hmi->page.real_alarm_index * REAL_ALARM_PAGE_NUM + j;
device_index = alarm_device_index[index];
x = j;
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
y = 0;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.region_name);
/*<2A>豸ID*/
y = 1;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.sub_device_data[device_index].flash_data.modbus_id);
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
y = 2;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.device_name);
/*ͨѶ״̬*/
y =3;
u16 comm_state = 0;
for(ch=0;ch<APP_LEAKAGE_SUB_DEVICE_CH_NUM;ch++)
{
if(leakage.sub_device_data[device_index].ch_data[ch].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
comm_state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
break;
}
}
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD>");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
/*ͨ<><CDA8>״̬*/
for(ch=0;ch<APP_LEAKAGE_SUB_DEVICE_CH_NUM;ch++)
{
u16 ch_state = leakage.sub_device_data[device_index].ch_data[ch].state;
u16 ch_distance = leakage.sub_device_data[device_index].ch_data[ch].distance;
y = 4 + (ch * 3);
if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"©Һ");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
y =5 + (ch * 3);
if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD>ϴ<EFBFBD>");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
y = 6 + (ch * 3);
if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",ch_distance);
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"0");
}
}
}
}
for (; j < REAL_ALARM_PAGE_NUM; j++)
if(alarm_device_count == 0)
{
x = j;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 1, (char *)&hmi_tx_buffer[len], ""); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // <20>豸ID
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬
for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
for (i= 0; i < REAL_ALARM_PAGE_NUM; i++)
{
x = i;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 1, (char *)&hmi_tx_buffer[len], ""); // <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // <EFBFBD>豸ID
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬
for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
}
}
}
else
{
if(p_tjc_hmi->page.real_alarm_index == page_num - 1 && remain_alrm_device_num > 0)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
for(j=0;j<remain_alrm_device_num;j++)
{
index = p_tjc_hmi->page.real_alarm_index * REAL_ALARM_PAGE_NUM + j;
device_index = alarm_device_index[index];
x = j;
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
y = 0;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.region_name);
/*<2A>豸ID*/
y = 1;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.sub_device_data[device_index].flash_data.modbus_id);
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
y = 2;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.device_name);
/*ͨѶ״̬*/
y =3;
u16 comm_state = 0;
for(ch=0;ch<APP_LEAKAGE_SUB_DEVICE_CH_NUM;ch++)
{
if(leakage.sub_device_data[device_index].ch_data[ch].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
comm_state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
break;
}
}
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"ͨѶ<EFBFBD>");
}
else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"ͨѶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
/*ͨ<><CDA8>״̬*/
for(ch=0;ch<APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM;ch++)
{
u16 ch_state = leakage.sub_device_data[device_index].ch_data[ch].state;
u16 ch_distance = leakage.sub_device_data[device_index].ch_data[ch].distance;
y = 4 + (ch * 3);
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"-");
}
else if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"©Һ");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
y =5 + (ch * 3);
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"-");
}
else if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD>ϴ<EFBFBD>");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
y = 6 + (ch * 3);
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"-");
}
else if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%.2f",ch_distance/LEAKAGE_MULTIPLE);
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"0");
}
}
}
}
else
{
for(j=0;j<REAL_ALARM_PAGE_NUM;j++)
{
index = p_tjc_hmi->page.real_alarm_index * REAL_ALARM_PAGE_NUM + j;
device_index = alarm_device_index[index];
x = j;
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
y = 0;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.region_name);
/*<2A>豸ID*/
y = 1;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.sub_device_data[device_index].flash_data.modbus_id);
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
y = 2;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.device_name);
/*ͨѶ״̬*/
y =3;
u16 comm_state = 0;
for(ch=0;ch<APP_LEAKAGE_SUB_DEVICE_CH_NUM;ch++)
{
if(leakage.sub_device_data[device_index].ch_data[ch].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
comm_state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
break;
}
}
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"ͨѶ<EFBFBD>");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"ͨѶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
/*ͨ<><CDA8>״̬*/
for(ch=0;ch<APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM;ch++)
{
u16 ch_state = leakage.sub_device_data[device_index].ch_data[ch].state;
u16 ch_distance = leakage.sub_device_data[device_index].ch_data[ch].distance;
y = 4 + (ch * 3);
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"-");
}
else if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"©Һ");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
y =5 + (ch * 3);
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"-");
}
else if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD>ϴ<EFBFBD>");
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
y = 6 + (ch * 3);
if(comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"-");
}
else if(ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%.2f",ch_distance/LEAKAGE_MULTIPLE);
}else
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"0");
}
}
}
}
for (; j < REAL_ALARM_PAGE_NUM; j++)
{
x = j;
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 1, (char *)&hmi_tx_buffer[len], ""); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // <20>豸ID
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬
for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
{
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
}
}
}
}break;
@@ -728,20 +799,31 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
{
#define DETAIL_MAIN_NUM (4) /* ÿҳ<C3BF><D2B3>ʾ4<CABE><34><EFBFBD>豸 */
u16 len = 0, i, sub_device_index, ch, x, y, index;
u8 page_num, remain_device_num, display_count;
u16 len=0 , i, sub_device_index, ch, x, y, index;
u8 page_num=0, remain_device_num, display_count;
u8 region_idx; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
app_leakage_region_data_class_t *region_data;
memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
// /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿҳ<C3BF><D2B3>ʾ4<CABE><34><EFBFBD>豸 */
// page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
// remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
// if (remain_device_num > 0)
// {
// page_num++;
// }
region_idx = p_tjc_hmi->page.deliniter_main_index;
if (region_idx >= leakage.region_num) return;
region_data = &leakage.region_data[region_idx];
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿҳ<C3BF><D2B3>ʾ4<CABE><34><EFBFBD>豸 */
page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
if (remain_device_num > 0)
{
page_num++;
}
/*ҳ<><D2B3>*/
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,0, 0,
(char *)&hmi_tx_buffer[len],
"%d/%d",
p_tjc_hmi->page.detail_main_index+1,page_num);
if (HMI_PROTO_CMD_GET == cmd) /* <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> */
{
@@ -787,7 +869,7 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
y = 0;
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
"%d",
"ID:%d",
leakage.sub_device_data[sub_device_index].flash_data.modbus_id);
/* <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>: t(x+1)_2 */
@@ -815,13 +897,13 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
"<EFBFBD><EFBFBD>ʱ");
"ͨѶ<EFBFBD>");
}
else
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
"ͨѶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
}else
{
@@ -832,7 +914,7 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
/* ͨ<><CDA8>1-4״̬ */
for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; ch++)
{
u16 ch_state = leakage.sub_device_data[sub_device_index].ch_data[ch].state;
u16 ch_distance = leakage.sub_device_data[sub_device_index].ch_data[ch].distance;
@@ -841,7 +923,14 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
y = 3 + (ch * 3);
if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
{
if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
if (comm_state)
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
"-");
}
else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
@@ -853,7 +942,8 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
(char *)&hmi_tx_buffer[len],
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
}else
}
else
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
@@ -865,7 +955,13 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
y = 4 + (ch * 3);
if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
{
if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
if (comm_state)
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
"-");
}
else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
@@ -889,12 +985,18 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
y = 5 + (ch * 3);
if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
{
if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
if (comm_state)
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
"%d",
ch_distance);
"-");
}
else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
(char *)&hmi_tx_buffer[len],
"%.2f",
ch_distance/LEAKAGE_MULTIPLE);
}
else
{
@@ -942,16 +1044,13 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
case 0x03: /* <20><>ҳ */
{
region_idx = p_tjc_hmi->page.deliniter_main_index;
if (region_idx >= leakage.region_num) return;
region_data = &leakage.region_data[region_idx];
/*<2A><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ҳ<EFBFBD><D2B3>*/
page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
if (remain_device_num > 0) page_num++;
if (page_num == 0) page_num = 1;
// /*<2A><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ҳ<EFBFBD><D2B3>*/
// page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
// remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
// if (remain_device_num > 0) page_num++;
// if (page_num == 0) page_num = 1;
if(0x01 == p_data[0]) /* <20><>һҳ */
{
@@ -995,6 +1094,7 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
u8 len_id = 0;
u8 device_id = 0;
p_data = p_data + 3; /*<2A><>ID:ƫ<>Ƴ<EFBFBD>ȥ*/
/* <20><><EFBFBD><EFBFBD><EFBFBD>豸ID<49><44><EFBFBD><EFBFBD>p_data[0]<5D><>ʼ<EFBFBD><CABC>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD> */
while (p_data[len_id] != HMI_PROTO_ASCII_RX_DELINITER) {
if (p_data[len_id] < '0' || p_data[len_id] > '9') {
@@ -1129,10 +1229,7 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
/* <20><>ȡ<EFBFBD>ܼ<EFBFBD>¼<EFBFBD><C2BC> */
total_records = leakage.history_metadata.total_records;
if(total_records == 0)
{
return;
}
/* <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
page_num = total_records / HISTORY_ALARM_PER_PAGE;
@@ -1144,6 +1241,12 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
/*ҳ<><D2B3>*/
len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,0, 0,
(char *)&hmi_tx_buffer[len],
"%d/%d",
p_tjc_hmi->page.history_alarm_index+1, page_num == 0 ? 1 : page_num);
if(HMI_PROTO_CMD_GET == cmd) /* <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> */
{
switch(opa)
@@ -1166,6 +1269,11 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
display_count = HISTORY_ALARM_PER_PAGE;
}
if(total_records == 0)/*û<><C3BB><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ϣ*/
{
display_count = 0;
}
/* <20><>ʾ<EFBFBD><CABE>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ */
for(i = 0; i < display_count; i++)
{
@@ -1182,6 +1290,11 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
/* <20><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ */
if(history.read_history(record_index, &history_record))
{
u8 com_time_out_flag = 0;
if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
com_time_out_flag = 1;
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: t(i+1)_1 */
len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1,
(char *)&hmi_tx_buffer[len],
@@ -1194,11 +1307,22 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
"%d",
history_record.device_id);
/*ͨ<><CDA8><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>t(i+1)_3*/
len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1,3,
(char *)&hmi_tx_buffer[len],
"%d",
history_record.channel+1);
if(com_time_out_flag)
{
/*ͨ<><CDA8><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>t(i+1)_3*/
len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1,3,
(char *)&hmi_tx_buffer[len],
"-");
}
else
{
/*ͨ<><CDA8><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>t(i+1)_3*/
len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1,3,
(char *)&hmi_tx_buffer[len],
"%d",
history_record.channel+1);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: t(i+1)_4 */
alarm_type_str[0] = '\0';
@@ -1207,7 +1331,9 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
else if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
strcat(alarm_type_str, "<EFBFBD>ϴ<EFBFBD>");
else if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
strcat(alarm_type_str, "ͨѶ<EFBFBD><EFBFBD>ʱ");
{
strcat(alarm_type_str, "ͨѶ<EFBFBD>");
}
len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4,
(char *)&hmi_tx_buffer[len],
@@ -1225,14 +1351,14 @@ static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
{
len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6,
(char *)&hmi_tx_buffer[len],
"%d",
history_record.leak_distance);
"%.2f",
history_record.leak_distance/LEAKAGE_MULTIPLE);
}
else
{
len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6,
(char *)&hmi_tx_buffer[len],
"0");
"-");
}
/* <20><>ʼʱ<CABC><CAB1>: t(i+1)_7 */
@@ -1507,6 +1633,31 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
memset(hmi_tx_buffer,0,sizeof(hmi_tx_buffer));
// enabled_device_count = 0;
// for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
// {
// if (leakage.sub_device_data[i].flash_data.state == ENABLE)
// {
// enabled_device_count++;
// }
// }
enabled_device_count = leakage.sub_device_num;
page_num = enabled_device_count / DEVICES_PER_PAGE;
remain_region_num = enabled_device_count % DEVICES_PER_PAGE;
if (remain_region_num > 0)
{
page_num++;
}
if (page_num == 0) page_num = 1;
/*ҳ<><D2B3>*/
len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,0, 0,
(char *)&hmi_tx_buffer[len],
"%d/%d",
p_tjc_hmi->page.device_config_index+1,page_num);
if(HMI_PROTO_CMD_GET == cmd)/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>*/
{
switch(opa)
@@ -1519,23 +1670,23 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
u8 device_index;
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
enabled_device_count = 0;
for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
{
if(leakage.sub_device_data[i].flash_data.state == ENABLE && leakage.sub_device_data[i].flash_data.modbus_id > 0)
{
enabled_device_count++;
}
}
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>*/
page_num = enabled_device_count / DEVICES_PER_PAGE;
remain_region_num = enabled_device_count % DEVICES_PER_PAGE;
if(remain_region_num > 0)
{
page_num++;
}
// enabled_device_count = 0;
// for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
// {
// if(leakage.sub_device_data[i].flash_data.state == ENABLE)
// {
// enabled_device_count++;
// }
// }
//
// /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>*/
// page_num = enabled_device_count / DEVICES_PER_PAGE;
// remain_region_num = enabled_device_count % DEVICES_PER_PAGE;
// if(remain_region_num > 0)
// {
// page_num++;
// }
//
/*ȷ<><C8B7>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>*/
if(p_tjc_hmi->page.device_config_index >= page_num)
{
@@ -1680,22 +1831,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
case 0x03:/*<2A><>ҳ<EFBFBD><D2B3><EFBFBD>ܣ<EFBFBD>ÿҳ<C3BF><D2B3>ʾ8<CABE><38><EFBFBD>豸*/
{
enabled_device_count = 0;
for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
{
if (leakage.sub_device_data[i].flash_data.state == ENABLE)
{
enabled_device_count++;
}
}
page_num = enabled_device_count / DEVICES_PER_PAGE;
remain_region_num = enabled_device_count % DEVICES_PER_PAGE;
if (remain_region_num > 0)
{
page_num++;
}
if (page_num == 0) page_num = 1;
if(0x01 == p_data[0]) /*<2A><>һҳ*/
{
@@ -1730,8 +1866,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
else if(HMI_PROTO_CMD_SET == cmd)/*<2A><><EFBFBD><EFBFBD>*/
{
switch(opa)
{
{
case 0x01:
{
found_empty_slot = 0;
@@ -1863,7 +1998,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
id_str[i] = '\0';
new_device.modbus_id = atoi(id_str);
if(new_device.modbus_id < 1 && new_device.modbus_id > 255)
if(new_device.modbus_id < 1 || new_device.modbus_id > 255)
{
return;
}
@@ -1928,6 +2063,16 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
/*<2A><><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
gui_tjc_hmi_class_update();
page_num = leakage.sub_device_num / DEVICES_PER_PAGE;
remain_region_num = leakage.sub_device_num % DEVICES_PER_PAGE;
if (remain_region_num > 0)
{
page_num++;
}
if (page_num == 0) page_num = 1;
p_tjc_hmi->page.device_config_index = page_num - 1;//xian
// if (new_device.com < APP_COM_NUM && new_device.baudrate < 4) {
// app_com.com[new_device.com].set.baud_rate(
// &app_com.com[new_device.com],
@@ -1944,9 +2089,7 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
}break;
case 0x02:/*ɾ<><C9BE><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2>w25q<35><71>ɾ<EFBFBD><C9BE>*/
{
u8 page_device_indices[8] = {0}; /*<2A><EFBFBD><E6B4A2>ǰҳ8<D2B3><38><EFBFBD><EFBFBD><E8B1B8>app_leakage<67>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>*/
{ u8 page_device_indices[8] = {0}; /*<2A><EFBFBD><E6B4A2>ǰҳ8<D2B3><38><EFBFBD><EFBFBD><E8B1B8>app_leakage<67>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>*/
u8 page_device_count = 0; /*<2A><>ǰҳʵ<D2B3><CAB5><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
u8 current_enabled_index = 0; /*<2A><>ǰ<EFBFBD>ǵڼ<C7B5><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>豸*/

View File

@@ -3,6 +3,8 @@
#include "main.h"
/*ҳ<><D2B3>*/
typedef struct
{
@@ -18,6 +20,8 @@ typedef struct
{
gui_tjc_hmi_page_t page;
u8 password[4];
void (*all_page_index_clear)(void);
void (*init)(void);
}gui_tjc_hmi_t;