📄 bs_fsm.c
字号:
{
int i;
int j;
for (i=0; i<BS_FSM_NUM_STATES; i++)
{
printf("State %s\n", gp_str_bs_fsm_state[i]);
for (j=0; j<BS_FSM_NUM_EVENTS; j++)
{
printf("\tEvent %s:\t\t%ld\n", gp_str_bs_fsm_event[j], ga_bs_fsm_stat[i][j]);
}
}
return 0;
}
int bs_fsm_clear_stat()
{
int i;
int j;
for (i=0; i<BS_FSM_NUM_STATES; i++)
{
for (j=0; j<BS_FSM_NUM_EVENTS; j++)
{
ga_bs_fsm_stat[i][j] = 0;
}
}
return 0;
}
int bs_fsm_help()
{
printf("bs_fsm_show_stat, show FSM stat.\n");
printf("bs_fsm_clear_stat, clear FSM stat.\n");
printf("bs_fsm_show_state_name, show FSM state name.\n");
printf("bs_fsm_show_event_name, show FSM event name. \n");
printf("bs_fsm_show_state_event_relation, show FSM state event relation.\n");
return 0;
}
int bs_fsm_entry(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg, int i_state, int i_event)
{
if ((i_state < 1)
&& (i_state > BS_FSM_NUM_STATES)
&& (i_event < 1)
&& (i_event > BS_FSM_NUM_EVENTS))
{
return ERROR;
}
ga_bs_fsm_stat[i_state-1][i_event-1]++;
switch (ga_bs_fsm_matrix[(i_state-1) * BS_FSM_NUM_EVENTS + i_event -1].i_attribute)
{
case BS_FSM_NORMAL:
printf("%s, %s, NORMAL\n", gp_str_bs_fsm_state[i_state - 1], gp_str_bs_fsm_event[i_event - 1]);
BS_UeCtxtCheck(__FUNCTION__,__LINE__);
ga_bs_fsm_matrix[(i_state-1) * BS_FSM_NUM_EVENTS + i_event -1].fsm_routine(pUeCtxt, pR64Msg);
BS_UeCtxtCheck(__FUNCTION__,__LINE__);
break;
case BS_FSM_ABNORMAL:
printf("%s, %s, ABNORMAL\n", gp_str_bs_fsm_state[i_state - 1], gp_str_bs_fsm_event[i_event - 1]);
BS_UeCtxtCheck(__FUNCTION__,__LINE__);
ga_bs_fsm_matrix[(i_state-1) * BS_FSM_NUM_EVENTS + i_event -1].fsm_routine(pUeCtxt, pR64Msg);
BS_UeCtxtCheck(__FUNCTION__,__LINE__);
break;
case BS_FSM_ERROR:
printf("%s, %s, ERROR\n", gp_str_bs_fsm_state[i_state - 1], gp_str_bs_fsm_event[i_event - 1]);
BS_UeCtxtCheck(__FUNCTION__,__LINE__);
break;
}
return SUCCESS;
}
/*****************************************************************************/
/******************** State BSFS_NULL Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_NULL_event_BSFE_INIT_CALL(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return InitNbcProcedure(pUeCtxt);
}
/*****************************************************************************/
/******************** State BSFS_SBC_NEGOTIATING Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_SBC_NEGOTIATING_event_BSFE_SBC_ENTRY_STATE_CHANGE_RESP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handleGwNwEntryStateChangeRsp(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_SBC_NEGOTIATING_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_SBC_NEGOTIATING_event_BSFE_TIME_OUT(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
reSendNWEntryStateChange(pUeCtxt);
return SUCCESS;
}
/*****************************************************************************/
/******************** State BSFS_EAP_INITIATE Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_EAP_INITIATE_event_BSFE_EAP_IDENTITY_REQ(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handleGwEapReq(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_INITIATE_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_INITIATE_event_BSFE_TIME_OUT(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_bs_err (pUeCtxt);
}
/*****************************************************************************/
/******************** State BSFS_EAP_START Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_EAP_START_event_BSFE_EAP_IDENTITY_REQ(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handleGwEapReq(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_START_event_BSFE_EAP_MESSAGE(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handleGwEapMsg(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_START_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_START_event_BSFE_TIME_OUT(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
reSendEapRsp(pUeCtxt);
return SUCCESS;
}
/*****************************************************************************/
/******************** State BSFS_EAP_PENDING Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_EAP_PENDING_event_BSFE_EAP_MESSAGE(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handleGwEapMsg(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_PENDING_event_BSFE_EAP_CTXT_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handleGwEapCtxtRep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_PENDING_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_PENDING_event_BSFE_TIME_OUT(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
reSendEapMsgRsp(pUeCtxt);
return SUCCESS;
}
/*****************************************************************************/
/******************** State BSFS_EAP_COMPLETE Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_EAP_COMPLETE_event_BSFE_REG_ENTRY_STATE_CHANGE_RESP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_reg_entry_state_change_resp (pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_COMPLETE_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_EAP_COMPLETE_event_BSFE_TIME_OUT(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
send_reg_entry_state_change_req(pUeCtxt);
return SUCCESS;
}
/*****************************************************************************/
/******************** State BSFS_MS_REG_PENDING Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_MS_REG_PENDING_event_BSFE_DP_REG_REQ(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_dp_reg_req (pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_MS_REG_PENDING_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_MS_REG_PENDING_event_BSFE_TIME_OUT(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_bs_err (pUeCtxt);
}
/*****************************************************************************/
/******************** State BSFS_DP_EST_PENDING Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_DP_EST_PENDING_event_BSFE_DP_REG_REQ(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_dp_reg_req (pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_DP_EST_PENDING_event_BSFE_DP_REG_ACK(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_dp_reg_ack (pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_DP_EST_PENDING_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_DP_EST_PENDING_event_BSFE_TIME_OUT(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
send_dp_reg_resp (pUeCtxt);
return SUCCESS;
}
/*****************************************************************************/
/******************** State BSFS_DATA_TRANSFER Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_DATA_TRANSFER_event_BSFE_INIT_DEREG(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return init_ms_dereg (pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_DATA_TRANSFER_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
/*****************************************************************************/
/******************** State BSFS_DP_DEREG_START Process Function *********************/
/*****************************************************************************/
int bs_fsm_state_BSFS_DP_DEREG_START_event_BSFE_DP_DEREG_RESP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_dp_dereg_resp (pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_DP_DEREG_START_event_BSFE_ERR_REP(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
return handle_err_ctxt_rep(pUeCtxt, pR64Msg);
}
int bs_fsm_state_BSFS_DP_DEREG_START_event_BSFE_TIME_OUT(St_BsUeCtxt *pUeCtxt, R64_MSG_S * pR64Msg)
{
send_dp_dereg_req (pUeCtxt);
return SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -