调试:CSIO继电器控制
CSIO继电器控制初步测试OK
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user