测试:场景执行初步测试OK

场景执行-弱电输入触发控制继电器
This commit is contained in:
caocong
2026-01-06 21:02:22 +08:00
parent 6e19d0b451
commit d10556b0d5
10 changed files with 558 additions and 295 deletions

View File

@@ -201,7 +201,7 @@ void Dev_LVoutput_Dis(uint32_t DevAddr)
BLV_Device_Info_Write_To_SRAM(DevAddr,&BUS_PublicLVoutput,(uint8_t *)&DevLVoutputInfo,sizeof(NOR_LVOUTPUT_INFO)); BLV_Device_Info_Write_To_SRAM(DevAddr,&BUS_PublicLVoutput,(uint8_t *)&DevLVoutputInfo,sizeof(NOR_LVOUTPUT_INFO));
BLV_Device_Info_Write_To_SRAM(DevLVoutputInfo.DevC5IOAddr+Dev_Privately,&BUS_PublicC5IO,(uint8_t *)&C5IO_Info,sizeof(BUS_C5IO_INFO)); BLV_Device_Info_Write_To_SRAM(DevLVoutputInfo.DevC5IOAddr,&BUS_PublicC5IO,(uint8_t *)&C5IO_Info,sizeof(BUS_C5IO_INFO));
} }

View File

@@ -78,6 +78,7 @@ __attribute__((section(".non_0_wait"))) uint8_t Dev_LVinput_InType_Get(uint32_t
if(DevInputType == DevLVinputInfo.DevReadBuf[DevInputLoop]) //<2F>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD> if(DevInputType == DevLVinputInfo.DevReadBuf[DevInputLoop]) //<2F>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>
{ {
DevLVinputInfo.DevReadBuf[DevInputLoop] = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DevLVinputInfo.DevReadBuf[DevInputLoop] = 0x00; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ret = CtrlValid; Ret = CtrlValid;
} }
@@ -239,7 +240,7 @@ __attribute__((section(".non_0_wait"))) void Dev_LVinput_Dis(uint32_t DevAddr)
BLV_Device_Info_Write_To_SRAM(DevAddr,&BUS_PublicLVinput,(uint8_t *)&DevLVinputInfo,sizeof(NOR_LVINPUT_INFO)); BLV_Device_Info_Write_To_SRAM(DevAddr,&BUS_PublicLVinput,(uint8_t *)&DevLVinputInfo,sizeof(NOR_LVINPUT_INFO));
/*<2A><><EFBFBD><EFBFBD>C5IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/ /*<2A><><EFBFBD><EFBFBD>C5IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
BLV_Device_Info_Write_To_SRAM(DevLVinputInfo.DevC5IOAddr+Dev_Privately,&BUS_PublicC5IO,(uint8_t *)&C5IO_Info,sizeof(BUS_C5IO_INFO)); BLV_Device_Info_Write_To_SRAM(DevLVinputInfo.DevC5IOAddr,&BUS_PublicC5IO,(uint8_t *)&C5IO_Info,sizeof(BUS_C5IO_INFO));
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@
#include "includes.h" #include "includes.h"
#include <string.h> #include <string.h>
uint8_t Global_Large_Buff[1100] = {0}; //<2F><><EFBFBD><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ⲿSRAMӳ<4D><D3B3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD> uint8_t Global_Large_Buff[1100] = {0}; //<2F><><EFBFBD><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ⲿSRAMӳ<4D><D3B3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
uint32_t ProjectCode = 1001; //ģ<><C4A3><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> uint32_t ProjectCode = 1001; //ģ<><C4A3><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
uint8_t Versions[4] = {0,0,0,0}; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ð汾 uint8_t Versions[4] = {0,0,0,0}; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ð汾

View File

@@ -1344,6 +1344,75 @@ __attribute__((section(".non_0_wait"))) void BLV_ActivePort_ModeTask(void)
} }
} }
/*******************************************************************************
* Function Name : BLV_Nor_Dev_Polling_Task
* Description : <20><>ͨ<EFBFBD>豸ɨ<E8B1B8><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ֮<><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>
*******************************************************************************/
void BLV_Nor_Dev_Polling_Task(void)
{
uint16_t i;
uint32_t Start_addr = SRAM_Read_DW(SRAM_ACTIVE_Device_List_Addr); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2>ʼ<EFBFBD><CABC>ַ
uint32_t List_addr;
static uint8_t FlagDis = 0x01;
if(0x01 == FlagDis)
{
FlagDis = 0x00;
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ:%08X,<2C><EFBFBD><E8B1B8><EFBFBD><EFBFBD>:%d",Start_addr,NorDevInfoGlobal.NorDeviceNum);
}
for(i = 0; i < NorDevInfoGlobal.NorDeviceNum; i++) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>
{
List_addr = Start_addr + i*SRAM_Device_List_Size;
{
Device_Public_Information_G BUS_Public; //<2F><><EFBFBD><EFBFBD>
if(BLV_Device_PublicInfo_Read_To_Struct(List_addr,&BUS_Public) == 0x00)
{
switch(BUS_Public.type)
{
// case Dev_Host_HVout: //ǿ<><C7BF><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD>״̬
case Dev_Host_LVinput: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>״̬
case Dev_Host_LVoutput: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>״̬
case Dev_Host_Service: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>״̬
case Dev_NodeCurtain: //<2F>ɽڵ㴰<DAB5><E3B4B0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>״̬
case Dev_Rs485_PB20_LD:
case Dev_Rs485_PB20_LS:
case Dev_Rs485_PB20_Relay:
case DEV_Virtual_NoCard:
case DEV_Virtual_Time:
case DEV_Virtual_Card:
case DEV_Virtual_ColorTemp:
case DEV_Carbon_Saved:
case Dev_Scene_Restore:
case Dev_Virtual_GlobalSet:
if(NULL != BUS_Public.DevFunInfo.Dev_Data_Process) //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD>벻Ϊ0
{
BUS_Public.DevFunInfo.Dev_Data_Process(List_addr); //<2F><><EFBFBD><EFBFBD>ת
}
}
}
}
}
}
/*******************************************************************************
* Function Name : BLV_NormalPort_ModeTask
* Description :
*******************************************************************************/
void BLV_Nor_Dev_ModeTask(void)
{
static uint32_t dev_Nor_processing_tick = 0;
if( SysTick_1ms - dev_Nor_processing_tick > 4) //5ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
{
dev_Nor_processing_tick = SysTick_1ms;
BLV_Nor_Dev_Polling_Task();
}
}
/******************************************************************************* /*******************************************************************************
* Function Name : BLV_Active_Set_List_Addr * Function Name : BLV_Active_Set_List_Addr
* Description : ActivePort <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ * Description : ActivePort <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
@@ -1572,7 +1641,7 @@ __attribute__((section(".non_0_wait"))) void Write_Device_Fault_State(
SRAM_Write_DW(read_addr,SRAM_DEVICE_ONLINE_STATE_TEMP_ADDR); SRAM_Write_DW(read_addr,SRAM_DEVICE_ONLINE_STATE_TEMP_ADDR);
} }
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s SRAM addr:%08X",__func__, write_addr); Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s SRAM addr:%X",__func__, write_addr);
memset(data,0x00,6); //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>0 memset(data,0x00,6); //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>0
@@ -1583,7 +1652,7 @@ __attribute__((section(".non_0_wait"))) void Write_Device_Fault_State(
if( (write_addr + 0x06) > SRAM_DEVICE_ONLINE_STATE_END_ADDR ) if( (write_addr + 0x06) > SRAM_DEVICE_ONLINE_STATE_END_ADDR )
{ {
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s overstep_1 %08X!!!",__func__,write_addr); Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s overstep_1 %X!!!",__func__,write_addr);
len = SRAM_DEVICE_ONLINE_STATE_END_ADDR - write_addr; len = SRAM_DEVICE_ONLINE_STATE_END_ADDR - write_addr;
SRAM_DMA_Write_Buff(data,len,write_addr); SRAM_DMA_Write_Buff(data,len,write_addr);
write_addr = SRAM_DEVICE_ONLINE_STATE_START_ADDR; write_addr = SRAM_DEVICE_ONLINE_STATE_START_ADDR;
@@ -1596,7 +1665,7 @@ __attribute__((section(".non_0_wait"))) void Write_Device_Fault_State(
if(write_addr > SRAM_DEVICE_ONLINE_STATE_END_ADDR) if(write_addr > SRAM_DEVICE_ONLINE_STATE_END_ADDR)
{ {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s overstep:%08X",__func__,write_addr); Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s overstep:%X",__func__,write_addr);
write_addr = SRAM_DEVICE_ONLINE_STATE_START_ADDR; write_addr = SRAM_DEVICE_ONLINE_STATE_START_ADDR;
} }

View File

@@ -57,6 +57,9 @@
#define DevCtrlDlyLen 0x08 //<2F><EFBFBD><E8B1B8><EFBFBD>Ƴ<EFBFBD><C6B3>ȴ<EFBFBD><C8B4><EFBFBD>ʱ<EFBFBD>̶<EFBFBD>8<EFBFBD><38><EFBFBD>ֽ<EFBFBD> <20><>Ҫ<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʱ<EFBFBD>ڵ<EFBFBD> #define DevCtrlDlyLen 0x08 //<2F><EFBFBD><E8B1B8><EFBFBD>Ƴ<EFBFBD><C6B3>ȴ<EFBFBD><C8B4><EFBFBD>ʱ<EFBFBD>̶<EFBFBD>8<EFBFBD><38><EFBFBD>ֽ<EFBFBD> <20><>Ҫ<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʱ<EFBFBD>ڵ<EFBFBD>
#define DevCtrlDlyLenAddr 0x10 //<2F><EFBFBD><E8B1B8><EFBFBD>Ƴ<EFBFBD><C6B3>ȴ<EFBFBD><C8B4><EFBFBD><E8B1B8>ַ<EFBFBD>̶<EFBFBD>16<31><36><EFBFBD>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ʹ<EFBFBD><CAB9> #define DevCtrlDlyLenAddr 0x10 //<2F><EFBFBD><E8B1B8><EFBFBD>Ƴ<EFBFBD><C6B3>ȴ<EFBFBD><C8B4><EFBFBD><E8B1B8>ַ<EFBFBD>̶<EFBFBD>16<31><36><EFBFBD>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ʹ<EFBFBD><CAB9>
#define DEV_ACTION_INFO_Size 864 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ܳ<EFBFBD> 864Byte
#define DevActionInfo_DevActionState_DevAddrIn_Index 59 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ַ<EFBFBD>±<EFBFBD>
typedef struct typedef struct
{ {
uint16_t ActionNo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint16_t ActionNo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -67,8 +70,8 @@ typedef struct
{ {
uint8_t DevType; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD> uint8_t DevType; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
uint8_t DevAddr; //<2F><EFBFBD><E8B1B8>ַ uint8_t DevAddr; //<2F><EFBFBD><E8B1B8>ַ
uint16_t inAddr; //<2F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ uint16_t DevLoop; //<2F><EFBFBD><EFBFBD>·
uint16_t inType; //<2F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint16_t DevEvent; //<2F><EFBFBD>¼<EFBFBD>
}Dev_Action_Input; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> һ<><D2BB>6<EFBFBD><36><EFBFBD>ֽ<EFBFBD> }Dev_Action_Input; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> һ<><D2BB>6<EFBFBD><36><EFBFBD>ֽ<EFBFBD>
typedef struct typedef struct
@@ -150,7 +153,6 @@ typedef struct CFG_Action_Add
Dev_Action_Cond DevActionCond; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> һ<><D2BB>9<EFBFBD>ֽ<EFBFBD> Dev_Action_Cond DevActionCond; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> һ<><D2BB>9<EFBFBD>ֽ<EFBFBD>
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD> <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>ܳ<EFBFBD>49<34>ֽ<EFBFBD> */ /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD> <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>ܳ<EFBFBD>49<34>ֽ<EFBFBD> */
Dev_Action_State DevActionState; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD> һ<><D2BB>11<31><31><EFBFBD>ֽ<EFBFBD> Dev_Action_State DevActionState; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD> һ<><D2BB>11<31><31><EFBFBD>ֽ<EFBFBD>
uint8_t CheckVal; //<2F><>ǰ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>У<EFBFBD><D0A3> 1<><31><EFBFBD>ֽ<EFBFBD> uint8_t CheckVal; //<2F><>ǰ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>У<EFBFBD><D0A3> 1<><31><EFBFBD>ֽ<EFBFBD>
uint16_t data_len; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD> 2<><32><EFBFBD>ֽ<EFBFBD> uint16_t data_len; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD> 2<><32><EFBFBD>ֽ<EFBFBD>
@@ -251,10 +253,6 @@ typedef struct
Dev_Dly_Value DlyBlinkTime; //<2F><>˸Ƶ<CBB8><C6B5> 0201 Ϊ1S<31>л<EFBFBD> 0202 Ϊ2S<32>л<EFBFBD> <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD> Ϊ<><CEAA>ǰ<EFBFBD><C7B0>Ҫִ<D2AA>е<EFBFBD><D0B5><EFBFBD>չ<EFBFBD><EFBFBD>±<EFBFBD> Dev_Dly_Value DlyBlinkTime; //<2F><>˸Ƶ<CBB8><C6B5> 0201 Ϊ1S<31>л<EFBFBD> 0202 Ϊ2S<32>л<EFBFBD> <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD> Ϊ<><CEAA>ǰ<EFBFBD><C7B0>Ҫִ<D2AA>е<EFBFBD><D0B5><EFBFBD>չ<EFBFBD><EFBFBD>±<EFBFBD>
}Struct_Dev_Dly; //<2F><EFBFBD><E8B1B8>ʱ<EFBFBD><EFBFBD><EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><20>̶<EFBFBD>16<31><36><EFBFBD>ֽ<EFBFBD> }Struct_Dev_Dly; //<2F><EFBFBD><E8B1B8>ʱ<EFBFBD><EFBFBD><EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><20>̶<EFBFBD>16<31><36><EFBFBD>ֽ<EFBFBD>
typedef struct{ typedef struct{
uint8_t Addr; uint8_t Addr;
uint16_t ExpandReadState[32]; uint16_t ExpandReadState[32];
@@ -269,15 +267,10 @@ typedef struct{
extern BLV_DevAction_Manage_G DevActionGlobal; extern BLV_DevAction_Manage_G DevActionGlobal;
uint8_t DevAction_Info_Write_To_SRAM(uint32_t addr,DEV_ACTION_INFO *DevAction_Info);
uint8_t DevAction_Info_Read_To_Struct(uint32_t addr,DEV_ACTION_INFO *DevAction_Info);
void Logic_DevAction_Add(uint8_t *data,uint16_t len); void Logic_DevAction_Add(uint8_t *data,uint16_t len);
uint32_t DevAction_No_Get(uint16_t DevActionNo); uint32_t DevAction_No_Get(uint16_t DevActionNo);
@@ -287,5 +280,6 @@ void DevAction_No_Ctrl(uint16_t DevActionNo, uint8_t Mode, uint16_t CtrlState);
uint8_t DevActionCtrl(uint8_t *p, uint8_t DataLen); uint8_t DevActionCtrl(uint8_t *p, uint8_t DataLen);
void BLV_DevAction_Task(void); void BLV_DevAction_Task(void);
void BLV_DevDly_Task(void);
#endif /* MCU_DRIVER_INC_BLV_DEV_ACTION_H_ */ #endif /* MCU_DRIVER_INC_BLV_DEV_ACTION_H_ */

View File

@@ -346,6 +346,8 @@ void BLV_PollPort_ModeTask(void);
void BLV_ActivePort_Task(void); void BLV_ActivePort_Task(void);
void Act485Port_Passthrough_Task(void); void Act485Port_Passthrough_Task(void);
void BLV_ActivePort_ModeTask(void); void BLV_ActivePort_ModeTask(void);
void BLV_Nor_Dev_ModeTask(void);
void BLV_Active_Set_List_Addr(uint32_t addr); void BLV_Active_Set_List_Addr(uint32_t addr);
uint32_t Find_Device_List_Information(uint8_t dev_type,uint8_t addr); uint32_t Find_Device_List_Information(uint8_t dev_type,uint8_t addr);
uint32_t Find_AllDevice_List_Information(uint8_t dev_type,uint8_t addr); uint32_t Find_AllDevice_List_Information(uint8_t dev_type,uint8_t addr);

View File

@@ -34,11 +34,12 @@ __attribute__((section(".non_0_wait"))) void Action_Coord_Get(uint32_t Dev_proce
for(i = 0; i < DevActionGlobal.DevActionNum; i++) // for(i = 0; i < DevActionGlobal.DevActionNum; i++) //
{ {
DevActionAddr = SRAM_DevAction_List_Start_Addr + i*SRAM_DevAction_List_Size; DevActionAddr = SRAM_DevAction_List_Start_Addr + i*SRAM_DevAction_List_Size + DevActionInfo_DevActionState_DevAddrIn_Index;
if(SRAM_Read_DW(DevActionAddr+sizeof(Dev_Action_Core)+sizeof(Dev_Action_Input)+sizeof(Dev_Action_Cond)+sizeof(Dev_Action_State)-4) == Dev_processing_addr) if(SRAM_Read_DW(DevActionAddr) == Dev_processing_addr)
{ {
BUS_Public->ActionCoord = i; //<2F><>ǰ<EFBFBD><C7B0>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>һ<EFBFBD>µĶ<C2B5><C4B6><EFBFBD> BUS_Public->ActionCoord = i; //<2F><>ǰ<EFBFBD><C7B0>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>һ<EFBFBD>µĶ<C2B5><C4B6><EFBFBD>
break; break;
} }
} }
@@ -74,8 +75,7 @@ __attribute__((section(".non_0_wait"))) void Dev_Coord_Get(void)
SRAM_DMA_Read_Buff((uint8_t *)&DevHVoutInfo,sizeof(NOR_HVOUT_INFO),Dev_processing_addr+Dev_Privately); SRAM_DMA_Read_Buff((uint8_t *)&DevHVoutInfo,sizeof(NOR_HVOUT_INFO),Dev_processing_addr+Dev_Privately);
DevHVoutInfo.DevC5IOAddr = Find_AllDevice_List_Information(DEV_C5IO_Type, 0x00); //<2F>õ<EFBFBD>C5IO<49><EFBFBD><E6B4A2>ַ DevHVoutInfo.DevC5IOAddr = Find_AllDevice_List_Information(DEV_C5IO_Type, 0x00); //<2F>õ<EFBFBD>C5IO<49><EFBFBD><E6B4A2>ַ
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"DevHVoutInfo.DevC5IOAddr:%08X", DevHVoutInfo.DevC5IOAddr); Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"DevHVoutInfo.DevC5IOAddr:%X", DevHVoutInfo.DevC5IOAddr);
SRAM_DMA_Write_Buff((uint8_t *)&DevHVoutInfo,sizeof(NOR_HVOUT_INFO),Dev_processing_addr+Dev_Privately); //<2F>̵<EFBFBD><CCB5><EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
BLV_Device_Info_Write_To_SRAM(Dev_processing_addr, &BUS_Public, (uint8_t *)&DevHVoutInfo,sizeof(NOR_HVOUT_INFO)); BLV_Device_Info_Write_To_SRAM(Dev_processing_addr, &BUS_Public, (uint8_t *)&DevHVoutInfo,sizeof(NOR_HVOUT_INFO));
}else { }else {
@@ -106,28 +106,36 @@ __attribute__((section(".non_0_wait"))) void DevAction_ReuseFlag_Get(void)
for(i = 0; i < DevActionGlobal.DevActionNum; i++) for(i = 0; i < DevActionGlobal.DevActionNum; i++)
{ {
list_addri = SRAM_DevAction_List_Start_Addr + i * SRAM_DevAction_List_Size; list_addri = SRAM_DevAction_List_Start_Addr + i * SRAM_DevAction_List_Size;
SRAM_DMA_Read_Buff((uint8_t *)&DevActionInfoi, sizeof(DEV_ACTION_INFO), list_addri); if(DevAction_Info_Read_To_Struct(list_addri, &DevActionInfoi) != 0x00)
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD>:%x",list_addri);
continue;
}
DevActionInfoi.DevActionState.DevAddrIn = Find_AllDevice_List_Information(DevActionInfoi.DevActionInput.DevType, DevActionInfoi.DevActionInput.DevAddr); DevActionInfoi.DevActionState.DevAddrIn = Find_AllDevice_List_Information(DevActionInfoi.DevActionInput.DevType, DevActionInfoi.DevActionInput.DevAddr);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d<><64><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d<><64><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%d,<2C><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%x", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d<><64><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d<><64><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%d,<2C><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%x",
DevActionInfoi.DevCtrlNum, DevActionInfoi.DevCtrlNum, \
DevActionInfoi.DevActionInput.DevType, DevActionInfoi.DevActionInput.DevType, \
DevActionInfoi.DevActionInput.DevAddr, DevActionInfoi.DevActionInput.DevAddr, \
DevActionInfoi.DevActionState.DevAddrIn); DevActionInfoi.DevActionState.DevAddrIn);
Dbg_Print_Buff(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>ӡ:",(uint8_t *)&DevActionInfoi,sizeof(Dev_Action_Core) + sizeof(Dev_Action_Input)+sizeof(Dev_Action_Cond)+sizeof(Dev_Action_State));
for(j = 0; j < DevActionGlobal.DevActionNum ; j++) for(j = 0; j < DevActionGlobal.DevActionNum ; j++)
{ {
if( j != i ) if( j != i )
{ {
list_addrj = SRAM_DevAction_List_Start_Addr + j * SRAM_DevAction_List_Size; list_addrj = SRAM_DevAction_List_Start_Addr + j * SRAM_DevAction_List_Size;
SRAM_DMA_Read_Buff((uint8_t *)&DevActionInfoj, sizeof(DEV_ACTION_INFO), list_addrj); if(DevAction_Info_Read_To_Struct(list_addrj, &DevActionInfoj) != 0x00)
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD>:%x",list_addrj);
continue;
}
if( ( DevActionInfoi.DevActionCond.DevActionU64Cond.DevActionOutFlag == 0x00 ) if( ( DevActionInfoi.DevActionCond.DevActionU64Cond.DevActionOutFlag == 0x00 )
&& ( DevActionInfoj.DevActionCond.DevActionU64Cond.DevActionOutFlag == 0x00 ) && ( DevActionInfoj.DevActionCond.DevActionU64Cond.DevActionOutFlag == 0x00 )
&& ( DevActionInfoi.DevActionInput.DevType == DevActionInfoj.DevActionInput.DevType ) && ( DevActionInfoi.DevActionInput.DevType == DevActionInfoj.DevActionInput.DevType )
&& ( DevActionInfoi.DevActionInput.DevAddr == DevActionInfoj.DevActionInput.DevAddr ) && ( DevActionInfoi.DevActionInput.DevAddr == DevActionInfoj.DevActionInput.DevAddr )
&& ( DevActionInfoi.DevActionInput.inAddr == DevActionInfoj.DevActionInput.inAddr ) && ( DevActionInfoi.DevActionInput.DevLoop == DevActionInfoj.DevActionInput.DevLoop )
&& ( DevActionInfoi.DevActionInput.inType == DevActionInfoj.DevActionInput.inType ) ) && ( DevActionInfoi.DevActionInput.DevEvent == DevActionInfoj.DevActionInput.DevEvent ) )
{ {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%X<><58>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%X", list_addri, list_addrj); Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%X<><58>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%X", list_addri, list_addrj);
DevActionInfoi.DevActionState.SceneReuseFlag = 0x01; DevActionInfoi.DevActionState.SceneReuseFlag = 0x01;
@@ -146,7 +154,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ReuseFlag_Get(void)
DevActionInfoi.DevActionState.MultiValidNo++; DevActionInfoi.DevActionState.MultiValidNo++;
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d <20><>·:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ:%X <20><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>:%d", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d <20><>·:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ:%X <20><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>:%d",
DevActionInfoi.DevActionInput.DevAddr, DevActionInfoi.DevActionInput.DevAddr,
DevActionInfoi.DevActionInput.inAddr, DevActionInfoi.DevActionInput.DevLoop,
list_addri, list_addri,
DevActionInfoi.DevActionState.MultiNumber); DevActionInfoi.DevActionState.MultiNumber);
} }
@@ -163,20 +171,12 @@ __attribute__((section(".non_0_wait"))) void DevAction_ReuseFlag_Get(void)
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d <20><>·:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>ַ:%X <20><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>:%d", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d <20><>·:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>ַ:%X <20><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>:%d",
DevActionInfoj.DevActionInput.DevAddr, DevActionInfoj.DevActionInput.DevAddr,
DevActionInfoj.DevActionInput.inAddr, DevActionInfoj.DevActionInput.DevLoop,
list_addrj, list_addrj,
DevActionInfoj.DevActionState.MultiNumber); DevActionInfoj.DevActionState.MultiNumber);
//<2F><><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>
for(k = 0; k < SRAM_DevAction_List_Size; k++)
{
SRAM_Write_Byte(0x00,list_addrj+k);
}
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>λ׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X", list_addrj); Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>λ׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X", list_addrj);
DevActionInfoj.CheckVal = 0x00; DevAction_Info_Write_To_SRAM(list_addrj, &DevActionInfoj); //<2F><><EFBFBD><EFBFBD><E6B6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SRAM_DMA_Write_Buff((uint8_t *)&DevActionInfoj, DevActionInfoj.data_len, list_addrj);
DevActionInfoj.CheckVal = DevAction_CheckSum(list_addrj,DevActionInfoj.data_len);
SRAM_Write_Byte(DevActionInfoj.CheckVal, ( list_addrj + sizeof(Dev_Action_Core) + sizeof(Dev_Action_Input) + sizeof(Dev_Action_Cond) + sizeof(Dev_Action_State) ) );
DevAdd = Find_AllDevice_List_Information2(Active_Port, DevActionInfoi.DevActionInput.DevType, DevActionInfoi.DevActionInput.DevAddr); DevAdd = Find_AllDevice_List_Information2(Active_Port, DevActionInfoi.DevActionInput.DevType, DevActionInfoi.DevActionInput.DevAddr);
if(DevAdd != 0x00) if(DevAdd != 0x00)
@@ -185,15 +185,15 @@ __attribute__((section(".non_0_wait"))) void DevAction_ReuseFlag_Get(void)
SRAM_DMA_Read_Buff((uint8_t *)&Rs485SwiInfo,sizeof(RS485_SWI_INFO),DevAdd+Dev_Privately); SRAM_DMA_Read_Buff((uint8_t *)&Rs485SwiInfo,sizeof(RS485_SWI_INFO),DevAdd+Dev_Privately);
if(DevActionInfoi.DevActionState.MultiValidNo <= 127) if(DevActionInfoi.DevActionState.MultiValidNo <= 127)
{ {
Rs485SwiInfo.MultiValidNo[DevActionInfoi.DevActionInput.inAddr] = DevActionInfoi.DevActionState.MultiValidNo; Rs485SwiInfo.MultiValidNo[DevActionInfoi.DevActionInput.DevLoop] = DevActionInfoi.DevActionState.MultiValidNo;
} }
BLV_Device_Info_Write_To_SRAM(DevAdd,&BUS_Public,(uint8_t *)&Rs485SwiInfo,sizeof(RS485_SWI_INFO)); BLV_Device_Info_Write_To_SRAM(DevAdd,&BUS_Public,(uint8_t *)&Rs485SwiInfo,sizeof(RS485_SWI_INFO));
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>·:%d <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>:%d", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>·:%d <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>:%d",
DevActionInfoi.DevActionInput.DevAddr, DevActionInfoi.DevActionInput.DevAddr,
DevActionInfoi.DevActionInput.inAddr, DevActionInfoi.DevActionInput.DevLoop,
Rs485SwiInfo.MultiValidNo[DevActionInfoi.DevActionInput.inAddr]); Rs485SwiInfo.MultiValidNo[DevActionInfoi.DevActionInput.DevLoop]);
} }
} }
} }
@@ -210,7 +210,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ReuseFlag_Get(void)
{ {
DevActionInfoi.DevActionOutput[k].DevActionOutAddr = DevAction_No_Get(DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevOutputLoop); DevActionInfoi.DevActionOutput[k].DevActionOutAddr = DevAction_No_Get(DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevOutputLoop);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%X <20>±<EFBFBD>:%d <20><>·:%d", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%X <20>±<EFBFBD>:%d <20><>·:%d",
list_addri, list_addri,
DevActionInfoi.DevActionOutput[k].DevActionOutAddr, DevActionInfoi.DevActionOutput[k].DevActionOutAddr,
i, i,
@@ -221,7 +221,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ReuseFlag_Get(void)
DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevType, DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevType,
DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevAddr); DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevAddr);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d<><64><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%d,<2C><>չ<EFBFBD><EFBFBD><E8B1B8>·<EFBFBD><C2B7>ַ:%d,<2C><>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%x", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d<><64><EFBFBD><EFBFBD>ַ:%d,<2C><>·:%d,SRAM<EFBFBD><EFBFBD><EFBFBD>ַ:%x",
DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevType, DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevType,
DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevAddr, DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevAddr,
DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevOutputLoop, DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevOutputLoop,
@@ -238,14 +238,14 @@ __attribute__((section(".non_0_wait"))) void DevAction_ReuseFlag_Get(void)
if(Dev_Host_Invalid != DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevType) if(Dev_Host_Invalid != DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevType)
{ {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X <20>±<EFBFBD>:%d,<2C><>ʱ<EFBFBD>ڵ<EFBFBD>:%X <20><><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E8B1B8>ַ:%X, <20><>·:%d", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X <20>±<EFBFBD>:%d,<2C><>ʱ<EFBFBD>ڵ<EFBFBD>:%X <20><><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E8B1B8>ַ:%X, <20><>·:%d",
list_addri, list_addri,
i, i,
DevActionInfoi.DevActionOutput[k].DevDlyAddr, DevActionInfoi.DevActionOutput[k].DevDlyAddr,
DevActionInfoi.DevActionOutput[k].DevActionOutAddr, DevActionInfoi.DevActionOutput[k].DevActionOutAddr,
DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevOutputLoop); DevActionInfoi.DevActionOutput[k].DevActionOutCfg.DevOutputLoop);
}else{ }else{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X <20>±<EFBFBD>:%d,<2C><>ʱ<EFBFBD>ڵ<EFBFBD>:%X <20><><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E8B1B8>ַ:%X, <20><>·:%d", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X <20>±<EFBFBD>:%d,<2C><>ʱ<EFBFBD>ڵ<EFBFBD>:%X <20><><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E8B1B8>ַ:%X, <20><>·:%d",
list_addri, list_addri,
i, i,
DevActionInfoi.DevActionOutput[k].DevDlyAddr, DevActionInfoi.DevActionOutput[k].DevDlyAddr,
@@ -257,17 +257,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ReuseFlag_Get(void)
} }
} }
for(k = 0; k < SRAM_DevAction_List_Size; k++) DevAction_Info_Write_To_SRAM(list_addri, &DevActionInfoi); //<2F><><EFBFBD><EFBFBD><E6B6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
SRAM_Write_Byte(0x00,list_addri+k);
}
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD>־<EFBFBD><EFBFBD>λ׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X", list_addri);
DevActionInfoi.CheckVal = 0x00;
SRAM_DMA_Write_Buff((uint8_t *)&DevActionInfoi, DevActionInfoi.data_len, list_addri); //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DevActionInfoi.CheckVal = DevAction_CheckSum(list_addri,DevActionInfoi.data_len); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
SRAM_Write_Byte(DevActionInfoi.CheckVal,(list_addri + sizeof(Dev_Action_Core) + sizeof(Dev_Action_Input) + sizeof(Dev_Action_Cond) + sizeof(Dev_Action_State)) ); //У<><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
} }
} }
@@ -287,7 +277,11 @@ __attribute__((section(".non_0_wait"))) void Expand_Scene_Get(void)
{ {
KeepFlag = 0x00; KeepFlag = 0x00;
list_addr = SRAM_DevAction_List_Start_Addr + i*SRAM_DevAction_List_Size; list_addr = SRAM_DevAction_List_Start_Addr + i*SRAM_DevAction_List_Size;
SRAM_DMA_Read_Buff((uint8_t *)&DevActionInfo, sizeof(DEV_ACTION_INFO), list_addr); if(DevAction_Info_Read_To_Struct(list_addr, &DevActionInfo) != 0x00)
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD>:%x",list_addr);
continue;
}
for(j = 0; j < DevActionInfo.DevCtrlNum; j++) for(j = 0; j < DevActionInfo.DevCtrlNum; j++)
{ {
@@ -297,7 +291,7 @@ __attribute__((section(".non_0_wait"))) void Expand_Scene_Get(void)
if( DevActionInfo.DevActionOutput[j].DevActionOutAddr != 0x00 ) if( DevActionInfo.DevActionOutput[j].DevActionOutAddr != 0x00 )
{ {
KeepFlag = 0x01; KeepFlag = 0x01;
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%X <20>±<EFBFBD>:%d <20><>·:%d", Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ:%X <20>±<EFBFBD>:%d <20><>·:%d",
list_addr,DevActionInfo.DevActionOutput[j].DevActionOutAddr, list_addr,DevActionInfo.DevActionOutput[j].DevActionOutAddr,
i, i,
DevActionInfo.DevActionOutput[j].DevActionOutCfg.DevOutputLoop); DevActionInfo.DevActionOutput[j].DevActionOutCfg.DevOutputLoop);
@@ -341,17 +335,7 @@ __attribute__((section(".non_0_wait"))) void Expand_Scene_Get(void)
if( KeepFlag == 0x01 ) if( KeepFlag == 0x01 )
{ {
for(uint16_t k = 0;k<SRAM_DevAction_List_Size;k++) DevAction_Info_Write_To_SRAM(list_addr, &DevActionInfo); //<2F><><EFBFBD><EFBFBD><E6B6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
SRAM_Write_Byte(0x00,list_addr+k);
}
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X", list_addr);
DevActionInfo.CheckVal = 0x00;
SRAM_DMA_Write_Buff((uint8_t *)&DevActionInfo, DevActionInfo.data_len, list_addr); //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DevActionInfo.CheckVal = DevAction_CheckSum(list_addr,DevActionInfo.data_len); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
SRAM_Write_Byte(DevActionInfo.CheckVal,(list_addr + sizeof(Dev_Action_Core) + sizeof(Dev_Action_Input) + sizeof(Dev_Action_Cond) + sizeof(Dev_Action_State)) ); //У<><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
} }
} }
} }
@@ -374,7 +358,13 @@ __attribute__((section(".non_0_wait"))) void Expand_DevDly_Get(void)
{ {
KeepFlag = 0x00; KeepFlag = 0x00;
list_addr = SRAM_DevAction_List_Start_Addr + i*SRAM_DevAction_List_Size; list_addr = SRAM_DevAction_List_Start_Addr + i*SRAM_DevAction_List_Size;
SRAM_DMA_Read_Buff((uint8_t *)&DevActionInfo, sizeof(DEV_ACTION_INFO), list_addr); if(DevAction_Info_Read_To_Struct(list_addr, &DevActionInfo) != 0x00)
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD>:%x",list_addr);
continue;
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>:%x",list_addr);
}
for(j = 0; j < DevActionInfo.DevCtrlNum; j++) for(j = 0; j < DevActionInfo.DevCtrlNum; j++)
{ {
if( DevActionInfo.DevActionOutput[j].DevActionOutCfg.DevDlyValue.DelayCont == 0x00 ) if( DevActionInfo.DevActionOutput[j].DevActionOutCfg.DevDlyValue.DelayCont == 0x00 )
@@ -395,17 +385,7 @@ __attribute__((section(".non_0_wait"))) void Expand_DevDly_Get(void)
if(KeepFlag == 0x01) if(KeepFlag == 0x01)
{ {
for(uint16_t k = 0;k<SRAM_DevAction_List_Size;k++) DevAction_Info_Write_To_SRAM(list_addr, &DevActionInfo); //<2F><><EFBFBD><EFBFBD><E6B6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
SRAM_Write_Byte(0x00,list_addr+k);
}
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>,<2C><>ַ:%X", list_addr);
DevActionInfo.CheckVal = 0x00; //У<><D0A3><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
SRAM_DMA_Write_Buff((uint8_t *)&DevActionInfo, DevActionInfo.data_len, list_addr); //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DevActionInfo.CheckVal = DevAction_CheckSum(list_addr,DevActionInfo.data_len); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
SRAM_Write_Byte(DevActionInfo.CheckVal,(list_addr + sizeof(Dev_Action_Core) + sizeof(Dev_Action_Input) + sizeof(Dev_Action_Cond) + sizeof(Dev_Action_State)));
} }
} }
} }

