feat:新增无卡取电驱动 - 初始化状态时同步对于的服务信息回路状态

1、修改无卡取电驱动
     -> 无卡取电回路在初始化门磁状态时,将初始化状态与对应的服务信息回路状态进行同步时,以门磁触发为门磁服务关,以门磁释放为门磁服务开
     -> 无卡回路初始化,需要在弱电输入初始化完成后
2、修改温控器驱动
     -> T1温控器设备和C7T温控器的服务器上报数据,在室温变化时也能更新
     -> 温控器控制方法修改 开关机提示音和风速模式提示音整合到一个控制方法中,使用一个提示音标志位控制,配置工具也只勾选风速模式提示音就可以使能提示音播放
     -> 服务器控制温控器时,不会触发提示音。而用户操作温控器,是否触发提示音由配置决定。
     -> T1温控器设备 新增小数点数据存储在定期上报里组包
3、网络通信驱动
     -> 定期上报协议版本更新到V04
      修改点:温控器数据组装中 新增内容 室内温度的小数位
4、修改能耗驱动
     -> 增加 - 通信数据接收处理函数中对数据进行和校验取反
This commit is contained in:
caocong
2026-03-04 14:37:11 +08:00
parent 514cd84f1e
commit 8a10946701
31 changed files with 29578 additions and 29450 deletions

View File

@@ -440,15 +440,17 @@ uint32_t Find_TempDevice_List_Information(uint8_t *buff,uint8_t dev_num_max)
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s Type:%d Addr:%d",__func__,BUS_Public.type,BUS_Public.addr);
buff[data_offset++] = BUS_Public.type; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD> - <20>ܺļ<EFBFBD><EFBFBD><EFBFBD>
buff[data_offset++] = BUS_Public.addr; //<2F><EFBFBD><E8B1B8>ַ - <EFBFBD>ܺļ<EFBFBD><EFBFBD><EFBFBD> <20>豸Ĭ<E8B1B8><C4AC>0x01
buff[data_offset++] = BUS_Public.type; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD> - <20>յ<EFBFBD><EFBFBD>
buff[data_offset++] = BUS_Public.addr; //<2F><EFBFBD><E8B1B8>ַ -
buff[data_offset++] = 0x00; //<2F><EFBFBD><E8B1B8>· - <20>յ<EFBFBD><D5B5>豸Ĭ<E8B1B8><C4AC>0x00
buff[data_offset++] = 0x00; //<2F><EFBFBD><E8B1B8>· - <20>յ<EFBFBD>Ĭ<EFBFBD><C4AC>0x00
buff[data_offset++] = 0x02; //<2F><EFBFBD><E8B1B8><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
buff[data_offset++] = 0x03; //<2F><EFBFBD><E8B1B8><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
//<2F>յ<EFBFBD>״̬
temp_val = Dev_Temp_State_Data(Rs485Temp.TemStateLast);
buff[data_offset++] = temp_val & 0xFF;
buff[data_offset++] = (temp_val >> 8) & 0xFF;
buff[data_offset++] = Rs485Temp.indoor_dec_temp;
//Dbg_Println(DBG_BIT_NET_STATUS_bit,"%Rs485Temp.indoor_dec_temp:%d",Rs485Temp.indoor_dec_temp);
dev_num++;
if(dev_num >= dev_num_max) return dev_num; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>˳<EFBFBD>
@@ -485,7 +487,7 @@ void Udp_Internal_Periodic_Report_PackSend(void)
sendlen = HEAD_LEN;
Global_Large_Buff[sendlen++] = 0x03; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Global_Large_Buff[sendlen++] = 0x04; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*
<09>ж<EFBFBD><D0B6>忨ȡ<E5BFA8><C8A1><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵĻ<DAB5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1>忨ȡ<E5BFA8><C8A1>״̬Ϊ0x00 - <20><>ʾ<EFBFBD>忨״̬<D7B4><CCAC>Ч
@@ -604,7 +606,7 @@ void Udp_Internal_Periodic_Report_PackSend(void)
/*<2A><><EFBFBD>ӿյ<D3BF><D5B5>豸״̬ - <20><>Ҫ<EFBFBD>ҵ<EFBFBD><D2B5>м<EFBFBD><D0BC><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
temp_dev = Find_TempDevice_List_Information(&Global_Large_Buff[sendlen],0x05); //Ŀǰ<C4BF><C7B0><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD>յ<EFBFBD>
sendlen = sendlen + (temp_dev * 0x07);
sendlen = sendlen + (temp_dev * 0x08);
Global_Large_Buff[33] += temp_dev; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
@@ -1471,6 +1473,44 @@ uint8_t Udp_Internal_BLVPCTest_Process(uint8_t* data, uint16_t DataLen, uint8_t
return 0x00;
}
/*<2A><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
uint32_t Find_TempDevice_Set_NetCtrlFlag(uint8_t *buff)
{
uint32_t read_addr = 0x00;
uint32_t end_addr = SRAM_Read_DW(SRAM_NORMAL_Device_List_Addr);
Device_Public_Information_G BUS_Public;
RS485_TEMP_INFO Rs485Temp;
memset(&BUS_Public,0,sizeof(Device_Public_Information_G));
memset(&Rs485Temp,0,sizeof(RS485_TEMP_INFO));
read_addr = Find_AllDevice_List_Information(buff[0],buff[1]);
if( read_addr != 0x00)
{
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),read_addr);
SRAM_DMA_Read_Buff((uint8_t *)&Rs485Temp,sizeof(RS485_TEMP_INFO),read_addr+Dev_Privately);
Rs485Temp.TemStateNetState = buff[5];
Rs485Temp.TemStateNetState <<= 8;
Rs485Temp.TemStateNetState |= buff[4];
Rs485Temp.TemStateNetFlag = 0x01;
Rs485Temp.TemStateNetCnt = 0x00;
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s %04x",__func__,Rs485Temp.TemStateNetState);
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&Rs485Temp, sizeof(RS485_TEMP_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),read_addr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&Rs485Temp,sizeof(RS485_TEMP_INFO),read_addr+Dev_Privately);
return 0x00; //<2F><><EFBFBD>óɹ<C3B3>
}
return 0x01; //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
}
/**
* @name <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -1492,7 +1532,6 @@ void Udp_Internal_Dev_Control_Processing(void)
if(write_addr != SRAM_UDP_RecvData_Startaddr) //д<><D0B4>ַ<EFBFBD><D6B7>Ϊ<EFBFBD>ձ<EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
num = SRAM_Read_Byte(SRAM_UDP_RecvData_ControlNum);
for(uint8_t i=0;i<num;i++)
{
@@ -1506,6 +1545,9 @@ void Udp_Internal_Dev_Control_Processing(void)
//case Dev_Host_Service: //<2F><><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
LOG_LogicInfo_DebugRecord("UDP Control:%02x-%02x-%02x-%02x-%02x-%02x",temp[0],temp[1],temp[2],temp[3],temp[4],temp[5]);
break;
case DEV_RS485_TEMP:
/*2026-02-28 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF>Ʋ<EFBFBD><C6B2><EFBFBD>Ӧ<EFBFBD><D3A6>ʾ<EFBFBD><CABE>*/
Find_TempDevice_Set_NetCtrlFlag(temp);
default: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ֻҪ<D6BB><D2AA>·<EFBFBD><C2B7>Ϊ0<CEAA><30><EFBFBD>ͼ<EFBFBD>1
if(0x00 != temp[2]) //<2F><>·<EFBFBD><C2B7>Ϊ0