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

@@ -308,6 +308,9 @@ void BLWC43_TempCtrDataProc(Device_Public_Information_G* BUS_Public, uint8_t *Da
break;
}
//Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"C7T û<><C3BB>С<EFBFBD><D0A1>λ");
C7T_Temp_Info->indoor_dec_temp = 0x00;
/*<2A>ȶԷ<C8B6><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>״̬ - <20>Ƿ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>־
2025-10-13 <20>޸<EFBFBD>
1<><31>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶ȱ仯<C8B1><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
@@ -319,13 +322,15 @@ void BLWC43_TempCtrDataProc(Device_Public_Information_G* BUS_Public, uint8_t *Da
|| (C7T_Temp_Info->TemStateLast.valve != C7T_Temp_Info->TemState.valve)
|| (C7T_Temp_Info->TemStateLast.set_t != C7T_Temp_Info->TemState.set_t) )
{
Dev_Temp_State_Sync(&C7T_Temp_Info->TemStateLast,&C7T_Temp_Info->TemState);
C7T_Temp_Info->udp_flag = 0x01;
C7T_Temp_Info->udp_tick = SysTick_1ms;
}
Dev_Temp_State_Sync(&C7T_Temp_Info->TemStateLast,&C7T_Temp_Info->TemState);
if(C7T_Temp_Info->udp_flag == 0x01)
{
if( SysTick_1ms - C7T_Temp_Info->udp_tick >= 2000)

View File

@@ -417,6 +417,13 @@ uint8_t BLV_RS485_Energy_Data_Processing(uint32_t dev_addr,uint32_t data_addr,ui
return rev;
}
/*У<><D0A3>У<EFBFBD><D0A3>λ<EFBFBD><CEBB>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>*/
if( deal_buff[5] != CheckSum_Overlook_Check(deal_buff,deal_len,5) )
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"Energy Check %02x Err",deal_buff[5]);
return rev;
}
SRAM_DMA_Read_Buff((uint8_t *)&Rs485EnergyInfo,sizeof(RS485_ENERGYMONITOR_INFO),dev_addr+Dev_Privately);
switch(deal_buff[6])

View File

