feat:添加杨格锁驱动、对接空调网关、修改无卡取电驱动

1、添加杨格蓝牙锁驱动
  -> 驱动文件名:BLV_485_Dev_YangGeLockFun
 2、对接红外转发设备协议,添加 南京尚景添IRACC中央空调驱动
  -> 设备具体型号:南京尚景添IRACC中央空调协议转换模块,型号:IRACC-SWG-H
  -> 驱动文件名:BLV_485_Dev_ShangJingTianIrSendFun
 3、修改无卡取电驱动
  -> 长时间判断修改:
   - 有人-》无人:所有参与长时间检测的传感器采用与逻辑,即,但所有传感器都判断为无人,才判断为房间无人
   - 无人-》有人:所有参与长时间检测的传感器采用或逻辑,即,任何一个传感器判断到有人,即判断为房间有人
   - 原有机制:在房间有人、无人状态之间切换时,所有传感器buffer会做一个全量填充(有人->1,无人->0),机制保留
  -> 修改长时间缓冲区填充问题,导致长时间判断无法触发阈值 == 已解决
This commit is contained in:
caocong
2026-02-09 17:40:24 +08:00
parent ebd072daf5
commit 62d5188e53
33 changed files with 31056 additions and 29221 deletions

View File

@@ -526,7 +526,6 @@ uint8_t BLV_Rs485_Card_Check(uint32_t dev_addr,uint32_t data_addr,uint16_t len)
if(Rs485CardInfo.Rs485CardFlag == 0x01) if(Rs485CardInfo.Rs485CardFlag == 0x01)
{ {
SRAM_Write_Byte(0x01,SRAM_UDP_ELEReport_CardState); //<2F><>UDP <20>ϱ<EFBFBD>ȡ<EFBFBD><C8A1>״̬ʹ<CCAC><CAB9> SRAM_Write_Byte(0x01,SRAM_UDP_ELEReport_CardState); //<2F><>UDP <20>ϱ<EFBFBD>ȡ<EFBFBD><C8A1>״̬ʹ<CCAC><CAB9>
}else { }else {
SRAM_Write_Byte(0x02,SRAM_UDP_ELEReport_CardState); //<2F><>UDP <20>ϱ<EFBFBD>ȡ<EFBFBD><C8A1>״̬ʹ<CCAC><CAB9> SRAM_Write_Byte(0x02,SRAM_UDP_ELEReport_CardState); //<2F><>UDP <20>ϱ<EFBFBD>ȡ<EFBFBD><C8A1>״̬ʹ<CCAC><CAB9>
} }

View File

