|
|
@@ -44,11 +44,13 @@ static CM_UINT32 s_packTimer = 0u; /**< 请求命令时间戳 */
|
|
|
|
static CM_UINT32 s_packFirstSendTimer = 0u; /**< 第一次回复重启确认的周期号 */
|
|
|
|
static CM_UINT32 s_packFirstSendTimer = 0u; /**< 第一次回复重启确认的周期号 */
|
|
|
|
static CM_UINT32 s_packFirstRecvTimer = 0u; /**< 收到aid第一次回复重启确认的周期号 */
|
|
|
|
static CM_UINT32 s_packFirstRecvTimer = 0u; /**< 收到aid第一次回复重启确认的周期号 */
|
|
|
|
static CM_UINT8 reboottype = 0u;/**< 重启请求命令 0x55:未更新重启 0xaa:升级重启 0xd1~d7:硬重启 */
|
|
|
|
static CM_UINT8 reboottype = 0u;/**< 重启请求命令 0x55:未更新重启 0xaa:升级重启 0xd1~d7:硬重启 */
|
|
|
|
|
|
|
|
static CM_UINT16 s_rebootSrcid = 0u;
|
|
|
|
extern CM_UINT32 g_MSCP_SysCount; /**< 系统周期号 */
|
|
|
|
extern CM_UINT32 g_MSCP_SysCount; /**< 系统周期号 */
|
|
|
|
static CM_UINT8 s_countres = 0u;/**重启确认报文回复次数计数 */
|
|
|
|
static CM_UINT8 s_countres = 0u;/**重启确认报文回复次数计数 */
|
|
|
|
static CM_UINT8 packAccredit = 2u; /**授权状态 (当变量置为0或者1,则需要处理远程重启请求报文)*/
|
|
|
|
static CM_UINT8 packAccredit = 2u; /**授权状态 (当变量置为0或者1,则需要处理远程重启请求报文)*/
|
|
|
|
static CM_UINT8 reasonAuthorization = 0u; /*授权原因*/
|
|
|
|
static CM_UINT8 reasonAuthorization = 0u; /*授权原因*/
|
|
|
|
static CM_UINT8 s_HardReboottype = 0u;/**<0xd1~d7:硬重启 */
|
|
|
|
static CM_UINT8 s_HardReboottype = 0u;/**<0xd1~d7:硬重启 */
|
|
|
|
|
|
|
|
static CM_UINT16 s_HardRebootSrcid = 0u;/*接收到的重启命令的源ID*/
|
|
|
|
static CM_UINT8 s_packHardAccredit = 2u; /**硬重启授权状态 (当变量置为0或者1,则需要处理远程重启请求报文)*/
|
|
|
|
static CM_UINT8 s_packHardAccredit = 2u; /**硬重启授权状态 (当变量置为0或者1,则需要处理远程重启请求报文)*/
|
|
|
|
static CM_UINT8 s_reasonHardAuthorization = 0u; /*硬重启授权原因*/
|
|
|
|
static CM_UINT8 s_reasonHardAuthorization = 0u; /*硬重启授权原因*/
|
|
|
|
|
|
|
|
|
|
|
@@ -100,7 +102,7 @@ static void PFM_DataReastart_SendTwo(void);
|
|
|
|
static void PFM_RM_File(IN CM_UINT8 pathname[]);
|
|
|
|
static void PFM_RM_File(IN CM_UINT8 pathname[]);
|
|
|
|
|
|
|
|
|
|
|
|
/*- 远程硬件重启命令接收处理 */
|
|
|
|
/*- 远程硬件重启命令接收处理 */
|
|
|
|
static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UINT16 packLen,CM_UINT8 packType);
|
|
|
|
static void PFM_Data_HardWareReastart(CM_UINT16 srcName, CM_UINT8* mData,CM_UINT32 dataOffset,CM_UINT16 packLen,CM_UINT8 packType);
|
|
|
|
|
|
|
|
|
|
|
|
/*- 远程切系命令接收处理 */
|
|
|
|
/*- 远程切系命令接收处理 */
|
|
|
|
static void PFM_Data_RemoteSwitch(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UINT16 packLen,CM_UINT8 packType);
|
|
|
|
static void PFM_Data_RemoteSwitch(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UINT16 packLen,CM_UINT8 packType);
|
|
|
@@ -109,7 +111,7 @@ static void PFM_Data_RemoteSwitch(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UINT16
|
|
|
|
static void PFM_RemoteSwitch_Send(CM_UINT8 type,CM_UINT32 rcv_packTime,CM_UINT8 accredit,CM_UINT8 reason);
|
|
|
|
static void PFM_RemoteSwitch_Send(CM_UINT8 type,CM_UINT32 rcv_packTime,CM_UINT8 accredit,CM_UINT8 reason);
|
|
|
|
|
|
|
|
|
|
|
|
/*- 硬件重启确认帧组包发送 */
|
|
|
|
/*- 硬件重启确认帧组包发送 */
|
|
|
|
static void PFM_HardWareReastart_Send(CM_UINT8 type,CM_UINT32 rcv_packTime,CM_UINT8 accredit,CM_UINT8 reason);
|
|
|
|
static void PFM_HardWareReastart_Send(CM_UINT8 type,CM_UINT16 dstName, CM_UINT32 rcv_packTime,CM_UINT8 accredit,CM_UINT8 reason);
|
|
|
|
|
|
|
|
|
|
|
|
/*- 继电器检测 */
|
|
|
|
/*- 继电器检测 */
|
|
|
|
static ENUM_HARDWARE_BOOT_SELFCHECK_T PFM_Realy_Check(ENUM_HARDWARE_BOOT_SELFCHECK_T s_selfcheck_state,CM_UINT32 s_OutPutTime, CM_UINT8 comResult);
|
|
|
|
static ENUM_HARDWARE_BOOT_SELFCHECK_T PFM_Realy_Check(ENUM_HARDWARE_BOOT_SELFCHECK_T s_selfcheck_state,CM_UINT32 s_OutPutTime, CM_UINT8 comResult);
|
|
|
@@ -963,6 +965,13 @@ CM_UINT8 PFM_GetBoardRebootState(void)
|
|
|
|
/*- 获取重启状态 */
|
|
|
|
/*- 获取重启状态 */
|
|
|
|
return reboottype;
|
|
|
|
return reboottype;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @brief 获取硬重启命令的源ID
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
CM_UINT16 PFM_GetHardRebootSrcID(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return s_rebootSrcid;
|
|
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @brief 获取板卡运行状态
|
|
|
|
* @brief 获取板卡运行状态
|
|
|
|
* @return 板卡运行状态
|
|
|
|
* @return 板卡运行状态
|
|
|
@@ -1467,7 +1476,7 @@ static void PFM_DataReastart_Send(void)
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
/*- 发送远程重启确认报文 */
|
|
|
|
/*- 发送远程重启确认报文 */
|
|
|
|
MSCP_LOG_MSG("shut down dateOffset = %d, packLen = %d\n",dataOffset,packLen);
|
|
|
|
MSCP_LOG_MSG("shut down dateOffset = %d, packLen = %d\n",dataOffset,packLen);
|
|
|
|
(void)Prtcl_InnetSafe_AppRmSend(mData, dataOffset);
|
|
|
|
(void)Prtcl_InnetSafe_AppRmSend(g_Maintenance_Ids[1], mData, dataOffset);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
@@ -1540,7 +1549,7 @@ static void PFM_DataReastart_SendTwo(void)
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
/*- 发送远程重启确认报文 */
|
|
|
|
/*- 发送远程重启确认报文 */
|
|
|
|
MSCP_LOG_MSG("shut down dateOffset = %d, packLen = %d\n",dataOffset,packLen);
|
|
|
|
MSCP_LOG_MSG("shut down dateOffset = %d, packLen = %d\n",dataOffset,packLen);
|
|
|
|
(void)Prtcl_InnetSafe_AppRmSend(mData, dataOffset);
|
|
|
|
(void)Prtcl_InnetSafe_AppRmSend(g_Maintenance_Ids[1], mData, dataOffset);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
@@ -1750,7 +1759,7 @@ ENUM_CM_RETURN PFM_MaintenanceID_Search(IN CM_UINT16 id)
|
|
|
|
* @param reason 授权原因 取值范围:0~0xff
|
|
|
|
* @param reason 授权原因 取值范围:0~0xff
|
|
|
|
* @return 无
|
|
|
|
* @return 无
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
static void PFM_HardWareReastart_Send(CM_UINT8 type,CM_UINT32 rcv_packTime,CM_UINT8 accredit,CM_UINT8 reason)
|
|
|
|
static void PFM_HardWareReastart_Send(CM_UINT8 type,CM_UINT16 dstName, CM_UINT32 rcv_packTime,CM_UINT8 accredit,CM_UINT8 reason)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 变量初始化 */
|
|
|
|
/*- 变量初始化 */
|
|
|
|
CM_UINT8 mData[1000] = { 0u };
|
|
|
|
CM_UINT8 mData[1000] = { 0u };
|
|
|
@@ -1804,7 +1813,7 @@ static void PFM_HardWareReastart_Send(CM_UINT8 type,CM_UINT32 rcv_packTime,CM_UI
|
|
|
|
dataOffset += 4u;
|
|
|
|
dataOffset += 4u;
|
|
|
|
packLen = dataOffset - 2u;
|
|
|
|
packLen = dataOffset - 2u;
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
ret = Prtcl_InnetSafe_AppRmSend(mData,dataOffset);
|
|
|
|
ret = Prtcl_InnetSafe_AppRmSend(dstName, mData,dataOffset);
|
|
|
|
if(ret == 0)
|
|
|
|
if(ret == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*输出异常警告*/
|
|
|
|
/*输出异常警告*/
|
|
|
@@ -1880,7 +1889,7 @@ static void PFM_RemoteSwitch_Send(CM_UINT8 type,CM_UINT32 rcv_packTime,CM_UINT8
|
|
|
|
dataOffset += 4u;
|
|
|
|
dataOffset += 4u;
|
|
|
|
packLen = dataOffset - 2u;
|
|
|
|
packLen = dataOffset - 2u;
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
ret = Prtcl_InnetSafe_AppRmSend(mData,dataOffset);
|
|
|
|
ret = Prtcl_InnetSafe_AppRmSend(g_Maintenance_Ids[1],mData,dataOffset);
|
|
|
|
if(ret == 0)
|
|
|
|
if(ret == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*输出异常警告*/
|
|
|
|
/*输出异常警告*/
|
|
|
@@ -1902,7 +1911,7 @@ static void PFM_RemoteSwitch_Send(CM_UINT8 type,CM_UINT32 rcv_packTime,CM_UINT8
|
|
|
|
* @param packLen 帧长度 取值范围:0~0xffff
|
|
|
|
* @param packLen 帧长度 取值范围:0~0xffff
|
|
|
|
* @param packType 帧类型 取值范围:0~0xff
|
|
|
|
* @param packType 帧类型 取值范围:0~0xff
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UINT16 packLen,CM_UINT8 packType)
|
|
|
|
static void PFM_Data_HardWareReastart(CM_UINT16 srcName,CM_UINT8* mData,CM_UINT32 dataOffset,CM_UINT16 packLen,CM_UINT8 packType)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 变量初始化 */
|
|
|
|
/*- 变量初始化 */
|
|
|
|
CM_UINT32 packTimer = 0u;
|
|
|
|
CM_UINT32 packTimer = 0u;
|
|
|
@@ -1915,6 +1924,7 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
CM_UINT32 packRestartCrc = 0u; /*重启请求命令crc*/
|
|
|
|
CM_UINT32 packRestartCrc = 0u; /*重启请求命令crc*/
|
|
|
|
CM_UINT8 boottype = 0u;/**<临时 重启请求命令 0x55:未更新重启 0xaa:升级重启 0xd1~d7:硬重启 */
|
|
|
|
CM_UINT8 boottype = 0u;/**<临时 重启请求命令 0x55:未更新重启 0xaa:升级重启 0xd1~d7:硬重启 */
|
|
|
|
static CM_UINT8 s_boottype = 0u;/**<静态 重启请求命令 0x55:未更新重启 0xaa:升级重启 ,0xd1~d7:硬重启 */
|
|
|
|
static CM_UINT8 s_boottype = 0u;/**<静态 重启请求命令 0x55:未更新重启 0xaa:升级重启 ,0xd1~d7:硬重启 */
|
|
|
|
|
|
|
|
static CM_UINT16 s_srcid = 0u;
|
|
|
|
CM_UINT8 recvType = 0u;
|
|
|
|
CM_UINT8 recvType = 0u;
|
|
|
|
ENUM_2x2_STATE_T localState = SFM_2x2_GetLocal2x2State();
|
|
|
|
ENUM_2x2_STATE_T localState = SFM_2x2_GetLocal2x2State();
|
|
|
|
/*- 如果帧类型是一次请求确认 */
|
|
|
|
/*- 如果帧类型是一次请求确认 */
|
|
|
@@ -1947,7 +1957,9 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 非法包丢弃 */
|
|
|
|
/*- 非法包丢弃 */
|
|
|
|
s_boottype = 0u;
|
|
|
|
s_boottype = 0u;
|
|
|
|
|
|
|
|
s_srcid = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
|
|
|
|
s_HardRebootSrcid = 0U;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_reasonHardAuthorization = 1u;
|
|
|
|
s_reasonHardAuthorization = 1u;
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_1));
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_1));
|
|
|
@@ -1957,6 +1969,7 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 非法包丢弃 */
|
|
|
|
/*- 非法包丢弃 */
|
|
|
|
s_boottype = 0u;
|
|
|
|
s_boottype = 0u;
|
|
|
|
|
|
|
|
s_srcid = 0u;
|
|
|
|
/* s_HardReboottype = 0u; */
|
|
|
|
/* s_HardReboottype = 0u; */
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_reasonHardAuthorization = 5u;
|
|
|
|
s_reasonHardAuthorization = 5u;
|
|
|
@@ -1968,7 +1981,9 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 非法包丢弃 */
|
|
|
|
/*- 非法包丢弃 */
|
|
|
|
s_boottype = 0u;
|
|
|
|
s_boottype = 0u;
|
|
|
|
|
|
|
|
s_srcid = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
|
|
|
|
s_HardRebootSrcid = 0U;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_reasonHardAuthorization = 6u;
|
|
|
|
s_reasonHardAuthorization = 6u;
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_2));
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_2));
|
|
|
@@ -1978,7 +1993,9 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 非法包丢弃 */
|
|
|
|
/*- 非法包丢弃 */
|
|
|
|
s_boottype = 0u;
|
|
|
|
s_boottype = 0u;
|
|
|
|
|
|
|
|
s_srcid = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
|
|
|
|
s_HardRebootSrcid = 0U;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_reasonHardAuthorization = 7u;
|
|
|
|
s_reasonHardAuthorization = 7u;
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_3));
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_3));
|
|
|
@@ -1987,9 +2004,10 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
s_boottype = boottype;
|
|
|
|
s_boottype = boottype;
|
|
|
|
|
|
|
|
s_srcid = srcName;
|
|
|
|
s_packHardAccredit = 0u;
|
|
|
|
s_packHardAccredit = 0u;
|
|
|
|
s_reasonHardAuthorization = 0u;
|
|
|
|
s_reasonHardAuthorization = 0u;
|
|
|
|
MSCP_LOG_MSG("0xa5 boottype = %d\n",boottype);
|
|
|
|
MSCP_LOG_MSG("0xa5 boottype = %d, srcid = %04x\n",boottype, s_srcid);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/*首次应答*/
|
|
|
|
/*首次应答*/
|
|
|
|
recvType = 0x55u;
|
|
|
|
recvType = 0x55u;
|
|
|
@@ -2027,29 +2045,34 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- crc计算失败丢弃错误包 */
|
|
|
|
/*- crc计算失败丢弃错误包 */
|
|
|
|
s_boottype = 0u;
|
|
|
|
s_boottype = 0u;
|
|
|
|
|
|
|
|
s_srcid = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
|
|
|
|
s_HardRebootSrcid = 0U;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_reasonHardAuthorization = 1u;
|
|
|
|
s_reasonHardAuthorization = 1u;
|
|
|
|
MSCP_LOG_MSG("error pack 0xa6 packSwitchCrc=%d,calcCrc1=%d,packCrc=%d,calcCrc2=%d\n",packRestartCrc,calcCrc1,packCrc,calcCrc2);
|
|
|
|
MSCP_LOG_MSG("error pack 0xa6 packSwitchCrc=%d,calcCrc1=%d,packCrc=%d,calcCrc2=%d\n",packRestartCrc,calcCrc1,packCrc,calcCrc2);
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_4));
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_4));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/*- 是否正在执行其它命令 */
|
|
|
|
/*- 是否正在执行其它命令 */
|
|
|
|
else if((0x55 == s_switch2xFlag) || (0x55 == s_switchRmFlag) || (1 == g_iostate))
|
|
|
|
else if((0x55 == s_switch2xFlag) || (0x55 == s_switchRmFlag) || (1 == g_iostate) || (s_srcid != srcName))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 正在执行其它命令 */
|
|
|
|
/*- 正在执行其它命令 */
|
|
|
|
s_boottype = 0u;
|
|
|
|
s_boottype = 0u;
|
|
|
|
|
|
|
|
s_srcid = 0u;
|
|
|
|
/* s_HardReboottype = 0u; */
|
|
|
|
/* s_HardReboottype = 0u; */
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_reasonHardAuthorization = 5u;
|
|
|
|
s_reasonHardAuthorization = 5u;
|
|
|
|
MSCP_LOG_MSG("error pack 0xa6,s_switch2xFlag=%d,s_switchRmFlag=%d,g_iostate=%d\n" \
|
|
|
|
MSCP_LOG_MSG("error pack 0xa6,s_switch2xFlag=%d,s_switchRmFlag=%d,g_iostate=%d,srcName=%04x-%04x\n" \
|
|
|
|
,s_switch2xFlag,s_switchRmFlag,g_iostate);
|
|
|
|
,s_switch2xFlag,s_switchRmFlag,g_iostate,s_srcid,srcName);
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_5));
|
|
|
|
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_5));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/*- 切系命令一次回复到二次请求接收时间是否小于两分钟 */
|
|
|
|
/*- 切系命令一次回复到二次请求接收时间是否小于两分钟 */
|
|
|
|
else if(((g_MSCP_SysCount - s_packFirstRecvTimer)*g_RMUP_Cfg.CYC_TIME) >= 120000u)
|
|
|
|
else if(((g_MSCP_SysCount - s_packFirstRecvTimer)*g_RMUP_Cfg.CYC_TIME) >= 120000u)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
s_boottype = 0u;
|
|
|
|
s_boottype = 0u;
|
|
|
|
|
|
|
|
s_srcid = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
|
|
|
|
s_HardRebootSrcid = 0U;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_reasonHardAuthorization = 7u;
|
|
|
|
s_reasonHardAuthorization = 7u;
|
|
|
|
MSCP_LOG_MSG("error pack 0xa6 g_MSCP_SysCount = %d s_packFirstRecvTimer = %d\n", g_MSCP_SysCount, s_packFirstRecvTimer);
|
|
|
|
MSCP_LOG_MSG("error pack 0xa6 g_MSCP_SysCount = %d s_packFirstRecvTimer = %d\n", g_MSCP_SysCount, s_packFirstRecvTimer);
|
|
|
@@ -2058,7 +2081,9 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
else if((boottype <= 0xd0u) || (boottype >= 0xd8u ) || (s_boottype != boottype))
|
|
|
|
else if((boottype <= 0xd0u) || (boottype >= 0xd8u ) || (s_boottype != boottype))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
s_boottype = 0u;
|
|
|
|
s_boottype = 0u;
|
|
|
|
|
|
|
|
s_srcid = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
|
|
|
|
s_HardRebootSrcid = 0U;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_packHardAccredit = 1u;
|
|
|
|
s_reasonHardAuthorization = 6u;
|
|
|
|
s_reasonHardAuthorization = 6u;
|
|
|
|
MSCP_LOG_MSG("error pack 0xa6 s_boottype = %d boottype = %d\n", s_boottype, boottype);
|
|
|
|
MSCP_LOG_MSG("error pack 0xa6 s_boottype = %d boottype = %d\n", s_boottype, boottype);
|
|
|
@@ -2067,17 +2092,18 @@ static void PFM_Data_HardWareReastart(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UI
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
s_HardReboottype = s_boottype;
|
|
|
|
s_HardReboottype = s_boottype;
|
|
|
|
|
|
|
|
s_HardRebootSrcid = s_srcid;
|
|
|
|
s_packHardAccredit = 0u;
|
|
|
|
s_packHardAccredit = 0u;
|
|
|
|
s_reasonHardAuthorization = 0u;
|
|
|
|
s_reasonHardAuthorization = 0u;
|
|
|
|
g_iostate = 0x1u;
|
|
|
|
g_iostate = 0x1u;
|
|
|
|
MSCP_LOG_MSG("0xa6 boottype = %d, s_boottype = %d\n",boottype, s_boottype);
|
|
|
|
MSCP_LOG_MSG("0xa6 boottype = %d, s_boottype = %d, s_srcid = %d\n",boottype, s_boottype, s_srcid);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/*再次应答*/
|
|
|
|
/*再次应答*/
|
|
|
|
recvType = 0x56u;
|
|
|
|
recvType = 0x56u;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*- 硬重启命令请求回复 */
|
|
|
|
/*- 硬重启命令请求回复 */
|
|
|
|
PFM_HardWareReastart_Send(recvType,packTimer,s_packHardAccredit,s_reasonHardAuthorization);
|
|
|
|
PFM_HardWareReastart_Send(recvType,srcName,packTimer,s_packHardAccredit,s_reasonHardAuthorization);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@@ -2288,7 +2314,7 @@ static void PFM_Data_RemoteSwitch(CM_UINT8* mData,CM_UINT32 dataOffset,CM_UINT16
|
|
|
|
* - 0xa7首次切系请求
|
|
|
|
* - 0xa7首次切系请求
|
|
|
|
* - 0xa8二次切系请求
|
|
|
|
* - 0xa8二次切系请求
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
CM_UINT8 PFM_RemoteRun_Data(CM_UINT8 *mData,CM_UINT32 dataLen)
|
|
|
|
CM_UINT8 PFM_RemoteRun_Data(CM_UINT16 srcName, CM_UINT8 *mData,CM_UINT32 dataLen)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 变量初始化 */
|
|
|
|
/*- 变量初始化 */
|
|
|
|
CM_UINT32 dataOffset = 0u;
|
|
|
|
CM_UINT32 dataOffset = 0u;
|
|
|
@@ -2308,7 +2334,7 @@ CM_UINT8 PFM_RemoteRun_Data(CM_UINT8 *mData,CM_UINT32 dataLen)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if((0xA5u == packType) || (0xA6u == packType))
|
|
|
|
if((0xA5u == packType) || (0xA6u == packType))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
PFM_Data_HardWareReastart(mData,dataOffset,packLen,packType);
|
|
|
|
PFM_Data_HardWareReastart(srcName,mData,dataOffset,packLen,packType);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if((0xA7u == packType) || (0xA8u == packType))
|
|
|
|
else if((0xA7u == packType) || (0xA8u == packType))
|
|
|
|
{
|
|
|
|
{
|
|
|
@@ -2343,7 +2369,8 @@ void PFM_HardWareBoot_UpData(void)
|
|
|
|
g_boardState = g_AppSetboardState;
|
|
|
|
g_boardState = g_AppSetboardState;
|
|
|
|
/*- 更新硬重启模式 */
|
|
|
|
/*- 更新硬重启模式 */
|
|
|
|
reboottype = s_HardReboottype;
|
|
|
|
reboottype = s_HardReboottype;
|
|
|
|
MSCP_LOG_MSG("reboottype = %d, s_HardReboottype = %d\n",reboottype,s_HardReboottype);
|
|
|
|
s_rebootSrcid = s_HardRebootSrcid;
|
|
|
|
|
|
|
|
MSCP_LOG_MSG("reboottype = %d, s_HardReboottype = %d, s_HardRebootSrcid = %04x\n",reboottype,s_HardReboottype,s_HardRebootSrcid);
|
|
|
|
/*- 更新切系状态 */
|
|
|
|
/*- 更新切系状态 */
|
|
|
|
if(0x55 == s_switchRmFlag)
|
|
|
|
if(0x55 == s_switchRmFlag)
|
|
|
|
{
|
|
|
|
{
|
|
|
@@ -2370,11 +2397,13 @@ void PFM_HardWareBoot_OutPut(void)
|
|
|
|
/*- 变量初始化 */
|
|
|
|
/*- 变量初始化 */
|
|
|
|
CM_INT32 ret = 0;
|
|
|
|
CM_INT32 ret = 0;
|
|
|
|
CM_UINT8 type = 0u;
|
|
|
|
CM_UINT8 type = 0u;
|
|
|
|
|
|
|
|
CM_UINT16 srcID = 0u;
|
|
|
|
static ENUM_HARDWARE_BOOT_SELFCHECK_T checkselfret = ENUM_RELAY_1ST_OUTPUT;
|
|
|
|
static ENUM_HARDWARE_BOOT_SELFCHECK_T checkselfret = ENUM_RELAY_1ST_OUTPUT;
|
|
|
|
/*- 重启命令为硬重启命令 */
|
|
|
|
/*- 重启命令为硬重启命令 */
|
|
|
|
if((0xd0u < reboottype) && (0xd8u > reboottype))
|
|
|
|
if((0xd0u < reboottype) && (0xd8u > reboottype))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
type = reboottype;
|
|
|
|
type = reboottype;
|
|
|
|
|
|
|
|
srcID = s_rebootSrcid;
|
|
|
|
/*- @alias 执行硬重启 */
|
|
|
|
/*- @alias 执行硬重启 */
|
|
|
|
switch(type)
|
|
|
|
switch(type)
|
|
|
|
{
|
|
|
|
{
|
|
|
@@ -2383,7 +2412,7 @@ void PFM_HardWareBoot_OutPut(void)
|
|
|
|
if(ENUM_2x2_MASTER == SFM_2x2_GetLocal2x2State())
|
|
|
|
if(ENUM_2x2_MASTER == SFM_2x2_GetLocal2x2State())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 1\n");
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 1\n");
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x0Cu,ENUM_TYPE_PUB,type);
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x0Cu,ENUM_TYPE_PUB,type,srcID);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
@@ -2395,22 +2424,22 @@ void PFM_HardWareBoot_OutPut(void)
|
|
|
|
case 0xd2:
|
|
|
|
case 0xd2:
|
|
|
|
/*- 1010:CCU*/
|
|
|
|
/*- 1010:CCU*/
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 3\n");
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 3\n");
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x0Au,ENUM_TYPE_CCU,type);
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x0Au,ENUM_TYPE_CCU,type,srcID);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 0xd3:
|
|
|
|
case 0xd3:
|
|
|
|
/*- 0110:SEB*/
|
|
|
|
/*- 0110:SEB*/
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 4\n");
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 4\n");
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x06u,ENUM_TYPE_SEB,type);
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x06u,ENUM_TYPE_SEB,type,srcID);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 0xd4:
|
|
|
|
case 0xd4:
|
|
|
|
/*- 1001:ESB*/
|
|
|
|
/*- 1001:ESB*/
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 5\n");
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 5\n");
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x09u,ENUM_TYPE_ESB,type);
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x09u,ENUM_TYPE_ESB,type,srcID);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 0xd5:
|
|
|
|
case 0xd5:
|
|
|
|
/*- 0101:EEB*/
|
|
|
|
/*- 0101:EEB*/
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 6\n");
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 6\n");
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x05u,ENUM_TYPE_OTHER,type);
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x05u,ENUM_TYPE_OTHER,type,srcID);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 0xd6:
|
|
|
|
case 0xd6:
|
|
|
|
/*- 0011:OCIO预留,硬件不支持禁止打开*/
|
|
|
|
/*- 0011:OCIO预留,硬件不支持禁止打开*/
|
|
|
@@ -2424,7 +2453,7 @@ void PFM_HardWareBoot_OutPut(void)
|
|
|
|
if(ENUM_2x2_MASTER == SFM_2x2_GetLocal2x2State())
|
|
|
|
if(ENUM_2x2_MASTER == SFM_2x2_GetLocal2x2State())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 9\n");
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 9\n");
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x0Fu,ENUM_TYPE_ALL,type);
|
|
|
|
checkselfret = PFM_HardWareBoot_CheckSelf(0x0Fu,ENUM_TYPE_ALL,type,srcID);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
@@ -2445,7 +2474,9 @@ void PFM_HardWareBoot_OutPut(void)
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 12\n");
|
|
|
|
MSCP_LOG_MSG("PFM_HardWareBoot_OutPut 12\n");
|
|
|
|
/*- 恢复运营状态*/
|
|
|
|
/*- 恢复运营状态*/
|
|
|
|
reboottype = 0u;
|
|
|
|
reboottype = 0u;
|
|
|
|
|
|
|
|
s_rebootSrcid = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
s_HardReboottype = 0u;
|
|
|
|
|
|
|
|
s_HardRebootSrcid = 0u;
|
|
|
|
g_iostate = 0x0u;
|
|
|
|
g_iostate = 0x0u;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@@ -2468,7 +2499,7 @@ void PFM_HardWareBoot_OutPut(void)
|
|
|
|
* @param reboottype 重启命令类型 取值范围:0xD1~0xD7
|
|
|
|
* @param reboottype 重启命令类型 取值范围:0xD1~0xD7
|
|
|
|
* @return ENUM_HARDWARE_BOOT_SELFCHECK_T 当前检测步骤 取值范围:0~11
|
|
|
|
* @return ENUM_HARDWARE_BOOT_SELFCHECK_T 当前检测步骤 取值范围:0~11
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
ENUM_HARDWARE_BOOT_SELFCHECK_T PFM_HardWareBoot_CheckSelf(CM_UINT8 level,ENUM_BOARD_TYPE_T board_type,CM_UINT8 reboottype)
|
|
|
|
ENUM_HARDWARE_BOOT_SELFCHECK_T PFM_HardWareBoot_CheckSelf(CM_UINT8 level,ENUM_BOARD_TYPE_T board_type,CM_UINT8 reboottype, CM_UINT16 srcName)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 变量初始化 */
|
|
|
|
/*- 变量初始化 */
|
|
|
|
static ENUM_HARDWARE_BOOT_SELFCHECK_T s_selfcheck_state = ENUM_RELAY_1ST_OUTPUT;
|
|
|
|
static ENUM_HARDWARE_BOOT_SELFCHECK_T s_selfcheck_state = ENUM_RELAY_1ST_OUTPUT;
|
|
|
@@ -2738,8 +2769,8 @@ ENUM_HARDWARE_BOOT_SELFCHECK_T PFM_HardWareBoot_CheckSelf(CM_UINT8 level,ENUM_BO
|
|
|
|
/*- 反馈执行结果 */
|
|
|
|
/*- 反馈执行结果 */
|
|
|
|
case ENUM_OUTPUT_RESULT:
|
|
|
|
case ENUM_OUTPUT_RESULT:
|
|
|
|
/*- 发送结果至AID */
|
|
|
|
/*- 发送结果至AID */
|
|
|
|
MSCP_LOG_MSG("s_relay_default[0] = %d,s_relay_default[1] = %d,s_relay_default[2] = %d,s_relay_default[3] = %d\n",s_relay_default[0],s_relay_default[1],s_relay_default[2],s_relay_default[3]);
|
|
|
|
MSCP_LOG_MSG("s_relay_default[0] = %d,s_relay_default[1] = %d,s_relay_default[2] = %d,s_relay_default[3] = %d, srcName = %04x\n",s_relay_default[0],s_relay_default[1],s_relay_default[2],s_relay_default[3], srcName);
|
|
|
|
PFM_HardWareBoot_CheckSelf_Response(s_boot_result,s_relay_default,reboottype);
|
|
|
|
PFM_HardWareBoot_CheckSelf_Response(s_boot_result,s_relay_default,reboottype, srcName);
|
|
|
|
/*- 清空所有标志位 */
|
|
|
|
/*- 清空所有标志位 */
|
|
|
|
s_selfcheck_state = ENUM_RELAY_1ST_OUTPUT;
|
|
|
|
s_selfcheck_state = ENUM_RELAY_1ST_OUTPUT;
|
|
|
|
s_OutPutTime = 0u;
|
|
|
|
s_OutPutTime = 0u;
|
|
|
@@ -2901,7 +2932,7 @@ CM_UINT8 PFM_HardWareBoot_CheckSelf_ComState(ENUM_BOARD_TYPE_T type, CM_UINT8 s_
|
|
|
|
* @param reboottype 重启命令类型 取值范围:0xd1~0xd7
|
|
|
|
* @param reboottype 重启命令类型 取值范围:0xd1~0xd7
|
|
|
|
* @return 无
|
|
|
|
* @return 无
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
void PFM_HardWareBoot_CheckSelf_Response(CM_UINT8 boot_result,CM_UINT8 *defaultbuf,CM_UINT8 reboottype)
|
|
|
|
void PFM_HardWareBoot_CheckSelf_Response(CM_UINT8 boot_result,CM_UINT8 *defaultbuf,CM_UINT8 reboottype,CM_UINT16 dstName)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 变量初始化 */
|
|
|
|
/*- 变量初始化 */
|
|
|
|
CM_UINT8 mData[1000] = { 0u };
|
|
|
|
CM_UINT8 mData[1000] = { 0u };
|
|
|
@@ -2946,7 +2977,7 @@ void PFM_HardWareBoot_CheckSelf_Response(CM_UINT8 boot_result,CM_UINT8 *defaultb
|
|
|
|
dataOffset += 4u;
|
|
|
|
dataOffset += 4u;
|
|
|
|
packLen = dataOffset - 2u;
|
|
|
|
packLen = dataOffset - 2u;
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
CM_ShortToChar(packLen, &mData[0]);
|
|
|
|
ret = Prtcl_InnetSafe_AppRmSend(mData,dataOffset);
|
|
|
|
ret = Prtcl_InnetSafe_AppRmSend(dstName,mData,dataOffset);
|
|
|
|
if(ret == 0)
|
|
|
|
if(ret == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/*- 输出异常警告 */
|
|
|
|
/*- 输出异常警告 */
|
|
|
|