fix:修改UDP通讯中,取电变化上报机制

1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。
2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
This commit is contained in:
caocong
2026-01-23 09:23:12 +08:00
commit 95916b9995
622 changed files with 1336094 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,131 @@
#ifndef BLV_BUS_DEV_C12DIMMINGFUN_H
#define BLV_BUS_DEV_C12DIMMINGFUN_H
#include "BLV_485_Protocol.h"
#define C12DIMMING_TYPE 0x03 //C12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>BLV_BUSЭ<53><D0AD>ͨѶʹ<D1B6><CAB9>
//#define DEV_C12DIMMING_Type 0x18 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD><D0B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
#define C12_SET_LIGHT_CMD 0x21 //<2F>ٷֱ<D9B7><D6B1><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define C12_SET_ONOFF_CMD 0x24 //<2F><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define C12_SET_WHOLE_CMD 0x23 //<2F>趨ȫ<E8B6A8><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define C12_SET_LIGHT_UPDOWN_CMD 0x22 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define C12_READ_LIGHT_CMD 0x20 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define C12_READ_LIGHT_ONOFF_CMD 0x20 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*<2A>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>*/
#define C12_READ_LIGHT_ONOFF_REPLY_CMD 0x30 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
#define C12_SET_LIGHT_REPLY_CMD 0x31 //<2F>ٷֱ<D9B7><D6B1><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
#define C12_SET_ONOFF_REPLY_CMD 0x34 //<2F><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
#define C12_SET_WHOLE_REPLY_CMD 0x33 //<2F>趨ȫ<E8B6A8><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
#define C12_SET_LIGHT_REPLY_UPDOWN_CMD 0x32 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
//#define C12_READ_ONOFF_CMD 0x25 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5>ڣ<EFBFBD>*/
#define BUS_C12DIMMING_UPDOWN_MODE_SINGLE 0x00 //(<28><><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>)<29><><EFBFBD>ȵ<EFBFBD><C8B5>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>˺<EFBFBD>ֹͣ
#define BUS_C12DIMMING_UPDOWN_MODE_LOOP 0x01 //(ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD>ȵ<EFBFBD><C8B5>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BUS_C12DIMMING_UPDOWN_MODE_STOP 0x02 //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
#define BUS_C12DIMMING_UPDOWN_DIR_DOWN 0x00 //<2F>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
#define BUS_C12DIMMING_UPDOWN_DIR_UP 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BUS_C12DIMMING_UPDOWN_DIR_TOGGLE 0x02 //<2F><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EEB7B4><EFBFBD>
/*<2A><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>*/
#define BUS_C12DIMMING_CHx_ON 0x01 //<2F>򿪻<EFBFBD>·
#define BUS_C12DIMMING_CHx_OFF 0x00 //<2F>رջ<D8B1>·
/*ȫ<>ֲ<EFBFBD><D6B2><EFBFBD>*/
#define BUS_C12DIMMING_WHOLE_LIGHT (1<<7) //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BUS_C12DIMMING_WHOLE_UPPER_LIMIT (1<<6) //ȫ<>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
#define BUS_C12DIMMING_WHOLE_LOWER_LIMIT (1<<5) //ȫ<>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
typedef enum{
C12Dimming_CH1,
C12Dimming_CH2,
C12Dimming_CH3,
C12Dimming_CH4,
C12Dimming_CH5,
C12Dimming_CH6,
C12Dimming_CH7,
C12Dimming_CH8,
C12Dimming_CH9,
C12Dimming_CH10,
C12Dimming_CH11,
C12Dimming_CH12,
C12Dimming_CH_MAX,
}BUS_C12DIMMING_NUM_E;
typedef struct{
BLV_COMM_RECORD_G comm_record; //ͨѶ<CDA8><D1B6>¼
uint8_t light[C12Dimming_CH_MAX]; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ֵ
uint8_t last_light[C12Dimming_CH_MAX]; //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
uint16_t on_off; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬
uint16_t last_on_off; //<2F><>һ<EFBFBD>ο<EFBFBD><CEBF><EFBFBD>״̬
uint8_t whole_light; //<2F><>ǰȫ<C7B0><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t whole_upper_limit; //<2F><>ǰȫ<C7B0><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t whole_lower_limit; //<2F><>ǰȫ<C7B0><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t light_updown_mode; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD>ģʽ
uint8_t light_updown_dir; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD>Ե<EFBFBD><D4B5>ڷ<EFBFBD><DAB7><EFBFBD>
uint8_t light_updown_num; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD>Ե<EFBFBD><D4B5>ڲ<EFBFBD><DAB2><EFBFBD>ֵ
uint16_t light_Control_Flag; //<2F>ٷֱ<D9B7><D6B1><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF>Ʊ<EFBFBD>־λ
uint16_t on_off_Control_Flag; //<2F><><EFBFBD>ؿ<EFBFBD><D8BF>Ʊ<EFBFBD>־λ
uint8_t whole_Control_Flag; //ȫ<>ֿ<EFBFBD><D6BF><EFBFBD>λ<EFBFBD><CEBB> bit7<74><37>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>bit6<74><36>ȫ<EFBFBD>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD>ޡ<EFBFBD> bit5<74><35>ȫ<EFBFBD>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
uint16_t light_updown_Control_Flag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5>ڿ<EFBFBD><DABF><EFBFBD>λ
uint16_t last_light_Control_Flag; //<2F>ϴΰٷֱ<D9B7><D6B1><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF>Ʊ<EFBFBD>־λ
uint16_t last_on_off_Control_Flag; //<2F>ϴο<CFB4><CEBF>ؿ<EFBFBD><D8BF>Ʊ<EFBFBD>־λ
uint8_t last_whole_Control_Flag; //<2F>ϴ<EFBFBD>ȫ<EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD>λ<EFBFBD><CEBB> bit7<74><37>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>bit6<74><36>ȫ<EFBFBD>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD>ޡ<EFBFBD> bit5<74><35>ȫ<EFBFBD>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
uint16_t last_light_updown_Control_Flag; //<2F>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5>ڿ<EFBFBD><DABF><EFBFBD>λ
uint8_t fade_time; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
uint8_t set_light[C12Dimming_CH_MAX]; //<2F><EFBFBD><E8B6A8><EFBFBD><EFBFBD>ֵ
uint8_t set_onoff; //<2F><EFBFBD><E8B6A8><EFBFBD><EFBFBD>״̬
uint8_t set_whole_light; //<2F>趨ȫ<E8B6A8><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t set_whole_upper_limit; //<2F>趨ȫ<E8B6A8>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
uint8_t set_whole_lower_limit; //<2F>趨ȫ<E8B6A8>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
uint8_t set_light_updown_mode; //<2F><EFBFBD><E8B6A8><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD>ģʽ
uint8_t set_light_updown_dir; //<2F><EFBFBD><E8B6A8><EFBFBD>Ե<EFBFBD><D4B5>ڷ<EFBFBD><DAB7><EFBFBD>
uint8_t set_light_updown_num; //<2F><EFBFBD><E8B6A8><EFBFBD>Ե<EFBFBD><D4B5>ڲ<EFBFBD><DAB2><EFBFBD>ֵ
uint8_t LedUpDown[C12Dimming_CH_MAX]; //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t Send_Type; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t DevSendCnt; //<2F><EFBFBD><E8B1B8><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>лظ<D0BB><D8B8><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
uint8_t DevOffline; //<2F><EFBFBD><E8B1B8><EFBFBD>߱<EFBFBD>־ 1<><31><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
uint8_t DevOfflineLast; //<2F><EFBFBD><E8B1B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD>־ 1<><31><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
uint8_t DevSendSN; //<2F><><EFBFBD><EFBFBD>SN<53><4E>
uint32_t inquire_tick; //ѯ<><D1AF>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
}__attribute__ ((__packed__)) BUS_C12DIMMING_INFO;
void BLV_BUS_DEV_C12Dimming_Data_Init(void);
uint8_t BLV_BUS_C12Dimming_Cycle_Call(uint32_t dev_addr);
uint8_t BLV_BUS_C12Dimming_Data_Processing(uint32_t dev_addr,uint32_t data_addr,uint16_t len);
void BUS_C12Dimming_Light_Control_Datasend(Device_Public_Information_G *BUS_Public, BUS_C12DIMMING_INFO *Dev_Info);
void BUS_C12Dimming_OnOff_Control_Datasend(Device_Public_Information_G *BUS_Public, BUS_C12DIMMING_INFO *Dev_Info);
void BUS_C12Dimming_Whole_Control_Datasend(Device_Public_Information_G *BUS_Public, BUS_C12DIMMING_INFO *Dev_Info);
void BUS_C12Dimming_UpDown_Control_Datasend(Device_Public_Information_G *BUS_Public, BUS_C12DIMMING_INFO *Dev_Info);
void BUS_C12Dimming_Inquire_Datasend(Device_Public_Information_G *BUS_Public, BUS_C12DIMMING_INFO *Dev_Info);
void BUS_C12Dimming_Control_CHx_OnOff(uint32_t dev_addr,BUS_C12DIMMING_NUM_E loop,uint8_t start); //<2F><><EFBFBD><EFBFBD>C12<31><32><EFBFBD>ⵥ·<E2B5A5><C2B7><EFBFBD><EFBFBD>
void BUS_C12Dimming_Control_OnOff(uint32_t dev_addr, uint16_t Control_Flag, uint8_t start); //<2F><><EFBFBD><EFBFBD>C12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
void BUS_C12Dimming_Control_CHx_Light(uint32_t dev_addr, BUS_C12DIMMING_NUM_E loop, uint8_t light, uint8_t fadeTime); //<2F><><EFBFBD><EFBFBD>C12<31><32><EFBFBD>ⵥ·<E2B5A5><C2B7><EFBFBD><EFBFBD>
void BUS_C12Dimming_Control_Light(uint32_t dev_addr, uint16_t Control_Flag, uint8_t light, uint8_t fadeTime, uint8_t onoff); //<2F><><EFBFBD><EFBFBD>C12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
/*<2A><><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>C12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>*/
void BUS_C12Dimming_Control_Light_Currency(uint32_t dev_addr, uint16_t Control_Flag, uint8_t* light, uint8_t fadeTime, uint8_t onoff);
void BUS_C12Dimming_Control_Whole(uint32_t dev_addr, uint8_t mask, uint8_t light, uint8_t upper_limit, uint8_t lower_limit); //<2F><><EFBFBD><EFBFBD>C12<31><32><EFBFBD><EFBFBD>ȫ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
void BUS_C12Dimming_Control_CHx_UpDown(uint32_t dev_addr, BUS_C12DIMMING_NUM_E loop, uint8_t mode, uint8_t dir, uint8_t num); //<2F><><EFBFBD><EFBFBD>C12<31><32><EFBFBD>ⵥ·<E2B5A5><C2B7><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
void BUS_C12Dimming_Control_UpDown(uint32_t dev_addr, uint16_t Control_Flag, uint8_t mode, uint8_t dir, uint8_t num); ////<2F><><EFBFBD><EFBFBD>C12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
void BLV_C12Dimming_Control_State(uint32_t CfgDevAddIn, uint16_t DevInputAddr, uint32_t devaddr,uint16_t loop,uint16_t start);
uint16_t BLV_C12Dimming_Read_State(uint32_t devaddr,uint16_t loop);
#endif