@@ -36,7 +36,7 @@ void BLV_RS485_EnrgyMonitor_Data_For_Logic_Init(LOGICFILE_DEVICE_INFO *dev_info,
//Rs485EnergyInfo.send_flag |= BLV_Energy_ClearStat_Flag; //Rs485EnergyInfo.send_flag |= BLV_Energy_ClearStat_Flag;
Rs485EnergyInfo.send_flag |= BLV_Energy_ReadVer_Flag; Rs485EnergyInfo.send_flag |= BLV_Energy_ReadVer_Flag;
Rs485EnergyInfo.send_flag |= BLV_Energy_Inquire_Flag; Rs485EnergyInfo.send_flag |= BLV_Energy_Inquire_Flag;
Rs485EnergyInfo.periodic_time = 5000; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> Rs485EnergyInfo.periodic_time = 15000; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
Rs485EnergyInfo.periodic_enable = 0x01; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʹ<EFBFBD><CAB9> Rs485EnergyInfo.periodic_enable = 0x01; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʹ<EFBFBD><CAB9>
BUS_Public.port = Active_Port; //<2F><EFBFBD><E8B1B8><EFBFBD>Ͷ˿<CDB6> BUS_Public.port = Active_Port; //<2F><EFBFBD><E8B1B8><EFBFBD>Ͷ˿<CDB6>
@@ -46,7 +46,7 @@ void BLV_RS485_EnrgyMonitor_Data_For_Logic_Init(LOGICFILE_DEVICE_INFO *dev_info,
case Polling_Port: //<2F><>ѯ<EFBFBD>˿<EFBFBD> case Polling_Port: //<2F><>ѯ<EFBFBD>˿<EFBFBD>
Rs485EnergyInfo.send_flag |= BLV_Energy_SetInfo_Flag; Rs485EnergyInfo.send_flag |= BLV_Energy_SetInfo_Flag;
Rs485EnergyInfo.send_flag |= BLV_Energy_ReadVer_Flag; Rs485EnergyInfo.send_flag |= BLV_Energy_ReadVer_Flag;
Rs485EnergyInfo.periodic_time = 5000; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> Rs485EnergyInfo.periodic_time = 15000; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
Rs485EnergyInfo.periodic_enable = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʹ<EFBFBD><CAB9> Rs485EnergyInfo.periodic_enable = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʹ<EFBFBD><CAB9>
BUS_Public.port = Polling_Port; //<2F><EFBFBD><E8B1B8><EFBFBD>Ͷ˿<CDB6> BUS_Public.port = Polling_Port; //<2F><EFBFBD><E8B1B8><EFBFBD>Ͷ˿<CDB6>

View File

@@ -20,8 +20,8 @@
*/ */
#include "BLV_485_Dev_IrSendFun.h" #include "BLV_485_Dev_IrSendFun.h"
#include "BLV_485_Dev_ShangJingTianIrSendFun.h"
#include "check_fun.h" #include "check_fun.h"
#include "string.h" #include "string.h"
#include "SPI_SRAM.h" #include "SPI_SRAM.h"
@@ -44,8 +44,10 @@ typedef void (*DevFunP)(Device_Public_Information_G *BUS_Public, RS485_IR_INFO *
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/ /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/
#define RS485_DEV_PRO_FUN_01 DevExistJudgge(Dev_485_IrSend_Polling_Flag, RS485_IrSend_Polling_Init) #define RS485_DEV_PRO_FUN_01 DevExistJudgge(Dev_485_IrSend_Polling_Flag, RS485_IrSend_Polling_Init)
#define RS485_DEV_PRO_FUN_02 DevExistJudgge(Dev_485_IrSend_Active_Flag, RS485_IrSend_Active_Init) #define RS485_DEV_PRO_FUN_02 DevExistJudgge(Dev_485_IrSend_Active_Flag, RS485_IrSend_Active_Init)
#define RS485_DEV_PRO_FUN_03 ((DevFunP)NULL) #define RS485_DEV_PRO_FUN_03 DevExistJudgge(Dev_485_IrSend_Polling_Flag, RS485_SJTIrSend_Polling_Init)
#define RS485_DEV_PRO_FUN_04 ((DevFunP)NULL) #define RS485_DEV_PRO_FUN_04 DevExistJudgge(Dev_485_IrSend_Active_Flag, RS485_SJTIrSend_Active_Init)
#define RS485_DEV_PRO_FUN_05 ((DevFunP)NULL)
#define RS485_DEV_PRO_FUN_06 ((DevFunP)NULL)
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/

View File

@@ -77,6 +77,11 @@ typedef struct
// CFG_Dev_AddP RFCfgDevAddRs485; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>485 // CFG_Dev_AddP RFCfgDevAddRs485; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>485
/*<2A><><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ /*<2A><><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*<2A>Ͼ<EFBFBD><CFBE>о<EFBFBD><D0BE><EFBFBD>-IRACC<43><43><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>Э<EFBFBD><D0AD>ת<EFBFBD><D7AA>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/
/*<2A>Ͼ<EFBFBD><CFBE>о<EFBFBD><D0BE><EFBFBD>-IRACC<43><43><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>Э<EFBFBD><D0AD>ת<EFBFBD><D7AA>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
RS485_IR_LoopStateRead_ptr RS485_IR_LoopStateRead; //<2F><>ȡ RS485_IR_LoopStateRead_ptr RS485_IR_LoopStateRead; //<2F><>ȡ
RS485_IR_IndiCtrl_ptr RS485_IR_IndiCtrl; //ָʾ<D6B8>Ƹ<EFBFBD>ֵ RS485_IR_IndiCtrl_ptr RS485_IR_IndiCtrl; //ָʾ<D6B8>Ƹ<EFBFBD>ֵ

View File

@@ -0,0 +1,420 @@
/**
******************************************************************************
* @file : BLV_485_Dev_ShangJingTianIrSendFun.c
* @author : Ҷ<><D2B6><EFBFBD><EFBFBD>
* @version : V01.01.01
* @date : 2026-01-05
* @brief : <20>Խ<EFBFBD> <20><><EFBFBD>Ͼ<EFBFBD><CFBE>о<EFBFBD><D0BE><EFBFBD>IRACC<43><43><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>Э<EFBFBD><D0AD>ת<EFBFBD><D7AA>ģ<EFBFBD><EFBFBD>ͺ<EFBFBD>:IRACC-SWG-H<><48> <20>
* @attention : <20><><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD> <20><>
* ִ<>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD> <20><>
* ִ<>з<EFBFBD>ʽ<EFBFBD><CABD>
* <09>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
* @note : 1<><31><EFBFBD><EFBFBD><E8B1B8>ַΪ<D6B7><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
* 2<><32><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><E8B1B8>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ַ*6
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD>״̬
* 2<><32><EFBFBD>Ա<EFBFBD>
* 3<><33><EFBFBD>·<EFBFBD><C2B7>¿<EFBFBD>״̬
******************************************************************************
*/
#include "BLV_485_Dev_ShangJingTianIrSendFun.h"
#include "includes.h"
/*<2A><EFBFBD><E6BCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʼ*/
#include "BLV_485_Dev_TempFun.h"
#include "BLV_485_Dev_C7TFun.h"
/*<2A><EFBFBD><E6BCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>*/
uint8_t SJT_Rs485_IrDis(uint32_t dev_addr);
uint8_t SJT_Rs485_IrCheck(uint32_t dev_addr,uint32_t data_addr,uint16_t len);
void SJT_IrCtrl_State(uint32_t CfgDevAddIn, uint16_t DevInputAddr,uint32_t devaddr,uint16_t DevOutputLoop,uint16_t state);
void RS485_SJTIrSend_Polling_Init(Device_Public_Information_G *BUS_Public, RS485_IR_INFO *RS485IRInfo)
{
BUS_Public->polling_cf = (uint32_t)&SJT_Rs485_IrDis;
BUS_Public->processing_cf = (uint32_t)&SJT_Rs485_IrCheck;
BUS_Public->DevFunInfo.Dev_Output_Ctrl = SJT_IrCtrl_State;
}
void RS485_SJTIrSend_Active_Init(Device_Public_Information_G *BUS_Public, RS485_IR_INFO *RS485IRInfo)
{
BUS_Public->polling_cf = (uint32_t)&SJT_Rs485_IrDis;
BUS_Public->processing_cf = (uint32_t)&SJT_Rs485_IrCheck;
BUS_Public->DevFunInfo.Dev_Output_Ctrl = SJT_IrCtrl_State;
}
/****************************************************************************
* @name : SJTIR_Rs485_Air_Ctrl
* @Description : <20>¿<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>
* @param :
* dev_addr : <20><EFBFBD><E8B1B8>ʼ<EFBFBD><CABC>ַ
* @retval : 0x00:<3A><><EFBFBD>ݷ<EFBFBD><DDB7>ͳɹ<CDB3><C9B9><EFBFBD>0xF0:<3A><><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
* @attention : һ<><D2BB><EFBFBD>յ<EFBFBD><D5B5>¿<EFBFBD>״̬<D7B4><CCAC>ռ<EFBFBD><D5BC>6<EFBFBD><36><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>12<31><32><EFBFBD>ֽ<EFBFBD>
*******************************************************************************/
void SJTIR_Rs485_Air_Ctrl(uint32_t dev_addr, RS485_IR_INFO *RS485IRInfo)
{
uint8_t IrSend[20];
uint8_t port = SRAM_Read_Byte(dev_addr+Dev_port);
uint16_t SJT_reg = TEMPREG_START,SJT_RegLen = CTRLTEMPREG;
uint16_t SJT_temp = 0x00,Send_CRC = 0x00;
IrSend[0] = SRAM_Read_Byte(dev_addr+Dev_Addr); //<2F><EFBFBD><E8B1B8>ַ
IrSend[1] = WRITEMULTREGCMD; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IrSend[2] = ((SJT_reg >> 8)&0xFF); //<2F><><EFBFBD>ƵļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>ĸ<EFBFBD>λ
IrSend[3] = (SJT_reg & 0xFF); //<2F><><EFBFBD>ƵļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>ĵ<EFBFBD>λ
IrSend[4] = ((SJT_RegLen >> 8)&0xFF); //<2F><><EFBFBD>ƵļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>λ
IrSend[5] = (SJT_RegLen & 0xFF); //<2F><><EFBFBD>ƵļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ
IrSend[6] = 0x06; //<2F>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>2<EFBFBD>ֽ<EFBFBD>
//RCU<43><55><EFBFBD><EFBFBD>0:ֹͣ<CDA3><D6B9>10<31><30><EFBFBD>ͣ<EFBFBD>30<33><30><EFBFBD>У<EFBFBD>50<35><30><EFBFBD><EFBFBD>, 0xFF<46><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(RS485IRInfo->AirInfo[3] == 0){
IrSend[7] = 0x10;
}else if(RS485IRInfo->AirInfo[3] == 1){
IrSend[7] = 0x10;
}else if(RS485IRInfo->AirInfo[3] == 2){
IrSend[7] = 0x30;
}else if(RS485IRInfo->AirInfo[3] == 3){
IrSend[7] = 0x50;
}else {
IrSend[7] = 0xFF;
}
//<2F><><EFBFBD>ػ<EFBFBD>״̬<D7B4><CCAC>60<36><30><EFBFBD>أ<EFBFBD>61<36><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FF<46><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(RS485IRInfo->AirInfo[0] == 0x00){
IrSend[8] = 0x60;
}else if(RS485IRInfo->AirInfo[0] == 0x01){
IrSend[8] = 0x61;
}else{
IrSend[8] = 0xFF;
}
//<2F>յ<EFBFBD>ģʽ<C4A3><CABD>00 02<30><32><EFBFBD><EFBFBD><EFBFBD>䣬 00 01<30><31><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD> 00 00<30><30>ͨ<EFBFBD><CDA8>
IrSend[9] = 0x00;
if(RS485IRInfo->AirInfo[1] == 0x00){
IrSend[10] = 0x02;
}else if(RS485IRInfo->AirInfo[1] == 0x01){
IrSend[10] = 0x01;
}else if(RS485IRInfo->AirInfo[1] == 0x02){
IrSend[10] = 0x00;
}else{
IrSend[10] = 0x00;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ȣ<C2B6>160-320
if(RS485IRInfo->AirInfo[2] < SJTTEM_MIN_SET){
SJT_temp = (SJTTEM_MIN_SET*10);
}else if(RS485IRInfo->AirInfo[2] > SJTTEM_MAX_SET){
SJT_temp = (SJTTEM_MAX_SET*10);
}else{
SJT_temp = RS485IRInfo->AirInfo[2]*10;
}
IrSend[11] = ((SJT_temp >> 8)&0xFF);
IrSend[12] = (SJT_temp & 0xFF);
Send_CRC = NetCRC16_2(IrSend,13);
IrSend[13] = (Send_CRC & 0xFF);
IrSend[14] = ((Send_CRC >> 8)&0xFF);
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
MCU485_SendString(port,IrSend,15);
/*<2A><>־<EFBFBD><D6BE>¼*/
LOG_Device_COMM_Send_Control_Record2(dev_addr+Dev_port,dev_addr+Dev_baud,IrSend,15);
}
/****************************************************************************
* @name : SJT_Rs485_IrDis
* @Description : <20>Ͼ<EFBFBD><CFBE>о<EFBFBD><D0BE><EFBFBD>IRACC<43><43><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>Э<EFBFBD><D0AD>ת<EFBFBD><D7AA>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>
* @param :
* dev_addr : <20>豸485<38><35><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
* @retval : 0x00:<3A><><EFBFBD>ݷ<EFBFBD><DDB7>ͳɹ<CDB3><C9B9><EFBFBD>0xF0:<3A><><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
* @attention : һ<><D2BB><EFBFBD>豸ֻ<E8B1B8><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>յ<EFBFBD><D5B5>ڻ<EFBFBD>
*******************************************************************************/
uint8_t SJT_Rs485_IrDis(uint32_t dev_addr)
{
uint8_t i;
uint8_t Ret = RS485OCCUPYNOTIME;
Device_Public_Information_G BUS_Public;
RS485_IR_INFO RS485IRInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD>
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),dev_addr);
SRAM_DMA_Read_Buff((uint8_t *)&RS485IRInfo,sizeof(RS485_IR_INFO),dev_addr+Dev_Privately);
for(i = 0; i < 4; i++)
{
if(RS485IRInfo.AirInfoLast[i] != RS485IRInfo.AirInfo[i])
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"SJT,<2C>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
RS485IRInfo.IrCtrlAirFlag = 0x01;
RS485IRInfo.IrCtrlAirCnt = SJT_IRCtrlSendMax;
if((0x00 == i)&&(0x01 == RS485IRInfo.AirInfo[i])) //<2F>ɹص<C9B9><D8B5><EFBFBD>
{
RS485IRInfo.AirOpenFlag = 0x00; //<2F>ñ<EFBFBD>־λ <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>Ļظ<C4BB><D8B8>󣬻<EFBFBD><F3A3ACBB><EFBFBD>һ<EFBFBD>ο<EFBFBD><CEBF>ƵĻ<C6B5><C4BB><EFBFBD> //20250811 <20>رմ˹<D5B4><CBB9>ܲ<EFBFBD><DCB2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
memcpy(RS485IRInfo.AirInfoLast, RS485IRInfo.AirInfo, 4);
break;
}
}
if(0x01 == RS485IRInfo.IrCtrlAirFlag)
{
if(0x00 != RS485IRInfo.IrCtrlAirCnt)
{
RS485IRInfo.IrCtrlAirCnt--;
}
else
{
RS485IRInfo.AirOpenFlag = 0x00; //<2F><><EFBFBD>ο<EFBFBD><CEBF>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
RS485IRInfo.IrCtrlAirFlag = 0x00;
}
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>ͣ<EFBFBD>SendCnt:%d",RS485IRInfo.IrCtrlAirCnt);
SJTIR_Rs485_Air_Ctrl(dev_addr, &RS485IRInfo);
/*ͨѶͳ<D1B6>Ƽ<EFBFBD>¼*/
BLV_Communication_Record(&RS485IRInfo.comm_record,0x01,0x00);
Ret = RS485OCCUPYTIME;
}
if(RS485OCCUPYTIME == Ret)
{
if(RS485IRInfo.DevSendCnt > SJT_IRCtrlSendMax)
{
if(RS485IRInfo.DevOffline != DEV_IS_OFFLINE)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"Dev_SJTIRSend LogInfo_Device_Offline...........");
LOG_Device_Online_Record(DEV_IRTYPE,BUS_Public.addr,LogInfo_Device_Offline); //<2F><>¼<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>SRAM_Read_Byte(dev_addr+Dev_Addr)
}
RS485IRInfo.DevOffline = DEV_IS_OFFLINE; //<2F><><EFBFBD><EFBFBD>
if(RS485IRInfo.DevOffline != RS485IRInfo.DevOfflineLast) //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
{
RS485IRInfo.DevOfflineLast = RS485IRInfo.DevOffline; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
Write_Device_Fault_State(BUS_Public.type,BUS_Public.addr,In_ErrFun_LineState,DEV_IS_OFFLINE); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬<D7B4><CCAC>SRAM
}
}
else
{
RS485IRInfo.DevSendCnt++;
}
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&RS485IRInfo, sizeof(RS485_IR_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),dev_addr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&RS485IRInfo,sizeof(RS485_IR_INFO),dev_addr+Dev_Privately);
}
return Ret;
}
/********************************************************************************
* @name : SJT_Rs485_IrCheck
* @Description : <20>Ͼ<EFBFBD><CFBE>о<EFBFBD><D0BE><EFBFBD>IRACC<43><43><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>Э<EFBFBD><D0AD>ת<EFBFBD><D7AA>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param :
* dev_addr : <20><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2>ַ, data_addr : <20><><EFBFBD>ݵ<EFBFBD>ַ, len : <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
* @retval : 0x00:<3A><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>,0x01:<3A><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
* @attention : һ<><D2BB><EFBFBD>豸ֻ<E8B1B8><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>յ<EFBFBD><D5B5>ڻ<EFBFBD>
**********************************************************************************/
uint8_t SJT_Rs485_IrCheck(uint32_t dev_addr,uint32_t data_addr,uint16_t len)
{
if( (len > RECVDATA_LEN_MAX)||(len < RECVDATA_LEN_MIN) )
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"SJT_IRSend RecvLen Fail!");
return 0x01;
}
/*<2A><>ǰֻ<C7B0><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>üĴ<C3BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļظ<C4BB>*/
if(0x08 != len)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD>Ȳ<EFBFBD><EFBFBD><EFBFBD>: %d ",len);
return 0x02;
}
uint8_t data[RECVDATA_LEN_MAX];
uint8_t rev = 0x01;
uint16_t crc_val = 0x00;
uint16_t temp = 0x00;
Device_Public_Information_G BUS_Public;
RS485_IR_INFO RS485IRInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD>
memset(data,0x00,RECVDATA_LEN_MAX);
SRAM_DMA_Read_Buff(data,len,data_addr);
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),dev_addr);
if(data[0] != BUS_Public.addr)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d!!",data[0]);
return 0x03;
}
crc_val = data[len-2] + (data[len-1]<<8);
if(crc_val == NetCRC16_2(data,len-2))
{
rev = 0x00;
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CRCУ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>,CMD: %02x",data[1]);
SRAM_DMA_Read_Buff((uint8_t *)&RS485IRInfo,sizeof(RS485_IR_INFO),dev_addr+Dev_Privately);
if(RS485IRInfo.DevOffline == DEV_IS_OFFLINE)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"Dev_SJTIrSend LogInfo_Device_Online...........");
LOG_Device_Online_Record(DEV_SWI_TYPE,BUS_Public.addr,LogInfo_Device_Online); //<2F><>¼<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
}
BLV_Communication_Record(&RS485IRInfo.comm_record,0x02,0x01); //<2F><>¼ͨѶ<CDA8>ɹ<EFBFBD>
RS485IRInfo.DevSendCnt = 0x00;
RS485IRInfo.DevOffline = DEV_IS_ONLINE; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
if(RS485IRInfo.DevOffline != RS485IRInfo.DevOfflineLast) //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
{
RS485IRInfo.DevOfflineLast = RS485IRInfo.DevOffline; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
Write_Device_Fault_State(BUS_Public.type,BUS_Public.addr,In_ErrFun_LineState,DEV_IS_ONLINE); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬<D7B4><CCAC>SRAM
}
switch(data[1]) //<2F>Ͼ<EFBFBD><CFBE>о<EFBFBD><D0BE><EFBFBD>IRACC<43><43><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>Э<EFBFBD><D0AD>ת<EFBFBD><D7AA>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
case READREGCMD: //<2F><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
/*<2A><>־<EFBFBD><D6BE>¼*/
LOG_Device_COMM_Control_Reply_Record(BUS_Public.port, BUS_Public.baud,data,len);
break;
case WRITEONLYREGCMD: //д<><D0B4><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
/*<2A><>־<EFBFBD><D6BE>¼*/
LOG_Device_COMM_Control_Reply_Record(BUS_Public.port, BUS_Public.baud,data,len);
break;
case WRITEMULTREGCMD: //д<><D0B4><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
temp = (data[2]<<8) + (data[3]);
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD>ƻظ<EFBFBD><EFBFBD><EFBFBD>Reg: %04X",temp);
if(temp == TEMPREG_START)
{
if(0x01 == RS485IRInfo.AirOpenFlag) //
{
RS485IRInfo.AirOpenFlag = 0x00;
//RS485IRInfo.IrCtrlAirFlag = 0x01; //<2F>Ե<EFBFBD>ǰ<EFBFBD>Ŀյ<C4BF><D5B5><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD>Ӷ<EFBFBD>һ<EFBFBD>ο<EFBFBD><CEBF><EFBFBD>
}
else
{
RS485IRInfo.IrCtrlAirFlag = 0x00;
}
}
/*<2A><>־<EFBFBD><D6BE>¼*/
LOG_Device_COMM_Control_Reply_Record(BUS_Public.port, BUS_Public.baud,data,len);
break;
default:
break;
}
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&RS485IRInfo, sizeof(RS485_IR_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),dev_addr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&RS485IRInfo,sizeof(RS485_IR_INFO),dev_addr+Dev_Privately);
}else{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CRC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %04x",crc_val);
}
return rev;
}
/*******************************************************************************
* @FunctionName : Ir_Control_State
* @Description : <20>Ͼ<EFBFBD><CFBE>о<EFBFBD><D0BE><EFBFBD>IRACC<43><43><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>Э<EFBFBD><D0AD>ת<EFBFBD><D7AA>ģ<EFBFBD><C4A3>״̬<D7B4><CCAC><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>
* @Input : DevaddrIn : <20><><EFBFBD><EFBFBD><EFBFBD>豸, devaddr : <20><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2>ַ, state : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @Retval : <20><>
* @nota : ֻ<><D6BB><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>
*******************************************************************************/
void SJT_IrCtrl_State(uint32_t CfgDevAddIn, uint16_t DevInputAddr,uint32_t devaddr,uint16_t DevOutputLoop,uint16_t state)
{
uint8_t rev = 0x00;
Device_Public_Information_G BUS_Public;
RS485_IR_INFO RS485IRInfo;
if(devaddr == 0x00) return;
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),devaddr);
SRAM_DMA_Read_Buff((uint8_t *)&RS485IRInfo,sizeof(RS485_IR_INFO),devaddr+Dev_Privately);
Dbg_Print_Buff(DBG_BIT_DEVICE_STATUS_bit,"RS485IRInfo.AirInfo start:", RS485IRInfo.AirInfo, 4);
if((NULL != CfgDevAddIn) && (DEV_RS485_TEMP == SRAM_Read_Byte(CfgDevAddIn+Dev_Type))) //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
RS485_TEMP_INFO Rs485Tem;
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD>¿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>");
SRAM_DMA_Read_Buff((uint8_t *)&Rs485Tem,sizeof(RS485_TEMP_INFO),CfgDevAddIn+Dev_Privately);
switch(Rs485Tem.TemState.on_off)
{
case 0x01: RS485IRInfo.AirInfo[0] = 0x01; break; //1<><31>
case 0x00: RS485IRInfo.AirInfo[0] = 0x00; break; //0<><30>
default: break;
}
switch(Rs485Tem.TemState.mode)
{
case TEMP_COLD: RS485IRInfo.AirInfo[1] = 0; break; //<2F><><EFBFBD><EFBFBD>
case TEMP_HOT: RS485IRInfo.AirInfo[1] = 1; break; //<2F><><EFBFBD><EFBFBD>
case TEMP_WIND: RS485IRInfo.AirInfo[1] = 2; break; //<2F>ͷ<EFBFBD>
default: break;
}
// RS485IRInfo.AirInfo[2] = Rs485Tem.TemState.set_t;
if(Rs485Tem.TemState.set_t==0){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Rs485Tem.TemState.set_t=31;
RS485IRInfo.AirInfo[2] = Rs485Tem.TemState.set_t+1;
}else{
RS485IRInfo.AirInfo[2] = Rs485Tem.TemState.set_t;
}
if(TEMP_FANAUTO == Rs485Tem.TemState.fan){ //<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>
RS485IRInfo.AirInfo[3] = 2; //<2F><><EFBFBD><EFBFBD>
}else{ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RS485IRInfo.AirInfo[3] = Rs485Tem.TemState.fan; //<2F><><EFBFBD><EFBFBD>
}
rev = 0x01;
}
Dbg_Print_Buff(DBG_BIT_DEVICE_STATUS_bit,"RS485IRInfo.AirInfo end:", RS485IRInfo.AirInfo, 4);
if(rev != 0x00)
{
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&RS485IRInfo, sizeof(RS485_IR_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),devaddr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&RS485IRInfo,sizeof(RS485_IR_INFO),devaddr+Dev_Privately);
}
}

View File

@@ -0,0 +1,40 @@
#ifndef __BLV_485_DEV_SHANGJINGTIANIRSENDFUN_H__
#define __BLV_485_DEV_SHANGJINGTIANIRSENDFUN_H__
#include "stdint.h"
#include "BLV_485_Protocol.h"
#include "BLV_All_Dev_Init.h"
#include "BLV_485_Dev_IrSendFun.h"
#define SJTTEM_MIN_SET 0x10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SJTTEM_MAX_SET 0x20 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SJT_IRCtrlSendMax 0x03 //<2F><><EFBFBD>Ʒ<EFBFBD><C6B7>ʹ<EFBFBD><CDB4><EFBFBD>
/*<2A>Խ<EFBFBD><D4BD>豸Ϊ<E8B1B8><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>յ<EFBFBD><D5B5>ڻ<EFBFBD>*/
#define RECVDATA_LEN_MAX 17 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD>
#define RECVDATA_LEN_MIN 8 //<2F><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
#define TEMPREG_START 0x07D0 //<2F>յ<EFBFBD><D5B5>¿<EFBFBD>״̬<D7B4><CCAC>ʵ<EFBFBD>ʵ<EFBFBD>ַ<EFBFBD><D6B7>һ,<2C><>ʼ<EFBFBD><CABC>ַΪ32001,<2C><><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF>ַΪ02000 == 0x07D0
#define TEMPCONNECTREG_START 0x0000 //<2F>յ<EFBFBD><D5B5>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַΪ30001,<2C>Ĵ<EFBFBD><C4B4><EFBFBD>30001<30>ĵ<EFBFBD>ַΪ00000 == 0x0000
#define CTRLTEMPREG 0x03 //<2F><><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>״̬<D7B4><CCAC>һ̨<D2BB>յ<EFBFBD><D5B5><EFBFBD>3<EFBFBD><33><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define ONLYTEMPREG 0x06 //<2F><>ѯһ<D1AF><D2BB><EFBFBD>յ<EFBFBD><D5B5>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD>¿<EFBFBD>״̬ռ<CCAC><D5BC>6<EFBFBD><36><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define READREGCMD 0x04 //<2F><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define WRITEONLYREGCMD 0x06 //д<><D0B4><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define WRITEMULTREGCMD 0x10 //д<><D0B4><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define WRITETEMPTYPE 0X05 //<2F><>ѯ/<2F><><EFBFBD>ÿյ<C3BF><D5B5>ͺ<EFBFBD>
void RS485_SJTIrSend_Polling_Init(Device_Public_Information_G *BUS_Public, RS485_IR_INFO *RS485IRInfo);
void RS485_SJTIrSend_Active_Init(Device_Public_Information_G *BUS_Public, RS485_IR_INFO *RS485IRInfo);
#endif