@@ -371,7 +371,6 @@ void Dev_TEMPCTRL_Ctrl(uint32_t CfgDevAddIn, uint16_t DevInputAddr, uint32_t Cfg
Device_Public_Information_G BUS_PublicIn; //<2F><><EFBFBD><EFBFBD>
RS485_TEMP_INFO Rs485TemIn; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD>
if((NULL == CfgDevAddOut)||(0x00 != DevOutputLoop)) //<2F><><EFBFBD><EFBFBD><EFBFBD>ƽڵ<C6BD>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD>߱<EFBFBD><DFB1><EFBFBD><EFBFBD>ƵĻ<C6B5>·<EFBFBD><C2B7>0<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
{
return ;
@@ -615,6 +614,23 @@ void Dev_TEMPCTRL_Ctrl(uint32_t CfgDevAddIn, uint16_t DevInputAddr, uint32_t Cfg
Rs485TemLoc.set_t = TempSet; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6><EFBFBD>ȫ<EFBFBD><C8AB>ֵ <20><>ֵ0, 16~31
break;
}
/*<2A>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬*/
if(Rs485Tem.TemStateNetFlag != 0x00)
{
if(Rs485Tem.TemStateNetState == DevOutputType)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>ƶ˿<EFBFBD><EFBFBD><EFBFBD> 1:%4x - %4x", Rs485Tem.TemStateNetState,DevOutputType);
Rs485Tem.TemStateNetFlag = 0x02;
Rs485Tem.TemStateNetCnt = 0x00;
}else{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD>ƶ˿<EFBFBD><EFBFBD><EFBFBD> 1:%4x - %4x", Rs485Tem.TemStateNetState,DevOutputType);
Rs485Tem.TemStateNetFlag = 0x00;
Rs485Tem.TemStateNetState = 0x00;
Rs485Tem.TemStateNetCnt = 0x00;
}
}
// switch(TempValve)
// {
// case 0x01: Rs485Tem->TemStateCtrl.valve = TEMP_VALVE_OPEN; break; //<2F><>
@@ -638,9 +654,18 @@ void Dev_TEMPCTRL_Ctrl(uint32_t CfgDevAddIn, uint16_t DevInputAddr, uint32_t Cfg
if(Dev_Temp_State_Data(Rs485Tem.TemStateCtrl) != Dev_Temp_State_Data(Rs485TemLoc) )
{
KeepFlag = 0x01;
Dev_Temp_State_Sync(&Rs485Tem.TemStateCtrl,&Rs485TemLoc);
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"TemStateCtrl: %04X", Dev_Temp_State_Data(Rs485Tem.TemStateCtrl));
}else {
if(Rs485Tem.TemStateNetFlag != 0x00)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>ƶ˿<EFBFBD><EFBFBD><EFBFBD> 2:%4x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", Rs485Tem.TemStateNetState,DevOutputType);
Rs485Tem.TemStateNetFlag = 0x00;
Rs485Tem.TemStateNetState = 0x00;
Rs485Tem.TemStateNetCnt = 0x00;
KeepFlag = 0x01;
}
}
}
@@ -743,52 +768,64 @@ uint8_t TemSingleJudge(uint32_t CfgDevAdd, RS485_Tem_Ctrl_ptr Rs485TemCtrl, RS48
if(0x00 != Rs485TempT1.TemStateCtrlCnt.TemOnOffCtrlVar)
{
Rs485TempT1.TemStateCtrlCnt.TemOnOffCtrlVar--;
Rs485TemCtrl(&BUS_Public,&Rs485TempT1, 0x00); //<2F><><EFBFBD>ػ<EFBFBD>
Ret = RS485OCCUPYTIME; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>
}
else
{
Rs485TempT1.TemStateCtrlFlag.TemOnOffCtrlVar = 0x00;
keepflag = 0x01;
}
Rs485TemCtrl(&BUS_Public,&Rs485TempT1, 0x00); //<2F><><EFBFBD>ػ<EFBFBD>
Ret = RS485OCCUPYTIME; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>
}
else if(0x01 == Rs485TempT1.TemStateCtrlFlag.TemModeCtrlVar) //ģʽ
{
if(0x00 != Rs485TempT1.TemStateCtrlCnt.TemModeCtrlVar)
{
Rs485TempT1.TemStateCtrlCnt.TemModeCtrlVar--;
Rs485TemCtrl(&BUS_Public, &Rs485TempT1, 0x01); //ģʽ
Ret = RS485OCCUPYTIME; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>
}
else
{
Rs485TempT1.TemStateCtrlFlag.TemModeCtrlVar = 0x00;
keepflag = 0x01;
}
Rs485TemCtrl(&BUS_Public, &Rs485TempT1, 0x01); //ģʽ
Ret = RS485OCCUPYTIME; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>
}
else if(0x01 == Rs485TempT1.TemStateCtrlFlag.TemSetTCtrlVar) //<2F><EFBFBD>
{
if(0x00 != Rs485TempT1.TemStateCtrlCnt.TemSetTCtrlVar)
{
Rs485TempT1.TemStateCtrlCnt.TemSetTCtrlVar--;
Rs485TemCtrl(&BUS_Public, &Rs485TempT1, 0x02); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ret = RS485OCCUPYTIME; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>
}
else
{
Rs485TempT1.TemStateCtrlFlag.TemSetTCtrlVar = 0x00;
keepflag = 0x01;
}
Rs485TemCtrl(&BUS_Public, &Rs485TempT1, 0x02); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ret = RS485OCCUPYTIME; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>
}
else if(0x01 == Rs485TempT1.TemStateCtrlFlag.TemFanCtrlVar) //<2F><><EFBFBD><EFBFBD>
{
if(0x00 != Rs485TempT1.TemStateCtrlCnt.TemFanCtrlVar)
{
Rs485TempT1.TemStateCtrlCnt.TemFanCtrlVar--;
Rs485TemCtrl(&BUS_Public, &Rs485TempT1, 0x03); //<2F><><EFBFBD><EFBFBD>
Ret = RS485OCCUPYTIME; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>
}
else
{
Rs485TempT1.TemStateCtrlFlag.TemFanCtrlVar = 0x00;
keepflag = 0x01;
}
Rs485TemCtrl(&BUS_Public, &Rs485TempT1, 0x03); //<2F><><EFBFBD><EFBFBD>
Ret = RS485OCCUPYTIME; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>
}
else if(Rs485TempT1.CardFlag == 0x01)
{
@@ -814,14 +851,29 @@ uint8_t TemSingleJudge(uint32_t CfgDevAdd, RS485_Tem_Ctrl_ptr Rs485TemCtrl, RS48
{
if(BUS_Public.port == Polling_Port) //2024-11-05
{
if(NULL != Rs485TemCycle)
{
Rs485TemCycle(&BUS_Public);
Ret = RS485OCCUPYTIME;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ
}
}
/* 2026-02-28
<09>ƶ˿<C6B6><CBBF>ƺ󣬲<C6BA>3<EFBFBD><33>״̬<D7B4>ñ<EFBFBD>־λ<D6BE><CEBB><EFBFBD><EFBFBD><EFBFBD>ڵĻ<DAB5>,<2C><><EFBFBD><EFBFBD>״̬
<09>޿<EFBFBD><DEBF>Ʊ<EFBFBD>־λ<D6BE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3>ƶ˿<C6B6><CBBF>Ʋ<EFBFBD>Ϊ<EFBFBD><EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
Ԥ<><D4A4><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ󣬱<DFBA>־λһֱ<D2BB><D6B1><EFBFBD><EFBFBD>
*/
if(Rs485TempT1.TemStateNetFlag != 0x00)
{
Rs485TempT1.TemStateNetCnt++;
if(Rs485TempT1.TemStateNetCnt >= REPEATSENDTIMEMAX)
{
Rs485TempT1.TemStateNetCnt = 0x00;
Rs485TempT1.TemStateNetFlag = 0x00;
Rs485TempT1.TemStateNetState = 0x00;
}
}
}
if((RS485OCCUPYTIME == Ret) || (keepflag == 0x01))
@@ -1223,12 +1275,15 @@ void Temp_FanAuto_Set(RS485_TEMP_BASIC *Rs485TemRecBuf, RS485_TEMP_INFO *Rs485Te
*/
void Temp_Action_Set(RS485_TEMP_BASIC *Rs485TemRecBuf, RS485_TEMP_INFO *Rs485Tem)
{
uint8_t addPrompt_flag = 0;
if(Rs485Tem->TemState.on_off != Rs485TemRecBuf->TemState.on_off)
{
Rs485Tem->TemState.on_off = Rs485TemRecBuf->TemState.on_off; //<2F><><EFBFBD>ػ<EFBFBD>ͬ<EFBFBD><CDAC>
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ״̬: %d",Rs485TemRecBuf->TemState.on_off);
Rs485Tem->TemCondRec.OnOffFlag = 0x01; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Rs485Tem->TemCondRec.OnOffState = Rs485TemRecBuf->TemState.on_off;
if(TEMP_STATE_ON == Rs485TemRecBuf->TemState.on_off)
{
Rs485Tem->TemCondRec.FanFlag = 0x01; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>
@@ -1263,6 +1318,28 @@ void Temp_Action_Set(RS485_TEMP_BASIC *Rs485TemRecBuf, RS485_TEMP_INFO *Rs485Tem
}
Rs485Tem->TemCondRec.ModeFlag = 0x01; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
Rs485Tem->TemCondRec.ModeState = Rs485TemRecBuf->TemState.mode;
if(Rs485Tem->inif_flag != 0x00)
{
if(Rs485Tem->TemStateNetFlag == 0x00)
{
AddPrompt_ToList(0x06);
addPrompt_flag = 0x01;
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>ƶ˿<EFBFBD><EFBFBD><EFBFBD> <20>յ<EFBFBD><D5B5><EFBFBD>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD>Ӧ");
}
}
}else {
if(Rs485Tem->inif_flag != 0x00)
{
if(Rs485Tem->TemStateNetFlag == 0x00)
{
AddPrompt_ToList(0x07);
addPrompt_flag = 0x01;
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>ƶ˿<EFBFBD><EFBFBD><EFBFBD> <20>յ<EFBFBD><D5B5><EFBFBD>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD>Ӧ");
}
}
}
}
if(Rs485Tem->TemState.mode != Rs485TemRecBuf->TemState.mode)
@@ -1289,20 +1366,29 @@ void Temp_Action_Set(RS485_TEMP_BASIC *Rs485TemRecBuf, RS485_TEMP_INFO *Rs485Tem
/*2023.03.20<EFBFBD>ֿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸Ľ<EFBFBD><EFBFBD><EFBFBD>*/
if(Rs485Tem->inif_flag != 0x00) //2025-8-22
{
if(Rs485TemRecBuf->TemState.mode == 0x01) //<2F><><EFBFBD><EFBFBD>
if( (Rs485Tem->TemStateNetFlag == 0x00) && (addPrompt_flag == 0x00) )
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x00);
}
else if(Rs485TemRecBuf->TemState.mode == 0x02) //<2F><><EFBFBD><EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x01);
}
else if(Rs485TemRecBuf->TemState.mode == 0x03) //<2F>ͷ<EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x02);
if(Rs485TemRecBuf->TemState.mode == 0x01) //<2F><><EFBFBD><EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x00);
addPrompt_flag = 0x01;
}
else if(Rs485TemRecBuf->TemState.mode == 0x02) //<2F><><EFBFBD><EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x01);
addPrompt_flag = 0x01;
}
else if(Rs485TemRecBuf->TemState.mode == 0x03) //<2F>ͷ<EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x02);
addPrompt_flag = 0x01;
}
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>ƶ˿<EFBFBD><EFBFBD><EFBFBD> <20>յ<EFBFBD><D5B5><EFBFBD>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD>Ӧ");
}
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> <20>յ<EFBFBD><D5B5><EFBFBD>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD>Ӧ");
@@ -1321,20 +1407,25 @@ void Temp_Action_Set(RS485_TEMP_BASIC *Rs485TemRecBuf, RS485_TEMP_INFO *Rs485Tem
if(Rs485Tem->inif_flag != 0x00)
{
if(Rs485TemRecBuf->TemState.fan == 0x01) //<2F><><EFBFBD><EFBFBD>
if( (Rs485Tem->TemStateNetFlag == 0x00) && (addPrompt_flag == 0x00) )
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x03);
}
else if(Rs485TemRecBuf->TemState.fan == 0x02) //<2F><><EFBFBD><EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x04);
}
else if(Rs485TemRecBuf->TemState.fan == 0x03) //<2F><><EFBFBD><EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x05);
if(Rs485TemRecBuf->TemState.fan == 0x01) //<2F><><EFBFBD><EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x03);
}
else if(Rs485TemRecBuf->TemState.fan == 0x02) //<2F><><EFBFBD><EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x04);
}
else if(Rs485TemRecBuf->TemState.fan == 0x03) //<2F><><EFBFBD><EFBFBD>
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>");
AddPrompt_ToList(0x05);
}
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>ƶ˿<EFBFBD><EFBFBD><EFBFBD> <20>յ<EFBFBD><D5B5><EFBFBD>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD>Ӧ");
}
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> <20>յ<EFBFBD><D5B5><EFBFBD>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD>Ӧ");
@@ -1470,6 +1561,14 @@ void Temp_Action_Set(RS485_TEMP_BASIC *Rs485TemRecBuf, RS485_TEMP_INFO *Rs485Tem
Rs485Tem->inif_flag = 0x01;
}
/*2026-02-28 <20><><EFBFBD><EFBFBD><EFBFBD>ƶ˿<C6B6><CBBF><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ʾ<EFBFBD><CABE>*/
if( Rs485Tem->TemStateNetFlag != 0x00 )
{
Rs485Tem->TemStateNetFlag = 0x00;
Rs485Tem->TemStateNetState = 0x00;
Rs485Tem->TemStateNetCnt = 0x00;
}
#if Dev_Nor_Carbon_Flag
//Dev_Temp_State_Sync(&Rs485Tem->TemStateCtrl,&Rs485Tem->TemState); //2024-12-16 ̼<><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Rs485Tem->Carbon_Set_Temp = Rs485Tem->TemState.set_t;

View File

@@ -118,7 +118,7 @@ typedef struct
uint8_t control_start; //<2F><><EFBFBD>ؿ<EFBFBD><D8BF>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD>״̬
TemState_Struct TemStateVir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>״̬<D7B4><EFBFBD>Ƚ<EFBFBD> <20><>δ<EFBFBD><CEB4>
// TemState_Struct TemStateNet; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>״̬<D7B4><EFBFBD>Ƚ<EFBFBD> <20><>δ<EFBFBD><CEB4>
TemState_Struct TemStateLast; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬ <20><><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD>ϱ<EFBFBD>
// TemState_Struct TemStateRs485; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬ <20><><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD>ϱ<EFBFBD> RS485 <20><>δ<EFBFBD><CEB4>
// TemState_Struct TemStateMap; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬ <20><><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD>ϱ<EFBFBD> RS485 <20><>δ<EFBFBD><CEB4>
@@ -131,11 +131,13 @@ typedef struct
uint8_t TemCycleCnt; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LF<4C>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ר<EFBFBD><D7A8>
uint8_t TemDataChangeFlag; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸı<DDB8><C4B1><EFBFBD>־
uint8_t TempType; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м̵<D0BC><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5>ŷ<EFBFBD><C5B7>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><30><CEAA><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><31><CEAA><EFBFBD>ŷ<EFBFBD><C5B7>¿<EFBFBD><C2BF><EFBFBD>
// uint8_t TemDataChangeFlag; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸı<DDB8><C4B1><EFBFBD>־
// uint8_t TempType; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м̵<D0BC><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5>ŷ<EFBFBD><C5B7>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><30><CEAA><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><31><CEAA><EFBFBD>ŷ<EFBFBD><C5B7>¿<EFBFBD><C2BF><EFBFBD>
uint8_t TemStateNetFlag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD>־λ - <20><><EFBFBD><EFBFBD><EFBFBD>ƶ˿<C6B6><CBBF><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
uint8_t TemStateNetCnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
uint16_t TemStateNetState; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>״̬
uint8_t TempComSetFlag; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD>ñ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ1<CEAA><31>C43<34><33><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>²
uint8_t TempComSetCnt; //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>
//Dev_Name_Struct DevNameStruct;//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD> ÿ<><C3BF><EFBFBD><EFBFBD>·16<31><36><EFBFBD>ֽڱ<D6BD><DAB1><EFBFBD> //<2F><>֧<EFBFBD><D6A7>30<33><30><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
@@ -157,6 +159,8 @@ typedef struct
uint8_t udp_flag; //2025-10-13 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>־λ
uint32_t udp_tick; //2025-10-13
uint8_t indoor_dec_temp; //2026-03-02 <09><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>С<EFBFBD><D0A1><EFBFBD>㲿<EFBFBD><E3B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> lsj
}__attribute__ ((__packed__))RS485_TEMP_INFO; //485<38>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBAAF>
typedef struct

