调试:CSIO继电器控制

CSIO继电器控制初步测试OK
This commit is contained in:
caocong
2026-01-05 21:17:51 +08:00
parent 63ebdb7baa
commit 6e19d0b451
35 changed files with 2094 additions and 929 deletions

View File

@@ -14,6 +14,248 @@ BLV_NORDEV_Manage_G NorDevInfoGlobal; /*
uint8_t rs485_temp_buff[612];
/*******************************************************************************
* Function Name : BLV_Device_Info_Write_To_SRAM
* Description : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>д<EFBFBD>뵽SRAM<41><4D>
*******************************************************************************/
__attribute__((section(".non_0_wait"))) uint8_t BLV_Device_Info_Write_To_SRAM(
uint32_t dev_addr,
Device_Public_Information_G *dev_info,
uint8_t *dev_data,
uint16_t data_len)
{
if(dev_info == NULL) return 1;
if( (Dev_Privately + data_len) > SRAM_Device_List_Size ) return 2;
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%s :%x",__func__,dev_addr);
memset(rs485_temp_buff,0,sizeof(rs485_temp_buff));
//BLV_Device_Public_Info_Printf(dev_info);
rs485_temp_buff[Dev_Type] = dev_info->type;
rs485_temp_buff[Dev_Addr] = dev_info->addr;
rs485_temp_buff[Dev_port] = dev_info->port;
rs485_temp_buff[Dev_baud] = dev_info->baud & 0xFF;
rs485_temp_buff[Dev_baud_8] = ( dev_info->baud >> 8 ) & 0xFF;
rs485_temp_buff[Dev_baud_16] = ( dev_info->baud >> 16 ) & 0xFF;
rs485_temp_buff[Dev_baud_24] = ( dev_info->baud >> 24 ) & 0xFF;
rs485_temp_buff[Dev_Retrynum] = dev_info->retry_num;
rs485_temp_buff[Dev_WaitTime] = dev_info->wait_time & 0xFF;
rs485_temp_buff[Dev_WaitTime_8] = ( dev_info->wait_time >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Protocol] = dev_info->Protocol;
rs485_temp_buff[Dev_Coord] = dev_info->DevCoord & 0xFF;
rs485_temp_buff[Dev_Coord_8] = ( dev_info->DevCoord >> 8 ) & 0xFF;
rs485_temp_buff[Dev_ActionCoord] = dev_info->ActionCoord & 0xFF;
rs485_temp_buff[Dev_ActionCoord_8] = ( dev_info->ActionCoord >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Polling_CF] = dev_info->polling_cf & 0xFF;
rs485_temp_buff[Dev_Polling_CF_8] = ( dev_info->polling_cf >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Polling_CF_16] = ( dev_info->polling_cf >> 16 ) & 0xFF;
rs485_temp_buff[Dev_Polling_CF_24] = ( dev_info->polling_cf >> 24 ) & 0xFF;
rs485_temp_buff[Dev_Processing_CF] = dev_info->processing_cf & 0xFF;
rs485_temp_buff[Dev_Processing_CF_8] = ( dev_info->processing_cf >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Processing_CF_16] = ( dev_info->processing_cf >> 16 ) & 0xFF;
rs485_temp_buff[Dev_Processing_CF_24] = ( dev_info->processing_cf >> 24 ) & 0xFF;
memcpy(&rs485_temp_buff[Dev_Data_Process_0],(uint8_t *)&(dev_info->DevFunInfo),Dev_Fun_Ptr_Len);
memcpy(&rs485_temp_buff[Dev_Privately],(uint8_t *)dev_data,data_len);
dev_info->data_len = Dev_Privately + data_len;
rs485_temp_buff[Dev_DataLen] = dev_info->data_len & 0xFF;
rs485_temp_buff[Dev_DataLen_H] = ( dev_info->data_len >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Check] = 0x00;
rs485_temp_buff[Dev_Check] = Data_CheckSum(rs485_temp_buff,dev_info->data_len);
//Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"W BLV_Device_Info : ",rs485_temp_buff,dev_info->data_len);
SRAM_DMA_Write_Buff(rs485_temp_buff,dev_info->data_len,dev_addr);
return 0x00;
}
/*******************************************************************************
* Function Name : BLV_Device_PublicInfo_Read_To_Struct
* Description : <20><EFBFBD><E8B1B8><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1>SRAM<41><4D>
*******************************************************************************/
__attribute__((section(".non_0_wait"))) uint8_t BLV_Device_PublicInfo_Read_To_Struct(
uint32_t dev_addr,
Device_Public_Information_G *dev_info)
{
if( (dev_info == NULL) || (dev_addr == 0x00) ) {
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%s %x ptr_null",__func__,dev_addr);
return 1;
}
//<2F><><EFBFBD>ⲿSRAM<41>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><E8B1B8>Ϣ
memset(rs485_temp_buff,0,sizeof(rs485_temp_buff));
dev_info->data_len = SRAM_Read_Word(dev_addr + Dev_DataLen);
SRAM_DMA_Read_Buff(rs485_temp_buff,dev_info->data_len,dev_addr);
if( dev_info->data_len > SRAM_Device_List_Size ) {
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%s %x data_len error",__func__,dev_addr);
return 1; //<2F><><EFBFBD>ݳ<EFBFBD><DDB3>Ȳ<EFBFBD><C8B2>ԣ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>˳<EFBFBD>
}
if( Data_CheckSum(rs485_temp_buff,dev_info->data_len) != 0x00 ) {
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%s %x Check error",__func__,dev_addr);
return 2; //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ʧ<EFBFBD>ܣ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>˳<EFBFBD>
}
//Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"R BLV_Device_Info : ",rs485_temp_buff,dev_info->data_len);
dev_info->type = rs485_temp_buff[Dev_Type];
dev_info->addr = rs485_temp_buff[Dev_Addr];
dev_info->port = rs485_temp_buff[Dev_port];
dev_info->baud = rs485_temp_buff[Dev_baud_24];
dev_info->baud <<= 8;
dev_info->baud |= rs485_temp_buff[Dev_baud_16];
dev_info->baud <<= 8;
dev_info->baud |= rs485_temp_buff[Dev_baud_8];
dev_info->baud <<= 8;
dev_info->baud |= rs485_temp_buff[Dev_baud];
dev_info->retry_num = rs485_temp_buff[Dev_Retrynum];
dev_info->wait_time = rs485_temp_buff[Dev_WaitTime_8];
dev_info->wait_time <<= 8;
dev_info->wait_time |= rs485_temp_buff[Dev_WaitTime];
dev_info->Protocol = rs485_temp_buff[Dev_Protocol];
dev_info->DevCoord = rs485_temp_buff[Dev_Coord_8];
dev_info->DevCoord <<= 8;
dev_info->DevCoord |= rs485_temp_buff[Dev_Coord];
dev_info->ActionCoord = rs485_temp_buff[Dev_ActionCoord_8];
dev_info->ActionCoord <<= 8;
dev_info->ActionCoord |= rs485_temp_buff[Dev_ActionCoord];
dev_info->polling_cf = rs485_temp_buff[Dev_Polling_CF_24];
dev_info->polling_cf <<= 8;
dev_info->polling_cf |= rs485_temp_buff[Dev_Polling_CF_16];
dev_info->polling_cf <<= 8;
dev_info->polling_cf |= rs485_temp_buff[Dev_Polling_CF_8];
dev_info->polling_cf <<= 8;
dev_info->polling_cf |= rs485_temp_buff[Dev_Polling_CF];
dev_info->processing_cf = rs485_temp_buff[Dev_Processing_CF_24];
dev_info->processing_cf <<= 8;
dev_info->processing_cf |= rs485_temp_buff[Dev_Processing_CF_16];
dev_info->processing_cf <<= 8;
dev_info->processing_cf |= rs485_temp_buff[Dev_Processing_CF_8];
dev_info->processing_cf <<= 8;
dev_info->processing_cf |= rs485_temp_buff[Dev_Processing_CF];
memcpy((uint8_t *)&(dev_info->DevFunInfo),&rs485_temp_buff[Dev_Data_Process_0],Dev_Fun_Ptr_Len);
//BLV_Device_Public_Info_Printf(dev_info);
return 0x00;
}
/*******************************************************************************
* Function Name : BLV_Device_PublicInfo_Update_To_Struct
* Description : <20><EFBFBD><E8B1B8><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1>SRAM<41><4D>
*******************************************************************************/
__attribute__((section(".non_0_wait"))) uint8_t BLV_Device_PublicInfo_Update_To_Struct(
uint32_t dev_addr,
Device_Public_Information_G *dev_info)
{
if( (dev_info == NULL) || (dev_addr == 0x00) ) return 1;
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%s :%x",__func__,dev_addr);
memset(rs485_temp_buff,0,sizeof(rs485_temp_buff));
dev_info->data_len = SRAM_Read_Word(dev_addr + Dev_DataLen);
SRAM_DMA_Read_Buff(rs485_temp_buff,dev_info->data_len,dev_addr);
rs485_temp_buff[Dev_Type] = dev_info->type;
rs485_temp_buff[Dev_Addr] = dev_info->addr;
rs485_temp_buff[Dev_port] = dev_info->port;
rs485_temp_buff[Dev_baud] = dev_info->baud & 0xFF;
rs485_temp_buff[Dev_baud_8] = ( dev_info->baud >> 8 ) & 0xFF;
rs485_temp_buff[Dev_baud_16] = ( dev_info->baud >> 16 ) & 0xFF;
rs485_temp_buff[Dev_baud_24] = ( dev_info->baud >> 24 ) & 0xFF;
rs485_temp_buff[Dev_Retrynum] = dev_info->retry_num;
rs485_temp_buff[Dev_WaitTime] = dev_info->wait_time & 0xFF;
rs485_temp_buff[Dev_WaitTime_8] = ( dev_info->wait_time >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Protocol] = dev_info->Protocol;
rs485_temp_buff[Dev_Coord] = dev_info->DevCoord & 0xFF;
rs485_temp_buff[Dev_Coord_8] = ( dev_info->DevCoord >> 8 ) & 0xFF;
rs485_temp_buff[Dev_ActionCoord] = dev_info->ActionCoord & 0xFF;
rs485_temp_buff[Dev_ActionCoord_8] = ( dev_info->ActionCoord >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Polling_CF] = dev_info->polling_cf & 0xFF;
rs485_temp_buff[Dev_Polling_CF_8] = ( dev_info->polling_cf >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Polling_CF_16] = ( dev_info->polling_cf >> 16 ) & 0xFF;
rs485_temp_buff[Dev_Polling_CF_24] = ( dev_info->polling_cf >> 24 ) & 0xFF;
rs485_temp_buff[Dev_Processing_CF] = dev_info->processing_cf & 0xFF;
rs485_temp_buff[Dev_Processing_CF_8] = ( dev_info->processing_cf >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Processing_CF_16] = ( dev_info->processing_cf >> 16 ) & 0xFF;
rs485_temp_buff[Dev_Processing_CF_24] = ( dev_info->processing_cf >> 24 ) & 0xFF;
memcpy(&rs485_temp_buff[Dev_Data_Process_0],(uint8_t *)&(dev_info->DevFunInfo),Dev_Fun_Ptr_Len);
rs485_temp_buff[Dev_DataLen] = dev_info->data_len & 0xFF;
rs485_temp_buff[Dev_DataLen_H] = ( dev_info->data_len >> 8 ) & 0xFF;
rs485_temp_buff[Dev_Check] = 0x00;
rs485_temp_buff[Dev_Check] = Data_CheckSum(rs485_temp_buff,dev_info->data_len);
//Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"W BLV_Device_Info : ",rs485_temp_buff,dev_info->data_len);
SRAM_DMA_Write_Buff(rs485_temp_buff,dev_info->data_len,dev_addr);
return 0x00;
}
/*******************************************************************************
* Function Name : BLV_Device_Public_Info_Printf
* Description : <20><>ӡ<EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>Ϣ
* Input :
dev_info : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* Return : None
*******************************************************************************/
void BLV_Device_Public_Info_Printf(Device_Public_Information_G *dev_info)
{
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info type : %d",dev_info->type);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info addr : %d",dev_info->addr);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info port : %d",dev_info->port);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info baud : %d",dev_info->baud);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info retry_num : %d",dev_info->retry_num);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info wait_time : %d",dev_info->wait_time);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info Protocol : %d",dev_info->Protocol);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info DevCoord : %d",dev_info->DevCoord);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info ActionCoord : %d",dev_info->ActionCoord);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info polling_cf : %x",dev_info->polling_cf);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info processing_cf : %x",dev_info->processing_cf);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info Dev_Data_Process : %x",dev_info->DevFunInfo.Dev_Data_Process);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info Dev_Input_Type_Get : %x",dev_info->DevFunInfo.Dev_Input_Type_Get);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info Dev_Output_Ctrl : %x",dev_info->DevFunInfo.Dev_Output_Ctrl);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info Dev_Output_Loop_State_Get : %x",dev_info->DevFunInfo.Dev_Output_Loop_State_Get);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info Dev_Output_Group_Ctrl : %x",dev_info->DevFunInfo.Dev_Output_Group_Ctrl);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Dev Info Dev_Output_Loop_Group_State_Get_ptr : %x",dev_info->DevFunInfo.Dev_Output_Loop_Group_State_Get_ptr);
}
/*******************************************************************************
* Function Name : Add_BUS_Device_To_List
* Description : <20><><EFBFBD><EFBFBD>BUS<55><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -33,31 +275,9 @@ __attribute__((section(".non_0_wait"))) void Add_BUS_Device_To_List(
uint32_t list_addr = SRAM_Read_DW(SRAM_BUS_Device_List_Addr); //<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
if((list_addr < SRAM_Device_List_Start_Addr) || (list_addr > SRAM_Device_List_End_Addr)) list_addr = SRAM_Device_List_Start_Addr;
memset(rs485_temp_buff,0,sizeof(rs485_temp_buff));
BLV_Device_Info_Write_To_SRAM(list_addr,dev_info,dev_data,data_len);
memcpy(rs485_temp_buff,(uint8_t *)dev_info,Dev_Privately);
memcpy(&rs485_temp_buff[Dev_Privately],(uint8_t *)dev_data,data_len);
dev_info->check = 0x00;
dev_info->check = Data_CheckSum(rs485_temp_buff,dev_info->data_len);
SRAM_DMA_Write_Buff(rs485_temp_buff,dev_info->data_len,list_addr);
// /*<2A><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// SRAM_DMA_Write_Buff(rs485_temp_buff,Dev_Privately,list_addr);
//
// /*<2A><><EFBFBD><EFBFBD><EFBFBD>豸˽<E8B1B8>б<EFBFBD><D0B1><EFBFBD>*/
// SRAM_DMA_Write_Buff(dev_data,data_len,list_addr+Dev_Privately);
//
// /*<2A><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ֵ*/
// check_val = Dev_CheckSum(list_addr,dev_info->data_len);
// SRAM_Write_Byte(check_val,list_addr+Dev_Check); //У<><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"data_len :%d ,dev Buffer:" , write_len);
// for(uint16_t i = 0;i < write_len;i++)
// {
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%02X " , SRAM_Read_Byte(list_addr + i));
// }
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"\r\n");
BLV_Device_Public_Info_Printf(dev_info);
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַƫ<D6B7><C6AB>*/
list_addr += SRAM_Device_List_Size;
@@ -91,42 +311,7 @@ __attribute__((section(".non_0_wait"))) void Add_POLL_Device_To_List(
}
if( (list_addr < Start_addr) || (list_addr > SRAM_Device_List_End_Addr)) list_addr = Start_addr;
memset(rs485_temp_buff,0,sizeof(rs485_temp_buff));
memcpy(rs485_temp_buff,(uint8_t *)dev_info,Dev_Privately);
memcpy(&rs485_temp_buff[Dev_Privately],(uint8_t *)dev_data,data_len);
dev_info->check = 0x00;
dev_info->check = Data_CheckSum(rs485_temp_buff,dev_info->data_len);
SRAM_DMA_Write_Buff(rs485_temp_buff,dev_info->data_len,list_addr);
// /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// for(uint16_t i = 0;i<SRAM_Device_List_Size;i++)
// {
// SRAM_Write_Byte(0x00,list_addr+i);
// }
//
// /*<2A><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// SRAM_DMA_Write_Buff((uint8_t *)dev_info,Dev_Privately,list_addr);
//
// /*<2A><><EFBFBD><EFBFBD>485<38><EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>*/
// SRAM_Write_DW(dev_info->polling_cf,list_addr+Dev_Polling_CF);
//
// SRAM_Write_DW(dev_info->processing_cf,list_addr+Dev_Processing_CF);
//
// /*<2A><><EFBFBD><EFBFBD><EFBFBD>豸˽<E8B1B8>б<EFBFBD><D0B1><EFBFBD>*/
// SRAM_DMA_Write_Buff(dev_data,data_len,list_addr+Dev_Privately);
//
// /*<2A><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ֵ*/
// dev_info->check = Dev_CheckSum(list_addr,dev_info->data_len);
// SRAM_Write_Byte(dev_info->check,list_addr+Dev_Check); //У<><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"data_len :%d ,dev Buffer:" , write_len);
// for(uint16_t i = 0;i < write_len;i++)
// {
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%02X " , SRAM_Read_Byte(list_addr + i));
// }
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"\r\n");
BLV_Device_Info_Write_To_SRAM(list_addr,dev_info,dev_data,data_len);
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַƫ<D6B7><C6AB>*/
list_addr += SRAM_Device_List_Size;
@@ -161,41 +346,7 @@ __attribute__((section(".non_0_wait"))) void Add_ACT_Device_To_List(
}
if((list_addr < Start_addr) || (list_addr > SRAM_Device_List_End_Addr)) list_addr = Start_addr;
memset(rs485_temp_buff,0,sizeof(rs485_temp_buff));
memcpy(rs485_temp_buff,(uint8_t *)dev_info,Dev_Privately);
memcpy(&rs485_temp_buff[Dev_Privately],(uint8_t *)dev_data,data_len);
dev_info->check = 0x00;
dev_info->check = Data_CheckSum(rs485_temp_buff,dev_info->data_len);
SRAM_DMA_Write_Buff(rs485_temp_buff,dev_info->data_len,list_addr);
// /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// for(uint16_t i = 0;i<SRAM_Device_List_Size;i++)
// {
// SRAM_Write_Byte(0x00,list_addr+i);
// }
// /*<2A><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// SRAM_DMA_Write_Buff((uint8_t *)dev_info,Dev_Privately,list_addr);
//
// /*<2A><><EFBFBD><EFBFBD>485<38><EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>*/
// SRAM_Write_DW(dev_info->polling_cf,list_addr+Dev_Polling_CF);
//
// SRAM_Write_DW(dev_info->processing_cf,list_addr+Dev_Processing_CF);
//
// /*<2A><><EFBFBD><EFBFBD><EFBFBD>豸˽<E8B1B8>б<EFBFBD><D0B1><EFBFBD>*/
// SRAM_DMA_Write_Buff(dev_data,data_len,list_addr+Dev_Privately);
//
// /*<2A><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ֵ*/
// dev_info->check = Dev_CheckSum(list_addr,dev_info->data_len);
// SRAM_Write_Byte(dev_info->check,list_addr+Dev_Check); //У<><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"data_len :%d ,dev Buffer:" , write_len);
// for(uint16_t i = 0;i < write_len;i++)
// {
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%02X " , SRAM_Read_Byte(list_addr + i));
// }
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"\r\n");
BLV_Device_Info_Write_To_SRAM(list_addr,dev_info,dev_data,data_len);
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַƫ<D6B7><C6AB>*/
list_addr += SRAM_Device_List_Size;
@@ -231,66 +382,13 @@ __attribute__((section(".non_0_wait"))) void Add_Nor_Device_To_List(
}
if((list_addr < Start_addr) || (list_addr > SRAM_Device_List_End_Addr)) list_addr = Start_addr;
memset(rs485_temp_buff,0,sizeof(rs485_temp_buff));
memcpy(rs485_temp_buff,(uint8_t *)dev_info,Dev_Privately);
memcpy(&rs485_temp_buff[Dev_Privately],(uint8_t *)dev_data,data_len);
dev_info->check = 0x00;
dev_info->check = Data_CheckSum(rs485_temp_buff,dev_info->data_len);
SRAM_DMA_Write_Buff(rs485_temp_buff,dev_info->data_len,list_addr);
// /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// for(uint16_t i = 0;i<SRAM_Device_List_Size;i++)
// {
// SRAM_Write_Byte(0x00,list_addr+i);
// }
//
// /*<2A><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// SRAM_DMA_Write_Buff((uint8_t *)dev_info,Dev_Privately,list_addr);
//
// /*<2A><><EFBFBD><EFBFBD><EFBFBD>豸˽<E8B1B8>б<EFBFBD><D0B1><EFBFBD>*/
// SRAM_DMA_Write_Buff(dev_data,data_len,list_addr+Dev_Privately);
//
// /*<2A><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ֵ*/
// dev_info->check = Dev_CheckSum(list_addr,dev_info->data_len);
// SRAM_Write_Byte(dev_info->check,list_addr+Dev_Check); //У<><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"data_len :%d ,dev Buffer:" , write_len);
// for(uint16_t i = 0;i < write_len;i++)
// {
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%02X " , SRAM_Read_Byte(list_addr + i));
// }
// Dbg_Println(DBG_BIT_SYS_STATUS_bit,"\r\n");
BLV_Device_Info_Write_To_SRAM(list_addr,dev_info,dev_data,data_len);
/*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַƫ<D6B7><C6AB>*/
list_addr += SRAM_Device_List_Size;
SRAM_Write_DW(list_addr,SRAM_NORMAL_Device_List_Addr);
}
/*******************************************************************************
* Function Name : BLV_Device_Info_Write_To_SRAM
* Description : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>д<EFBFBD>뵽SRAM<41><4D>
*******************************************************************************/
__attribute__((section(".non_0_wait"))) uint8_t BLV_Device_Info_Write_To_SRAM(
uint32_t dev_addr,
Device_Public_Information_G *dev_info,
uint8_t *dev_data,
uint16_t data_len)
{
if(dev_info == NULL) return 1;
memset(rs485_temp_buff,0,sizeof(rs485_temp_buff));
memcpy(rs485_temp_buff,(uint8_t *)dev_info,Dev_Privately);
memcpy(&rs485_temp_buff[Dev_Privately],(uint8_t *)dev_data,data_len);
dev_info->check = 0x00;
dev_info->check = Data_CheckSum(rs485_temp_buff,dev_info->data_len);
SRAM_DMA_Write_Buff(rs485_temp_buff,dev_info->data_len,dev_addr);
return 0x00;
}
/*******************************************************************************
* Function Name : Device_Data_Check
* Description : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
@@ -319,11 +417,11 @@ __attribute__((section(".non_0_wait"))) uint8_t Device_Data_Check(uint32_t sram_
__attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
{
static uint32_t BLV_BUS_Wait = 0;
Device_Public_Information_G dev_info;
uint16_t data_len = 0;
uint8_t rev = 0;
if(BUS485_Info.device_num == 0x00) return ;
if(BUS485_Info.device_num == 0x00) return ;
switch(BUS485_Info.BUS_Start)
{
@@ -341,8 +439,8 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
BUS485_Info.n_list_read_addr = BUS485_Info.Last_list_addr;
/*<2A><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ*/
Device_Public_Information_G dev_info;
SRAM_DMA_Read_Buff((uint8_t *)&dev_info,sizeof(Device_Public_Information_G),BUS485_Info.n_list_read_addr);
BLV_Device_PublicInfo_Read_To_Struct(BUS485_Info.n_list_read_addr,&dev_info);
BUS485_Info.n_dev_type = dev_info.type;
BUS485_Info.n_dev_addr = dev_info.addr;
BUS485_Info.n_dev_datalen = dev_info.data_len;
@@ -354,12 +452,11 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
BUS485_Info.Retry_Flag = 0x01;
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ѯ<EFBFBD><D1AF><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>*/
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS_dev Polling");
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS_dev Polling %x %x",BUS485_Info.n_polling_cf,BUS485_Info.n_processing_cf);
if(BUS485_Info.baud != dev_info.baud) //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵱ǰͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>
{
/*<2A>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BUS_Port Baud:%ld,Change Baud:%ld\r\n",BUS485_Info.baud,dev_info.baud);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BUS_Port Baud:%d,Change Baud:%d\r\n",BUS485_Info.baud,dev_info.baud);
BUS485_Info.baud = dev_info.baud;
if(BUS485_Info.BaudRateCfg != NULL) BUS485_Info.BaudRateCfg(BUS485_Info.baud);
@@ -374,7 +471,6 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
if(rev == RS485OCCUPYNOTIME) //<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
{
BUS485_Info.BUS_Start = Change_Dev;
/*BUS485<38><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>ظ<EFBFBD><D8B8>׶<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>л<EFBFBD><D0BB><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>־λ<D6BE><CEBB><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>λ - 2022-05-04*/
BUS485_Info.Retry_Flag = 0x00;
BUS485_Info.n_retry_num = 0x00;
}else { //<2F><><EFBFBD>ݷ<EFBFBD><DDB7>ͳɹ<CDB3><C9B9><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>ظ<EFBFBD>
@@ -383,11 +479,11 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
}
}
}else {
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"[BLV_BUS_Polling_Task2]BLV_BUS_dev Check Fail:%08X",BUS485_Info.Last_list_addr);
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS_dev Check Fail:%08X",BUS485_Info.Last_list_addr);
BUS485_Info.BUS_Start = Change_Dev;
}
}else {
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS_dev Type Fail");
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS_dev Type Fail");
BUS485_Info.BUS_Start = Change_Dev;
}
@@ -395,15 +491,14 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
case Change_Dev:
BUS485_Info.Last_list_addr += SRAM_Device_List_Size; //<2F><>һ<EFBFBD><D2BB><EFBFBD>
if(BUS485_Info.Last_list_addr >= SRAM_Read_DW(SRAM_BUS_Device_List_Addr)) BUS485_Info.Last_list_addr = SRAM_Device_List_Start_Addr;
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BUS Change_Dev");
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BUS Change_Dev %x %x",BUS485_Info.Last_list_addr,SRAM_Read_DW(SRAM_BUS_Device_List_Addr));
BUS485_Info.BUS_Start = B_Polling;
break;
case B_Retry:
if((BUS485_Info.Retry_Flag == 0x01) && (BUS485_Info.n_retry_num != 0x00)) //<2F>ط<EFBFBD><D8B7><EFBFBD>־δ<D6BE><CEB4><EFBFBD><EFBFBD><E3A3AC>ʾû<CABE><C3BB><EFBFBD>ͳɹ<CDB3>
{
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BUS Retransmitting Data:%d-%d-%08X...",BUS485_Info.n_dev_type,BUS485_Info.n_dev_addr,BUS485_Info.n_list_read_addr);
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BUS Retransmitting Data:%d-%d-%08X...",BUS485_Info.n_dev_type,BUS485_Info.n_dev_addr,BUS485_Info.n_list_read_addr);
//<2F>޸<EFBFBD>ʱ<EFBFBD><CAB1>:2022-07-12
if((BUS485_Info.n_polling_cf!=0x00000000) && (BUS485_Info.n_polling_cf!=0xFFFFFFFF)) rev = ((fun4_prt)BUS485_Info.n_polling_cf)(BUS485_Info.n_list_read_addr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
if(rev == RS485OCCUPYNOTIME) //<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
@@ -431,19 +526,21 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
{
data_len = SRAM_Read_Word(g_uart[UART_3].RX_Buffer_ReadAddr);
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Reply Len:%d",data_len);
if((BUS485_Info.n_processing_cf!=0x00000000) && (BUS485_Info.n_processing_cf!=0xFFFFFFFF)) {
BUS485_Info.Retry_Flag = ((fun2_prt)BUS485_Info.n_processing_cf)(BUS485_Info.n_list_read_addr,g_uart[UART_3].RX_Buffer_ReadAddr + 2,data_len);
}
if(BUS485_Info.Retry_Flag == 0x00) {
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Reply SUCC\r\n");
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Reply SUCC 1\r\n");
BUS485_Info.send_wait = SysTick_1ms;
BUS485_Info.BUS_Start = B_Wait; //<2F>ظ<EFBFBD><D8B8>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>߿<EFBFBD><DFBF>У<EFBFBD><D0A3><EFBFBD><EFBFBD>л<EFBFBD>Ϊ<EFBFBD><CEAA>һ<EFBFBD><D2BB><EFBFBD>
}
if(BUS485_Info.port_mode == Port_Monitoring_mode) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD>ģʽ<C4A3><CABD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD>PC<50><43>
{
Udp_Internal_SeriaNet_Uploading(Bus_port,BUS485_Info.baud,g_uart[UART_3].RX_Buffer_ReadAddr); //<2F>ϱ<EFBFBD>
Udp_Internal_SeriaNet_Uploading(Bus_port,BUS485_Info.baud,g_uart[UART_3].RX_Buffer_ReadAddr);
}
g_uart[UART_3].RX_Buffer_ReadAddr += SRAM_Uart_Buffer_Size;
@@ -462,21 +559,19 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
}
//BUS485_Info.BUS_Start = Change_Dev;
break;
/*2021-11-24 : <20><><EFBFBD><EFBFBD>C5IO<49><4F><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ݵ<EFBFBD>ǰ<EFBFBD>豸ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>л<EFBFBD><D0BB><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>л<EFBFBD><D0BB><EFBFBD><EAB2A8><EFBFBD>ʺ󣬵ȴ<F3A3ACB5>10ms<6D>ڽ<EFBFBD><DABD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2022-07-19 : <20><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨѶһ<D1B6>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
*/
case Baud_Wait: //<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵȴ<CAB5>ʱ<EFBFBD><CAB1>
if(SysTick_1ms - BUS485_Info.change_tick > BLV_BUS485_ChangeBaudWaitTime)
{
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS State -- Baud_Wait");
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS State -- Baud_Wait %x",BUS485_Info.n_polling_cf);
if((BUS485_Info.n_polling_cf!=0x00000000) && (BUS485_Info.n_polling_cf!=0xFFFFFFFF)) rev = ((fun4_prt)BUS485_Info.n_polling_cf)(BUS485_Info.n_list_read_addr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
if((BUS485_Info.n_polling_cf != 0x00000000) && (BUS485_Info.n_polling_cf != 0xFFFFFFFF)) {
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS Baud_Wait -- n_polling_cf %x",BUS485_Info.n_polling_cf);
rev = ((fun4_prt)BUS485_Info.n_polling_cf)(BUS485_Info.n_list_read_addr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
}
BUS485_Info.change_tick = SysTick_1ms;
BUS485_Info.BUS_Start = Baud_Comm;
}
break;
case Baud_Comm:
/*<2A><><EFBFBD>մ<EFBFBD><D5B4><EFBFBD>*/
@@ -491,12 +586,11 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
}
if(BUS485_Info.Retry_Flag == 0x00) //<2F>ظ<EFBFBD><D8B8>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>һ<EFBFBD><D2BB>ͨѶ
{
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS State -- Baud_Comm3");
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS State -- Baud_Comm3");
BUS485_Info.BUS_Start = Baud_SendWait;
BUS485_Info.change_tick = SysTick_1ms;
}
if(BUS485_Info.port_mode == Port_Monitoring_mode) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD>ģʽ<C4A3><CABD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD>PC<50><43>
{
Udp_Internal_SeriaNet_Uploading(Bus_port,BUS485_Info.baud,g_uart[UART_3].RX_Buffer_ReadAddr); //<2F>ϱ<EFBFBD>
@@ -516,7 +610,7 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
break;
case Baud_SendWait:
if(SysTick_1ms - BUS485_Info.change_tick > BLV_BUS485_ChangeBaudSendWaitTime) {
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS State -- Baud_Comm2");
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS State -- Baud_Comm1");
BUS485_Info.change_tick = SysTick_1ms;
BUS485_Info.BUS_Start = B_Send;
}
@@ -524,10 +618,9 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
case B_Send: //<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BLV_BUS State -- send");
//if((BUS485_Info.n_polling_cf!=0x00000000) && (BUS485_Info.n_polling_cf!=0xFFFFFFFF)) Convert_To_Fun_Prt(BUS485_Info.n_polling_cf,BUS485_Info.n_list_read_addr);
//<2F>޸<EFBFBD>ʱ<EFBFBD><CAB1>:2022-07-12
if((BUS485_Info.n_polling_cf!=0x00000000) && (BUS485_Info.n_polling_cf!=0xFFFFFFFF)) rev = ((fun4_prt)BUS485_Info.n_polling_cf)(BUS485_Info.n_list_read_addr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
if( (BUS485_Info.n_polling_cf!=0x00000000) && (BUS485_Info.n_polling_cf!=0xFFFFFFFF) ) {
rev = ((fun4_prt)BUS485_Info.n_polling_cf)(BUS485_Info.n_list_read_addr);
}
if(rev == RS485OCCUPYNOTIME) //<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
{
@@ -552,7 +645,7 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS_Polling_Task(void)
{
if(SysTick_1s - BUS485_Info.mode_tick > BUS485_Info.mode_outtime)
{
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Reply SUCC");
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"BUS485 Mode:%d Outtime %d",BUS485_Info.port_mode,BUS485_Info.device_num);
BUS485_Info.mode_tick = SysTick_1s;
BUS485_Info.port_mode = Port_Normal_Mode; //<2F><><EFBFBD><EFBFBD>ģʽ
}
@@ -649,9 +742,7 @@ __attribute__((section(".non_0_wait"))) void BLV_BUS485Port_ModeTask(void)
break;
case Port_Normal_Mode:
case Port_Monitoring_mode:
BLV_BUS_Polling_Task(); //<2F><><EFBFBD><EFBFBD>ģʽ <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3>¼<EFBFBD><C2BC><EFBFBD>ģʽ
break;
}
}
@@ -691,7 +782,7 @@ __attribute__((section(".non_0_wait"))) void BLV_PollPort_Task(void)
}else {
/*<2A><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ*/
Device_Public_Information_G dev_info;
SRAM_DMA_Read_Buff((uint8_t *)&dev_info,sizeof(Device_Public_Information_G),Poll485_Info.n_list_read_addr);
BLV_Device_PublicInfo_Read_To_Struct(Poll485_Info.n_list_read_addr,&dev_info);
Poll485_Info.n_dev_type = dev_info.type;
Poll485_Info.n_dev_addr = dev_info.addr;
@@ -731,7 +822,7 @@ __attribute__((section(".non_0_wait"))) void BLV_PollPort_Task(void)
/*<2A><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ*/
Device_Public_Information_G dev_info;
SRAM_DMA_Read_Buff((uint8_t *)&dev_info,sizeof(Device_Public_Information_G),Poll485_Info.n_list_read_addr);
BLV_Device_PublicInfo_Read_To_Struct(Poll485_Info.n_list_read_addr,&dev_info);
Poll485_Info.n_dev_type = dev_info.type;
Poll485_Info.n_dev_addr = dev_info.addr;
@@ -795,7 +886,6 @@ __attribute__((section(".non_0_wait"))) void BLV_PollPort_Task(void)
}
if(Poll485_Info.Retry_Flag == 0x00) {
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Reply SUCC\r\n");
Poll485_Info.send_wait = SysTick_1ms;
Poll485_Info.POLL_Start = B_Wait; //<2F>ظ<EFBFBD><D8B8>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>߿<EFBFBD><DFBF>У<EFBFBD><D0A3><EFBFBD><EFBFBD>л<EFBFBD>Ϊ<EFBFBD><CEAA>һ<EFBFBD><D2BB><EFBFBD>
}
@@ -1100,7 +1190,7 @@ __attribute__((section(".non_0_wait"))) void BLV_ActivePort_Task(void)
/*<2A><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ*/
Device_Public_Information_G dev_info;
SRAM_DMA_Read_Buff((uint8_t *)&dev_info,sizeof(Device_Public_Information_G),Act485_Info.Last_list_addr);
BLV_Device_PublicInfo_Read_To_Struct(Act485_Info.Last_list_addr,&dev_info);
Act485_Info.n_polling_cf = dev_info.polling_cf;
Act485_Info.n_processing_cf = dev_info.processing_cf;
@@ -1119,7 +1209,7 @@ __attribute__((section(".non_0_wait"))) void BLV_ActivePort_Task(void)
{
/*<2A><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ*/
Device_Public_Information_G dev_info;
SRAM_DMA_Read_Buff((uint8_t *)&dev_info,sizeof(Device_Public_Information_G),Act485_Info.n_list_read_addr);
BLV_Device_PublicInfo_Read_To_Struct(Act485_Info.n_list_read_addr,&dev_info);
Act485_Info.n_polling_cf = dev_info.polling_cf;
Act485_Info.n_processing_cf = dev_info.processing_cf;