diff --git a/BLV_485_Driver/blv_nor_dev_hvoutfun.c b/BLV_485_Driver/blv_nor_dev_hvoutfun.c index 72b0011..607d69b 100644 --- a/BLV_485_Driver/blv_nor_dev_hvoutfun.c +++ b/BLV_485_Driver/blv_nor_dev_hvoutfun.c @@ -334,6 +334,7 @@ __attribute__((section(".non_0_wait"))) uint16_t BLW_HVout_Group_Read( } break; } + } } break; @@ -368,6 +369,7 @@ __attribute__((section(".non_0_wait"))) uint16_t BLW_HVout_Group_Read( break; } } + return Ret; } diff --git a/BLV_485_Driver/blv_rs485_dev_tempctrl.c b/BLV_485_Driver/blv_rs485_dev_tempctrl.c index 778fe7e..730fc1a 100644 --- a/BLV_485_Driver/blv_rs485_dev_tempctrl.c +++ b/BLV_485_Driver/blv_rs485_dev_tempctrl.c @@ -355,7 +355,7 @@ __attribute__((section(".non_0_wait"))) void Dev_TEMPCTRL_Ctrl(uint32_t CfgDevAd { if(Dev_Temp_State_Data(Rs485TemLoc) != Dev_Temp_State_Data(Rs485Tem.TemState)) { - Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"温控器状态事先全同步,状态:%4x", Dev_Temp_State_Data(Rs485Tem.TemState)); + Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"温控器状态事先全同步,状态:%x", Dev_Temp_State_Data(Rs485Tem.TemState)); Dev_Temp_State_Sync(&Rs485TemLoc,&Rs485Tem.TemState); Dev_Temp_State_Sync(&Rs485Tem.TemStateCtrlLast,&Rs485TemLoc); @@ -373,7 +373,7 @@ __attribute__((section(".non_0_wait"))) void Dev_TEMPCTRL_Ctrl(uint32_t CfgDevAd { Dev_Temp_State_Sync(&Rs485TemLoc,&Rs485TemIn.TemState); //状态不一致,置控制状态 } - Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"温控器状态同步,状态:%4x - %4x", Dev_Temp_State_Data(Rs485Tem.TemState),Dev_Temp_State_Data(Rs485TemIn.TemState)); + Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"温控器状态同步,状态:%x - %x", Dev_Temp_State_Data(Rs485Tem.TemState),Dev_Temp_State_Data(Rs485TemIn.TemState)); } } else //或者普通设备控制温控器 @@ -477,7 +477,7 @@ __attribute__((section(".non_0_wait"))) void Dev_TEMPCTRL_Ctrl(uint32_t CfgDevAd uint32_t Season; SRAM_DMA_Read_Buff((uint8_t *)&Season,4,SRAM_Register_Start_ADDRESS + Register_SeasonStatus_OFFSET); - Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"季节打印:%08X 当前月份:%x", Season, RTC_Raw_Data.month); + Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"季节打印:%X 当前月份:%x", Season, RTC_Raw_Data.month); switch((Season>>(HEX_Conversion_To_DEC(RTC_Raw_Data.month)-1)*2)&0x03) //当前月份的季节 { @@ -580,7 +580,7 @@ __attribute__((section(".non_0_wait"))) void Dev_TEMPCTRL_Ctrl(uint32_t CfgDevAd if(0x01 == TemCtrlFlag) { - Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"温控器控制状态:%4x - %4x", Dev_Temp_State_Data(Rs485Tem.TemStateCtrl),Dev_Temp_State_Data(Rs485TemLoc)); + Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"温控器控制状态:%x - %x", Dev_Temp_State_Data(Rs485Tem.TemStateCtrl),Dev_Temp_State_Data(Rs485TemLoc)); if(Rs485Tem.Carbon_Set_Temp != Rs485TemLoc.set_t){ Rs485Tem.Carbon_Set_Temp = Rs485TemLoc.set_t; @@ -592,7 +592,7 @@ __attribute__((section(".non_0_wait"))) void Dev_TEMPCTRL_Ctrl(uint32_t CfgDevAd KeepFlag = 0x01; Dev_Temp_State_Sync(&Rs485Tem.TemStateCtrl,&Rs485TemLoc); - Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"TemStateCtrl: %04X", Dev_Temp_State_Data(Rs485Tem.TemStateCtrl)); + Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"TemStateCtrl: %X", Dev_Temp_State_Data(Rs485Tem.TemStateCtrl)); } } diff --git a/BLV_485_Driver/blv_rs485_dev_touchtempt1.c b/BLV_485_Driver/blv_rs485_dev_touchtempt1.c index 80b9625..a49864c 100644 --- a/BLV_485_Driver/blv_rs485_dev_touchtempt1.c +++ b/BLV_485_Driver/blv_rs485_dev_touchtempt1.c @@ -408,7 +408,7 @@ __attribute__((section(".non_0_wait"))) uint8_t BLWOut_Rs485_TempT1_Check(uint32 if(len > RECDATALENMAX) { - Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"T1 Temp 接收数据长度超出范围!!\r\n"); + Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"T1 Temp 接收数据长度超出范围!! %d\r\n",len); return rev; //长度 } SRAM_DMA_Read_Buff(data,len,data_addr); //拷贝482数据 @@ -420,6 +420,7 @@ __attribute__((section(".non_0_wait"))) uint8_t BLWOut_Rs485_TempT1_Check(uint32 if((data[0] != 0x55) || (data[1] != 0x55) || (data[2] != 0xee) || (len != data[3] + 0x03) || (0x03 != data[4]) ||BUS_Public.addr!=data[5] ) { Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"%s Addr:%d Check Error",__func__,BUS_Public.addr); + Dbg_Print_Buff(DBG_BIT_DEVICE_STATUS_bit,"Recv Buff:",data,len); return rev; } crc_val = data[len-2] + (data[len-1]<<8); diff --git a/BLV_485_Driver/pc_devicetest_fun.c b/BLV_485_Driver/pc_devicetest_fun.c index db1aa90..6726243 100644 --- a/BLV_485_Driver/pc_devicetest_fun.c +++ b/BLV_485_Driver/pc_devicetest_fun.c @@ -666,18 +666,10 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_WriteRegister_DataDeal(ui /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(back_data,temp_len); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(back_data,temp_len); //串口0 - #endif + MCU485_SendString_0(back_data,temp_len); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(back_data,temp_len); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(back_data,temp_len); //串口1 - #endif + UART1_SendString(back_data,temp_len); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(back_data,temp_len); //串口2 @@ -800,34 +792,13 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_Testing_DataDeal(uint32_t back_data[PKT2_PARA] = 0x01; //设置成功 back_data[PKT2_CHKSUM] = Data_CheckSum(back_data,temp_len); -// /*发送数据*/ -// if(g_pc_test.link_port == 0x00) -// { -// UART0_SendString(back_data,temp_len); //串口0 -// }else if(g_pc_test.link_port == 0x01) -// { -// MCU485_SendString_1(back_data,temp_len); //串口1 -// }else if(g_pc_test.link_port == 0x02) -// { -// MCU485_SendString_2(back_data,temp_len); //串口2 -// }else { -// return 0xF0; -// } /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(back_data,temp_len); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(back_data,temp_len); //串口0 - #endif + MCU485_SendString_0(back_data,temp_len); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(back_data,temp_len); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(back_data,temp_len); //串口1 - #endif + UART1_SendString(back_data,temp_len); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(back_data,temp_len); //串口2 @@ -885,18 +856,10 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_Testing_DataDeal(uint32_t /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(back_data,temp_len); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(back_data,temp_len); //串口0 - #endif + MCU485_SendString_0(back_data,temp_len); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(back_data,temp_len); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(back_data,temp_len); //串口1 - #endif + UART1_SendString(back_data,temp_len); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(back_data,temp_len); //串口2 @@ -936,24 +899,15 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_Testing_Data_Reported(uin send_buff[PKT2_PARA + 3 + i] = SRAM_Read_Byte(data_addr + i); } - send_buff[PKT2_CHKSUM] = Data_CheckSum(send_buff,send_buff[PKT2_LEN]); /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(send_buff,send_buff[PKT2_LEN]); //串口0 - #endif + MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,send_buff[PKT2_LEN]); //串口1 - #endif + UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(send_buff,send_buff[PKT2_LEN]); //串口2 @@ -989,24 +943,15 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_Testing_Data_Reported2(ui send_buff[PKT2_PARA + 3 + i] = data_buff[i]; } - send_buff[PKT2_CHKSUM] = Data_CheckSum(send_buff,send_buff[PKT2_LEN]); /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(send_buff,send_buff[PKT2_LEN]); //串口0 - #endif + MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,send_buff[PKT2_LEN]); //串口1 - #endif + UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(send_buff,send_buff[PKT2_LEN]); //串口2 @@ -1027,12 +972,8 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_TEST_TOUR_DATASEND(void) { send_buff[i] = i; } -#if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,10); //串口0 -#elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,10); //串口1 -#endif //USE_CORE_TYPE == CORE_TYPE_C1F + MCU485_SendString_0(send_buff,10); //串口0 return 0; } @@ -1091,18 +1032,10 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_TEST_TOUR_ACKSend(uint8_t /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(send_buff,send_buff[PKT2_LEN]); //串口0 - #endif + MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,send_buff[PKT2_LEN]); //串口1 - #endif + UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(send_buff,send_buff[PKT2_LEN]); //串口2 @@ -1165,18 +1098,10 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_SET_MCU_Revision_Data_Rep /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(send_buff,send_buff[PKT2_LEN]); //串口0 - #endif + MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,send_buff[PKT2_LEN]); //串口1 - #endif + UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(send_buff,send_buff[PKT2_LEN]); //串口2 @@ -1218,18 +1143,10 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_READ_MCU_Revision_Data_Re /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(send_buff,send_buff[PKT2_LEN]); //串口0 - #endif + MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,send_buff[PKT2_LEN]); //串口1 - #endif + UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(send_buff,send_buff[PKT2_LEN]); //串口2 @@ -1307,18 +1224,10 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_READ_RCU_Data_Reported(ui /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(send_buff,send_buff[PKT2_LEN]); //串口0 - #endif + MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,send_buff[PKT2_LEN]); //串口1 - #endif + UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(send_buff,send_buff[PKT2_LEN]); //串口2 @@ -1403,18 +1312,10 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_READ_RCU_VERSION_Reported /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(send_buff,send_buff[PKT2_LEN]); //串口0 - #endif + MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,send_buff[PKT2_LEN]); //串口1 - #endif + UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(send_buff,send_buff[PKT2_LEN]); //串口2 @@ -1525,18 +1426,10 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_READ_Device_Data_Reported /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(send_buff,send_buff[PKT2_LEN]); //串口0 - #endif + MCU485_SendString_0(send_buff,send_buff[PKT2_LEN]); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(send_buff,send_buff[PKT2_LEN]); //串口1 - #endif + UART1_SendString(send_buff,send_buff[PKT2_LEN]); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(send_buff,send_buff[PKT2_LEN]); //串口2 @@ -1549,7 +1442,6 @@ __attribute__((section(".non_0_wait"))) uint8_t BLV_PC_READ_Device_Data_Reported __attribute__((section(".non_0_wait"))) uint8_t SyncTime_DATA_Processing(uint32_t data_addr,uint16_t data_len) { -// uint32_t utc_tick = 0; uint16_t temp_len = 0x09; uint8_t temp = 0; uint32_t device_listaddr = 0; @@ -1558,20 +1450,13 @@ __attribute__((section(".non_0_wait"))) uint8_t SyncTime_DATA_Processing(uint32_ memset(ack_buff,0,temp_len); set_time.year = SRAM_Read_Byte(data_addr + PKT2_PARA); - set_time.month = SRAM_Read_Byte(data_addr + PKT2_PARA + 1); - set_time.day = SRAM_Read_Byte(data_addr + PKT2_PARA + 2); - set_time.hour = SRAM_Read_Byte(data_addr + PKT2_PARA + 3); - set_time.minute = SRAM_Read_Byte(data_addr + PKT2_PARA + 4); - set_time.second = SRAM_Read_Byte(data_addr + PKT2_PARA + 5); - set_time.week = SRAM_Read_Byte(data_addr + PKT2_PARA + 6); - temp = RTC_WriteDate(set_time); //找到CSIO 发送数据 @@ -1583,11 +1468,6 @@ __attribute__((section(".non_0_wait"))) uint8_t SyncTime_DATA_Processing(uint32_ } } - -// /*UTC时间*/ -// utc_tick = RTC_Conversion_To_Unix(&set_time); -// Unix_Conversion_To_RTC(&set_time,utc_tick); - /*回复数据打包*/ ack_buff[PKT2_ADD_FM] = 0x00; //本机地址 ack_buff[PKT2_TYPE] = g_pc_test.DevSendSN; @@ -1603,35 +1483,12 @@ __attribute__((section(".non_0_wait"))) uint8_t SyncTime_DATA_Processing(uint32_ ack_buff[PKT2_CHKSUM] = Data_CheckSum(ack_buff,temp_len); /*发送数据*/ - if(g_pc_test.link_port == 0x00) { - UART0_SendString(ack_buff,temp_len); //串口0 + MCU485_SendString_0(ack_buff,temp_len); //串口0 }else if(g_pc_test.link_port == 0x01) { - MCU485_SendString_1(ack_buff,temp_len); //串口1 - }else if(g_pc_test.link_port == 0x02) - { - MCU485_SendString_2(ack_buff,temp_len); //串口2 - }else { - return 0xF0; - } - - /*发送数据*/ - if(g_pc_test.link_port == 0x00) - { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(ack_buff,temp_len); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(ack_buff,temp_len); //串口0 - #endif - }else if(g_pc_test.link_port == 0x01) - { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(ack_buff,temp_len); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(ack_buff,temp_len); //串口1 - #endif + UART1_SendString(ack_buff,temp_len); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(ack_buff,temp_len); //串口2 @@ -1671,18 +1528,10 @@ __attribute__((section(".non_0_wait"))) uint16_t QueryTime_Relay_DATA_Packaging( /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(ack_buff,temp_len); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(ack_buff,temp_len); //串口0 - #endif + MCU485_SendString_0(ack_buff,temp_len); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(ack_buff,temp_len); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(ack_buff,temp_len); //串口1 - #endif + UART1_SendString(ack_buff,temp_len); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(ack_buff,temp_len); //串口2 @@ -1715,18 +1564,10 @@ __attribute__((section(".non_0_wait"))) uint8_t TEST_GPIO_Relay_Fail(void) /*发送数据*/ if(g_pc_test.link_port == 0x00) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 - MCU485_SendString_0(ack_buff,temp_len); //串口0 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 -- DEBUG - UART0_SendString(ack_buff,temp_len); //串口0 - #endif + MCU485_SendString_0(ack_buff,temp_len); //串口0 }else if(g_pc_test.link_port == 0x01) { - #if (USE_CORE_TYPE == 1) //使用C1F核心板 -- DEBUG - UART1_SendString(ack_buff,temp_len); //串口1 - #elif (USE_CORE_TYPE == 2) //使用C1核心板 - MCU485_SendString_1(ack_buff,temp_len); //串口1 - #endif + UART1_SendString(ack_buff,temp_len); //串口1 }else if(g_pc_test.link_port == 0x02) { MCU485_SendString_2(ack_buff,temp_len); //串口2 diff --git a/MCU_Driver/blv_dev_action.c b/MCU_Driver/blv_dev_action.c index 7f32b05..b413f8f 100644 --- a/MCU_Driver/blv_dev_action.c +++ b/MCU_Driver/blv_dev_action.c @@ -660,6 +660,7 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D uint8_t DevCtrlCont = 0x00; //执行内容 uint8_t SceneState = DEV_STATE_OPEN; uint8_t SceneType = 0x01; + uint8_t rev = 0; Device_Public_Information_G BUS_Public; @@ -683,13 +684,20 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D { if(DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr == expand_type[j].Addr) { + if(expand_type[j].ExpandReadFlag != 0x00) { BLV_Device_PublicInfo_Read_To_Struct(DevActionInfo->DevActionOutput[i].DevActionOutAddr,&BUS_Public); if(NULL != BUS_Public.DevFunInfo.Dev_Output_Loop_Group_State_Get_ptr) { - if(DEV_STATE_CLOSE == BUS_Public.DevFunInfo.Dev_Output_Loop_Group_State_Get_ptr(DevActionInfo->DevActionOutput[i].DevActionOutAddr, SceneType, expand_type[j].ExpandReadFlag, HVoutNumMAX, expand_type[j].ExpandReadState)) + rev = BUS_Public.DevFunInfo.Dev_Output_Loop_Group_State_Get_ptr(DevActionInfo->DevActionOutput[i].DevActionOutAddr, SceneType, expand_type[j].ExpandReadFlag, HVoutNumMAX, expand_type[j].ExpandReadState); + if( DEV_STATE_CLOSE == rev) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"1 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态 %d",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState,rev); SceneState = DEV_STATE_CLOSE; } } @@ -712,6 +720,11 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D { if(DEV_STATE_CLOSE == BUS_Public.DevFunInfo.Dev_Output_Loop_Group_State_Get_ptr(DevActionInfo->DevActionOutput[i].DevActionOutAddr, SceneType, dimm_type[j].DimmReadFlag, LED_OUT_CH_MAX, dimm_type[j].DimmReadState)) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"2 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); SceneState = DEV_STATE_CLOSE; } } @@ -748,6 +761,11 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D { if(BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get(DevActionInfo->DevActionOutput[i].DevActionOutAddr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop) != DevCtrlWay) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"3 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); SceneState = DEV_STATE_CLOSE; break; } @@ -788,6 +806,11 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D { if( BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get(DevActionInfo->DevActionOutput[i].DevActionOutAddr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop) != DevCtrlWay) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"4 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); SceneState = DEV_STATE_CLOSE; break; } @@ -795,6 +818,11 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D { if( BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get(DevActionInfo->DevActionOutput[i].DevActionOutAddr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop) != DEV_CTRLWAY_STOP) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"5 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); SceneState = DEV_STATE_CLOSE; break; } @@ -803,7 +831,7 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D } break; #if Dev_Nor_ColorTemp - case Dev_Nor_ColorTemp: + case DEV_Virtual_ColorTemp: BLV_Device_PublicInfo_Read_To_Struct(DevActionInfo->DevActionOutput[i].DevActionOutAddr,&BUS_Public); if(BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get != 0x00) { @@ -815,6 +843,11 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D DevCtrlCont |= 0x80; if( BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get(DevActionInfo->DevActionOutput[i].DevActionOutAddr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop) != DevCtrlCont ) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"6 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); SceneState = DEV_STATE_CLOSE; break; } @@ -822,6 +855,11 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D { if( BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get(DevActionInfo->DevActionOutput[i].DevActionOutAddr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop) != (DevCtrlCont & 0x80) ) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"7 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); SceneState = DEV_STATE_CLOSE; break; } @@ -829,7 +867,7 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D } break; #endif - case DEV_C5MUSIC_Type: + case DEV_RS485_MUSIC: if(DevActionInfo->DevActionCond.SceneExcute != ACTION_SCENE_SLEEP) { BLV_Device_PublicInfo_Read_To_Struct(DevActionInfo->DevActionOutput[i].DevActionOutAddr,&BUS_Public); @@ -845,6 +883,11 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D { if(DevCtrlWay != BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get(DevActionInfo->DevActionOutput[i].DevActionOutAddr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop)) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"8 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); SceneState = DEV_STATE_CLOSE; break; } @@ -864,6 +907,11 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D { if(DevCtrlCont != BUS_Public.DevFunInfo.Dev_Output_Loop_State_Get(DevActionInfo->DevActionOutput[i].DevActionOutAddr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop)) { +// Dbg_Println(DBG_BIT_ActCond_STATUS_bit,"9 场景名:%d 类型:%d 地址:%d 回路:%d %x不满足状态",DevActionInfo->DevActionCore.ActionNo,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop,\ +// DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); SceneState = DEV_STATE_CLOSE; //只要有一个状态不满足就跳出 此时场景状态为关 break; //跳出switch循环 } @@ -878,7 +926,7 @@ __attribute__((section(".non_0_wait"))) void Expand_State_Get(DEV_ACTION_INFO *D if(DevActionInfo->DevActionState.SceneState != SceneState) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit," 当前场景名:%d 场景状态:%d", DevActionInfo->DevActionCore.ActionNo, SceneState); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit," 当前场景:%d 场景状态:%d", DevActionInfo->DevActionCore.ActionNo, SceneState); DevActionInfo->DevActionState.SceneState = SceneState; //1开 2关 0未初始化 } } @@ -908,6 +956,7 @@ __attribute__((section(".non_0_wait"))) void Sleep_State_Get(DEV_ACTION_INFO *De { if(DevActionInfo->DevActionOutput[i].DevActionOutAddr != 0x00) { + switch(DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType) { case Dev_Host_HVout: //继电器 @@ -1192,6 +1241,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_State_Get(DEV_ACTION_INFO if( DevActionGlobal.DevActionU64Cond.NeightState != DevActionGlobal.Last_NeightState ) { + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"起夜状态发生改变:%d -1",DevActionGlobal.DevActionU64Cond.NeightState); DevActionGlobal.Last_NeightState = DevActionGlobal.DevActionU64Cond.NeightState; } } @@ -1241,7 +1291,7 @@ __attribute__((section(".non_0_wait"))) void DevDly_InfoSet( DlyExcuteTime = SysTick_1ms + DevDlyValue.DelayCont*1000*60*60; break; default: - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"延时单位为无效:", DevDlyValue.DelayWeight); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"延时单位为无效:%d", DevDlyValue.DelayWeight); return; //其他情况直接返回 } @@ -1277,7 +1327,7 @@ __attribute__((section(".non_0_wait"))) void DevDly_InfoSet( DevDlyInfo.DlyBlinkTime.DelayCont = DevDelayTime.DelayCont; DevDlyInfo.DlyBlinkTime.DelayWeight = DevDelayTime.DelayWeight; - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"延时节点赋值,节点地址:%08X 执行标志:%d 时间:%02x%02x, 执行方式:%04X 闪烁标志:%d", \ + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"延时节点赋值,节点地址:%X 执行标志:%d 时间:%x-%x, 执行方式:%X 闪烁标志:%d", \ DevDlyAddr, DlyExcuteFlag, \ DevDlyValue.DelayCont, \ DevDlyValue.DelayWeight, \ @@ -1300,14 +1350,14 @@ __attribute__((section(".non_0_wait"))) uint32_t DevDlyAddr_Get(uint32_t DevDlyA { uint16_t i = 0x00; uint32_t list_addr = 0x00; - Struct_Dev_Dly_Core DevDlyCore; + Struct_Dev_Dly DevDly; for(i = 0; i < DevActionGlobal.DevDlyNum; i++) { list_addr = SRAM_DevDly_List_Start_Addr + i * DevDlyStructLen; - SRAM_DMA_Read_Buff((uint8_t *)&DevDlyCore, sizeof(Struct_Dev_Dly_Core), list_addr); + SRAM_DMA_Read_Buff((uint8_t *)&DevDly, DevDlyStructLen, list_addr); - if( (DevDlyCore.DevDlyAddr == DevDlyAddr) && (DevDlyCore.DevOutputLoop == DevOutputLoop) ) + if( (DevDly.DevDlyCore.DevDlyAddr == DevDlyAddr) && (DevDly.DevDlyCore.DevOutputLoop == DevOutputLoop) ) { return list_addr; } @@ -1328,7 +1378,7 @@ __attribute__((section(".non_0_wait"))) uint32_t DevDlyAddr_Get(uint32_t DevDlyA __attribute__((section(".non_0_wait"))) uint32_t Add_DevDly_To_List(uint8_t DevType, uint32_t DevDlyAddr, uint16_t DevOutputLoop) { uint32_t list_addr = 0x00; - Struct_Dev_Dly_Core DevDlyCore; + Struct_Dev_Dly DevDly; if(DevActionGlobal.DevActionNum >= DevDlyNumMax) //延时设备总数超过范围就返回 { @@ -1338,19 +1388,19 @@ __attribute__((section(".non_0_wait"))) uint32_t Add_DevDly_To_List(uint8_t DevT list_addr = DevDlyAddr_Get(DevDlyAddr, DevOutputLoop); //遍历当前所有延时节点 if(list_addr != 0x00) return list_addr; //直接将地址返回 - DevDlyCore.DevType = DevType; - DevDlyCore.DevDlyAddr = DevDlyAddr; - DevDlyCore.DevOutputLoop = DevOutputLoop; //填充数据 + DevDly.DevDlyCore.DevType = DevType; + DevDly.DevDlyCore.DevDlyAddr = DevDlyAddr; + DevDly.DevDlyCore.DevOutputLoop = DevOutputLoop; //填充数据 list_addr = SRAM_DevDly_List_Start_Addr + DevActionGlobal.DevDlyNum*DevDlyStructLen; - SRAM_DMA_Write_Buff((uint8_t *)&DevDlyCore, sizeof(Struct_Dev_Dly_Core), list_addr); + SRAM_DMA_Write_Buff((uint8_t *)&DevDly, DevDlyStructLen, list_addr); DevActionGlobal.DevDlyNum++; //延时节点计数增加 Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"延时控制添加成功,当前延时节点地址:%X 当前延时设备计数:%d 延时设备地址: %X 延时设备回路:%d", list_addr , DevActionGlobal.DevDlyNum, - DevDlyCore.DevDlyAddr, - DevDlyCore.DevOutputLoop); + DevDly.DevDlyCore.DevDlyAddr, + DevDly.DevDlyCore.DevOutputLoop); /*遍历当前所有的延时设备,存在过的,就不添加,不存在的就往后添加*/ return list_addr; //返回有效的地址 @@ -1461,7 +1511,7 @@ __attribute__((section(".non_0_wait"))) uint8_t DevAddrCtr(DEV_ACTION_INFO *DevA { if( (DevActionInfo != 0x00) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"1 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionOutput.DevActionOutCfg.DevType, DevAddrOut, @@ -1496,7 +1546,7 @@ __attribute__((section(".non_0_wait"))) uint8_t DevAddrCtr(DEV_ACTION_INFO *DevA { if( (DevActionInfo != 0x00) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"2 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionOutput.DevActionOutCfg.DevType, DevAddrOut, @@ -1637,7 +1687,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandCtrl(DEV_ACTION_INF HVoutNumMAX, expand_type[j].ExpandReadState); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"继电器状态群控控制开始,回路标志:%08X 场景名:%s ", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"继电器状态群控控制开始,回路标志:%X 场景名:%s ", expand_type[j].ExpandReadFlag, DevActionInfo->DevActionCore.DevActionName); @@ -1666,7 +1716,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandCtrl(DEV_ACTION_INF dimm_type[j].DimmReadFlag, LED_OUT_CH_MAX, dimm_type[j].DimmReadState); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"PWM调光状态群控控制开始地址:%d,回路标志:%08X 场景名:%s ", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"PWM调光状态群控控制开始地址:%d,回路标志:%X 场景名:%s ", DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr, dimm_type[j].DimmReadFlag, DevActionInfo->DevActionCore.DevActionName); @@ -1724,7 +1774,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandCtrl(DEV_ACTION_INF { if( (DevActionInfo != NULL) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"3 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType, DevActionInfo->DevActionOutput[i].DevActionOutAddr, @@ -1756,7 +1806,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandCtrl(DEV_ACTION_INF { if( (DevActionInfo != NULL) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"4 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType, DevActionInfo->DevActionOutput[i].DevActionOutAddr, @@ -1792,7 +1842,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandCtrl(DEV_ACTION_INF switch(DevMusicCtrlState.DevMusicCtrlWay.CtrlDirect) { case 0x03: //场景开播放 - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"准备执行背景音乐指定文件夹开播放,回路:%d 状态: %04X",DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"准备执行背景音乐指定文件夹开播放,回路:%d 状态: %X",DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); BUS_Public.DevFunInfo.Dev_Output_Ctrl( 0x00, 0x00, @@ -1803,7 +1853,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandCtrl(DEV_ACTION_INF case 0x04: //场景关播放 break; default: //其他情况 - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"准备执行背景音乐开关机模式控制,地址:%d 回路:%d状态: %04X",BUS_Public.addr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"准备执行背景音乐开关机模式控制,地址:%d 回路:%d状态: %X",BUS_Public.addr, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); BUS_Public.DevFunInfo.Dev_Output_Ctrl( 0x00, 0x00, @@ -1880,7 +1930,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandLightOpen(DEV_ACTIO HVoutNumMAX, expand_type[j].ExpandReadState); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"继电器群控控制,回路标志:%08X 场景名:%s ", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"继电器群控控制,回路标志:%X 场景名:%s ", expand_type[j].ExpandReadFlag, DevActionInfo->DevActionCore.DevActionName); @@ -1910,7 +1960,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandLightOpen(DEV_ACTIO LED_OUT_CH_MAX, dimm_type[j].DimmReadState); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"PWM调光群控控制开始地址:%d,回路标志:%08X 场景名:%s ", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"PWM调光群控控制开始地址:%d,回路标志:%X 场景名:%s ", DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr, dimm_type[j].DimmReadFlag, DevActionInfo->DevActionCore.DevActionName); @@ -1945,7 +1995,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandLightOpen(DEV_ACTIO { if( (DevActionInfo != 0x00) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"5 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType, DevActionInfo->DevActionOutput[i].DevActionOutAddr, @@ -1976,7 +2026,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandLightOpen(DEV_ACTIO { if( (DevActionInfo != 0x00) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"6 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType, DevActionInfo->DevActionOutput[i].DevActionOutAddr, @@ -2070,7 +2120,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandLightClose(DEV_ACTI expand_type[j].ExpandReadFlag, HVoutNumMAX, expand_type[j].ExpandReadState); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"继电器状态群控控制开始,回路标志:%08X 场景名:%s ", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"继电器状态群控控制开始,回路标志:%X 场景名:%s ", expand_type[j].ExpandReadFlag, DevActionInfo->DevActionCore.DevActionName); } @@ -2099,7 +2149,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandLightClose(DEV_ACTI LED_OUT_CH_MAX, dimm_type[j].DimmReadState); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"PWM调光状态群控控制开始地址:%d,回路标志:%08X 场景名:%s ", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"PWM调光状态群控控制开始地址:%d,回路标志:%X 场景名:%s ", DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr, dimm_type[j].DimmReadFlag, DevActionInfo->DevActionCore.DevActionName); @@ -2140,7 +2190,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandLightClose(DEV_ACTI { if( (DevActionInfo != 0x00) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"7 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType, DevActionInfo->DevActionOutput[i].DevActionOutAddr, @@ -2171,7 +2221,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandLightClose(DEV_ACTI { if( (DevActionInfo != 0x00) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"8 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType, DevActionInfo->DevActionOutput[i].DevActionOutAddr, @@ -2229,6 +2279,8 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandClose(DEV_ACTION_IN EXPAND_TYPE_G expand_type[Action_Group_Ctrl_Num]={0}; DIMM_TYPE_G dimm_type[Action_Group_Ctrl_Num]={0}; + Expand_And_Dimm_Action_Get(DevActionInfo,expand_type,dimm_type,0x00); + for(i = 0; i < DevActionInfo->DevCtrlNum; i++) { if(DevActionInfo->DevActionOutput[i].DevActionOutAddr != 0x00) @@ -2253,7 +2305,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandClose(DEV_ACTION_IN HVoutNumMAX, expand_type[j].ExpandReadState); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"继电器状态群控控制开始,回路标志:%08X 场景名:%s ", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"继电器状态群控控制开始,回路标志:%X 场景名:%s ", expand_type[j].ExpandReadFlag, DevActionInfo->DevActionCore.DevActionName); } @@ -2282,7 +2334,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandClose(DEV_ACTION_IN LED_OUT_CH_MAX, dimm_type[j].DimmReadState); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"PWM调光状态群控控制开始地址:%d,回路标志:%08X 场景名:%s ", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"PWM调光状态群控控制开始地址:%d,回路标志:%X 场景名:%s ", DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevAddr, dimm_type[j].DimmReadFlag, DevActionInfo->DevActionCore.DevActionName); @@ -2323,7 +2375,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandClose(DEV_ACTION_IN { if( (DevActionInfo != 0x00) && (DevActionInfo->DevActionState.DevAddrIn != 0x00) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"9 输入设备地址:%X 控制设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType, DevActionInfo->DevActionOutput[i].DevActionOutAddr, @@ -2354,7 +2406,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandClose(DEV_ACTION_IN { if((DevActionInfo != 0x00) && (DevActionInfo->DevActionState.DevAddrIn != 0x00)) // { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"输入设备地址:%04X 设备类型:%d 地址:%04X %d路 控制状态: %04X", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"10 输入设备地址:%X 设备类型:%d 地址:%X %d路 控制状态: %X", DevActionInfo->DevActionState.DevAddrIn, DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevType, DevActionInfo->DevActionOutput[i].DevActionOutAddr, @@ -2440,7 +2492,7 @@ __attribute__((section(".non_0_wait"))) void DevAction_ExpandClose(DEV_ACTION_IN DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevOutputLoop, DEV_CTRLWAY_STOP); - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"485窗帘场景关闭控制 state:%4X",DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"485窗帘场景关闭控制 state:%X",DevActionInfo->DevActionOutput[i].DevActionOutCfg.DevCtrlState); break; case DEV_CTRLWAY_STOP: break; @@ -2741,12 +2793,12 @@ __attribute__((section(".non_0_wait"))) void DevAction_Output(DEV_ACTION_INFO *D DevActionGlobal.DevActionU64Cond.NeightState = NightModeClose; DevAction_No_Ctrl(DevActionGlobal.SleepActionNo, 0x02, DEV_CTRLWAY_CLOSE);//关闭夜灯 case NightModeClose: - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯有关 场景不可关闭开始对所有设备输出状态进行赋值:"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯有关 场景不可关闭-执行场景"); DevAction_ExpandCtrl(DevActionInfo); //执行当前场景 break; } }else { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 场景不可关闭开始对所有设备输出状态进行赋值:"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 场景不可关闭-执行场景动作"); DevAction_ExpandCtrl(DevActionInfo); if(DevActionInfo->DevActionInput.DevType == DEV_RS485_SWT) { @@ -2780,12 +2832,12 @@ __attribute__((section(".non_0_wait"))) void DevAction_Output(DEV_ACTION_INFO *D } if(DEV_STATE_CLOSE == DevActionInfo->DevActionState.SceneState) //当前场景为关 { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯有关 场景可关闭开始对所有设备输出状态进行赋值:准备执行场景开"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯有关 场景可关闭:准备执行场景开"); DevAction_ExpandCtrl(DevActionInfo); //执行当前场景 } else if(DEV_STATE_OPEN == DevActionInfo->DevActionState.SceneState) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯有关 场景可关闭开始对所有设备输出状态进行赋值:准备执行场景关"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯有关 场景可关闭:准备执行场景关"); DevAction_ExpandClose(DevActionInfo, NOR_MODE_CTRL); //执行当前场景 } break; @@ -2793,14 +2845,15 @@ __attribute__((section(".non_0_wait"))) void DevAction_Output(DEV_ACTION_INFO *D }else { if(DEV_STATE_CLOSE == DevActionInfo->DevActionState.SceneState) //当前场景为关 { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 场景可关闭开始对所有设备输出状态进行赋值:准备执行场景开"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 场景可关闭:准备执行场景开"); DevAction_ExpandCtrl(DevActionInfo); //执行当前场景 } else if(DEV_STATE_OPEN == DevActionInfo->DevActionState.SceneState) //当前场景为开 { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 场景可关闭开始对所有设备输出状态进行赋值:准备执行场景关"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 场景可关闭:准备执行场景关"); DevAction_ExpandClose(DevActionInfo, NOR_MODE_CTRL); //执行当前场景 } + if(DevActionInfo->DevActionInput.DevType == DEV_RS485_SWT) { DevActionGlobal.SleepMode_State = 0x00; //睡眠模式关 @@ -2833,12 +2886,12 @@ __attribute__((section(".non_0_wait"))) void DevAction_Output(DEV_ACTION_INFO *D } if(DevActionInfo->DevActionState.SceneState == DEV_STATE_CLOSE) //当前场景为关 { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯有关 场景可关闭开始对所有设备输出状态进行赋值:准备执行场景开"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"总开关-与夜灯有关 场景可关闭:准备执行场景开"); DevAction_ExpandLightOpen(DevActionInfo); //打开当前场景的灯光 } else if(DevActionInfo->DevActionState.SceneState == DEV_STATE_OPEN) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯有关 场景可关闭开始对所有设备输出状态进行赋值:准备执行场景关"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"总开关-与夜灯有关 场景可关闭:准备执行场景关"); DevAction_ExpandClose(DevActionInfo, SLEEP_MODE_CTRL); //执行当前场景,灯光类设备关闭 } break; @@ -2846,12 +2899,12 @@ __attribute__((section(".non_0_wait"))) void DevAction_Output(DEV_ACTION_INFO *D }else { if(DevActionInfo->DevActionState.SceneState == DEV_STATE_CLOSE) //当前场景为关 { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 场景可关闭开始对所有设备输出状态进行赋值:准备执行场景开"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"总开关-与夜灯无关 场景可关闭:准备执行场景开"); DevAction_ExpandLightOpen(DevActionInfo); //打开当前场景的灯光 } else if(DevActionInfo->DevActionState.SceneState == DEV_STATE_OPEN) //当前场景为开 { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 场景可关闭开始对所有设备输出状态进行赋值:准备执行场景关"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"总开关-与夜灯无关 场景可关闭:准备执行场景关"); DevAction_ExpandClose(DevActionInfo, SLEEP_MODE_CTRL); //执行当前场景 } if(DevActionInfo->DevActionInput.DevType == DEV_RS485_SWT) @@ -2969,12 +3022,13 @@ __attribute__((section(".non_0_wait"))) void DevAction_Output(DEV_ACTION_INFO *D break; #endif case ACTION_SCENE_SLEEP_UNRELATED: - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 无卡取电-任意按键 准备执行打开夜灯:"); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"与夜灯无关 无卡取电-任意按键 准备执行打开夜灯"); DevAction_ExpandCtrl(DevActionInfo); //执行当前场景 break; } if(DevActionGlobal.DevActionU64Cond.NeightState != DevActionGlobal.Last_NeightState) { + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"起夜状态发生改变:%d -2",DevActionGlobal.DevActionU64Cond.NeightState); DevActionGlobal.Last_NeightState = DevActionGlobal.DevActionU64Cond.NeightState; } @@ -3162,7 +3216,7 @@ __attribute__((section(".non_0_wait"))) void BLV_DevAction_Cycle(uint32_t Dev_pr if(BLV_DevAction_Cond_Judge(&DevActionInfo) == CondIsPass) { BreakFlag = 0x01; - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"类型:%d 地址%d 回路:%d 场景编号:%d 动作地址:%X通过", \ + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"类型:%d 地址%d 回路:%d 场景编号:%d 场景动作地址:%X通过", \ DevActionInfo.DevActionInput.DevType, \ DevActionInfo.DevActionInput.DevAddr, \ DevActionInfo.DevActionInput.DevLoop, \ @@ -3171,7 +3225,7 @@ __attribute__((section(".non_0_wait"))) void BLV_DevAction_Cycle(uint32_t Dev_pr DevAction_Output(&DevActionInfo); //执行输出控制 }else if(DevActionInfo.DevActionCond.DevActionU64Cond.EleCtrlFlag == 0x01) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"类型:%d 地址%d 回路:%d 场景编号:%d 动作地址:%X未通过,但是有控取电开标志", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"类型:%d 地址%d 回路:%d 场景编号:%d 场景动作地址:%X未通过,但是有控取电开标志", DevActionInfo.DevActionInput.DevType, \ DevActionInfo.DevActionInput.DevAddr, \ DevActionInfo.DevActionInput.DevLoop, \ @@ -3198,7 +3252,7 @@ __attribute__((section(".non_0_wait"))) void BLV_DevAction_Cycle(uint32_t Dev_pr if( DevActionInfo.DevActionState.MultiNumber == (ret >> 0x01) ) { BreakFlag = 0x01; - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"多联场景别名:%s,设备类型复用:%d 设备地址%d 输入地址:%d 动作编号:%d 动作地址:%08X通过", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"多联场景别名:%s,设备类型复用:%d 设备地址%d 输入地址:%d 动作编号:%d 动作地址:%X通过", DevActionInfo.DevActionCore.DevActionName, \ DevActionInfo.DevActionInput.DevType, \ DevActionInfo.DevActionInput.DevAddr, \ @@ -3219,7 +3273,7 @@ __attribute__((section(".non_0_wait"))) void BLV_DevAction_Cycle(uint32_t Dev_pr deal_addr = deal_addr - 3; if( SRAM_Read_Byte(deal_addr) == (ret >> 0x01) ) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"找到多联编号:%d 动作地址:%08X",SRAM_Read_Byte(deal_addr),TempAddr); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"找到多联编号:%d 动作地址:%X",SRAM_Read_Byte(deal_addr),TempAddr); break; } } @@ -3235,7 +3289,7 @@ __attribute__((section(".non_0_wait"))) void BLV_DevAction_Cycle(uint32_t Dev_pr } BreakFlag = 0x01; - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"多联场景别名:%s,设备类型复用:%d 设备地址%d 输入地址:%d 动作编号:%d 动作地址:%08X通过", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"多联场景别名:%s,设备类型复用:%d 设备地址%d 输入地址:%d 动作编号:%d 动作地址:%X通过", DevActionInfo.DevActionCore.DevActionName, \ DevActionInfo.DevActionInput.DevType, \ DevActionInfo.DevActionInput.DevAddr, \ @@ -3256,7 +3310,7 @@ __attribute__((section(".non_0_wait"))) void BLV_DevAction_Cycle(uint32_t Dev_pr DevActionInfo.DevActionInput.DevEvent ) == CtrlValid ) ) { BreakFlag = 0x01; - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"场景别名:%s,设备类型复用:%d 设备地址%d 输入地址:%d 动作编号:%d 动作地址:%08X通过", + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"场景别名:%s,设备类型复用:%d 设备地址%d 输入地址:%d 动作编号:%d 动作地址:%X通过", DevActionInfo.DevActionCore.DevActionName, \ DevActionInfo.DevActionInput.DevType, \ DevActionInfo.DevActionInput.DevAddr, \ @@ -3275,12 +3329,14 @@ __attribute__((section(".non_0_wait"))) void BLV_DevAction_Cycle(uint32_t Dev_pr if(BreakFlag == 0x01) //本地产生事件,就立即刷新场景状态 { + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"场景%d %d状态更新...", DevActionInfo.DevActionCore.ActionNo,DevActionInfo.DevActionState.SceneState); DevAction_State_Get(&DevActionInfo); //当前场景状态更新 结合所有设备输出去判断 } //场景状态改变,控制反馈灯 if( DevActionInfo.DevActionState.SceneState != DevActionInfo.DevActionState.SceneStateLast ) { + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"场景%d 状态改变:%d,保存场景...", DevActionInfo.DevActionCore.ActionNo,DevActionInfo.DevActionState.SceneState); DevActionInfo.DevActionState.SceneStateLast = DevActionInfo.DevActionState.SceneState; DevAction_IndicateCtrl(&DevActionInfo); @@ -3289,7 +3345,7 @@ __attribute__((section(".non_0_wait"))) void BLV_DevAction_Cycle(uint32_t Dev_pr if(BreakFlag == 0x01) { - Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"当前动作下标:%d", j); + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"当前场景下标:%d", j); break; } } @@ -3415,6 +3471,8 @@ __attribute__((section(".non_0_wait"))) void BLV_DevDly_Process(uint32_t dly_pro uint8_t KeepFlag = 0x00; Dev_Output_Ctrl_ptr Dev_Output_Ctrl; + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s : %x",__func__,dly_processing_addr); + SRAM_DMA_Read_Buff((uint8_t *)&DevDlyInfo, sizeof(Struct_Dev_Dly), dly_processing_addr); if( (DevDlyInfo.DlyExcuteFlag == 0x01) && (SysTick_1ms >= DevDlyInfo.DlyExcuteTime) ) @@ -3422,6 +3480,8 @@ __attribute__((section(".non_0_wait"))) void BLV_DevDly_Process(uint32_t dly_pro DevDlyInfo.DlyExcuteFlag = 0x00; //标志清0 KeepFlag = 0x01; + Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"%s : %x 时间到了 %x %d",__func__,dly_processing_addr,DevDlyInfo.DevDlyCore.DevDlyAddr,DevDlyInfo.DevDlyCore.DevType); + if(DevDlyInfo.DevDlyCore.DevDlyAddr != 0x00) { switch(DevDlyInfo.DevDlyCore.DevType) @@ -3486,7 +3546,7 @@ __attribute__((section(".non_0_wait"))) void BLV_DevDly_Task(void) static uint32_t dev_devdly_processing_tick = 0; uint32_t dly_processing_addr = 0; - if( SysTick_1ms - dev_devdly_processing_tick >= 10 ) + if( SysTick_1ms - dev_devdly_processing_tick >= 100 ) { dev_devdly_processing_tick = SysTick_1ms; diff --git a/MCU_Driver/blv_rs485_protocol.c b/MCU_Driver/blv_rs485_protocol.c index fb7185d..de7f7f8 100644 --- a/MCU_Driver/blv_rs485_protocol.c +++ b/MCU_Driver/blv_rs485_protocol.c @@ -795,6 +795,7 @@ __attribute__((section(".non_0_wait"))) void BLV_PollPort_Task(void) Poll485_Info.Retry_Flag = 0x01; /*2021 09 17 :修改增加发送函数返回值判断,RS485OCCUPYNOTIME表示数据没有发送数据,跳过该设备*/ + //Dbg_Println(DBG_BIT_SYS_STATUS_bit,"轮询端口 - 读取设备 %x",Poll485_Info.n_list_read_addr); if((Poll485_Info.n_polling_cf!=0x00000000) && (Poll485_Info.n_polling_cf!=0xFFFFFFFF)) rev = ((fun4_prt)Poll485_Info.n_polling_cf)(Poll485_Info.n_list_read_addr); @@ -851,7 +852,7 @@ __attribute__((section(".non_0_wait"))) void BLV_PollPort_Task(void) case Change_Dev: Poll485_Info.Last_list_addr += SRAM_Device_List_Size; //下一个设备 if(Poll485_Info.Last_list_addr >= SRAM_Read_DW(SRAM_POLL_Device_List_Addr)) Poll485_Info.Last_list_addr = SRAM_Read_DW(SRAM_BUS_Device_List_Addr); - + //Dbg_Println(DBG_BIT_SYS_STATUS_bit,"轮询端口 - 切换设备 %x",Poll485_Info.n_list_read_addr); Poll485_Info.POLL_Start = B_Polling; break; case B_Retry: @@ -868,6 +869,8 @@ __attribute__((section(".non_0_wait"))) void BLV_PollPort_Task(void) Poll485_Info.n_retry_num--; Poll485_Info.POLL_Start = Wait_Reply; } + + //Dbg_Println(DBG_BIT_SYS_STATUS_bit,"轮询端口 - 重发数据 %x",Poll485_Info.n_list_read_addr); }else if((Poll485_Info.Retry_Flag == 0x01) && (Poll485_Info.n_retry_num == 0x00)) { Poll485_Info.POLL_Start = Change_Dev; //发送失败,切换下个设备 @@ -880,6 +883,7 @@ __attribute__((section(".non_0_wait"))) void BLV_PollPort_Task(void) if(g_uart[UART_0].RX_Buffer_WriteAddr != g_uart[UART_0].RX_Buffer_ReadAddr) { data_len = SRAM_Read_Word(g_uart[UART_0].RX_Buffer_ReadAddr); + //Dbg_Println(DBG_BIT_SYS_STATUS_bit,"轮询端口接收到数据 %x - %d",g_uart[UART_0].RX_Buffer_ReadAddr,data_len); if((Poll485_Info.n_processing_cf!=0x00000000) && (Poll485_Info.n_processing_cf!=0xFFFFFFFF)) { Poll485_Info.Retry_Flag = ((fun2_prt )Poll485_Info.n_processing_cf)(Poll485_Info.n_list_read_addr,g_uart[UART_0].RX_Buffer_ReadAddr + 2,data_len); @@ -901,7 +905,10 @@ __attribute__((section(".non_0_wait"))) void BLV_PollPort_Task(void) } } /*接收超时 - 进入重发*/ - if(SysTick_1ms - BLV_POLL_Wait > Poll485_Info.n_dev_waittime) Poll485_Info.POLL_Start = B_Retry; + if(SysTick_1ms - BLV_POLL_Wait > Poll485_Info.n_dev_waittime) { + //Dbg_Println(DBG_BIT_SYS_STATUS_bit,"轮询端口接收超时 - 进入重发"); + Poll485_Info.POLL_Start = B_Retry; + } break; case B_Wait: //发送成功等待时间 if(SysTick_1ms - BLV_POLL_Wait > Poll485_Info.n_dev_waittime) Poll485_Info.POLL_Start = Change_Dev; diff --git a/MCU_Driver/inc/led.h b/MCU_Driver/inc/led.h index e960935..4a9e5fd 100644 --- a/MCU_Driver/inc/led.h +++ b/MCU_Driver/inc/led.h @@ -10,7 +10,7 @@ #include "ch564.h" -#define SYS_LED_ON GPIOB_ResetBits(GPIO_Pin_12) +#define SYS_LED_ON GPIOA_ResetBits(GPIO_Pin_12) #define SYS_LED_OFF GPIOA_SetBits(GPIO_Pin_12) #define SYS_LED_FLIP GPIOA_InverseBits(GPIO_Pin_12) diff --git a/MCU_Driver/inc/uart.h b/MCU_Driver/inc/uart.h index e9d5641..2faeb4e 100644 --- a/MCU_Driver/inc/uart.h +++ b/MCU_Driver/inc/uart.h @@ -17,10 +17,10 @@ #define USART_BUFFER_NUM 3 #define USART_BUFFER_SIZE 100 -#define MCU485_EN1_H -#define MCU485_EN1_L -#define MCU485_EN2_H -#define MCU485_EN2_L +#define MCU485_EN1_H GPIOD_SetBits(GPIO_Pin_21) +#define MCU485_EN1_L GPIOD_ResetBits(GPIO_Pin_21) +#define MCU485_EN2_H GPIOB_SetBits(GPIO_Pin_15) +#define MCU485_EN2_L GPIOB_ResetBits(GPIO_Pin_15) #define MCU485_EN3_H #define MCU485_EN3_L @@ -70,7 +70,7 @@ void Uart2_Flush(uint16_t over_time); void Uart3_Flush(uint16_t over_time); void Uart_SendString(uint8_t uart_id,uint8_t* buff,uint16_t len); -void MCU485_SendString_1(uint8_t *buf, uint16_t len); +void MCU485_SendString_0(uint8_t *buf, uint16_t len); void MCU485_SendString_2(uint8_t *buf, uint16_t len); void MCU485_SendString_3(uint8_t *buf, uint16_t len); void MCU485_SendString(uint8_t uart_id,uint8_t* buff,uint16_t len); diff --git a/MCU_Driver/uart.c b/MCU_Driver/uart.c index cdd74a1..a52713d 100644 --- a/MCU_Driver/uart.c +++ b/MCU_Driver/uart.c @@ -33,10 +33,10 @@ __attribute__((section(".non_0_wait"))) void UARTx_Init(UART_IDX uart_id, uint32 switch (uart_id) { case UART_0: - /* 配置串口1:配置IO口模式 */ + /* 配置串口0:配置IO口模式 */ UART0_BaudRateCfg(buad); - R8_UART0_FCR = RB_FCR_FIFO_TRIG | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; - // FIFO open, trigger point 14 bytes + R8_UART0_FCR = RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; + // FIFO open, trigger point 1 bytes R8_UART0_LCR = RB_LCR_WORD_SZ; R8_UART0_IER = RB_IER_TXD_EN; @@ -44,7 +44,10 @@ __attribute__((section(".non_0_wait"))) void UARTx_Init(UART_IDX uart_id, uint32 GPIOB_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP); GPIOB_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_Floating); + GPIOB_ModeCfg(GPIO_Pin_15, GPIO_ModeOut_PP); //RS485引脚初始化 - 轮询端口 RS485 使能引脚 + UART0_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_THR_EMPTY); + NVIC_SetPriority(UART0_IRQn, 0x80); NVIC_EnableIRQ(UART0_IRQn); memset(&g_uart[UART_0],0,sizeof(UART_t)); @@ -58,8 +61,8 @@ __attribute__((section(".non_0_wait"))) void UARTx_Init(UART_IDX uart_id, uint32 case UART_1: /* 配置串口1:配置IO口模式 */ UART1_BaudRateCfg(buad); - R8_UART1_FCR = RB_FCR_FIFO_TRIG | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; - // FIFO open, trigger point 14 bytes + R8_UART1_FCR = RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; + // FIFO open, trigger point 1 bytes R8_UART1_LCR = RB_LCR_WORD_SZ; R8_UART1_IER = RB_IER_TXD_EN; @@ -68,6 +71,7 @@ __attribute__((section(".non_0_wait"))) void UARTx_Init(UART_IDX uart_id, uint32 GPIOB_ModeCfg(GPIO_Pin_10, GPIO_ModeIN_Floating); UART1_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_THR_EMPTY); + NVIC_SetPriority(UART1_IRQn, 0x80); NVIC_EnableIRQ(UART1_IRQn); memset(&g_uart[UART_1],0,sizeof(UART_t)); @@ -80,15 +84,18 @@ __attribute__((section(".non_0_wait"))) void UARTx_Init(UART_IDX uart_id, uint32 break; case UART_2: UART2_BaudRateCfg(buad); - R8_UART2_FCR = RB_FCR_FIFO_TRIG | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; - // FIFO open, trigger point 14 bytes + R8_UART2_FCR = RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; + // FIFO open, trigger point 1 bytes R8_UART2_LCR = RB_LCR_WORD_SZ; R8_UART2_IER = RB_IER_TXD_EN; GPIO_PinRemapConfig(GPIO_PartialRemap1_UART2,ENABLE); GPIOB_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP); GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_Floating); + GPIOD_ModeCfg(GPIO_Pin_21, GPIO_ModeOut_PP); //RS485引脚初始化 - 主动端口 RS485 使能引脚 + UART2_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_THR_EMPTY); + NVIC_SetPriority(UART2_IRQn, 0x80); NVIC_EnableIRQ(UART2_IRQn); memset(&g_uart[UART_2],0,sizeof(UART_t)); @@ -101,8 +108,8 @@ __attribute__((section(".non_0_wait"))) void UARTx_Init(UART_IDX uart_id, uint32 break; case UART_3: UART3_BaudRateCfg(buad); - R8_UART3_FCR = RB_FCR_FIFO_TRIG | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; - // FIFO open, trigger point 14 bytes + R8_UART3_FCR = RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; + // FIFO open, trigger point 1 bytes R8_UART3_LCR = RB_LCR_WORD_SZ; R8_UART3_IER = RB_IER_TXD_EN; GPIO_PinRemapConfig(GPIO_PartialRemap1_UART3,ENABLE); @@ -110,6 +117,7 @@ __attribute__((section(".non_0_wait"))) void UARTx_Init(UART_IDX uart_id, uint32 GPIOB_ModeCfg(GPIO_Pin_18, GPIO_ModeIN_Floating); UART3_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_THR_EMPTY); + NVIC_SetPriority(UART3_IRQn, 0x80); NVIC_EnableIRQ(UART3_IRQn); memset(&g_uart[UART_3],0,sizeof(UART_t)); @@ -257,8 +265,8 @@ __attribute__((section(".non_0_wait"))) void UART0_RECEIVE(void) { g_uart[UART_0].RecvIdleTiming = SysTick_1ms; - Dbg_Println(DBG_BIT_SYS_STATUS_bit,"UART_0 Len %d ",g_uart[UART_0].RecvLen); - Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"UART_0 Buff:", g_uart[UART_0].RecvBuffer,g_uart[UART_0].RecvLen); +// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"UART_0 Len %d ",g_uart[UART_0].RecvLen); +// Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"UART_0 Buff:", g_uart[UART_0].RecvBuffer,g_uart[UART_0].RecvLen); g_uart[UART_0].Receiving = 0; @@ -291,8 +299,8 @@ __attribute__((section(".non_0_wait"))) void UART1_RECEIVE(void) { g_uart[UART_1].RecvIdleTiming = SysTick_1ms; - Dbg_Println(DBG_BIT_SYS_STATUS_bit,"UART_1 Len %d ",g_uart[UART_1].RecvLen); - Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"UART_1 Buff:", g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); +// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"UART_1 Len %d ",g_uart[UART_1].RecvLen); +// Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"UART_1 Buff:", g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); g_uart[UART_1].Receiving = 0; @@ -327,8 +335,8 @@ __attribute__((section(".non_0_wait"))) void UART2_RECEIVE(void) { g_uart[UART_2].RecvIdleTiming = SysTick_1ms; - Dbg_Println(DBG_BIT_SYS_STATUS_bit,"UART_2 Len %d ",g_uart[UART_2].RecvLen); - Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"UART_2 Buff:", g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); +// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"UART_2 Len %d ",g_uart[UART_2].RecvLen); +// Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"UART_2 Buff:", g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); g_uart[UART_2].Receiving = 0; @@ -693,26 +701,26 @@ __attribute__((section(".non_0_wait"))) void Uart_SendString(uint8_t uart_id,uin } /******************************************************************************* -* Function Name : MCU485_SendString_1 -* Description : 485_1 发送函数 +* Function Name : MCU485_SendString_0 +* Description : 485_0 发送函数 * Input : buf - 发送数据 l - 发送数据长度 * Return : None *******************************************************************************/ -__attribute__((section(".non_0_wait"))) void MCU485_SendString_1(uint8_t *buf, uint16_t len) +__attribute__((section(".non_0_wait"))) void MCU485_SendString_0(uint8_t *buf, uint16_t len) { uint16_t delay_num = 0; MCU485_EN1_H; - UART1_SendString(buf,len); + UART0_SendString(buf,len); //等待发送完成 - 50ms while(1) { WDT_Feed(); - if( (R8_UART1_LSR & RB_LSR_TX_ALL_EMP) != 0x00 ) break; //判断发送FIFO为空,同时FIFO计数为空 + if( (R8_UART0_LSR & RB_LSR_TX_ALL_EMP) != 0x00 ) break; //判断发送FIFO为空,同时FIFO计数为空 Delay_Us(100); delay_num++; if(delay_num > 500) break; @@ -789,23 +797,24 @@ __attribute__((section(".non_0_wait"))) void MCU485_SendString_3(uint8_t *buf, u *******************************************************************************/ __attribute__((section(".non_0_wait"))) void MCU485_SendString(uint8_t uart_id,uint8_t* buff,uint16_t len) { + //Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%s:%d - %d",__func__,uart_id,len); switch(uart_id) { - case UART_1: + case Polling_Port: if(Poll485_Info.port_mode == Port_Monitoring_mode ) //轮询端口 { //Udp_Internal_SeriaNet_Uploading2(Polling_Port,Poll485_Info.baud,buff,len); } - MCU485_SendString_1(buff,len); + MCU485_SendString_0(buff,len); break; - case UART_2: + case Active_Port: if(Act485_Info.port_mode == Port_Monitoring_mode ) //轮询端口 { //Udp_Internal_SeriaNet_Uploading2(Active_Port,Act485_Info.baud,buff,len); } MCU485_SendString_2(buff,len); break; - case UART_3: + case Bus_port: if(BUS485_Info.port_mode == Port_Monitoring_mode ) //轮询端口 { //Udp_Internal_SeriaNet_Uploading2(Bus_port,BUS485_Info.baud,buff,len); diff --git a/Readme.md b/Readme.md index 3bf0603..1d57707 100644 --- a/Readme.md +++ b/Readme.md @@ -1,3 +1,47 @@ +寰呭畬鎴愪簨椤癸細 + +鈥 1銆丩auncher 绗竴娆¤烦杞け璐ラ棶棰橈紝寰呰В鍐炽 + +鈥 2銆丷S485涓诲姩绔彛澧炲姞閬块殰鍔熻兘锛孯S485杞绔彛涓嶣US绔彛鏄疆璇㈡満鍒讹紝涓嶉渶瑕佸鍔犮 + +鈥 3銆丅LV-C1P 鏃犲惎鍔ㄥ師鍥狅紝闇鍙﹁緹椤荤粡瀹炵幇鍚姩鍘熷洜銆 + +鈥 4銆丩auncher娴佺▼淇敼锛孧CU Flash鍙湪鍗囩骇鍚庡啓鍏ワ紝鍏朵粬鍘熷洜鍚姩涓嶅啓鍏CU Flash銆 + +鈥 5銆佸湪姣忎釜璁惧椹卞姩涓鍔犺鍙栬蒋浠剁増鏈彿锛 + +寰呮祴璇曚簨椤癸細 + +鈥 1銆侀厤缃姛鑳 - 鐫$湢鍔熻兘 + +鈥 2銆侀厤缃姛鑳 - 澶氳仈寮鍏 + +鈥 3銆侀厤缃姛鑳 - 鏃犲崱鍙栫數 + +鈥 4銆侀厤缃姛鑳 - 绌鸿皟鎻愮ず闊 + +閬囧埌闂锛 + +鈥 1銆佺綉缁滄悳绱富鏈 - 鍥炲椤圭洰缂栫爜銆佹埧鍨嬨佹埧鍙枫佹埧鍙稩D銆佹埧鍨婭D 銆佹埧鎬併佷笉姝g‘ + +鈥 2銆佺綉缁滄悳绱富鏈轰腑锛屾湇鍔″櫒閫氳绔彛鍦–1F涓紝杩欎釜绔彛鏄浐瀹氫负3341锛岀綉缁滈厤缃伐鍏蜂笂浣跨敤鐨勬槸杩欎釜瀛楁杩涜鐨勭綉缁滈氳涓嬪彂瀛楁銆 + +鈥 闂鐐癸細RCU涓绘満 UDP濂楁帴瀛楀浐瀹氱鍙d负3341锛岃屾湇鍔″櫒绔彛涓3339 + +鈥 + + + +#### 2026-01-08 + +1銆佸満鏅姩浣滃欢鏃舵墽琛 - 鍒濇娴嬭瘯OK + +2銆佸満鏅弽棣堢伅鎺у埗 - 鍒濇娴嬭瘯OK + +3銆佸紑鍏炽佹彃鍗″彇鐢点佹俯鎺у櫒璁惧妯″瀷 - 鍒濇娴嬭瘯OK + + + #### 2026-01-06 鈥 1銆佸満鏅姩浣滄墽琛屽垵姝ユ祴璇昈K diff --git a/User/main.c b/User/main.c index 8d6c137..0e204f8 100644 --- a/User/main.c +++ b/User/main.c @@ -30,10 +30,10 @@ int main(void) SystemCoreClockUpdate(); Systick_Init(); - UARTx_Init(UART_0,512000); - UARTx_Init(UART_1,512000); - UARTx_Init(UART_2,512000); - UARTx_Init(UART_3,512000); + UARTx_Init(UART_0,9600); //RS485轮询端口 + UARTx_Init(UART_1,512000); //调试串口 + UARTx_Init(UART_2,9600); //RS485主动端口 + UARTx_Init(UART_3,115200); //BUS总线 SYS_LED_Init();