View File

@@ -243,56 +243,7 @@ void BLV_T1Temp_PortSet_Send(Device_Public_Information_G *BUS_Public, RS485_TEMP
*******************************************************************************/
uint8_t BLWOut_TempT1CycleCtrl(uint32_t dev_addr)
{
// uint16_t temp = 0;
// uint8_t crc_val = 0;
// uint8_t i;
// uint8_t CtrlWay = 4;//<2F><><EFBFBD>Ʒ<EFBFBD>ʽ
// RS485_TEMP_INFO Rs485TempT1;
// SRAM_DMA_Read_Buff((uint8_t *)&Rs485TempT1,sizeof(RS485_TEMP_INFO),dev_addr+Dev_Privately);
//
// for(i = 0;i<4;i++)
// {
// if(0xff != Rs485TempT1.info[i])
// {
// CtrlWay = i;
// break;
// }
// }
//
// switch(CtrlWay)
// {
// case 0: //<2F><><EFBFBD>ػ<EFBFBD>
// case 1: //ģʽ
// case 2: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// case 3: //<2F><><EFBFBD>ٿ<EFBFBD><D9BF><EFBFBD>
// BLWOut_TempT1Ctrl(dev_addr,&Rs485TempT1, CtrlWay);
// break;
// case 4: //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
// BLWOut_tempCycle(dev_addr);
// break;
// }
// if(Rs485TempT1.DevSendCnt > REPEATSENDTIMEMAX)
// {
// Rs485TempT1.DevOffline = DEV_IS_OFFLINE; //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
// }
// else
// {
// Rs485TempT1.DevSendCnt++; //<2F><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD>ۼ<EFBFBD>
// }
//
// /*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SRAM<41><4D>*/
// SRAM_DMA_Write_Buff((uint8_t *)&Rs485TempT1,sizeof(RS485_TEMP_INFO),dev_addr+Dev_Privately);
//
// /*<2A><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ֵ*/
// SRAM_Write_Byte(0x00,dev_addr+Dev_Check);
// temp = sizeof(RS485_TEMP_INFO) + Dev_Privately;
// crc_val = Dev_CheckSum(dev_addr,temp);
// SRAM_Write_Byte(crc_val,dev_addr+Dev_Check); //У<><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
// //Dbg_Print(DBG_BIT_DEVICE_STATUS_bit,"TempT1 crc_val:%02X\r\n",crc_val);
//
// return 0;
return TemSingleJudge(dev_addr, BLWOut_TempT1Ctrl, BLWOut_tempT1Cycle);
}
@@ -364,10 +315,22 @@ uint8_t BLWOut_TempT1CtrDataProc(Device_Public_Information_G* BUS_Public, uint8_
}
Rs485TemRecBuf.TemState.indoor_t = data[17];//SRAM_Read_Byte(data_addr + 17); //
if((Rs485TemRecBuf.TemState.on_off != Rs485Tem->TemState.on_off) || (Rs485TemRecBuf.TemState.mode != Rs485Tem->TemState.mode) ||
(Rs485TemRecBuf.TemState.fan != Rs485Tem->TemState.fan) || (Rs485TemRecBuf.TemState.valve != Rs485Tem->TemState.valve)||
(Rs485TemRecBuf.FanAutoRelay != Rs485Tem->FanAutoRelay) ||
(Rs485TemRecBuf.TemState.set_t != Rs485Tem->TemState.set_t)||(Rs485TemRecBuf.TemState.indoor_t != Rs485Tem->TemState.indoor_t))//<2F><><EFBFBD>ػ<EFBFBD> ģʽ <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6><EFBFBD><EBB4A2><EFBFBD>IJ<EFBFBD>һ<EFBFBD><D2BB>
if(data[18] < 0x0A ){ //<2F><><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7>0-9<><39>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷǷ<DDB7><C7B7><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0
Rs485Tem->indoor_dec_temp = data[18];
}else{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"dec ERR:%d",data[18]);
Rs485Tem->indoor_dec_temp = 0x00;
}
if((Rs485TemRecBuf.TemState.on_off != Rs485Tem->TemState.on_off)
|| (Rs485TemRecBuf.TemState.mode != Rs485Tem->TemState.mode)
||(Rs485TemRecBuf.TemState.fan != Rs485Tem->TemState.fan)
|| (Rs485TemRecBuf.TemState.valve != Rs485Tem->TemState.valve)
||(Rs485TemRecBuf.FanAutoRelay != Rs485Tem->FanAutoRelay)
||(Rs485TemRecBuf.TemState.set_t != Rs485Tem->TemState.set_t)
||(Rs485TemRecBuf.TemState.indoor_t != Rs485Tem->TemState.indoor_t)
)//<2F><><EFBFBD>ػ<EFBFBD> ģʽ <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6><EFBFBD><EBB4A2><EFBFBD>IJ<EFBFBD>һ<EFBFBD><D2BB>
{
Temp_Action_Set(&Rs485TemRecBuf, Rs485Tem); //ͬ<><CDAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -456,8 +419,6 @@ uint8_t BLWOut_TempT1CtrDataProc(Device_Public_Information_G* BUS_Public, uint8_
|| (Rs485Tem->TemStateLast.valve != Rs485Tem->TemState.valve) \
|| (Rs485Tem->TemStateLast.set_t != Rs485Tem->TemState.set_t) )
{
Dev_Temp_State_Sync(&Rs485Tem->TemStateLast,&Rs485Tem->TemState);
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>:%04x",Dev_Temp_State_Data(Rs485Tem->TemState));
Rs485Tem->udp_flag = 0x01;
@@ -465,6 +426,8 @@ uint8_t BLWOut_TempT1CtrDataProc(Device_Public_Information_G* BUS_Public, uint8_
temp++;
}
Dev_Temp_State_Sync(&Rs485Tem->TemStateLast,&Rs485Tem->TemState);
if(Rs485Tem->udp_flag == 0x01)
{
if( SysTick_1ms - Rs485Tem->udp_tick >= 2000)

View File

@@ -361,11 +361,8 @@ uint8_t BLV_BUS_C5MUSIC_Data_Processing(uint32_t dev_addr,uint32_t data_addr,uin
C5Music_Info.now_helpsleep_volume = deal_buff[PKT2_PARA + 12]; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2022-12-16
// Dbg_Print_Buff(DBG_BIT_DEVICE_STATUS_bit,"Music Polling Data",deal_buff,deal_len);
if(C5Music_Info.last_playback_status != C5Music_Info.now_playback_status) /*<2A>Ƚ<EFBFBD>C5MUSIC_Playback<63><6B><EFBFBD><EFBFBD>,<2C>Ƿ񱣴<C7B7><F1B1A3B4><EFBFBD>־*/
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"C5MUSIC_Playback_Status Change:%d",C5Music_Info.now_playback_status);
@@ -2663,13 +2660,13 @@ void Logic_Music_Ctrl(uint32_t DevAddrIn, uint16_t DevInputLoop, uint32_t DevAdd
uint16_t Dev_Music_Loop_State(uint32_t devaddr, uint16_t DevOutputLoop) //2023-02-28
{
BUS_C5MUSIC_INFO C5Music_Info; //<2F><><EFBFBD>ؾֲ<D8BE><D6B2><EFBFBD><EFBFBD><EFBFBD>
uint8_t status;
if(devaddr == 0x00)
return 0x00;
uint8_t status = 0x00;
if(devaddr == 0x00) return 0x00;
SRAM_DMA_Read_Buff((uint8_t *)&C5Music_Info,sizeof(BUS_C5MUSIC_INFO),devaddr+Dev_Privately);
if(C5Music_Info.now_playback_type ==0x01) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(C5Music_Info.now_playback_type == 0x01) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(C5Music_Info.now_playback_status == 0x00) //<2F><><EFBFBD><EFBFBD>
{

View File

@@ -145,7 +145,6 @@ void Dev_LVinput_Dis(uint32_t DevAddr)
DevLVinputInfo.DevReadBuf[i] = C5IO_Info.DI_Start[i];
DevLVinputInfo.DevReadBufLast[i] = C5IO_Info.DI_Start[i];
if(C5IO_Info.DI_Start[i]==0x02) //2023-10-09
{
DevActionGlobal.InputType = BUS_PublicLVinput.type;
@@ -185,32 +184,48 @@ void Dev_LVinput_Dis(uint32_t DevAddr)
break;
case BUS_C5IO_DI_Pir_Type:
case BUS_C5IO_DI_Dry_Type:
if(C5IO_Info.DI_Start[i] != C5IO_Info.DI_LastStart[i])
/*
<09>ɽڵ<C9BD><DAB5><EFBFBD>PIR<49><52><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC>״̬;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>Ϊ<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC>״̬
*/
if( (C5IO_Info.DI_Start[i] != C5IO_Info.DI_LastStart[i]) || ( (DevLVinputInfo.Dev_Init_Flag == 0x00) && (C5IO_Info.DI_Init_flag == 0x01) ) )
{
KeepFlag = 0x01;
C5IO_Info.DI_LastStart[i] = C5IO_Info.DI_Start[i];
C5IO_Info.DI_LastStart[i] = C5IO_Info.DI_Start[i];
switch(C5IO_Info.DI_Start[i])
{
case 0x00: //<2F>ͷ<EFBFBD>
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s,Loop:%d Release",__func__, i);
DevActionGlobal.Devi = BUS_PublicLVinput.DevCoord; //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>
DevLVinputInfo.DevReadBuf[i] = KeyRelease;
DevLVinputInfo.DevReadBuf[i] = 0x00;
DevLVinputInfo.DevReadBufLast[i] = KeyRelease;
DevActionGlobal.InputType = 0xff; //2023-10-09
DevActionGlobal.InputAddr = 0x00; //2023-10-09
DevActionGlobal.InputLoop = 0x00; //2023-10-09
if(DevLVinputInfo.Dev_Init_Flag == 0x01)
{
DevLVinputInfo.DevReadBuf[i] = KeyRelease; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ɺ󣬲Ÿ<F3A3ACB2>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
DevActionGlobal.Devi = BUS_PublicLVinput.DevCoord; //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>
DevActionGlobal.InputType = 0xff; //2023-10-09
DevActionGlobal.InputAddr = 0x00; //2023-10-09
DevActionGlobal.InputLoop = 0x00; //2023-10-09
}
break;
case 0x01: //<2F><><EFBFBD><EFBFBD>
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s,Loop:%d Press",__func__, i);
DevActionGlobal.Devi = BUS_PublicLVinput.DevCoord; //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>
DevLVinputInfo.DevReadBuf[i] = KeyPress;
DevLVinputInfo.DevReadBuf[i] = 0x00;
DevLVinputInfo.DevReadBufLast[i] = KeyPress;
DevLVinputInfo.HoldTick[i] = SysTick_1s;
DevActionGlobal.InputType = BUS_PublicLVinput.type; //2023-10-09
DevActionGlobal.InputAddr = BUS_PublicLVinput.addr; //2023-10-09
DevActionGlobal.InputLoop = i; //2023-10-09
if(DevLVinputInfo.Dev_Init_Flag == 0x01)
{
DevLVinputInfo.DevReadBuf[i] = KeyPress; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ɺ󣬲Ÿ<F3A3ACB2>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
DevActionGlobal.Devi = BUS_PublicLVinput.DevCoord; //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>
DevActionGlobal.InputType = BUS_PublicLVinput.type; //2023-10-09
DevActionGlobal.InputAddr = BUS_PublicLVinput.addr; //2023-10-09
DevActionGlobal.InputLoop = i; //2023-10-09
}
break;
}
@@ -254,6 +269,11 @@ void Dev_LVinput_Dis(uint32_t DevAddr)
if(0x01 == KeepFlag)
{
if( DevLVinputInfo.Dev_Init_Flag == 0x00 )
{
DevLVinputInfo.Dev_Init_Flag = 0x01;
}
BUS_PublicLVinput.check = 0x00;
BUS_PublicLVinput.check = DoubleData_CheckSum((uint8_t *)&BUS_PublicLVinput, sizeof(Device_Public_Information_G), (uint8_t *)&DevLVinputInfo, sizeof(NOR_LVINPUT_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_PublicLVinput, sizeof(Device_Public_Information_G),DevAddr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/

View File

@@ -568,3 +568,73 @@ uint8_t ServiceInfo_Set_RoomState(uint8_t state)
return 0x00;
}
/*******************************************************************************
* Function Name : ServiceInfo_Set_VirtualCard_LoopState
* Description : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ - <20><><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ļ<EFBFBD>·״̬ 2026-02-26
<09>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ӧ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>·״̬
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·1 -> <09>Ŵŷ<C5B4><C5B7><EFBFBD> <09><>·<EFBFBD><C2B7>13
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·2 -> <09>ſں<C5BF><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>32
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·3 -> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>33
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·4 -> ԡ<><D4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>34
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·5 -> <09><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>35
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·6 -> <09><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>36
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·7 -> <09><><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>37
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·8 -> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>38
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·9 -> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>39
<09>޿<EFBFBD>ȡ<EFBFBD><C8A1> <20><>·10 -> ԡ<>׺<EFBFBD><D7BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>·<EFBFBD><C2B7>40
<09><><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>IO״̬ʱ<CCAC><CAB1><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>Ӧ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>Ϣ״̬<D7B4><CCAC>-- <20><><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC>ͬ<EFBFBD><CDAC>״̬
* Input :
loop - <20><>·<EFBFBD><C2B7>Χ<EFBFBD><CEA7>1~10
state - 0x01:<3A><><EFBFBD><EFBFBD>0x02:<3A>ء<EFBFBD>
* Return : 0x00:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:<3A><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
*******************************************************************************/
uint8_t ServiceInfo_Set_VirtualCard_LoopState(uint8_t loop,uint8_t state)
{
uint32_t dev_addr = Find_AllDevice_List_Information(Dev_Host_Service,0x00);
Device_Public_Information_G BUS_Public; //<2F><><EFBFBD><EFBFBD>
NOR_SERVICE_INFO DevServiceInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD>
if(dev_addr == 0x00) return 0x01; //δ<>ҵ<EFBFBD><D2B5>
if( (loop == 0x00) || (loop > 10) ) return 0x02; //<2F><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ<EFBFBD><CEA7>
if( (state != 0x01) && (state != 0x02) ) return 0x03; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),dev_addr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SRAM_DMA_Read_Buff((uint8_t *)&DevServiceInfo,sizeof(NOR_SERVICE_INFO),dev_addr+Dev_Privately);
if(loop == 0x01)
{
loop = Service_Door;
/*<2A>ŴŶ<C5B4>Ӧ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>״̬<D7B4><CCAC>Ҫ<EFBFBD><D2AA>תһ<D7AA><D2BB>
<09>Ŵ<EFBFBD> <20>͵<EFBFBD>ƽ<EFBFBD><C6BD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> -> <20><><EFBFBD>Ŵŷ<C5B4><C5B7><EFBFBD>
<09>Ŵ<EFBFBD> <20>ߵ<EFBFBD>ƽ<EFBFBD><C6BD>Ӧ<EFBFBD>ͷ<EFBFBD> -> <20><><EFBFBD>Ŵŷ<C5B4><C5B7><EFBFBD>
*/
if( state == 0x01 )
{
DevServiceInfo.DevServiceState[loop] = 0x02;
DevServiceInfo.DevServiceStateLast[loop] = 0x02;
}else {
DevServiceInfo.DevServiceState[loop] = 0x01;
DevServiceInfo.DevServiceStateLast[loop] = 0x01;
}
}else {
loop = loop + Service_30;
DevServiceInfo.DevServiceState[loop] = state;
DevServiceInfo.DevServiceStateLast[loop] = state;
}
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s Loop:%d - 0x%x", __func__, loop, DevServiceInfo.DevServiceState[loop]);
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&DevServiceInfo, sizeof(NOR_SERVICE_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),dev_addr); /*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SRAM<41><4D>*/
SRAM_DMA_Write_Buff((uint8_t *)&DevServiceInfo,sizeof(NOR_SERVICE_INFO),dev_addr+Dev_Privately);
return 0x00;
}

View File

@@ -103,6 +103,7 @@ void BLV_Nor_Dev_Service_For_Logic_Init(LOGICFILE_DEVICE_INFO *dev_info,uint8_t
uint8_t ServiceInfo_Set_first_power_on(uint8_t state);
uint8_t ServiceInfo_Get_ALL_Loop_State(uint8_t *read_buff);
uint8_t ServiceInfo_Set_RoomState(uint8_t state);
uint8_t ServiceInfo_Set_VirtualCard_LoopState(uint8_t loop,uint8_t state);
#endif

View File

@@ -87,6 +87,10 @@
- ԭ<>л<EFBFBD><D0BB>ƣ<EFBFBD><C6A3>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1><EFBFBD><EFBFBD><EFBFBD>״̬֮<CCAC><D6AE><EFBFBD>л<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>buffer<65><72><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A3A8><EFBFBD><EFBFBD>->1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>->0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>
2<><32><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC><EFBFBD>³<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ж<EFBFBD><D0B6>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
2026-02-25 <09>ܴ<EFBFBD>
<09>޸ĵ㣺
1<><31><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>еĻ<D0B5>·״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>еĻ<D0B5>·״̬<D7B4>ϵ<EFBFBD>ʱͬ<CAB1><CDAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
******************************************************************************
*/
#include "includes.h"
@@ -276,18 +280,246 @@ uint8_t DetWin_ReadData_Bit(uint8_t port,uint16_t idex)
return 0x00;
}
/*******************************************************************************
* Function Name : Dev_VirtualCard_Get_Mapping_Loop_State
* Description : <20>޿<EFBFBD>ȡ<EFBFBD><C8A1> - <20><>ȡӳ<C8A1><D3B3><EFBFBD><EFBFBD>·<EFBFBD><C2B7>״̬
* Input :
dev_info - <09>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>豸˽<E8B1B8><CBBD><EFBFBD><EFBFBD><EFBFBD>Խṹ<D4BD><E1B9B9>ָ<EFBFBD><D6B8>
loop_num - <09><>ȡ<EFBFBD>Ļ<EFBFBD>·<EFBFBD><C2B7>
* Return :
0x00 - <09><>ȡ<EFBFBD>ɹ<EFBFBD>
0x01 - <09><>ȡʧ<C8A1><CAA7>
*******************************************************************************/
uint8_t Dev_VirtualCard_Get_Mapping_Loop_State(VIRTUALCARD_STRUCT *dev_info,uint8_t loop_num)
{
uint32_t tempaddr = 0x00;
NOR_LVINPUT_INFO DevLVinputInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ˽<>б<EFBFBD><D0B1><EFBFBD>
RS485_CARD_INFO Rs485CardInfo; //<2F>忨ȡ<E5BFA8><C8A1> ˽<>б<EFBFBD><D0B1><EFBFBD>
RS485_SWI_INFO Rs485SwiInfo; //<2F><><EFBFBD><EFBFBD> ˽<>б<EFBFBD><D0B1><EFBFBD>
switch(dev_info->Port_Info[loop_num].HPort_Type)
{
case Dev_Host_LVinput:
tempaddr = Find_AllDevice_List_Information(dev_info->Port_Info[loop_num].HPort_Type,dev_info->Port_Info[loop_num].HPort_Addr);
if(tempaddr != NULL)
{
SRAM_DMA_Read_Buff((uint8_t *)&DevLVinputInfo,sizeof(NOR_LVINPUT_INFO),tempaddr+Dev_Privately);
if( DevLVinputInfo.Dev_Init_Flag != 0x01 ) return 0x01; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뻹δ<EBBBB9><CEB4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if((DevLVinputInfo.DevReadBufLast[dev_info->Port_Info[loop_num].HPort_Loop] == KeyPress) \
|| (DevLVinputInfo.DevReadBufLast[dev_info->Port_Info[loop_num].HPort_Loop] == KeyHold) )
{
dev_info->PortState[loop_num] = KeyPress;
dev_info->DetInfo.TriggerNum[loop_num]++;
if(dev_info->PortState[loop_num] != dev_info->PortStateLast[loop_num])
{
dev_info->PortStateLast[loop_num] = dev_info->PortState[loop_num];
dev_info->PortStateAct[loop_num] = 0x03; //<2F><><EFBFBD><EFBFBD><EFBFBD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",loop_num,dev_info->PortState[loop_num]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20><><EFBFBD><EFBFBD> - CH%d",dev_info->Port_Info[loop_num].HPort_Loop,loop_num);
if(loop_num == 0x00)
{
dev_info->CardState = KeyPress;
}
}else{
dev_info->PortStateAct[loop_num] = KeyPress; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
else if( DevLVinputInfo.DevReadBufLast[dev_info->Port_Info[loop_num].HPort_Loop] == KeyRelease )
{
dev_info->PortState[loop_num] = KeyRelease;
if(dev_info->PortState[loop_num] != dev_info->PortStateLast[loop_num])
{
dev_info->PortStateLast[loop_num] = dev_info->PortState[loop_num];
dev_info->PortStateAct[loop_num] = 0x04; //<2F>½<EFBFBD><C2BD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",loop_num,dev_info->PortState[loop_num]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20>ͷ<EFBFBD> - CH%d",dev_info->Port_Info[loop_num].HPort_Loop,loop_num);
if(loop_num == 0x00)
{
dev_info->CardState = KeyRelease;
}
}else{
dev_info->PortStateAct[loop_num] = KeyRelease; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
}
break;
case DEV_RS485_CARD:
tempaddr = Find_AllDevice_List_Information(dev_info->Port_Info[loop_num].HPort_Type,dev_info->Port_Info[loop_num].HPort_Addr);
if(tempaddr != NULL)
{
SRAM_DMA_Read_Buff((uint8_t *)&Rs485CardInfo,sizeof(RS485_CARD_INFO),tempaddr+Dev_Privately);
/*2025-09-03 <20>޸<EFBFBD>RS485ȡ<35><C8A1> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>*/
if(Rs485CardInfo.Rs485CardFlag == 0x01)
{
dev_info->PortState[loop_num] = KeyPress;
dev_info->DetInfo.TriggerNum[loop_num]++;
if(dev_info->PortState[loop_num] != dev_info->PortStateLast[loop_num])
{
dev_info->PortStateLast[loop_num] = dev_info->PortState[loop_num];
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",loop_num,dev_info->PortState[loop_num]);
if(loop_num == 0x00)
{
dev_info->CardState = KeyPress;
}
}
}else {
dev_info->PortState[loop_num] = KeyRelease;
if(dev_info->PortState[loop_num] != dev_info->PortStateLast[loop_num])
{
dev_info->PortStateLast[loop_num] = dev_info->PortState[loop_num];
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",loop_num,dev_info->PortState[loop_num]);
if(loop_num == 0x00)
{
dev_info->CardState = KeyRelease;
}
}
}
}
break;
case DEV_RS485_SWT:
tempaddr = Find_AllDevice_List_Information(dev_info->Port_Info[loop_num].HPort_Type,dev_info->Port_Info[loop_num].HPort_Addr);
if(tempaddr != NULL)
{
Device_Public_Information_G BUS_Public; //<2F><><EFBFBD><EFBFBD>
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),tempaddr);
if(BUS_Public.Protocol == 0x03) //<2F><><EFBFBD><EFBFBD>A9IO
{
SRAM_DMA_Read_Buff((uint8_t *)&Rs485SwiInfo,sizeof(RS485_SWI_INFO),tempaddr+Dev_Privately);
/*A9IO <20><><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>߼<EFBFBD><DFBC>޸<EFBFBD>
2025-02-28
1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3BA>ȡA9IO ״̬<D7B4><CCAC><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>һ<EFBFBD><D2BB>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ὣ״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B5BC><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>A9IO<49><4F>״̬<D7B4><CCAC>
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ: <20><>ȡA9IO ״̬<D7B4><CCAC>Ϊʹ<CEAA><CAB9> DevReadBuf_last ״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱA9IO<49><4F><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>жԸñ<D4B8><C3B1><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>޸<EFBFBD>
2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A9IO <20><EFBFBD><E3B0B4><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>߼<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ͷţ<CDB7><C5A3><EFBFBD>һֱ<D2BB><D6B1><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ: <20><><EFBFBD>ӻ<EFBFBD><D3BB>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ㰴<C7B5><E3B0B4><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ź<EFBFBD>3S<33><53>Ч<EFBFBD><D0A7>3S֮<53>󽫸<EFBFBD>״̬<D7B4><CCAC>Ϊ<EFBFBD>ͷ<EFBFBD>״̬
*/
if(Rs485SwiInfo.DevReadBuf_last[dev_info->Port_Info[loop_num].HPort_Loop] == KeyPress)
{
if( (dev_info->PortState[loop_num] == KeyPress) \
&& ( SysTick_1s - dev_info->PortTiggleTick[loop_num] >= 3 ) )
{
dev_info->PortTiggleTick[loop_num] = SysTick_1s;
Rs485SwiInfo.DevReadBuf_last[dev_info->Port_Info[loop_num].HPort_Loop] = KeyRelease;
dev_info->PortState[loop_num] = KeyRelease;
if(dev_info->PortState[loop_num] != dev_info->PortStateLast[loop_num])
{
dev_info->PortStateLast[loop_num] = dev_info->PortState[loop_num];
dev_info->PortStateAct[loop_num] = 0x04; //<2F>½<EFBFBD><C2BD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d:PressRelease",loop_num,dev_info->PortState[loop_num]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20><EFBFBD>ͷ<EFBFBD> - CH%d",dev_info->Port_Info[loop_num].HPort_Loop);
if(loop_num == 0x00)
{
dev_info->CardState = KeyRelease;
}
}else{
dev_info->PortStateAct[loop_num] = KeyRelease; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&Rs485SwiInfo, sizeof(RS485_SWI_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),tempaddr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&Rs485SwiInfo,sizeof(RS485_SWI_INFO),tempaddr+Dev_Privately);
}else if( dev_info->PortState[loop_num] != KeyPress)
{
dev_info->PortTiggleTick[loop_num] = SysTick_1s;
dev_info->PortState[loop_num] = KeyPress;
dev_info->DetInfo.TriggerNum[loop_num]++;
if(dev_info->PortState[loop_num] != dev_info->PortStateLast[loop_num])
{
dev_info->PortStateLast[loop_num] = dev_info->PortState[loop_num];
dev_info->PortStateAct[loop_num] = 0x03; //<2F><><EFBFBD><EFBFBD><EFBFBD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d:Press",loop_num,dev_info->PortState[loop_num]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20><EFBFBD><E3B0B4><EFBFBD><EFBFBD> - CH%d",dev_info->Port_Info[loop_num].HPort_Loop);
if(loop_num == 0x00)
{
dev_info->CardState = KeyPress;
}
}else{
dev_info->PortStateAct[loop_num] = KeyPress; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
}
else if(Rs485SwiInfo.DevReadBuf_last[dev_info->Port_Info[loop_num].HPort_Loop] == KeyHold)
{
dev_info->PortTiggleTick[loop_num] = SysTick_1s;
dev_info->PortState[loop_num] = KeyPress;
dev_info->DetInfo.TriggerNum[loop_num]++;
if(dev_info->PortState[loop_num] != dev_info->PortStateLast[loop_num])
{
dev_info->PortStateLast[loop_num] = dev_info->PortState[loop_num];
dev_info->PortStateAct[loop_num] = 0x03; //<2F><><EFBFBD><EFBFBD><EFBFBD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",loop_num,dev_info->PortState[loop_num]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20><><EFBFBD><EFBFBD> - CH%d",dev_info->Port_Info[loop_num].HPort_Loop);
if(loop_num == 0x00)
{
dev_info->CardState = KeyPress;
}
}else{
dev_info->PortStateAct[loop_num] = KeyPress; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
else if(Rs485SwiInfo.DevReadBuf_last[dev_info->Port_Info[loop_num].HPort_Loop] == KeyRelease)
{
dev_info->PortState[loop_num] = KeyRelease;
if(dev_info->PortState[loop_num] != dev_info->PortStateLast[loop_num])
{
dev_info->PortStateLast[loop_num] = dev_info->PortState[loop_num];
dev_info->PortStateAct[loop_num] = 0x04; //<2F>½<EFBFBD><C2BD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",loop_num,dev_info->PortState[loop_num]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20>ͷ<EFBFBD> - CH%d",dev_info->Port_Info[loop_num].HPort_Loop);
if(loop_num == 0x00)
{
dev_info->CardState = KeyRelease;
}
}else{
dev_info->PortStateAct[loop_num] = KeyRelease; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
}
}
break;
default:
break;
}
return 0x00;
}
void Dev_VirtualCard_Dis(uint32_t DevAddr)
{
Device_Public_Information_G BUS_Public; //<2F><><EFBFBD><EFBFBD>
VIRTUALCARD_STRUCT VCard_Info;
uint32_t tempaddr = 0;
NOR_LVINPUT_INFO DevLVinputInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD>
RS485_CARD_INFO Rs485CardInfo;
RS485_SWI_INFO Rs485SwiInfo; //<2F><><EFBFBD>ؾֲ<D8BE><D6B2><EFBFBD><EFBFBD><EFBFBD>
uint8_t portstate = 0;
uint8_t PortEn_Cnt = 0x00; //20260129,<2C><>ʱ<EFBFBD><CAB1><EFBFBD>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>㳤ʱ<E3B3A4><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵĶ˿<C4B6><CBBF><EFBFBD>
uint8_t PortEn_max = 0x00; //20260129,<2C><>ʱ<EFBFBD><CAB1><EFBFBD>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵĶ˿<C4B6><CBBF><EFBFBD><EFBFBD><EFBFBD>
@@ -348,7 +580,14 @@ void Dev_VirtualCard_Dis(uint32_t DevAddr)
VCard_Info.DetNum++;
}
VCard_Info.PortState[temp_loop] = KeyRelease;
//VCard_Info.PortState[temp_loop] = KeyRelease;
//<2F><>ʼ<EFBFBD><CABC>IO״̬ 2026-02-26
if(Dev_VirtualCard_Get_Mapping_Loop_State(&VCard_Info,temp_loop) == 0x01){
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s Wait IO Init..",__func__);
return ;
}
ServiceInfo_Set_VirtualCard_LoopState(temp_loop,VCard_Info.PortState[temp_loop]);
//2025-09-19 <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VCard_Info.DetInfo.DetWinTotalNum[temp_loop] = temp[8];
@@ -387,11 +626,12 @@ void Dev_VirtualCard_Dis(uint32_t DevAddr)
}
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>%d ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%d ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·:%d <20><>ֵ:%d-%d ʹ<>ܱ<EFBFBD>־:%d - %dS",\
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>%d <20><><EFBFBD><EFBFBD>:%d <20><>ַ:%d <20><>·:%d ״̬:%d <20><>ֵ:%d-%d ʹ<>ܱ<EFBFBD>־:%d - %dS",\
temp_loop,\
VCard_Info.Port_Info[temp_loop].HPort_Type,\
VCard_Info.Port_Info[temp_loop].HPort_Addr,\
VCard_Info.Port_Info[temp_loop].HPort_Loop,\
VCard_Info.PortState[temp_loop],\
VCard_Info.DetInfo.Trigger_Thres[temp_loop],\
VCard_Info.DetInfo.Release_Thres[temp_loop],\
VCard_Info.Port_Info[temp_loop].PortEnFlag,\
@@ -459,216 +699,7 @@ void Dev_VirtualCard_Dis(uint32_t DevAddr)
for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++)
{
switch(VCard_Info.Port_Info[i].HPort_Type)
{
case Dev_Host_LVinput:
tempaddr = Find_AllDevice_List_Information(VCard_Info.Port_Info[i].HPort_Type,VCard_Info.Port_Info[i].HPort_Addr);
if(tempaddr != NULL)
{
SRAM_DMA_Read_Buff((uint8_t *)&DevLVinputInfo,sizeof(NOR_LVINPUT_INFO),tempaddr+Dev_Privately);
if((DevLVinputInfo.DevReadBufLast[VCard_Info.Port_Info[i].HPort_Loop] == KeyPress) \
|| (DevLVinputInfo.DevReadBufLast[VCard_Info.Port_Info[i].HPort_Loop] == KeyHold) )
{
VCard_Info.PortState[i] = KeyPress;
VCard_Info.DetInfo.TriggerNum[i]++;
if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i])
{
VCard_Info.PortStateLast[i] = VCard_Info.PortState[i];
VCard_Info.PortStateAct[i] = 0x03; //<2F><><EFBFBD><EFBFBD><EFBFBD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",i,VCard_Info.PortState[i]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20><><EFBFBD><EFBFBD> - CH%d",VCard_Info.Port_Info[i].HPort_Loop,i);
if(i == 0x00)
{
VCard_Info.CardState = KeyPress;
}
}else{
VCard_Info.PortStateAct[i] = KeyPress; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
else if( DevLVinputInfo.DevReadBufLast[VCard_Info.Port_Info[i].HPort_Loop] == KeyRelease )
{
VCard_Info.PortState[i] = KeyRelease;
if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i])
{
VCard_Info.PortStateLast[i] = VCard_Info.PortState[i];
VCard_Info.PortStateAct[i] = 0x04; //<2F>½<EFBFBD><C2BD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",i,VCard_Info.PortState[i]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20>ͷ<EFBFBD> - CH%d",VCard_Info.Port_Info[i].HPort_Loop,i);
if(i == 0x00)
{
VCard_Info.CardState = KeyRelease;
}
}else{
VCard_Info.PortStateAct[i] = KeyRelease; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
}
break;
case DEV_RS485_CARD:
tempaddr = Find_AllDevice_List_Information(VCard_Info.Port_Info[i].HPort_Type,VCard_Info.Port_Info[i].HPort_Addr);
if(tempaddr != NULL)
{
SRAM_DMA_Read_Buff((uint8_t *)&Rs485CardInfo,sizeof(RS485_CARD_INFO),tempaddr+Dev_Privately);
/*2025-09-03 <20>޸<EFBFBD>RS485ȡ<35><C8A1> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>*/
if(Rs485CardInfo.Rs485CardFlag == 0x01)
{
VCard_Info.PortState[i] = KeyPress;
VCard_Info.DetInfo.TriggerNum[i]++;
if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i])
{
VCard_Info.PortStateLast[i] = VCard_Info.PortState[i];
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",i,VCard_Info.PortState[i]);
if(i == 0x00)
{
VCard_Info.CardState = KeyPress;
}
}
}else {
VCard_Info.PortState[i] = KeyRelease;
if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i])
{
VCard_Info.PortStateLast[i] = VCard_Info.PortState[i];
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",i,VCard_Info.PortState[i]);
if(i == 0x00)
{
VCard_Info.CardState = KeyRelease;
}
}
}
}
break;
case DEV_RS485_SWT:
tempaddr = Find_AllDevice_List_Information(VCard_Info.Port_Info[i].HPort_Type,VCard_Info.Port_Info[i].HPort_Addr);
if(tempaddr != NULL)
{
Device_Public_Information_G BUS_Public; //<2F><><EFBFBD><EFBFBD>
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),tempaddr);
if(BUS_Public.Protocol == 0x03) //<2F><><EFBFBD><EFBFBD>A9IO
{
SRAM_DMA_Read_Buff((uint8_t *)&Rs485SwiInfo,sizeof(RS485_SWI_INFO),tempaddr+Dev_Privately);
/*A9IO <20><><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>߼<EFBFBD><DFBC>޸<EFBFBD>
2025-02-28
1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3BA>ȡA9IO ״̬<D7B4><CCAC><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>һ<EFBFBD><D2BB>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ὣ״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B5BC><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>A9IO<49><4F>״̬<D7B4><CCAC>
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ: <20><>ȡA9IO ״̬<D7B4><CCAC>Ϊʹ<CEAA><CAB9> DevReadBuf_last ״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱA9IO<49><4F><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>жԸñ<D4B8><C3B1><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>޸<EFBFBD>
2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A9IO <20><EFBFBD><E3B0B4><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>߼<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ͷţ<CDB7><C5A3><EFBFBD>һֱ<D2BB><D6B1><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ: <20><><EFBFBD>ӻ<EFBFBD><D3BB>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ㰴<C7B5><E3B0B4><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ź<EFBFBD>3S<33><53>Ч<EFBFBD><D0A7>3S֮<53>󽫸<EFBFBD>״̬<D7B4><CCAC>Ϊ<EFBFBD>ͷ<EFBFBD>״̬
*/
if(Rs485SwiInfo.DevReadBuf_last[VCard_Info.Port_Info[i].HPort_Loop] == KeyPress)
{
if( (VCard_Info.PortState[i] == KeyPress) \
&& ( SysTick_1s - VCard_Info.PortTiggleTick[i] >= 3 ) )
{
VCard_Info.PortTiggleTick[i] = SysTick_1s;
Rs485SwiInfo.DevReadBuf_last[VCard_Info.Port_Info[i].HPort_Loop] = KeyRelease;
VCard_Info.PortState[i] = KeyRelease;
if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i])
{
VCard_Info.PortStateLast[i] = VCard_Info.PortState[i];
VCard_Info.PortStateAct[i] = 0x04; //<2F>½<EFBFBD><C2BD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d:PressRelease",i,VCard_Info.PortState[i]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20><EFBFBD>ͷ<EFBFBD> - CH%d",VCard_Info.Port_Info[i].HPort_Loop);
if(i == 0x00)
{
VCard_Info.CardState = KeyRelease;
}
}else{
VCard_Info.PortStateAct[i] = KeyRelease; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&Rs485SwiInfo, sizeof(RS485_SWI_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),tempaddr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&Rs485SwiInfo,sizeof(RS485_SWI_INFO),tempaddr+Dev_Privately);
}else if( VCard_Info.PortState[i] != KeyPress)
{
VCard_Info.PortTiggleTick[i] = SysTick_1s;
VCard_Info.PortState[i] = KeyPress;
VCard_Info.DetInfo.TriggerNum[i]++;
if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i])
{
VCard_Info.PortStateLast[i] = VCard_Info.PortState[i];
VCard_Info.PortStateAct[i] = 0x03; //<2F><><EFBFBD><EFBFBD><EFBFBD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d:Press",i,VCard_Info.PortState[i]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20><EFBFBD><E3B0B4><EFBFBD><EFBFBD> - CH%d",VCard_Info.Port_Info[i].HPort_Loop);
if(i == 0x00)
{
VCard_Info.CardState = KeyPress;
}
}else{
VCard_Info.PortStateAct[i] = KeyPress; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
}
else if(Rs485SwiInfo.DevReadBuf_last[VCard_Info.Port_Info[i].HPort_Loop] == KeyHold)
{
VCard_Info.PortTiggleTick[i] = SysTick_1s;
VCard_Info.PortState[i] = KeyPress;
VCard_Info.DetInfo.TriggerNum[i]++;
if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i])
{
VCard_Info.PortStateLast[i] = VCard_Info.PortState[i];
VCard_Info.PortStateAct[i] = 0x03; //<2F><><EFBFBD><EFBFBD><EFBFBD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",i,VCard_Info.PortState[i]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20><><EFBFBD><EFBFBD> - CH%d",VCard_Info.Port_Info[i].HPort_Loop);
if(i == 0x00)
{
VCard_Info.CardState = KeyPress;
}
}else{
VCard_Info.PortStateAct[i] = KeyPress; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
else if(Rs485SwiInfo.DevReadBuf_last[VCard_Info.Port_Info[i].HPort_Loop] == KeyRelease)
{
VCard_Info.PortState[i] = KeyRelease;
if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i])
{
VCard_Info.PortStateLast[i] = VCard_Info.PortState[i];
VCard_Info.PortStateAct[i] = 0x04; //<2F>½<EFBFBD><C2BD>ر仯
LOG_LogicInfo_DebugRecord("VCLog:T1:%d:%d",i,VCard_Info.PortState[i]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"VCard <20>˿ڣ<CBBF>%d <20>ͷ<EFBFBD> - CH%d",VCard_Info.Port_Info[i].HPort_Loop);
if(i == 0x00)
{
VCard_Info.CardState = KeyRelease;
}
}else{
VCard_Info.PortStateAct[i] = KeyRelease; //<2F><>ƽ״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD>޵<EFBFBD>ƽ<EFBFBD>
}
}
}
}
break;
default:
break;
}
Dev_VirtualCard_Get_Mapping_Loop_State(&VCard_Info,i); //<2F><>ȡIO״̬ 2026-02-26
/*<2A><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - */
if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) )

View File

@@ -253,7 +253,7 @@
#if (USE_CORE_TYPE == 1) //ʹ<><CAB9>C1F<31><46><EFBFBD>İ<EFBFBD>
#define MCU_TYPE "BLV-C1F" //<2F><><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>
#define APP_NAME "App_L4_C1F_43" //APP<50><50><EFBFBD><EFBFBD> 16Byte
#define APP_NAME "App_L4_C1F_44" //APP<50><50><EFBFBD><EFBFBD> 16Byte
#if (USE_FLOOR_TYPE == 1) //C5<43>װ<EFBFBD>
#define Center_Control_TYPE "BLV-C5" //<2F><><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>
@@ -261,7 +261,7 @@
#if (SoftName_Custom_Enable == 0x00)
#if (LOGIC_FILE_EN == 0x01)
#define SoftwareVer "C1F_A_L4_43_260209" //<2F><><EFBFBD><EFBFBD><EFBFBD>汾 20Byte
#define SoftwareVer "C1F_A_L4_44_260304" //<2F><><EFBFBD><EFBFBD><EFBFBD>汾 20Byte
#else
#define SoftwareVer "C1F_C5_Init220525 " //<2F><><EFBFBD><EFBFBD><EFBFBD>汾 20Byte
#endif

View File

@@ -259,7 +259,8 @@ void Environment_Variable_Init(void)
Launcher_C1F_V04.4
Launcher_C1F_V04.7
*/
if(strncmp((char *)temp_string,"Launcher_C1F_V04.7",strlen("Launcher_C1F_V04.7")) == 0x00)
if( (strncmp((char *)temp_string,"Launcher_C1F_V04.7",strlen("Launcher_C1F_V04.7")) == 0x00)
|| (strncmp((char *)temp_string,"Launcher_C1F_V04.8",strlen("Launcher_C1F_V04.8")) == 0x00) )
{
SRAM_Write_DW(0x05,SRAM_LOG_RCU_Reboot_Reason);
}else{

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

View File

@@ -13,57 +13,114 @@ void TempPrompt_Fun_Init(void)
void AddPrompt_ToList(uint8_t event)
{
if(PlayList.ListNum < LIST_MAXNUM)
// if(PlayList.ListNum < LIST_MAXNUM)
// {
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"AddPrompt_ToList:%d - %d - %d",event,PlayList.ListNum,PlayList.EnFlag);
//// printf("AddPrompt_ToList:%d\n\r",event);
// if(PlayList.ListEnd == LIST_MAXNUM)
// {
// PlayList.ListEnd = 0x00;
// }
//
// switch(event)
// {
// case 0x00: //<2F><><EFBFBD><EFBFBD>
//// printf("<22><><EFBFBD><EFBFBD>:%d\n\r",PlayList.ListEnd);
// PlayList.PlayList[PlayList.ListEnd] = 0xA013;
// PlayList.ListNum++;
// PlayList.ListEnd++;
// break;
// case 0x01: //<2F><><EFBFBD><EFBFBD>
//// printf("<22><><EFBFBD><EFBFBD>:%d\n\r",PlayList.ListEnd);
// PlayList.PlayList[PlayList.ListEnd] = 0xA113;
// PlayList.ListNum++;
// PlayList.ListEnd++;
// break;
// case 0x02: //<2F>ͷ<EFBFBD>
//// printf("<22>ͷ<EFBFBD>:%d\n\r",PlayList.ListEnd);
// PlayList.PlayList[PlayList.ListEnd] = 0xA213;
// PlayList.ListNum++;
// PlayList.ListEnd++;
// break;
// case 0x03: //<2F>ͷ<EFBFBD><CDB7><EFBFBD>
//// printf("<22>ͷ<EFBFBD><CDB7><EFBFBD>:%d\n\r",PlayList.ListEnd);
// PlayList.PlayList[PlayList.ListEnd] = 0xA313;
// PlayList.ListNum++;
// PlayList.ListEnd++;
// break;
// case 0x04: //<2F>з<EFBFBD><D0B7><EFBFBD>
//// printf("<22>з<EFBFBD><D0B7><EFBFBD>:%d\n\r",PlayList.ListEnd);
// PlayList.PlayList[PlayList.ListEnd] = 0xA413;
// PlayList.ListNum++;
// PlayList.ListEnd++;
// break;
// case 0x05: //<2F>߷<EFBFBD><DFB7><EFBFBD>
//// printf("<22>߷<EFBFBD><DFB7><EFBFBD>:%d\n\r",PlayList.ListEnd);
// PlayList.PlayList[PlayList.ListEnd] = 0xA513;
// PlayList.ListNum++;
// PlayList.ListEnd++;
// break;
// default:
// break;
// }
// }
switch(event)
{
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"AddPrompt_ToList:%d - %d - %d",event,PlayList.ListNum,PlayList.EnFlag);
// printf("AddPrompt_ToList:%d\n\r",event);
if(PlayList.ListEnd == LIST_MAXNUM)
{
PlayList.ListEnd = 0x00;
}
switch(event)
{
case 0x00: //<2F><><EFBFBD><EFBFBD>
// printf("<22><><EFBFBD><EFBFBD>:%d\n\r",PlayList.ListEnd);
PlayList.PlayList[PlayList.ListEnd] = 0xA013;
PlayList.ListNum++;
PlayList.ListEnd++;
PlayList.PlayIdnex = 0xA0;
PlayList.play_delay_tick = SysTick_1ms;
break;
case 0x01: //<2F><><EFBFBD><EFBFBD>
// printf("<22><><EFBFBD><EFBFBD>:%d\n\r",PlayList.ListEnd);
PlayList.PlayList[PlayList.ListEnd] = 0xA113;
PlayList.ListNum++;
PlayList.ListEnd++;
PlayList.PlayIdnex = 0xA1;
PlayList.play_delay_tick = SysTick_1ms;
break;
case 0x02: //<2F>ͷ<EFBFBD>
// printf("<22>ͷ<EFBFBD>:%d\n\r",PlayList.ListEnd);
PlayList.PlayList[PlayList.ListEnd] = 0xA213;
PlayList.ListNum++;
PlayList.ListEnd++;
PlayList.PlayIdnex = 0xA2;
PlayList.play_delay_tick = SysTick_1ms;
break;
case 0x03: //<2F>ͷ<EFBFBD><CDB7><EFBFBD>
// printf("<22>ͷ<EFBFBD><CDB7><EFBFBD>:%d\n\r",PlayList.ListEnd);
PlayList.PlayList[PlayList.ListEnd] = 0xA313;
PlayList.ListNum++;
PlayList.ListEnd++;
PlayList.PlayIdnex = 0xA3;
PlayList.play_delay_tick = SysTick_1ms;
break;
case 0x04: //<2F>з<EFBFBD><D0B7><EFBFBD>
// printf("<22>з<EFBFBD><D0B7><EFBFBD>:%d\n\r",PlayList.ListEnd);
PlayList.PlayList[PlayList.ListEnd] = 0xA413;
PlayList.ListNum++;
PlayList.ListEnd++;
PlayList.PlayIdnex = 0xA4;
PlayList.play_delay_tick = SysTick_1ms;
break;
case 0x05: //<2F>߷<EFBFBD><DFB7><EFBFBD>
// printf("<22>߷<EFBFBD><DFB7><EFBFBD>:%d\n\r",PlayList.ListEnd);
PlayList.PlayList[PlayList.ListEnd] = 0xA513;
PlayList.ListNum++;
PlayList.ListEnd++;
PlayList.PlayIdnex = 0xA5;
PlayList.play_delay_tick = SysTick_1ms;
break;
case 0x06: //<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
PlayList.PlayIdnex = 11;
PlayList.play_delay_tick = SysTick_1ms;
break;
case 0x07: //<2F>յ<EFBFBD><D5B5>ػ<EFBFBD>
PlayList.PlayIdnex = 12;
PlayList.play_delay_tick = SysTick_1ms;
break;
default:
break;
}
}
}
@@ -72,41 +129,55 @@ void TempPrompt_Fun_Task(void)
Device_Public_Information_G BUS_Public; //<2F><><EFBFBD><EFBFBD>
BUS_C5MUSIC_INFO C5Music_Info;
if((PlayList.DevAddr == NULL) || (PlayList.EnFlag != 0x01))
if( (PlayList.DevAddr == NULL) || (PlayList.EnFlag != 0x01) )
{
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"TempPrompt_Fun_Task Addr Or EnFlag 0");
return;
}
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),PlayList.DevAddr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SRAM_DMA_Read_Buff((uint8_t *)&C5Music_Info,sizeof(BUS_C5MUSIC_INFO),PlayList.DevAddr+Dev_Privately);
if((PlayList.EnFlag == 0x01) && (BUS_Public.type == DEV_C5MUSIC_Type) && (BUS_Public.Protocol == 0x01))
if( SysTick_1ms - PlayList.scan_tick >= 50)
{
if(NULL != BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get)
PlayList.scan_tick = SysTick_1ms;
if( SysTick_1ms - PlayList.play_delay_tick >= 3000 )
{
PlayList.PlayState = BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get(PlayList.DevAddr,0x00);
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"TempPrompt_Fun_Task state<74><65>%d",PlayList.PlayState);
if(PlayList.ListNum > 0x00)
//<2F><><EFBFBD>ų<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PlayList.play_delay_tick = SysTick_1ms;
PlayList.PlayIdnex = 0x00;
}
if( PlayList.PlayIdnex == 0x00 ) return; //<2F><>ǰû<C7B0><C3BB><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
/*У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>*/
if(Device_Data_Check(PlayList.DevAddr) == 0)
{
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),PlayList.DevAddr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SRAM_DMA_Read_Buff((uint8_t *)&C5Music_Info,sizeof(BUS_C5MUSIC_INFO),PlayList.DevAddr+Dev_Privately);
if((PlayList.EnFlag == 0x01) && (BUS_Public.type == DEV_C5MUSIC_Type) && (BUS_Public.Protocol == 0x01))
{
if((PlayList.PlayState == 0x02) \
|| (~((PlayList.PlayState == 0x01) && (C5Music_Info.now_playback_dir == 0x01) && \
(C5Music_Info.now_playback_idx >= 160 && C5Music_Info.now_playback_idx <= 165))))
{
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"TempPrompt_Fun_Task 2 Index:%d",PlayList.PlayIndex);
// printf("TempPrompt_Fun_Task 2 Index:%d\n\r",PlayList.PlayIndex);
BUS_Public.DevFunInfo.Dev_Output_Ctrl(NULL, NULL, PlayList.DevAddr, 0x00, PlayList.PlayList[PlayList.PlayIndex]);
PlayList.ListNum--;
PlayList.PlayIndex++;
if(PlayList.PlayIndex == LIST_MAXNUM)
{
PlayList.PlayIndex = 0x00;
}
}
//ֻ<>в<EFBFBD><D0B2><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>
if( (C5Music_Info.now_playback_status == BLV_C5MUSIC_Playing) && (C5Music_Info.now_playback_dir == BLV_C5MUSIC_Warning_Dir) ) return;
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>͵Ļ<CDB5><C4BB><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>
if( ((C5Music_Info.control_flag & C5MUSIC_Specify_Play_Flag) != 0x00 ) && (C5Music_Info.assign_dir == BLV_C5MUSIC_Warning_Dir) ) return;
C5Music_Info.playback_fun = BLV_C5MUSIC_Forestall; //<2F><><EFBFBD><EFBFBD>ģʽ - <20><><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>
C5Music_Info.assign_dir = BLV_C5MUSIC_Warning_Dir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
C5Music_Info.assign_playback_idx = PlayList.PlayIdnex; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
C5Music_Info.control_flag |= C5MUSIC_Specify_Play_Flag; //<2F><><EFBFBD>÷<EFBFBD><C3B7>ͱ<EFBFBD>־λ
PlayList.PlayIdnex = 0x00;
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&C5Music_Info, sizeof(BUS_C5MUSIC_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),PlayList.DevAddr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&C5Music_Info,sizeof(BUS_C5MUSIC_INFO),PlayList.DevAddr+Dev_Privately);
}
}
}
}

View File

@@ -9,12 +9,11 @@
typedef struct
{
uint8_t EnFlag; //<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
uint8_t PlayIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
uint8_t PlayState; //<2F><><EFBFBD><EFBFBD>״̬
uint8_t ListNum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t ListEnd; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
uint16_t PlayList[LIST_MAXNUM]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
uint8_t PlayIdnex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t DevAddr; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ַ
uint32_t scan_tick; //ɨ<><C9A8>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
uint32_t play_delay_tick; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1><EFBFBD><EFBFBD>
}__attribute__ ((__packed__))MusicList_Struct;