View File

@@ -23,7 +23,7 @@
#include "BLV_485_Dev_BLWLockFun.h" #include "BLV_485_Dev_BLWLockFun.h"
#include "BLV_485_Dev_FreegoLockFun.h" #include "BLV_485_Dev_FreegoLockFun.h"
#include "BLV_485_Dev_ChuangJiaLockFun.h" #include "BLV_485_Dev_ChuangJiaLockFun.h"
#include "BLV_485_Dev_YangGeLockFun.h"
/*<2A><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>*/ /*<2A><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>*/
#define RFLOCKCYCLEWAITTIMEOUT 5000 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF>ʱ<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ #define RFLOCKCYCLEWAITTIMEOUT 5000 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF>ʱ<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ
@@ -34,8 +34,9 @@ typedef void (*DevFunP)(Device_Public_Information_G *BUS_Public, RS485_WxLock_IN
#define RS485_DEV_PRO_FUN_01 DevExistJudgge(RS485_WxLock_BLW_Flag, BLW_RS485_WxLockFun_Init)//((DevFunP)NULL) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD> #define RS485_DEV_PRO_FUN_01 DevExistJudgge(RS485_WxLock_BLW_Flag, BLW_RS485_WxLockFun_Init)//((DevFunP)NULL) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>
#define RS485_DEV_PRO_FUN_02 DevExistJudgge(RS485_WxLock_FreeGo_Flag, Freego_RS485_WxLockFun_Init) //((DevFunP)NULL) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD> #define RS485_DEV_PRO_FUN_02 DevExistJudgge(RS485_WxLock_FreeGo_Flag, Freego_RS485_WxLockFun_Init) //((DevFunP)NULL) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>
#define RS485_DEV_PRO_FUN_03 DevExistJudgge(RS485_WxLock_CJia_Flag, ChuangJia_RS485_WxLockFun_Init) //((DevFunP)NULL) //<2F><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD> #define RS485_DEV_PRO_FUN_03 DevExistJudgge(RS485_WxLock_CJia_Flag, ChuangJia_RS485_WxLockFun_Init) //((DevFunP)NULL) //<2F><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>
//#define RS485_DEV_PRO_FUN_03 ((DevFunP)NULL) #define RS485_DEV_PRO_FUN_04 DevExistJudgge(RS485_WxLock_YangGe_Flag, YangGe_RS485_WxLockFun_Init) //((DevFunP)NULL) //<2F><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>
#define RS485_DEV_PRO_FUN_04 ((DevFunP)NULL) //#define RS485_DEV_PRO_FUN_04 ((DevFunP)NULL)
#define RS485_DEV_PRO_FUN_05 ((DevFunP)NULL)
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
@@ -81,7 +82,20 @@ void BLW_RS485_WeixinLockFun_Init(uint16_t DataLen, uint8_t *Data)
case ENUM_RS485_DEV_PRO_01: if(NULL!=RS485_DEV_PRO_FUN_01) RS485_DEV_PRO_FUN_01(&BUS_Public, &Rs485WxLockInfo);break; // case ENUM_RS485_DEV_PRO_01: if(NULL!=RS485_DEV_PRO_FUN_01) RS485_DEV_PRO_FUN_01(&BUS_Public, &Rs485WxLockInfo);break; //
case ENUM_RS485_DEV_PRO_02: if(NULL!=RS485_DEV_PRO_FUN_02) RS485_DEV_PRO_FUN_02(&BUS_Public, &Rs485WxLockInfo);break; // case ENUM_RS485_DEV_PRO_02: if(NULL!=RS485_DEV_PRO_FUN_02) RS485_DEV_PRO_FUN_02(&BUS_Public, &Rs485WxLockInfo);break; //
case ENUM_RS485_DEV_PRO_03: if(NULL!=RS485_DEV_PRO_FUN_03) RS485_DEV_PRO_FUN_03(&BUS_Public, &Rs485WxLockInfo);break; //3 case ENUM_RS485_DEV_PRO_03: if(NULL!=RS485_DEV_PRO_FUN_03) RS485_DEV_PRO_FUN_03(&BUS_Public, &Rs485WxLockInfo);break; //3
case ENUM_RS485_DEV_PRO_04: if(NULL!=RS485_DEV_PRO_FUN_04) RS485_DEV_PRO_FUN_04(&BUS_Public, &Rs485WxLockInfo);break; case ENUM_RS485_DEV_PRO_04:
if(NULL!=RS485_DEV_PRO_FUN_04) {
Rs485WxLockInfo.YG_IdVldPeriod = 300000; //Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>,5min
if(Data[23] == 0x01){ //<2F><>
Rs485WxLockInfo.YG_IdVldPeriod = (Data[24]*1000);
}else if(Data[23] == 0x02){ //<2F><>
Rs485WxLockInfo.YG_IdVldPeriod = (Data[24]*60*1000);
}
RS485_DEV_PRO_FUN_04(&BUS_Public, &Rs485WxLockInfo);
}
break;
case ENUM_RS485_DEV_PRO_05: if(NULL!=RS485_DEV_PRO_FUN_05) RS485_DEV_PRO_FUN_05(&BUS_Public, &Rs485WxLockInfo);break;
} }
DevActionGlobal.Lock485Addr = BUS_Public.addr; DevActionGlobal.Lock485Addr = BUS_Public.addr;
@@ -135,13 +149,28 @@ void BLW_RS485_WeixinLockFun_Logic_Init(LOGICFILE_DEVICE_INFO *dev_info,uint8_t
BUS_Public.DevFunInfo.Dev_Output_Ctrl = RS485_WxLock_IndiCtrl; BUS_Public.DevFunInfo.Dev_Output_Ctrl = RS485_WxLock_IndiCtrl;
// BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get = NULL; // BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get = NULL;
Rs485WxLockInfo.DevOffline = Rs485WxLockInfo.DevOfflineLast = DEV_IS_LINEUNINIT; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʼ<EFBFBD><CABC> Rs485WxLockInfo.DevOffline = DEV_IS_LINEUNINIT; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʼ<EFBFBD><CABC>
Rs485WxLockInfo.DevOfflineLast = DEV_IS_LINEUNINIT; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʼ<EFBFBD><CABC>
switch(BUS_Public.Protocol) switch(BUS_Public.Protocol)
{ {
case ENUM_RS485_DEV_PRO_01: if(NULL!=RS485_DEV_PRO_FUN_01) RS485_DEV_PRO_FUN_01(&BUS_Public, &Rs485WxLockInfo);break; // case ENUM_RS485_DEV_PRO_01: if(NULL!=RS485_DEV_PRO_FUN_01) RS485_DEV_PRO_FUN_01(&BUS_Public, &Rs485WxLockInfo);break; //
case ENUM_RS485_DEV_PRO_02: if(NULL!=RS485_DEV_PRO_FUN_02) RS485_DEV_PRO_FUN_02(&BUS_Public, &Rs485WxLockInfo);break; // case ENUM_RS485_DEV_PRO_02: if(NULL!=RS485_DEV_PRO_FUN_02) RS485_DEV_PRO_FUN_02(&BUS_Public, &Rs485WxLockInfo);break; //
case ENUM_RS485_DEV_PRO_03: if(NULL!=RS485_DEV_PRO_FUN_03) RS485_DEV_PRO_FUN_03(&BUS_Public, &Rs485WxLockInfo);break; //3 case ENUM_RS485_DEV_PRO_03: if(NULL!=RS485_DEV_PRO_FUN_03) RS485_DEV_PRO_FUN_03(&BUS_Public, &Rs485WxLockInfo);break; //3
case ENUM_RS485_DEV_PRO_04: if(NULL!=RS485_DEV_PRO_FUN_04) RS485_DEV_PRO_FUN_04(&BUS_Public, &Rs485WxLockInfo);break; case ENUM_RS485_DEV_PRO_04:
if(NULL!=RS485_DEV_PRO_FUN_04) {
//
Rs485WxLockInfo.YG_IdVldPeriod = 300000; //Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>,5min
if(data[23] == 0x01){ //<2F><>
Rs485WxLockInfo.YG_IdVldPeriod = (data[24]*1000);
}else if(data[23] == 0x02){ //<2F><>
Rs485WxLockInfo.YG_IdVldPeriod = (data[24]*60*1000);
}
RS485_DEV_PRO_FUN_04(&BUS_Public, &Rs485WxLockInfo);
}
break;
case ENUM_RS485_DEV_PRO_05: if(NULL!=RS485_DEV_PRO_FUN_05) RS485_DEV_PRO_FUN_05(&BUS_Public, &Rs485WxLockInfo);break;
} }
DevActionGlobal.Lock485Addr = BUS_Public.addr; DevActionGlobal.Lock485Addr = BUS_Public.addr;
@@ -202,6 +231,7 @@ void RS485_WxLock_IndiCtrl(uint32_t CfgDevAddIn, uint16_t DevInputAddr, uint32_t
Rs485WxLockInfo.WeixinCtrlFlag = 0x01; Rs485WxLockInfo.WeixinCtrlFlag = 0x01;
Rs485WxLockInfo.WeixinCtrlSendCnt = WxLockCtrlSendMax; Rs485WxLockInfo.WeixinCtrlSendCnt = WxLockCtrlSendMax;
Rs485WxLockInfo.WeixinCtrlState = OnOff&0x00ff; Rs485WxLockInfo.WeixinCtrlState = OnOff&0x00ff;
Rs485WxLockInfo.YG_SendCnt = 0x00;
temp1 = 0x01; temp1 = 0x01;
break; break;

View File

@@ -103,6 +103,30 @@ typedef struct RS485_WxLock_INFO
uint8_t WeixinUpMessageLen; //<2F><><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> uint8_t WeixinUpMessageLen; //<2F><><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
uint8_t WeixinUpMessage[WXLOCKUPMESSAGELEN]; //΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD> <20><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint8_t WeixinUpMessage[WXLOCKUPMESSAGELEN]; //΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD> <20><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ,2025-12-18,Ҷ<><D2B6><EFBFBD><EFBFBD>*/
// CJ_identity, <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʹ<EFBFBD>ô<EFBFBD><C3B4><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>0x00:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 0x01-0x05:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ忨ȡ<E5BFA8><C8A1>
//CJ_status, <20><><EFBFBD><EFBFBD>
//CJ_kwh, <20><><EFBFBD><EFBFBD><EFBFBD>ٷֱȱ<D6B1><C8B1><EFBFBD>ʹ<EFBFBD>ô<EFBFBD><C3B4>ѵ<EFBFBD>
//CJ_signal, <20>ź<EFBFBD>ǿ<EFBFBD><C7BF>
//WeixinAskLockFlag, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
uint8_t YG_SendCnt; //<2F><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>
uint8_t YG_SendSN; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SN<53>ţ<EFBFBD>SN<53><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>
uint8_t YG_RecvSN; //<2F><><EFBFBD><EFBFBD>SN<53>ţ<EFBFBD><C5A3><EFBFBD><E8B1B8>ά<EFBFBD><CEAC>
uint8_t YG_haveID_Flag; //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݱ<EFBFBD>־λ
uint8_t YG_LockAction_Flag; //<2F><><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
uint8_t YG_LockAction; //<2F><><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
uint8_t YG_kwh_LowThr; //<2F>ٷֱȵ͵<C8B5><CDB5><EFBFBD><EFBFBD><EFBFBD>ֵ
uint32_t YG_LockActionVldPeriod; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־<EFBFBD><D6BE>Ч<EFBFBD><D0A7>,<2C><>λ ms
uint32_t YG_IdVldPeriod; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>,<2C><>λ ms,Ĭ<><C4AC> 5min
uint32_t YG_IdVldPeriod_Tick; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ ms
uint32_t YG_Send_Tick; //<2F><><EFBFBD>Ϳ<EFBFBD><CDBF>Ƶ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// RS485_WxLock_IndiCtrl_ptr RS485_WxLock_IndiCtrl; //ָʾ<D6B8>Ƹ<EFBFBD>ֵ // RS485_WxLock_IndiCtrl_ptr RS485_WxLock_IndiCtrl; //ָʾ<D6B8>Ƹ<EFBFBD>ֵ
// RS485_WxLock_LoopStateRead_ptr RS485_WxLock_LoopStateRead; //<2F><>ȡ // RS485_WxLock_LoopStateRead_ptr RS485_WxLock_LoopStateRead; //<2F><>ȡ

View File

@@ -0,0 +1,549 @@
/**
********************************************************************************************************************
* @file BLV_485_Dev_YangGeLockFun.c
* @author BLW RCU development Team
* @version V1.0.0
* @date 2025<32><35>12<31><32>18<31><38>
* @brief ΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <20><>Ҫ<EFBFBD><D2AA><EFBFBD>ܣ<EFBFBD>
* 1<><31><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>Ϣ
* 2<><32><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼ҷ<CCBC><D2B7><EFBFBD>Ϊ<EFBFBD>˵͹<CBB5><CDB9>Ŀ<EFBFBD><C4BF>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳٽϸ<D9BD>
* ע<>
0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ʹ<E8B1B8><CAB9>
1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>RCU<43><55><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>ȡ<EFBFBD>磬RCUȡ<55><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>ж<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰRCU<43><55><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD>OK
2<><32><EFBFBD>û<EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD>󣬲<EFBFBD><F3A3ACB2><EFBFBD><EFBFBD>ţ<EFBFBD>RCU<43><55>Ϊδ<CEAA><CEB4><EFBFBD><EFBFBD><E2B5BD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><E7A3AC><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ᱨˢ<E1B1A8><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RCU<43><55>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰRCU<43><55><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD>RCU<43>յ<EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δȡ<CEB4><EFBFBD><E7A3AC><EFBFBD><EFBFBD>ʧЧ
3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰRCU<43><55><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD>RCU<43><55>ȡ<EFBFBD><EFBFBD><E7A3AC><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
4<><34><EFBFBD>û<EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>ȡ<EFBFBD><EFBFBD><E7A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰRCU<43><55><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD>RCUȡ<55><C8A1>ʱû<CAB1><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><E1B0B4>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ס<EFBFBD><D7A1><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ȡ<EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><E1B1BB><EFBFBD><EFBFBD>
************************************************************************************************************************
*/
#include "includes.h"
#include "BLV_485_Dev_YangGeLockFun.h"
#include "string.h"
uint8_t YangGe_WxLock_Polling_Ctrl(uint32_t dev_addr);
uint8_t YangGe_WxLock_Data_Processing(uint32_t dev_addr,uint32_t data_addr,uint16_t len);
void RS485_YG_LogID_RecAsk(Device_Public_Information_G* BUS_Public, RS485_WxLock_INFOP Rs485WxLockInfo, uint8_t *data, uint16_t DataLen, uint8_t ret);
void RS485_YG_UnLock_Ctrl(Device_Public_Information_G *BUS_Public, RS485_WxLock_INFOP Rs485WxLockInfo);
uint8_t Dev_YangGeLock_InType_Get(uint32_t DevAddr, uint16_t DevInputLoop, uint16_t DevInputType);
void YG_RS485Lock_IndiCtrl(uint32_t CfgDevAddIn, uint16_t DevInputAddr, uint32_t devaddr, uint16_t Addr, uint16_t OnOff);
/*******************************************************************************
* @brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD>
* @param :
* BUS_Public : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
* Rs485WxLockInfo : ΢<><CEA2><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
* @retval : None
* @attention : None
*******************************************************************************/
void YangGe_RS485_WxLockFun_Init(Device_Public_Information_G *BUS_Public, RS485_WxLock_INFO *Rs485WxLockInfo)
{
BUS_Public->polling_cf = (uint32_t)&YangGe_WxLock_Polling_Ctrl; //΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>
BUS_Public->processing_cf = (uint32_t)&YangGe_WxLock_Data_Processing; //΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BUS_Public->DevFunInfo.Dev_Input_Type_Get = Dev_YangGeLock_InType_Get;
BUS_Public->DevFunInfo.Dev_Output_Ctrl = YG_RS485Lock_IndiCtrl;
Rs485WxLockInfo->CJ_kwh = 100; //Ĭ<>ϵ<EFBFBD><CFB5><EFBFBD>
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>:%d ms",Rs485WxLockInfo->YG_IdVldPeriod);
}
/*******************************************************************************
* @brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param :
* dev_addr : <20><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2>ַ
* @retval :
* @note : 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ķ<EFBFBD><C4B7>ͺ<EFBFBD><CDBA>ط<EFBFBD>
*******************************************************************************/
uint8_t YangGe_WxLock_Polling_Ctrl(uint32_t dev_addr)
{
uint8_t Ret = 0x00;
Device_Public_Information_G BUS_Public;
RS485_WxLock_INFO Rs485WxLockInfo;
SRAM_Read_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), dev_addr);
SRAM_Read_Buff((uint8_t *)&Rs485WxLockInfo, sizeof(RS485_WxLock_INFO), dev_addr+Dev_Privately);
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EEB7A2>
if(0x01 == Rs485WxLockInfo.WeixinAskLockFlag) //΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>־λ
{
if(SysTick_1ms - Rs485WxLockInfo.YG_Send_Tick>= 500) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
{
Rs485WxLockInfo.YG_Send_Tick = SysTick_1ms;
if(Rs485WxLockInfo.YG_SendCnt > WxLockCtrlSendMax)
{
Rs485WxLockInfo.WeixinAskLockFlag = 0x00;
Rs485WxLockInfo.YG_SendCnt = 0x00;
}
else
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>:");
RS485_YG_UnLock_Ctrl(&BUS_Public, &Rs485WxLockInfo);//<2F><><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ڱ<EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><EFBFBD>Ļظ<C4BB><D8B8>Ż<EFBFBD><C5BB><EFBFBD>0
Rs485WxLockInfo.YG_SendCnt++;
}
Ret = 0x01;
}
/*ͨѶͳ<D1B6><CDB3>*/
BLV_Communication_Record(&Rs485WxLockInfo.comm_record,0x01,0x00);
if(Rs485WxLockInfo.DevSendCnt > WxLockCtrlSendMax)
{
if(Rs485WxLockInfo.DevOffline != DEV_IS_OFFLINE)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"YGLock DEV_IS_OFFLINE");
LOG_Device_Online_Record(DEV_RS485_WxLock,SRAM_Read_Byte(dev_addr+Dev_Addr),LogInfo_Device_Offline); //<2F><>¼<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
}
Rs485WxLockInfo.DevOffline = DEV_IS_OFFLINE; //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
if(Rs485WxLockInfo.DevOffline != Rs485WxLockInfo.DevOfflineLast) //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
{
Rs485WxLockInfo.DevOfflineLast = Rs485WxLockInfo.DevOffline; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
Write_Device_Fault_State(BUS_Public.type,BUS_Public.addr,In_ErrFun_LineState,DEV_IS_OFFLINE); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬<D7B4><CCAC>SRAM
}
Ret = 0x01;
}
else
{
Rs485WxLockInfo.DevSendCnt++;
Ret = 0x01;
}
}
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>,YYW,2025-12-20<32><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(DevActionGlobal.DevActionU64Cond.EleState == 0x01) //ȡ<><C8A1>״̬
{
if( (Rs485WxLockInfo.YG_haveID_Flag != 0)||(Rs485WxLockInfo.CJ_identity != CARD_Anonymous_Identity) )
{
Rs485WxLockInfo.YG_haveID_Flag = 0;
Rs485WxLockInfo.CJ_identity = CARD_Anonymous_Identity; //<2F>Ѿ<EFBFBD>ȡ<EFBFBD><EFBFBD><E7A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
// DevActionGlobal.LockType = CARD_Anonymous_Identity;
Ret = 0x01;
}
}
else if(DevActionGlobal.DevActionU64Cond.EleState == 0x02) //<2F>ϵ<EFBFBD>״̬
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
if( (Rs485WxLockInfo.YG_haveID_Flag == 1)&&(SysTick_1ms - Rs485WxLockInfo.YG_IdVldPeriod_Tick >= Rs485WxLockInfo.YG_IdVldPeriod) )
{
Rs485WxLockInfo.YG_IdVldPeriod_Tick = SysTick_1ms;
Rs485WxLockInfo.CJ_identity = CARD_Anonymous_Identity;
Rs485WxLockInfo.YG_haveID_Flag = 0;
Rs485WxLockInfo.YG_LockAction = CARD_Anonymous_Identity;
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>Ч<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>, have_flag:%d, Time:%d",Rs485WxLockInfo.YG_haveID_Flag,Rs485WxLockInfo.YG_IdVldPeriod);
Ret = 0x01;
}
else if( (Rs485WxLockInfo.YG_haveID_Flag == 1)&&(Rs485WxLockInfo.CJ_identity != CARD_Anonymous_Identity) )
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>ֵ<EFBFBD><D6B5>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,LockType:%d, have_flag:%d ",Rs485WxLockInfo.CJ_identity,Rs485WxLockInfo.YG_haveID_Flag);
Rs485WxLockInfo.YG_LockAction = Rs485WxLockInfo.CJ_identity; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
Rs485WxLockInfo.CJ_identity = CARD_Anonymous_Identity;
Ret = 0x01;
}
}
if(0x01 == Ret)
{
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&Rs485WxLockInfo, sizeof(RS485_WxLock_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),dev_addr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&Rs485WxLockInfo,sizeof(RS485_WxLock_INFO),dev_addr+Dev_Privately);
}
return Ret;
}
/*******************************************************************************
* @brief :<3A><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param :
* dev_addr : <09><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2>ַ
* data_addr : 485<38><35><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>ַ
* DataLen : <09><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD>
* @retval : 0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note : <09><>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
*******************************************************************************/
uint8_t YangGe_WxLock_Data_Processing(uint32_t dev_addr,uint32_t data_addr,uint16_t len)
{
uint8_t data[YG_RECEIVE_MAX_LEN]; //<2F>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB>壬Э<E5A3AC><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t checksum = 0x00;
uint8_t ret = 0x01; //Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t udpdata = 0x00; //<2F>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//1<><31><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3>Ȳ<EFBFBD><C8B2><EFBFBD>
if( (len < 7)||(len > YG_RECEIVE_MAX_LEN) )
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"YangGe_WxLock Lens Err");
return ret;
}
Device_Public_Information_G BUS_Public; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
RS485_WxLock_INFO Rs485WxLockInfo; //΢<><CEA2><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
SRAM_Read_Buff(data, len, data_addr); //<2F><>485<38><35><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
//2<><32><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3>Ȳ<EFBFBD><C8B2><EFBFBD>
if( len != data[YG_DATA_LEN] )
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"YangGe_WxLock DataLens Err");
return ret;
}
//3<><33><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
if(data[YG_DEVICE_TYPE] != DEV_RS485_WxLock)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"YangGe_WxLock TYPE Err");
return ret;
}
//4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
checksum = CheckSum_Overlook_Check_2(data,len,YG_CHECK);
if(data[YG_CHECK] != checksum)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"YangGe_WxLock SumCheck Err:%02x,%02x",data[YG_CHECK],checksum);
return ret; //У<><D0A3><EFBFBD>ʹ<EFBFBD><CDB4>󣬲<EFBFBD><F3A3ACB2><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
SRAM_Read_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), dev_addr); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SRAM_Read_Buff((uint8_t *)&Rs485WxLockInfo, sizeof(RS485_WxLock_INFO), dev_addr+Dev_Privately); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//5<><35><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ַУ<D6B7><D0A3>
if(data[YG_OUR_ADD] != BUS_Public.addr)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"YangGe_WxLock ADDR Err");
return ret;
}
//6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬
if(Rs485WxLockInfo.DevOffline != DEV_IS_ONLINE)
{
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>");
LOG_Device_Online_Record(BUS_Public.type, BUS_Public.addr,LogInfo_Device_Online); //<2F><>¼<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
}
Rs485WxLockInfo.DevOffline = DEV_IS_ONLINE; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
if(Rs485WxLockInfo.DevOffline != Rs485WxLockInfo.DevOfflineLast) //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
{
Rs485WxLockInfo.DevOfflineLast = Rs485WxLockInfo.DevOffline; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
Write_Device_Fault_State(BUS_Public.type,BUS_Public.addr,In_ErrFun_LineState,DEV_IS_ONLINE); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬<D7B4><CCAC>SRAM
}
BLV_Communication_Record(&Rs485WxLockInfo.comm_record,0x02,0x01); //<2F><>¼ͨѶ<CDA8>ɹ<EFBFBD>
Rs485WxLockInfo.DevSendCnt = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻظ<DDBB><D8B8><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>
Rs485WxLockInfo.YG_SendCnt = 0x00;
//7<><37><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>
switch(data[YG_COMMAND])
{
case YG_CARD_ID: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
if( Rs485WxLockInfo.YG_RecvSN != (data[YG_SEND_TYPE]&0x0F) ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>
{
Rs485WxLockInfo.YG_RecvSN = (data[YG_SEND_TYPE]&0x0F);
RS485_YG_LogID_RecAsk(&BUS_Public,&Rs485WxLockInfo,data,len,0x01); //<2F>ظ<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if( (data[YG_PARAM] & 0x01) != 0x00)
{
if(data[YG_PARAM+1] != CARD_Anonymous_Identity)
{
Rs485WxLockInfo.CJ_identity = data[YG_PARAM+1]; //<2F><><EFBFBD><EFBFBD>˽<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
Rs485WxLockInfo.YG_IdVldPeriod_Tick = SysTick_1ms; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>¼ʱ<C2BC><CAB1><EFBFBD><EFBFBD>
Rs485WxLockInfo.YG_haveID_Flag = 1;
}
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>,ID:%d, have_flag:%d ",Rs485WxLockInfo.CJ_identity,Rs485WxLockInfo.YG_haveID_Flag);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>λ
if( (data[YG_PARAM] & 0x02) != 0x00)
{
Rs485WxLockInfo.CJ_status = data[YG_PARAM+6]; //<2F><><EFBFBD><EFBFBD>˽<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
udpdata = (0x80) + ((Rs485WxLockInfo.CJ_status&0xff)<<8);
Udp_Addtion_Roomstate(DEV_RS485_WxLock,BUS_Public.addr,0x0001,udpdata);
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>:%02x",Rs485WxLockInfo.CJ_status);
}
}
else if( (data[YG_SEND_TYPE]&YG_RETRY_FLAG) == YG_RETRY_FLAG ) //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>,<2C>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
RS485_YG_LogID_RecAsk(&BUS_Public,&Rs485WxLockInfo,data,len,0x01);
}
/*<2A><>־<EFBFBD><D6BE>¼*/
LOG_Device_COMM_Control_Reply_Record(BUS_Public.port, BUS_Public.baud,data,len);
ret = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case YG_BATMon: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
if( Rs485WxLockInfo.YG_RecvSN != (data[YG_SEND_TYPE]&0x0F) ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>
{
Rs485WxLockInfo.YG_RecvSN = (data[YG_SEND_TYPE]&0x0F);
//<2F>ظ<EFBFBD>
RS485_YG_LogID_RecAsk(&BUS_Public,&Rs485WxLockInfo,data,len,0x01);
Rs485WxLockInfo.CJ_kwh = data[YG_PARAM]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
Rs485WxLockInfo.CJ_signal = data[YG_PARAM+1]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//if(Rs485WxLockInfo.CJ_kwh < Rs485WxLockInfo.YG_kwh_LowThr)
{
udpdata = (0x40)+ ((Rs485WxLockInfo.CJ_kwh&0xff)<<8);
Udp_Addtion_Roomstate(DEV_RS485_WxLock,BUS_Public.addr,0x0001,udpdata);
}
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>:%d<><64>%02x",Rs485WxLockInfo.CJ_kwh,Rs485WxLockInfo.CJ_signal);
}
else if( (data[YG_SEND_TYPE]&YG_RETRY_FLAG) == YG_RETRY_FLAG ) //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>,<2C>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
RS485_YG_LogID_RecAsk(&BUS_Public,&Rs485WxLockInfo,data,len,0x01);
}
/*<2A><>־<EFBFBD><D6BE>¼*/
LOG_Device_COMM_Control_Reply_Record(BUS_Public.port, BUS_Public.baud,data,len);
ret = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case YG_UNLOCKING: //<2F>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><E8B1B8><EFBFBD><EFBFBD>Ӧ
if( Rs485WxLockInfo.YG_SendSN != (data[YG_SEND_TYPE]&0x0F) ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>
{
Rs485WxLockInfo.YG_SendSN = (data[YG_SEND_TYPE]&0x0F);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
Rs485WxLockInfo.WeixinAskLockFlag = 0;
Rs485WxLockInfo.WeixinCtrlSendCnt = 0;
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD>ɹ<EFBFBD>");
}
/*<2A><>־<EFBFBD><D6BE>¼*/
LOG_Device_COMM_Control_Reply_Record(BUS_Public.port, BUS_Public.baud,data,len);
ret = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
default:
break;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>SRAM
if(ret == 0x00)
{
BUS_Public.check = 0x00; //У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&Rs485WxLockInfo, sizeof(RS485_WxLock_INFO)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),dev_addr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>
SRAM_Write_Buff((uint8_t *)&Rs485WxLockInfo, sizeof(RS485_WxLock_INFO), dev_addr+Dev_Privately);
}
return ret;
}
/************************************************
* @brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݵĻظ<C4BB><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param :
* BUS_Public : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9>
* Rs485WxLockInfo : <20><><EFBFBD>豸˽<E8B1B8>нṹ<D0BD><E1B9B9>
* data : <20>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>
* DataLen : <20>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
* ret : <20>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval : <20><>
* @note : Ĭ<>ϻظ<CFBB> <20><><EFBFBD><EFBFBD> 0x01
*************************************************/
void RS485_YG_LogID_RecAsk(Device_Public_Information_G* BUS_Public, RS485_WxLock_INFOP Rs485WxLockInfo, uint8_t *data, uint16_t DataLen, uint8_t ret)
{
uint16_t SdLens = 0x08;
uint8_t SdData[0x08];
uint8_t SN = 0x00;
Rs485WxLockInfo->YG_RecvSN++;
if(Rs485WxLockInfo->YG_RecvSN > 15) Rs485WxLockInfo->YG_RecvSN = 1;
SN |= (Rs485WxLockInfo->YG_RecvSN & 0x0F); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SdData[YG_OUR_ADD] = data[YG_RECE_ADD];
SdData[YG_SEND_TYPE] = SN;
SdData[YG_DEVICE_TYPE] = data[YG_DEVICE_TYPE];
SdData[YG_RECE_ADD] = data[YG_OUR_ADD];
SdData[YG_DATA_LEN] = SdLens;
SdData[YG_CHECK] = 0x00;
SdData[YG_COMMAND] = data[YG_COMMAND];
SdData[YG_PARAM] = ret;
SdData[YG_CHECK] = SOR_CRC(SdData,SdLens);
MCU485_SendString(BUS_Public->port,SdData,SdLens);
}
/************************************************
* @brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7>ͺ<EFBFBD><CDBA><EFBFBD>
* @param : BUS_Public : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9>
* @param : Rs485WxLockInfo : <20><><EFBFBD>豸˽<E8B1B8>нṹ<D0BD><E1B9B9>
* @retval : <20><>
* @note : <20><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD>ָ<EFBFBD><D6B8>
*************************************************/
void RS485_YG_UnLock_Ctrl(Device_Public_Information_G *BUS_Public, RS485_WxLock_INFOP Rs485WxLockInfo)
{
uint16_t SdLens = 0x08;
uint8_t SendBuf[8];
uint8_t SN = 0x00;
if(Rs485WxLockInfo->YG_SendCnt == 0x00) //<2F>׷<EFBFBD>
{
Rs485WxLockInfo->YG_SendSN++; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>
if(Rs485WxLockInfo->YG_SendSN > 15) Rs485WxLockInfo->YG_SendSN = 1;
SN |= (Rs485WxLockInfo->YG_SendSN & 0x0F); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else //<2F>ط<EFBFBD>
{
SN |= (Rs485WxLockInfo->YG_SendSN & 0x0F); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SN |= YG_RETRY_FLAG;
}
SendBuf[YG_OUR_ADD] = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
SendBuf[YG_SEND_TYPE] = SN;
SendBuf[YG_DEVICE_TYPE] = BUS_Public->type;
SendBuf[YG_RECE_ADD] = BUS_Public->addr;
SendBuf[YG_DATA_LEN] = SdLens;
SendBuf[YG_CHECK] = 0x00;
SendBuf[YG_COMMAND] = YG_UNLOCKING;
SendBuf[YG_PARAM] = 0x01;
SendBuf[YG_CHECK] = SOR_CRC(SendBuf,SdLens); //<2F><>У<EFBFBD><D0A3>
MCU485_SendString(BUS_Public->port,SendBuf,SdLens);
/*<2A><>־<EFBFBD><D6BE>¼*/
LOG_Device_COMM_Send_Control_Record(BUS_Public->port, BUS_Public->baud, SendBuf, SdLens);
}
/****************************************************************
* @brief : <20><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽӿں<D3BF><DABA><EFBFBD>
* @param :
* Rs485WxLockInfo : ΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
* Addr : <20><>
* OnOff : <20><>
* @retval : <20><>
* @brief : ָ<><D6B8>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @nota : 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD>
2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣȡ<CFA2><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*****************************************************************/
void YG_RS485Lock_IndiCtrl(uint32_t CfgDevAddIn, uint16_t DevInputAddr, uint32_t devaddr, uint16_t Addr, uint16_t OnOff)
{
RS485_WxLock_INFO Rs485WxLockInfo;
uint8_t temp1 = 0; //crc_val = 0,
Device_Public_Information_G BUS_Public;
if(NULL == devaddr)
{
return ;
}
SRAM_DMA_Read_Buff((uint8_t *)&Rs485WxLockInfo,sizeof(RS485_WxLock_INFO),devaddr+Dev_Privately);
SRAM_Read_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), devaddr);
switch(OnOff&0x00ff)
{
case 0x01: //<2F><><EFBFBD><EFBFBD>
case 0x02: //<2F><><EFBFBD><EFBFBD>
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>λ"); //
Rs485WxLockInfo.WeixinAskLockFlag = 0x01; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>λ
Rs485WxLockInfo.WeixinCtrlFlag = 0x01;
Rs485WxLockInfo.WeixinCtrlSendCnt = WxLockCtrlSendMax;
Rs485WxLockInfo.WeixinCtrlState = OnOff&0x00ff;
Rs485WxLockInfo.YG_SendCnt = 0x00;
temp1 = 0x01;
break;
case 0x03:
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־"); //
Rs485WxLockInfo.YG_LockAction_Flag = 0x01; //<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD>־
temp1 = 0x01;
break;
default:
break;
}
if(0x00 != temp1)
{
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&Rs485WxLockInfo, sizeof(RS485_WxLock_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),devaddr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&Rs485WxLockInfo,sizeof(RS485_WxLock_INFO),devaddr+Dev_Privately);
}
}
/****************************************************************
* @brief : <20><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
* @param :
* DevAddr : <20><EFBFBD><E8B1B8>ַ
* DevInputLoop : <20><>·
* DevInputType : <20><><EFBFBD><EFBFBD>
* @retval : CtrlInvalid : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
CtrlValid :v<><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
* @brief : ΢<><CEA2><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>¼<EFBFBD>
* @nota : <20><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>¼<EFBFBD>
*****************************************************************/
uint8_t Dev_YangGeLock_InType_Get(uint32_t DevAddr, uint16_t DevInputLoop, uint16_t DevInputType)
{
Device_Public_Information_G BUS_Public; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
RS485_WxLock_INFO Rs485WxLockInfo; //΢<><CEA2><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
uint8_t Ret = CtrlInvalid; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
uint8_t Keep1 = 0x00;
if(DevAddr == 0x00) return Ret;
SRAM_DMA_Read_Buff((uint8_t *)&BUS_Public,sizeof(Device_Public_Information_G),DevAddr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SRAM_DMA_Read_Buff((uint8_t *)&Rs485WxLockInfo,sizeof(RS485_WxLock_INFO),DevAddr+Dev_Privately); /*<2A><><EFBFBD><EFBFBD><EFBFBD>豸˽<E8B1B8><CBBD><EFBFBD><EFBFBD>Ϣ*/
// Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>¼<EFBFBD>:%d, %d",Rs485WxLockInfo.YG_LockAction_Flag,(Rs485WxLockInfo.YG_LockAction+1));
if( (Rs485WxLockInfo.YG_LockAction + 1) == DevInputType)
{
if(Rs485WxLockInfo.YG_LockAction_Flag == 0x01)
{
Rs485WxLockInfo.YG_LockAction_Flag = 0x00;
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d ",(Rs485WxLockInfo.YG_LockAction + 1));
Rs485WxLockInfo.YG_LockAction = 0x00;
Ret = CtrlValid;
Keep1 = 0x01;
}
}
if(0x00 != Keep1)
{
BUS_Public.check = 0x00;
BUS_Public.check = DoubleData_CheckSum((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G), (uint8_t *)&Rs485WxLockInfo, sizeof(RS485_WxLock_INFO));
SRAM_DMA_Write_Buff((uint8_t *)&BUS_Public, sizeof(Device_Public_Information_G),DevAddr);/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>*/
SRAM_DMA_Write_Buff((uint8_t *)&Rs485WxLockInfo,sizeof(RS485_WxLock_INFO),DevAddr+Dev_Privately);
}
return Ret;
}

View File

@@ -0,0 +1,36 @@
#ifndef _BLV_485_DEV_YANGGELOCKFUN_H_
#define _BLV_485_DEV_YANGGELOCKFUN_H_
#include "stdint.h"
#include "BLV_485_Dev_YangGeLockFun.h"
#include "BLV_485_Dev_WeixinLockFun.h"
#define YG_COMMAND_MAX 8
#define YG_RECEIVE_MAX_LEN 18 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>󳤶ȣ<F3B3A4B6>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define YG_RETRY_FLAG 0x40 //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
#define YG_CARD_ID 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
#define YG_BATMon 0x03 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
#define YG_UNLOCKING 0x10 //<2F>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʽ*/
typedef enum
{
YG_OUR_ADD = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>Է<EFBFBD><D4B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
YG_SEND_TYPE, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
YG_DEVICE_TYPE, //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
YG_RECE_ADD, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>Է<EFBFBD><D4B7><EFBFBD>ַ
YG_DATA_LEN, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
YG_CHECK, //У<><D0A3><EFBFBD><EFBFBD>
YG_COMMAND, //<2F><><EFBFBD><EFBFBD>
YG_PARAM, //<2F><><EFBFBD><EFBFBD>
}YANGGE_ORDER_FORMAT;
void YangGe_RS485_WxLockFun_Init(Device_Public_Information_G *BUS_Public, RS485_WxLock_INFO *Rs485WxLockInfo);
#endif

View File

@@ -79,6 +79,13 @@
1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
-> (0x09)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬ʱ<EBB3AC>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϹ<D0B6><CFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD>жϵĵ<CFB5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬ʱ"<22>¼<EFBFBD> -> (0x09)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬ʱ<EBB3AC>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϹ<D0B6><CFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD>жϵĵ<CFB5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬ʱ"<22>¼<EFBFBD>
-> (0x0A)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬ʱ<EBB3AC>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϹ<D0B6><CFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD>жϵĵ<CFB5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬ʱ"<22>¼<EFBFBD> -> (0x0A)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬ʱ<EBB3AC>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϹ<D0B6><CFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD>жϵĵ<CFB5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬ʱ"<22>¼<EFBFBD>
202060129 Ҷ<><D2B6><EFBFBD><EFBFBD>
<20>޸ĵ㣺
1<><31><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ж<EFBFBD><D0B6>޸ģ<DEB8>
- <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>в<EFBFBD><D0B2>볤ʱ<EBB3A4><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>в<EFBFBD><D0B2>볤ʱ<EBB3A4><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ԭ<>л<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>ֵ
****************************************************************************** ******************************************************************************
*/ */
@@ -204,11 +211,11 @@ void DetWin_WriteData_Bit(uint8_t port,uint16_t idex,uint8_t state)
{ {
uint32_t detaddr = 0; uint32_t detaddr = 0;
uint8_t data_val = 0; uint8_t data_val = 0;
uint8_t bit_offset = 0; uint16_t bit_offset = 0; //2026-01-29,<2C>ڴ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ڵ<EFBFBD>֮ǰʹ<C7B0><CAB9>uint8_t<5F><74><EFBFBD><EFBFBD>,<2C><><EFBFBD>±<EFBFBD><C2B1><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD>255ʱ<35><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ƫ<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
uint8_t bit_remian = 0; uint16_t bit_remian = 0;
if( port >= 10) return ; if( port >= 10) return ;
if( idex >= 0x1800) return ; if( idex >= 0xC000) return ; //2026-01-28 <20>±<EFBFBD><C2B1><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>bitλ<74><CEBB><EFBFBD>±꣬<C2B1><EAA3AC><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ַ<EFBFBD>±<EFBFBD>
if(idex != 0x00) if(idex != 0x00)
{ {
@@ -216,7 +223,7 @@ void DetWin_WriteData_Bit(uint8_t port,uint16_t idex,uint8_t state)
bit_offset = idex / 8; //<2F><>ַƫ<D6B7><C6AB> bit_offset = idex / 8; //<2F><>ַƫ<D6B7><C6AB>
} }
if( (idex > 0x08) && (bit_remian) != 0x00 ) if(bit_remian == 0x00)
{ {
detaddr = SRAM_VCard_DetectWin_Start_Addr + (uint32_t)(port * 0x1800) + (bit_offset) + 1; detaddr = SRAM_VCard_DetectWin_Start_Addr + (uint32_t)(port * 0x1800) + (bit_offset) + 1;
}else { }else {
@@ -240,11 +247,11 @@ uint8_t DetWin_ReadData_Bit(uint8_t port,uint16_t idex)
{ {
uint32_t detaddr = 0; uint32_t detaddr = 0;
uint8_t data_val = 0; uint8_t data_val = 0;
uint8_t bit_offset = 0; uint16_t bit_offset = 0; //2026-01-29,<2C>ڴ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ڵ<EFBFBD>֮ǰʹ<C7B0><CAB9>uint8_t<5F><74><EFBFBD><EFBFBD>,<2C><><EFBFBD>±<EFBFBD><C2B1><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD>255ʱ<35><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ƫ<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
uint8_t bit_remian = 0; uint16_t bit_remian = 0;
if( port >= 10) return 0x00; if( port >= 10) return 0x00;
if( idex >= 0x1800) return 0x00; if( idex >= 0xC000) return 0x00; //2026-01-28 <20>±<EFBFBD><C2B1><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>bitλ<74><CEBB><EFBFBD>±꣬<C2B1><EAA3AC><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ַ<EFBFBD>±<EFBFBD>
if(idex != 0x00) if(idex != 0x00)
{ {
@@ -252,7 +259,7 @@ uint8_t DetWin_ReadData_Bit(uint8_t port,uint16_t idex)
bit_offset = idex / 8; //<2F><>ַƫ<D6B7><C6AB> bit_offset = idex / 8; //<2F><>ַƫ<D6B7><C6AB>
} }
if( (idex > 0x08) && (bit_remian) != 0x00 ) if( bit_remian == 0x00 )
{ {
detaddr = SRAM_VCard_DetectWin_Start_Addr + (uint32_t)(port * 0x1800) + (bit_offset) + 1; detaddr = SRAM_VCard_DetectWin_Start_Addr + (uint32_t)(port * 0x1800) + (bit_offset) + 1;
}else { }else {
@@ -282,6 +289,9 @@ void Dev_VirtualCard_Dis(uint32_t DevAddr)
RS485_SWI_INFO Rs485SwiInfo; //<2F><><EFBFBD>ؾֲ<D8BE><D6B2><EFBFBD><EFBFBD><EFBFBD> RS485_SWI_INFO Rs485SwiInfo; //<2F><><EFBFBD>ؾֲ<D8BE><D6B2><EFBFBD><EFBFBD><EFBFBD>
uint8_t portstate = 0; 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>
uint32_t temp_tickout = 0x00; uint32_t temp_tickout = 0x00;
uint32_t list_addr = 0; uint32_t list_addr = 0;
@@ -734,7 +744,10 @@ void Dev_VirtualCard_Dis(uint32_t DevAddr)
*/ */
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>˿<EFBFBD> %d <20><><EFBFBD><EFBFBD>:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d - %d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>%.02f",i + 1,portstate,\ Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>˿<EFBFBD> %d <20><><EFBFBD><EFBFBD>:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d - %d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>%.02f",i + 1,portstate,\
VCard_Info.DetInfo.DetWinTrigger[i],VCard_Info.DetInfo.DetWinTotalNum[i],VCard_Info.ActThreshold[i]); VCard_Info.DetInfo.DetWinTrigger[i],VCard_Info.DetInfo.DetWinTotalNum[i],VCard_Info.ActThreshold[i]);
LOG_LogicInfo_DebugRecord("VCLog:T6:%d:%.02f",i,VCard_Info.ActThreshold[i],VCard_Info.ExistState,VCard_Info.DetInfo.Trigger_Thres[i],VCard_Info.DetInfo.Release_Thres[i]); LOG_LogicInfo_DebugRecord("VCLog:T6:%d:%.02f:%d:%d:%d",i,VCard_Info.ActThreshold[i],VCard_Info.ExistState,VCard_Info.DetInfo.Trigger_Thres[i],VCard_Info.DetInfo.Release_Thres[i]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d, <20><>ǰ<EFBFBD>±<EFBFBD>:%d ",VCard_Info.DetInfo.FullFlag[i],VCard_Info.DetInfo.DetWinIdex[i]);
} }
} }
@@ -1200,19 +1213,31 @@ void Dev_VirtualCard_Dis(uint32_t DevAddr)
} }
}else if( (VCard_Info.ExistState == SOMEONE) && (VCard_Info.ConGroupIndx == (DevActionGlobal.VC_ConNToSGruop + 1) ) ) }else if( (VCard_Info.ExistState == SOMEONE) && (VCard_Info.ConGroupIndx == (DevActionGlobal.VC_ConNToSGruop + 1) ) )
{ {
PortEn_Cnt = 0x00;
PortEn_max = 0x00;
/*<2A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1>ִ<EFBFBD>г<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD>õĻ<C3B5>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ֵ<EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>*/ /*<2A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1>ִ<EFBFBD>г<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD>õĻ<C3B5>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ֵ<EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>*/
for(uint8_t i = 1; i < VIRTUAL_PORT_MAX; i++) for(uint8_t i = 1; i < VIRTUAL_PORT_MAX; i++)
{ {
if( (VCard_Info.Port_Info[i].PortEnFlag == 0x01) && (VCard_Info.DetInfo.Release_Thres[i] < 100) ) if( (VCard_Info.Port_Info[i].PortEnFlag == 0x01) && (VCard_Info.DetInfo.Release_Thres[i] < 100) )
{ {
PortEn_max++; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
if(VCard_Info.ActThreshold[i] <= VCard_Info.DetInfo.Release_Thres[i]) if(VCard_Info.ActThreshold[i] <= VCard_Info.DetInfo.Release_Thres[i])
{
PortEn_Cnt++; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
}
}
}
//20260129 -<2D>޿<EFBFBD>ȡ<EFBFBD><C8A1> - <20><><EFBFBD><EFBFBD>״̬:<3A><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD>в<EFBFBD><D0B2>볤ʱ<EBB3A4><CAB1><EFBFBD>ж϶˿ڣ<CBBF>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if((PortEn_Cnt != 0x00)&&(PortEn_max != 0x00))
{
if(PortEn_Cnt == PortEn_max)
{ {
KeepFlag = 0x01; KeepFlag = 0x01;
/*<2A><>״̬<D7B4>ı<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>·<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ա<EFBFBD><D5A1><EFBFBD><EFBFBD>ˡ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>*/ /*<2A><>״̬<D7B4>ı<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>·<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ա<EFBFBD><D5A1><EFBFBD><EFBFBD>ˡ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>*/
VCard_Info.Action |= VC_Event_RadarPersonLeft_Flag; VCard_Info.Action |= VC_Event_RadarPersonLeft_Flag;
Udp_Addtion_Roomstate(BUS_Public.type,BUS_Public.addr,0x00,VC_EventID_RadarPersonLeft);
SRAM_Write_Byte(VC_EventID_RadarPersonLeft,SRAM_UDP_ELEReport_VirtualCard); SRAM_Write_Byte(VC_EventID_RadarPersonLeft,SRAM_UDP_ELEReport_VirtualCard);
SRAM_Write_DW(SysTick_1ms,SRAM_UDP_ELEReport_VirtualCard_Tick); //2026-01-20 <09><><EFBFBD>Ӽ<EFBFBD>¼ʱ<C2BC><CAB1><EFBFBD><EFBFBD> SRAM_Write_DW(SysTick_1ms,SRAM_UDP_ELEReport_VirtualCard_Tick); //2026-01-20 <09><><EFBFBD>Ӽ<EFBFBD>¼ʱ<C2BC><CAB1><EFBFBD><EFBFBD>
LOG_LogicInfo_DebugRecord("VCLog:T4:%d",VC_EventID_RadarPersonLeft); LOG_LogicInfo_DebugRecord("VCLog:T4:%d",VC_EventID_RadarPersonLeft);
@@ -1221,7 +1246,7 @@ void Dev_VirtualCard_Dis(uint32_t DevAddr)
DevActionGlobal.Person_Detected = VCard_Info.ExistState; DevActionGlobal.Person_Detected = VCard_Info.ExistState;
VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵĵ<CFB5>һ<EFBFBD><D2BB> VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵĵ<CFB5>һ<EFBFBD><D2BB>
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"-<2D><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>·%d %d - %.02f <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>-",i,VCard_Info.DetInfo.Release_Thres[i],VCard_Info.ActThreshold[i]); Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"-<2D><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>·: <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>-");
for(uint8_t i= 1; i < VIRTUAL_PORT_MAX; i++) for(uint8_t i= 1; i < VIRTUAL_PORT_MAX; i++)
{ {
@@ -1234,10 +1259,11 @@ void Dev_VirtualCard_Dis(uint32_t DevAddr)
DetWin_WriteData((i - 1), 0x00, ((VCard_Info.DetInfo.DetWinTotalNum[i] / 8) + 1 ) ); DetWin_WriteData((i - 1), 0x00, ((VCard_Info.DetInfo.DetWinTotalNum[i] / 8) + 1 ) );
} }
} }
break;
}
} }
} }
PortEn_Cnt = 0x00;
PortEn_max = 0x00;
} }
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>*/ /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>*/