View File

@@ -1,3 +1,9 @@
#### 2026-01-06
1、场景动作执行初步测试OK
#### 2026-01-05 #### 2026-01-05
1、CSIO 继电器单独一个设备存放在BUS设备列表中应该将这个设备存放到虚拟设备上 - 不合理的地方,待修改 1、CSIO 继电器单独一个设备存放在BUS设备列表中应该将这个设备存放到虚拟设备上 - 不合理的地方,待修改

View File

@@ -48,6 +48,8 @@ int main(void)
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"DEV_ACTION_INFO Size:%d \r\n",sizeof(DEV_ACTION_INFO)); Dbg_Println(DBG_BIT_SYS_STATUS_bit,"DEV_ACTION_INFO Size:%d \r\n",sizeof(DEV_ACTION_INFO));
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev_Action_U64Cond Size:%d \r\n",sizeof(Dev_Action_U64Cond));
BLV_DevAction_AllData_Init(); BLV_DevAction_AllData_Init();
while (1) while (1)
@@ -65,10 +67,12 @@ int main(void)
BLV_ActivePort_ModeTask(); BLV_ActivePort_ModeTask();
//BLV_Nor_Dev_ModeTask(); BLV_Nor_Dev_ModeTask();
BLV_DevAction_Task(); BLV_DevAction_Task();
BLV_DevDly_Task();
NetWork_Task(); NetWork_Task();
WCHNET_MainTask(); WCHNET_MainTask();