View File

@@ -289,6 +289,23 @@ uint8_t CheckSum_Overlook_Check(uint8_t *data, uint16_t len, uint16_t check_id)
return ~data_sum; return ~data_sum;
} }
/*******************************************************************************
* Function Name : CheckSum_Overlook_Check_2
* Description : <20><>У<EFBFBD><D0A3>,<2C><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
* input: data: <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
len <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>
check_id: У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
*******************************************************************************/
uint8_t CheckSum_Overlook_Check_2(uint8_t *data, uint16_t len, uint16_t check_id)
{
uint8_t data_sum = 0;
for(uint16_t i = 0;i<len;i++)
{
if(check_id != i) data_sum += data[i];
}
return data_sum;
}
/******************************************************************************* /*******************************************************************************
* Function Name : SOR_CRC * Function Name : SOR_CRC

View File

@@ -20,6 +20,7 @@ uint8_t Dev_CheckSum(uint32_t addr,uint16_t len);
uint8_t DoubleData_CheckSum(uint8_t *Data1, uint16_t Data1Len, uint8_t *Data2, uint16_t Data2Len); uint8_t DoubleData_CheckSum(uint8_t *Data1, uint16_t Data1Len, uint8_t *Data2, uint16_t Data2Len);
uint8_t CheckSum(uint8_t *data,uint16_t len); uint8_t CheckSum(uint8_t *data,uint16_t len);
uint8_t CheckSum_Overlook_Check(uint8_t *data, uint16_t len, uint16_t check_id); uint8_t CheckSum_Overlook_Check(uint8_t *data, uint16_t len, uint16_t check_id);
uint8_t CheckSum_Overlook_Check_2(uint8_t *data, uint16_t len, uint16_t check_id);
uint8_t SOR_SRAM_CRC(uint32_t Dataaddr, uint8_t DataLen); uint8_t SOR_SRAM_CRC(uint32_t Dataaddr, uint8_t DataLen);
uint8_t SOR_CRC(uint8_t *Data, uint8_t DataLen); uint8_t SOR_CRC(uint8_t *Data, uint8_t DataLen);
uint8_t Device_Data_Check(uint32_t sram_addr); uint8_t Device_Data_Check(uint32_t sram_addr);

View File

@@ -74,6 +74,7 @@
#include "BLV_Nor_Dev_GlobalSet.h" #include "BLV_Nor_Dev_GlobalSet.h"
#include "BLV_485_Dev_EnergyMonitor.h" #include "BLV_485_Dev_EnergyMonitor.h"
#include "BLV_Nor_Dev_ServiceFun.h" #include "BLV_Nor_Dev_ServiceFun.h"
#include "BLV_485_Dev_ShangJingTianIrSendFun.h"
#include "BLV_Dev_Action.h" #include "BLV_Dev_Action.h"
#include "BLV_All_Dev_Init.h" #include "BLV_All_Dev_Init.h"
@@ -81,7 +82,7 @@
#include "BLV_Logic_Edit.h" #include "BLV_Logic_Edit.h"
#include "mqtt.h" #include "mqtt.h"
#include "aLiYun.h" #include "aLiYun.h"
#include "BLV_485_Dev_YangGeLockFun.h"
//#if UDPServer_Internal_Flag //#if UDPServer_Internal_Flag
//#include "UDPServer_Internal_Protocol.h" //<2F>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD> //#include "UDPServer_Internal_Protocol.h" //<2F>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD>
@@ -260,7 +261,7 @@
#if (SoftName_Custom_Enable == 0x00) #if (SoftName_Custom_Enable == 0x00)
#if (LOGIC_FILE_EN == 0x01) #if (LOGIC_FILE_EN == 0x01)
#define SoftwareVer "C1F_A_L4_43_260117" //<2F><><EFBFBD><EFBFBD><EFBFBD>汾 20Byte #define SoftwareVer "C1F_A_L4_43_260209" //<2F><><EFBFBD><EFBFBD><EFBFBD>汾 20Byte
#else #else
#define SoftwareVer "C1F_C5_Init220525 " //<2F><><EFBFBD><EFBFBD><EFBFBD>汾 20Byte #define SoftwareVer "C1F_C5_Init220525 " //<2F><><EFBFBD><EFBFBD><EFBFBD>汾 20Byte
#endif #endif

View File

@@ -1653,6 +1653,8 @@ uint8_t Logic_DeviceType_Legal_Judgment(LOGICFILE_DEVICE_INFO *dev_info)
case DEV_RS485_IR_SEND: //<2F><><EFBFBD><EFBFBD><E2B7A2> case DEV_RS485_IR_SEND: //<2F><><EFBFBD><EFBFBD><E2B7A2>
if((dev_info->version == 0x01) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F><>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD> if((dev_info->version == 0x01) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F><>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>
if((dev_info->version == 0x02) && (dev_info->port == Active_Port)) rev = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD> if((dev_info->version == 0x02) && (dev_info->port == Active_Port)) rev = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>
if((dev_info->version == 0x03) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F><>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>
if((dev_info->version == 0x04) && (dev_info->port == Active_Port)) rev = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>
break; break;
case DEV_RS485_DIMMING: //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> case DEV_RS485_DIMMING: //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>豸Ԥ<E8B1B8><D4A4>ȡ<EFBFBD><C8A1> - <20>ϲ<EFBFBD><CFB2><EFBFBD>485PWM<57><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD>豸Ԥ<E8B1B8><D4A4>ȡ<EFBFBD><C8A1> - <20>ϲ<EFBFBD><CFB2><EFBFBD>485PWM<57><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -1670,6 +1672,7 @@ uint8_t Logic_DeviceType_Legal_Judgment(LOGICFILE_DEVICE_INFO *dev_info)
if((dev_info->version == 0x01) && (dev_info->port == Active_Port)) rev = 0x00; //BLW΢<57><CEA2><EFBFBD><EFBFBD> if((dev_info->version == 0x01) && (dev_info->port == Active_Port)) rev = 0x00; //BLW΢<57><CEA2><EFBFBD><EFBFBD>
else if((dev_info->version == 0x02) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD> else if((dev_info->version == 0x02) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>
else if((dev_info->version == 0x03) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD> else if((dev_info->version == 0x03) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD>
else if((dev_info->version == 0x04) && (dev_info->port == Active_Port)) rev = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2025-12-19
break; break;
case DEV_RS485_MUSIC: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> case DEV_RS485_MUSIC: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if((dev_info->version == 0x01) && (dev_info->port == Bus_port)) rev = 0x00; //BLV_Cx<43><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> if((dev_info->version == 0x01) && (dev_info->port == Bus_port)) rev = 0x00; //BLV_Cx<43><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -1785,10 +1788,12 @@ uint8_t Logic_DeviceType_Legal_Judgment(LOGICFILE_DEVICE_INFO *dev_info)
if((dev_info->version == 0x01) && (dev_info->port == 0x00)) rev = 0x00; //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> if((dev_info->version == 0x01) && (dev_info->port == 0x00)) rev = 0x00; //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break; break;
#endif #endif
#if Dev_485_Energy_Monitor_Flag
case Dev_Energy_Monitor: case Dev_Energy_Monitor:
if((dev_info->version == 0x01) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F>ܺļ<DCBA><C4BC><EFBFBD> if((dev_info->version == 0x01) && (dev_info->port == Polling_Port)) rev = 0x00; //<2F>ܺļ<DCBA><C4BC><EFBFBD>
if((dev_info->version == 0x01) && (dev_info->port == Active_Port)) rev = 0x00; //<2F>ܺļ<DCBA><C4BC><EFBFBD> if((dev_info->version == 0x01) && (dev_info->port == Active_Port)) rev = 0x00; //<2F>ܺļ<DCBA><C4BC><EFBFBD>
break; break;
#endif
} }
return rev; return rev;
@@ -3427,7 +3432,7 @@ void Logic_Device_Add_To_List(uint8_t type,uint8_t *data,uint16_t len)
#endif #endif
#if RS485_WxLock_Flag #if RS485_WxLock_Flag
case DEV_RS485_WxLock: case DEV_RS485_WxLock:
//Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>ַ: %d",temp_dev_info.addr); Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ѯ:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>ַ: %d",temp_dev_info.addr);
BLW_RS485_WeixinLockFun_Logic_Init(&temp_dev_info,data,len); BLW_RS485_WeixinLockFun_Logic_Init(&temp_dev_info,data,len);
break; break;
#endif #endif
@@ -3516,7 +3521,7 @@ void Logic_Device_Add_To_List(uint8_t type,uint8_t *data,uint16_t len)
#endif #endif
#if RS485_WxLock_Flag #if RS485_WxLock_Flag
case DEV_RS485_WxLock: case DEV_RS485_WxLock:
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>ַ: %d",temp_dev_info.addr); Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>΢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>ַ: %d",temp_dev_info.addr);
BLW_RS485_WeixinLockFun_Logic_Init(&temp_dev_info,data,len); //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD>˿ڼ<CBBF><DABC><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BLW_RS485_WeixinLockFun_Logic_Init(&temp_dev_info,data,len); //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD>˿ڼ<CBBF><DABC><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break; break;
#endif #endif

View File

@@ -22,38 +22,38 @@ Dialog DLL: TARMCM1.DLL V1.14.1.0
<h2>Project:</h2> <h2>Project:</h2>
E:\Git_Project_Sourcode\BLV_C1F_Module\Pro\Pro-9999_Logic_CC_251027_0x5000_Simplify\MDK_PROJECT\project.uvprojx E:\Git_Project_Sourcode\BLV_C1F_Module\Pro\Pro-9999_Logic_CC_251027_0x5000_Simplify\MDK_PROJECT\project.uvprojx
Project File Date: 12/30/2025 Project File Date: 02/09/2026
<h2>Output:</h2> <h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'TEST' Rebuild target 'TEST'
assembling startup_ARMCM0.s... assembling startup_ARMCM0.s...
compiling CH57x_pwr.c... compiling CH57x_pwr.c...
compiling CH57x_int.c...
compiling CH57x_gpio.c... compiling CH57x_gpio.c...
compiling CH57x_sys.c... compiling CH57x_int.c...
compiling main.c...
compiling CH57x_clk.c... compiling CH57x_clk.c...
compiling CH57x_sys.c...
compiling CH57x_adc.c... compiling CH57x_adc.c...
compiling main.c...
compiling CH57x_uart1.c...
compiling CH57x_timer0.c... compiling CH57x_timer0.c...
compiling CH57x_uart2.c... compiling CH57x_uart2.c...
compiling CH57x_uart0.c... compiling CH57x_uart0.c...
compiling CH57x_flash.c... compiling CH57x_flash.c...
compiling CH57x_uart1.c...
compiling CH57x_uart3.c... compiling CH57x_uart3.c...
compiling CH57x_spi0.c... compiling CH57x_spi0.c...
compiling CH57x_spi1.c... compiling CH57x_spi1.c...
compiling dwg.c...
compiling Debug.c... compiling Debug.c...
compiling rtc.c... compiling rtc.c...
compiling key.c... compiling key.c...
compiling dwg.c...
compiling flash.c... compiling flash.c...
compiling usart.c... compiling usart.c...
compiling Log_api.c... compiling Log_api.c...
compiling check_fun.c... compiling check_fun.c...
compiling SPI_SRAM.c... compiling SPI_SRAM.c...
compiling md5.c...
compiling rw_logging.c... compiling rw_logging.c...
compiling md5.c...
compiling DNS.c... compiling DNS.c...
compiling BLV_Authorize.c... compiling BLV_Authorize.c...
compiling net.c... compiling net.c...
@@ -65,26 +65,26 @@ compiling PC_DeviceTest_Fun.c...
compiling BLV_NET_Function.c... compiling BLV_NET_Function.c...
compiling BLV_485_Dev_TempFun.c... compiling BLV_485_Dev_TempFun.c...
compiling BLV_485_Dev_Touch_SwiFun.c... compiling BLV_485_Dev_Touch_SwiFun.c...
compiling BLV_485_Dev_IrSendFun.c...
compiling BLV_485_Dev_C7TFun.c... compiling BLV_485_Dev_C7TFun.c...
compiling BLV_485_Dev_IrSendFun.c...
compiling BLV_485_Dev_A9RelayFun.c... compiling BLV_485_Dev_A9RelayFun.c...
compiling BLV_485_Dev_PwmFun.c... compiling BLV_485_Dev_PwmFun.c...
compiling BLV_485_Dev_TimeFun.c... compiling BLV_485_Dev_TimeFun.c...
compiling BLV_BUS_Dev_C12DimmingFun.c... compiling BLV_BUS_Dev_C12DimmingFun.c...
compiling BLV_Nor_DevFun.c...
compiling BLV_485_Dev_XiaoBaoFun.c... compiling BLV_485_Dev_XiaoBaoFun.c...
compiling BLV_Nor_DevFun.c...
compiling BLV_485_Dev_TempT1Fun.c... compiling BLV_485_Dev_TempT1Fun.c...
compiling BLV_All_Dev_Init.c... compiling BLV_All_Dev_Init.c...
compiling BLV_485_Dev_A9LDFun.c... compiling BLV_485_Dev_A9LDFun.c...
compiling BLV_485_Dev_PirFun.c...
compiling BLV_485_Dev_RGB_Light_BeltFun.c... compiling BLV_485_Dev_RGB_Light_BeltFun.c...
compiling BLV_485_Dev_LEDFun.c... compiling BLV_485_Dev_PirFun.c...
compiling BLV_485_Dev_SliderFun.c... compiling BLV_485_Dev_SliderFun.c...
compiling BLV_485_Dev_LEDFun.c...
compiling BLV_485_Dev_AirRevealFun.c... compiling BLV_485_Dev_AirRevealFun.c...
compiling BLV_485_Dev_A9IO_SwiFun.c... compiling BLV_485_Dev_A9IO_SwiFun.c...
compiling BLV_485_Dev_AirDetectFun.c... compiling BLV_485_Dev_AirDetectFun.c...
compiling BLV_485_Dev_SwitchFun.c...
compiling BLV_485_Dev_A8PBFun.c... compiling BLV_485_Dev_A8PBFun.c...
compiling BLV_485_Dev_SwitchFun.c...
compiling BLV_Dev_Action.c... compiling BLV_Dev_Action.c...
compiling BLV_485_Dev_BLWMusicFun.c... compiling BLV_485_Dev_BLWMusicFun.c...
compiling BLV_485_Dev_MusicFun.c... compiling BLV_485_Dev_MusicFun.c...
@@ -92,63 +92,65 @@ compiling BLV_485_Dev_C5RelayFun.c...
compiling BLV_485_Dev_C12DimFun.c... compiling BLV_485_Dev_C12DimFun.c...
compiling BLV_485_Dev_IN_CH6.c... compiling BLV_485_Dev_IN_CH6.c...
compiling BLV_485_Dev_SwiRelayFun.c... compiling BLV_485_Dev_SwiRelayFun.c...
compiling BLV_485_Dev_HuaErSiFun.c...
compiling BLV_485_Dev_LCDFun.c...
compiling BLV_TempPrompt_Action.c... compiling BLV_TempPrompt_Action.c...
compiling BLV_485_Dev_HuaErSiFun.c...
compiling BLV_485_Dev_CardStateFun.c... compiling BLV_485_Dev_CardStateFun.c...
compiling BLV_485_Dev_LCDFun.c...
compiling BLV_485_Dev_FloorHeatFun.c... compiling BLV_485_Dev_FloorHeatFun.c...
compiling BLV_485_Dev_FreshAirFun.c... compiling BLV_485_Dev_FreshAirFun.c...
compiling BLV_485_Dev_CLEDFloorHeatFun.c... compiling BLV_485_Dev_CLEDFloorHeatFun.c...
compiling BLV_485_Dev_CLEDFreshAirFun.c... compiling BLV_485_Dev_CLEDFreshAirFun.c...
compiling BLV_485_Dev_BLWFloorHeatFun.c...
compiling BLV_485_Dev_BLWFreshAirFun.c... compiling BLV_485_Dev_BLWFreshAirFun.c...
compiling BLV_485_Dev_BLWFloorHeatFun.c...
compiling BLV_485_Dev_BLE_Music.c... compiling BLV_485_Dev_BLE_Music.c...
compiling BLV_485_Dev_Rotary_SwitchFun.c... compiling BLV_485_Dev_ShangJingTianIrSendFun.c...
compiling BLV_485_Dev_EnergyMonitor.c... compiling BLV_485_Dev_EnergyMonitor.c...
compiling BLV_485_Dev_Rotary_SwitchFun.c...
compiling BLV_485_Dev_BLVP1_Rotary_Switch.c... compiling BLV_485_Dev_BLVP1_Rotary_Switch.c...
compiling BLV_485_Dev_BLVP2_Rotary_Switch.c... compiling BLV_485_Dev_BLVP2_Rotary_Switch.c...
compiling BLV_485_Dev_CurtainFun.c...
compiling BLV_485_Dev_BinShen_Curtain.c... compiling BLV_485_Dev_BinShen_Curtain.c...
compiling BLV_485_Dev_BLWLockFun.c... compiling BLV_485_Dev_BLWLockFun.c...
compiling BLV_485_Dev_CurtainFun.c...
compiling BLV_485_Dev_ChuangJiaLockFun.c... compiling BLV_485_Dev_ChuangJiaLockFun.c...
compiling BLV_485_Dev_WeixinLockFun.c... compiling BLV_485_Dev_WeixinLockFun.c...
compiling BLV_RF_GatewayHost.c... compiling BLV_RF_GatewayHost.c...
compiling BLV_485_Dev_PB20_Strip_Fun.c...
compiling BLV_485_Dev_FreegoLockFun.c... compiling BLV_485_Dev_FreegoLockFun.c...
compiling BLV_485_Dev_YangGeLockFun.c...
compiling BLV_485_Dev_PB20_LED_Fun.c... compiling BLV_485_Dev_PB20_LED_Fun.c...
compiling BLV_485_Dev_PB20_Relay_Fun.c... compiling BLV_485_Dev_PB20_Relay_Fun.c...
compiling BLV_485_Dev_PB20_Strip_Fun.c...
compiling BLV_Bus_Dev_PB20Fun.c... compiling BLV_Bus_Dev_PB20Fun.c...
compiling BLV_Nor_Dev_ServiceFun.c... compiling BLV_Nor_Dev_ServiceFun.c...
compiling BLV_Nor_Dev_LVinputFun.c... compiling BLV_Nor_Dev_LVinputFun.c...
compiling BLV_Nor_Dev_CurtainFun.c...
compiling BLV_Nor_Dev_LVoutputFun.c...
compiling BLV_Nor_Dev_HVoutFun.c... compiling BLV_Nor_Dev_HVoutFun.c...
compiling BLV_Nor_Dev_NoCard.c... compiling BLV_Nor_Dev_LVoutputFun.c...
compiling BLV_Nor_Dev_CurtainFun.c...
compiling BLV_Nor_Dev_ColorTemp.c... compiling BLV_Nor_Dev_ColorTemp.c...
compiling BLV_Nor_Dev_NoCard.c...
compiling BLV_Nor_Dev_VirtualTimeFun.c... compiling BLV_Nor_Dev_VirtualTimeFun.c...
compiling BLV_Nor_Dev_GlobalSet.c...
compiling aLiYun.c...
compiling BLV_Nor_Dev_Scene_Restore.c...
compiling BLV_Nor_Dev_CarbonFun.c... compiling BLV_Nor_Dev_CarbonFun.c...
compiling BLV_Nor_Dev_VirtualCard.c... compiling BLV_Nor_Dev_GlobalSet.c...
compiling BLV_Nor_Dev_Scene_Restore.c...
compiling utils_hmac.c... compiling utils_hmac.c...
compiling aLiYun.c...
compiling utils_md5.c...
compiling BLV_Nor_Dev_VirtualCard.c...
compiling MQTTConnectClient.c... compiling MQTTConnectClient.c...
compiling mqtt.c...
compiling Udp_Internal_Protocol.c... compiling Udp_Internal_Protocol.c...
compiling MQTTDeserializePublish.c... compiling MQTTDeserializePublish.c...
compiling utils_md5.c...
compiling MQTTFormat.c... compiling MQTTFormat.c...
compiling MQTTSerializePublish.c...
compiling MQTTPacket.c... compiling MQTTPacket.c...
compiling mqtt.c... compiling MQTTSerializePublish.c...
compiling BLV_Logic_Edit.c... compiling BLV_Logic_Edit.c...
compiling MQTTSubscribeClient.c... compiling MQTTSubscribeClient.c...
compiling MQTTUnsubscribeClient.c... compiling MQTTUnsubscribeClient.c...
compiling utils_sha1.c... compiling utils_sha1.c...
linking... linking...
Program Size: Code=224256 RO-data=8380 RW-data=812 ZI-data=22676 Program Size: Code=223688 RO-data=8220 RW-data=812 ZI-data=22676
FromELF: creating hex file... FromELF: creating hex file...
After Build - User command #1: D:\Keil_v5\\ARM\ARMCC\bin\fromelf.exe --bin --output=Bin\C1F_A_L4_43_251230_NM.bin .\Objects\C1F_A_L4_43_251230_NM.axf After Build - User command #1: D:\Keil_v5\\ARM\ARMCC\bin\fromelf.exe --bin --output=Bin\C1F_A_L4_43_260209_NM.bin .\Objects\C1F_A_L4_43_260209_NM.axf
".\Objects\C1F_A_L4_43_251230_NM.axf" - 0 Error(s), 0 Warning(s). ".\Objects\C1F_A_L4_43_260209_NM.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2> <h2>Software Packages used:</h2>
@@ -162,7 +164,7 @@ Package Vendor: Keil
D:\Keil_v5\Pack\Keil\WCH57x_DFP\1.1.0\Drivers\CMSIS\Device\WCH\CH57x\Include D:\Keil_v5\Pack\Keil\WCH57x_DFP\1.1.0\Drivers\CMSIS\Device\WCH\CH57x\Include
<h2>Collection of Component Files used:</h2> <h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:16 Build Time Elapsed: 00:00:18
</pre> </pre>
</body> </body>
</html> </html>

View File

@@ -77,6 +77,7 @@
".\objects\blv_485_dev_blwfloorheatfun.o" ".\objects\blv_485_dev_blwfloorheatfun.o"
".\objects\blv_485_dev_ble_music.o" ".\objects\blv_485_dev_ble_music.o"
".\objects\blv_485_dev_energymonitor.o" ".\objects\blv_485_dev_energymonitor.o"
".\objects\blv_485_dev_shangjingtianirsendfun.o"
".\objects\blv_485_dev_rotary_switchfun.o" ".\objects\blv_485_dev_rotary_switchfun.o"
".\objects\blv_485_dev_blvp1_rotary_switch.o" ".\objects\blv_485_dev_blvp1_rotary_switch.o"
".\objects\blv_485_dev_blvp2_rotary_switch.o" ".\objects\blv_485_dev_blvp2_rotary_switch.o"
@@ -87,6 +88,7 @@
".\objects\blv_485_dev_weixinlockfun.o" ".\objects\blv_485_dev_weixinlockfun.o"
".\objects\blv_rf_gatewayhost.o" ".\objects\blv_rf_gatewayhost.o"
".\objects\blv_485_dev_freegolockfun.o" ".\objects\blv_485_dev_freegolockfun.o"
".\objects\blv_485_dev_yanggelockfun.o"
".\objects\blv_485_dev_pb20_led_fun.o" ".\objects\blv_485_dev_pb20_led_fun.o"
".\objects\blv_485_dev_pb20_relay_fun.o" ".\objects\blv_485_dev_pb20_relay_fun.o"
".\objects\blv_485_dev_pb20_strip_fun.o" ".\objects\blv_485_dev_pb20_strip_fun.o"
@@ -117,7 +119,7 @@
".\objects\mqttserializepublish.o" ".\objects\mqttserializepublish.o"
".\objects\mqttsubscribeclient.o" ".\objects\mqttsubscribeclient.o"
".\objects\mqttunsubscribeclient.o" ".\objects\mqttunsubscribeclient.o"
--library_type=microlib --strict --scatter ".\Objects\C1F_A_L4_43_251230_NM.sct" --library_type=microlib --strict --scatter ".\Objects\C1F_A_L4_43_260209_NM.sct"
--summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols
--info sizes --info totals --info unused --info veneers --info sizes --info totals --info unused --info veneers
--list ".\Listings\C1F_A_L4_43_251230_NM.map" -o .\Objects\C1F_A_L4_43_251230_NM.axf --list ".\Listings\C1F_A_L4_43_260209_NM.map" -o .\Objects\C1F_A_L4_43_260209_NM.axf

File diff suppressed because one or more lines are too long

View File

@@ -1252,6 +1252,18 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>84</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\BasicCode\Drive\BLV_485_Protocol\BLV_485_Dev_ShangJingTianIrSendFun.c</PathWithFileName>
<FilenameWithoutPath>BLV_485_Dev_ShangJingTianIrSendFun.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@@ -1262,7 +1274,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>84</FileNumber> <FileNumber>85</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1274,7 +1286,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>85</FileNumber> <FileNumber>86</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1286,7 +1298,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>86</FileNumber> <FileNumber>87</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1306,7 +1318,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>87</FileNumber> <FileNumber>88</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1318,7 +1330,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>88</FileNumber> <FileNumber>89</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1338,7 +1350,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>89</FileNumber> <FileNumber>90</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1350,7 +1362,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>90</FileNumber> <FileNumber>91</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1362,7 +1374,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>91</FileNumber> <FileNumber>92</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1374,7 +1386,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>92</FileNumber> <FileNumber>93</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1386,7 +1398,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>93</FileNumber> <FileNumber>94</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1396,6 +1408,18 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>95</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\BasicCode\Drive\BLV_485_Protocol\BLV_485_Dev_YangGeLockFun.c</PathWithFileName>
<FilenameWithoutPath>BLV_485_Dev_YangGeLockFun.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@@ -1406,7 +1430,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>94</FileNumber> <FileNumber>96</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1418,7 +1442,7 @@
</File> </File>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>95</FileNumber> <FileNumber>97</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1430,7 +1454,7 @@
</File> </File>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>96</FileNumber> <FileNumber>98</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1442,7 +1466,7 @@
</File> </File>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>97</FileNumber> <FileNumber>99</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1462,7 +1486,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>98</FileNumber> <FileNumber>100</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1474,7 +1498,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>99</FileNumber> <FileNumber>101</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1486,7 +1510,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>100</FileNumber> <FileNumber>102</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1498,7 +1522,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>101</FileNumber> <FileNumber>103</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1510,7 +1534,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>102</FileNumber> <FileNumber>104</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1522,7 +1546,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>103</FileNumber> <FileNumber>105</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1534,7 +1558,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>104</FileNumber> <FileNumber>106</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1546,7 +1570,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>105</FileNumber> <FileNumber>107</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1558,7 +1582,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>106</FileNumber> <FileNumber>108</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1570,7 +1594,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>107</FileNumber> <FileNumber>109</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1582,7 +1606,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>108</FileNumber> <FileNumber>110</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1594,7 +1618,7 @@
</File> </File>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>109</FileNumber> <FileNumber>111</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1614,7 +1638,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>110</FileNumber> <FileNumber>112</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1634,7 +1658,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>11</GroupNumber> <GroupNumber>11</GroupNumber>
<FileNumber>111</FileNumber> <FileNumber>113</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1654,7 +1678,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>112</FileNumber> <FileNumber>114</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1666,7 +1690,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>113</FileNumber> <FileNumber>115</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1678,7 +1702,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>114</FileNumber> <FileNumber>116</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1690,7 +1714,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>115</FileNumber> <FileNumber>117</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1702,7 +1726,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>116</FileNumber> <FileNumber>118</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1714,7 +1738,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>117</FileNumber> <FileNumber>119</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1726,7 +1750,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>118</FileNumber> <FileNumber>120</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1738,7 +1762,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>119</FileNumber> <FileNumber>121</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1750,7 +1774,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>120</FileNumber> <FileNumber>122</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1762,7 +1786,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>121</FileNumber> <FileNumber>123</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1774,7 +1798,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>122</FileNumber> <FileNumber>124</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1786,7 +1810,7 @@
</File> </File>
<File> <File>
<GroupNumber>12</GroupNumber> <GroupNumber>12</GroupNumber>
<FileNumber>123</FileNumber> <FileNumber>125</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@@ -1806,7 +1830,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>13</GroupNumber> <GroupNumber>13</GroupNumber>
<FileNumber>124</FileNumber> <FileNumber>126</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>

View File

@@ -49,7 +49,7 @@
<InvalidFlash>1</InvalidFlash> <InvalidFlash>1</InvalidFlash>
</TargetStatus> </TargetStatus>
<OutputDirectory>.\Objects\</OutputDirectory> <OutputDirectory>.\Objects\</OutputDirectory>
<OutputName>C1F_A_L4_43_251230_NM</OutputName> <OutputName>C1F_A_L4_43_260209_NM</OutputName>
<CreateExecutable>1</CreateExecutable> <CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib> <CreateLib>0</CreateLib>
<CreateHexFile>1</CreateHexFile> <CreateHexFile>1</CreateHexFile>
@@ -812,6 +812,11 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\BasicCode\Drive\BLV_485_Protocol\BLV_485_Dev_EnergyMonitor.c</FilePath> <FilePath>..\..\..\BasicCode\Drive\BLV_485_Protocol\BLV_485_Dev_EnergyMonitor.c</FilePath>
</File> </File>
<File>
<FileName>BLV_485_Dev_ShangJingTianIrSendFun.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\BasicCode\Drive\BLV_485_Protocol\BLV_485_Dev_ShangJingTianIrSendFun.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
@@ -877,6 +882,11 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\BasicCode\Drive\BLV_485_Protocol\BLV_485_Dev_FreegoLockFun.c</FilePath> <FilePath>..\..\..\BasicCode\Drive\BLV_485_Protocol\BLV_485_Dev_FreegoLockFun.c</FilePath>
</File> </File>
<File>
<FileName>BLV_485_Dev_YangGeLockFun.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\BasicCode\Drive\BLV_485_Protocol\BLV_485_Dev_YangGeLockFun.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>

View File

@@ -42,28 +42,28 @@
/*<2A>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/ /*<2A>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/
#define RS485_HVout_C5RELAY_Flag 0x01 //C5<43>̵<EFBFBD><CCB5><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_HVout_C5RELAY_Flag 0x01 //C5<43>̵<EFBFBD><CCB5><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_HVout_A9RELAY_Flag 0x01 //A9<41>̵<EFBFBD><CCB5><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_HVout_A9RELAY_Flag 0x01 //A9<41>̵<EFBFBD><CCB5><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_HVout_SwiRELAY_Flag 0x00 //ǿ<><EFBFBD>ؼ̵<D8BC><CCB5><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_HVout_SwiRELAY_Flag 0x01 //ǿ<><EFBFBD>ؼ̵<D8BC><CCB5><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
/*<2A>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ /*<2A>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/ /*485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/
#define RS485_Switch_Touch_Flag 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_Switch_Touch_Flag 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_Switch_A9IO_Flag 0x00 //A9IO<49><4F><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_Switch_A9IO_Flag 0x01 //A9IO<49><4F><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_Switch_Rotary_Flag 0x01 //<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #define RS485_Switch_Rotary_Flag 0x00 //<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define RS485_Switch_Rotary_P1_Flag 0x00 //<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>1 #define RS485_Switch_Rotary_P1_Flag 0x00 //<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>1
#define RS485_Switch_Rotary_P2_Flag 0x01 //<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>2 #define RS485_Switch_Rotary_P2_Flag 0x00 //<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>2
/*485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ /*485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*485<38>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/ /*485<38>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/
#define RS485_Temp_T1_Flag 0x01 //T1<54>¿<EFBFBD><C2BF><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_Temp_T1_Flag 0x01 //T1<54>¿<EFBFBD><C2BF><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_Temp_T1_Flag_Si 0x00 //T1<54>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺܣ<C4B9> #define RS485_Temp_T1_Flag_Si 0x01 //T1<54>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺܣ<C4B9>
#define RS485_Temp_T1_Active_Flag 0x00 //T1<54>¿<EFBFBD><C2BF><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ĺ<EFBFBD> #define RS485_Temp_T1_Active_Flag 0x01 //T1<54>¿<EFBFBD><C2BF><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ĺ<EFBFBD>
#define RS485_Temp_C7T_Flag 0x01 //C7T<37>¿<EFBFBD><C2BF><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_Temp_C7T_Flag 0x00 //C7T<37>¿<EFBFBD><C2BF><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
/*485<38>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ /*485<38>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*485<38>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/ /*485<38>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/
#define RS485_LED_Flag 0x01 //485PWM<57><4D><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD> #define RS485_LED_Flag 0x01 //485PWM<57><4D><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>
#define RS485_LED_PWM_Flag 0x00 //PWM0~10V<30><56><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_LED_PWM_Flag 0x00 //PWM0~10V<30><56><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_LED_A9LD_Flag 0x00 //A9LD<4C><44><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_LED_A9LD_Flag 0x01 //A9LD<4C><44><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_LED_Slider_Flag 0x00 //Slider<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_LED_Slider_Flag 0x00 //Slider<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_LED_A8PB_Flag 0x00 //A8PB<50><42><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_LED_A8PB_Flag 0x00 //A8PB<50><42><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_LED_C12Dim_Flag 0x01 //C12Dim<69><6D><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_LED_C12Dim_Flag 0x01 //C12Dim<69><6D><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
@@ -77,16 +77,17 @@
#define RS485_RFGatewayHost_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>BLW΢<57><CEA2><EFBFBD><EFBFBD> #define RS485_RFGatewayHost_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>BLW΢<57><CEA2><EFBFBD><EFBFBD>
/*485΢<35><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/ /*485΢<35><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ*/
#define RS485_WxLock_Flag 0x00 //΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #define RS485_WxLock_Flag 0x01 //΢<><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define RS485_WxLock_BLW_Flag 0x00 //BLW΢<57><CEA2><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_WxLock_BLW_Flag 0x00 //BLW΢<57><CEA2><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_WxLock_FreeGo_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_WxLock_FreeGo_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_WxLock_CJia_Flag 0x00 //<2F><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD> #define RS485_WxLock_CJia_Flag 0x00 //<2F><><EFBFBD><EFBFBD>΢<EFBFBD><CEA2><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
#define RS485_WxLock_YangGe_Flag 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><30>ر<EFBFBD>
/*485΢<35><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ /*485΢<35><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define RS485_AirDetect_Flag 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ #define RS485_AirDetect_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
#define RS485_AirReveal_Flag 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>־ #define RS485_AirReveal_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>־
#define RS485_TimeCtrl_Flag 0x01 //ʱ<><CAB1><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> #define RS485_TimeCtrl_Flag 0x00 //ʱ<><CAB1><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
#define RS485_Curtain_Flag 0x00 //485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #define RS485_Curtain_Flag 0x00 //485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define RS485_DOOYA_Curtain_Flag 0x00 //<2F><><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #define RS485_DOOYA_Curtain_Flag 0x00 //<2F><><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -105,7 +106,7 @@
#if C8_TYPE #if C8_TYPE
#define RS485_PB20Fun_Flag 0x01 //PB20 #define RS485_PB20Fun_Flag 0x01 //PB20
#define RS485_PB20_LD_Flag 0x00 //PB20-LD #define RS485_PB20_LD_Flag 0x01 //PB20-LD
#define RS485_PB20_LS_Flag 0x01 //PB20-LS #define RS485_PB20_LS_Flag 0x01 //PB20-LS
#define RS485_PB20_Relay_Flag 0x01 //PB20-Relay #define RS485_PB20_Relay_Flag 0x01 //PB20-Relay
#define RS485_LCD_1602_Flag 0x01 //LCD #define RS485_LCD_1602_Flag 0x01 //LCD
@@ -126,20 +127,22 @@
#define Dev_485_Pir_Flag 0x00 //485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ #define Dev_485_Pir_Flag 0x00 //485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
#define Dev_Nor_ColorTemp 0x01 //ɫ<><C9AB>ģ<EFBFBD><C4A3> #define Dev_Nor_ColorTemp 0x00 //ɫ<><C9AB>ģ<EFBFBD><C4A3>
#define Dev_485_Card_Polling_Flag 0x01 //<2F><>ѵ<EFBFBD>˿<EFBFBD>485<38>忨ȡ<E5BFA8><C8A1> #define Dev_485_Card_Polling_Flag 0x01 //<2F><>ѵ<EFBFBD>˿<EFBFBD>485<38>忨ȡ<E5BFA8><C8A1>
#define Dev_485_Card_Active_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>485<38>忨ȡ<E5BFA8><C8A1> #define Dev_485_Card_Active_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>485<38>忨ȡ<E5BFA8><C8A1>
#define Dev_485_IrSend_Polling_Flag 0x01 //<2F><>ѵ<EFBFBD>˿ں<CBBF><DABA><EFBFBD>ת<EFBFBD><D7AA> #define Dev_485_IrSend_Polling_Flag 0x01 //<2F><>ѵ<EFBFBD>˿ں<CBBF><DABA><EFBFBD>ת<EFBFBD><D7AA>
#define Dev_485_IrSend_Active_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF><DABA><EFBFBD>ת<EFBFBD><D7AA> #define Dev_485_IrSend_Active_Flag 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF><DABA><EFBFBD>ת<EFBFBD><D7AA>
#define Dev_485_BLE_Music_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ #define Dev_485_BLE_Music_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
#define Dev_Nor_Carbon_Flag 0x01 //̼<><CCBC><EFBFBD><EFBFBD> #define Dev_Nor_Carbon_Flag 0x01 //̼<><CCBC><EFBFBD><EFBFBD>
#define Dev_Nor_Scene_Restore_Flag 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滹ԭ #define Dev_Nor_Scene_Restore_Flag 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滹ԭ
#define Dev_Nor_GlobalSet_Flag 0x01 //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,2025-07-14,YYW #define Dev_Nor_GlobalSet_Flag 0x01 //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,2025-07-14,YYW
#define Dev_485_Energy_Monitor_Flag 0x01 //<2F>ܺļ<DCBA><C4BC><EFBFBD>
#endif #endif

View File

@@ -2,6 +2,26 @@
### 2026-02-09
```C
1
-> BLV_485_Dev_YangGeLockFun
2 IRACC中央空调驱动
-> IRACC中央空调协议转换模块:IRACC-SWG-H
-> BLV_485_Dev_ShangJingTianIrSendFun
3
->
- -
- -
- buffer会做一个全量填充->1->0
-> ==
```
### 2026-02-03 ### 2026-02-03
```C ```C