📄 tcmiso.cpp
字号:
// 时间计算结束
if ( g_nCmisTestCounter >= NUM_CMISTESTCOUNTER )
{
// 输出统计信息
g_cCmisTestEndTime = CTime::GetCurrentTime();
CTimeSpan cCmisTestTimeSpan;
cCmisTestTimeSpan = ( g_cCmisTestEndTime - g_cCmisTestBeginTime );
PrintMsg( (LPSTR)"Test Cmis End\n" );
PrintMsg( (LPSTR)"********************************\n" );
PrintMsg( (LPSTR)"Test statistics : \n" );
PrintMsg( (LPSTR)"Total CMIS test count is %d\n", g_nCmisTestCounter );
PrintMsg( (LPSTR)"Req Length is %d\n", g_nCmisTestReqLength );
PrintMsg( (LPSTR)"Rsp Length is %d\n", g_nCmisTestRspLength );
PrintMsg( (LPSTR)"Avg Length is %f\n",
( g_nCmisTestReqLength + g_nCmisTestRspLength ) / 2.0 );
PrintMsg( (LPSTR)"Begin Time is %s\n",
g_cCmisTestBeginTime.Format( (LPSTR)"%H:%M:%S" ) );
PrintMsg( (LPSTR)"End Time is %s\n",
g_cCmisTestEndTime.Format( (LPSTR)"%H:%M:%S" ) );
PrintMsg( (LPSTR)"Time Span is %s\n",
cCmisTestTimeSpan.Format( (LPSTR)"%M'%S\"" ) );
PrintMsg( (LPSTR)"Rate is %f(c/m)\n",
( (g_nCmisTestCounter * 60.0) / cCmisTestTimeSpan.GetTotalSeconds() ) );
PrintMsg( (LPSTR)"********************************\n" );
// 复位
g_nCmisTestCounter = 0;
g_nCmisTestReqLength = 0;
g_nCmisTestRspLength = 0;
return;
}
// 记数
g_nCmisTestCounter ++;
#ifdef _TESTFSM
TestFsm();
#endif //_TESTFSM
#ifdef _MA_CMIS
TestMACmis();
#endif //_MA_CMIS
#ifdef _AM_CMIS
TestAMCmis();
#endif //_AM_CMIS
#ifdef _AA_CMIS
TestAACmis();
#endif //_AA_CMIS
#ifdef _BP_CMIS
TestBPCmis();
#endif //_BP_CMIS
}
void TempTest()
{
/* 测试代码 */
CAttribute *pcAttribute ;
BYTE byTmp ;
CAsnOctetString cOfficeIdSsn;
BYTE byNum = 1 ;
cOfficeIdSsn.SetSize( 2 ) ;
cOfficeIdSsn[0] = byTmp ;
cOfficeIdSsn[1] = byTmp ;
pcAttribute = new CAttribute;
pcAttribute->Set(2454,new CAsnOctetString( cOfficeIdSsn ));
}
void CCmisTestFsm::OnSystemNormal ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
TempTest();
// 注册逻辑名
FsmNameRegister( (LPSTR)"CTF" );
// 获取FID
FsmSelf( &m_tSelfFid );
#ifdef _MA_CMIS
InitMACmis();
#endif //_MA_CMIS
#ifdef _AM_CMIS
InitAMCmis();
#endif //_AM_CMIS
#ifdef _AA_CMIS
InitAACmis();
#endif //_AA_CMIS
#ifdef _BP_CMIS
InitBPCmis();
#endif //_BP_CMIS
// 测试
TestCmis();
}
void CCmisTestFsm::OnTestFsm ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
static FID tFid = {0, 0, 0};
if ( tFid == FID_NULL )
{
VERIFY( GetFIDFromName ( TESTFSM_NAME, &tFid) );
}
CGetReqArgument cGetReqArgument;
SetGetReqArgument( cGetReqArgument );
BYTE byBuffer[NUM_BUFFERLENGTH];
FsmASend( EV_TST_TESTFSMMSG, byBuffer, NUM_BUFFERLENGTH, tFid );
if ( g_nCmisTestReqLength == 0 )
g_nCmisTestReqLength = NUM_BUFFERLENGTH;
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"Send Req, Id is %d\n", g_nCmisTestCounter );
#endif // TEST_PRINTMSG
}
void CCmisTestFsm::OnTestFsmMsg ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
ASSERT( FsmLength() == NUM_BUFFERLENGTH );
if ( g_nCmisTestRspLength == 0 )
g_nCmisTestRspLength = NUM_BUFFERLENGTH;
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"Recv Rsp, Id is %d\n", g_nCmisTestCounter );
#endif // TEST_PRINTMSG
CGetRspArgument cGetRspArgument;
SetGetRspArgument( cGetRspArgument );
TestCmis();
}
void CCmisTestFsm::OnTestAACmisGet ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 发送M-GET请求命令
CGetArgument cGetArgument;
SetGetReqArgument( cGetArgument );
// 发送M-GET请求命令
CInvokeIdType cInvokeId;
while ( ! m_pcAACmis->GetRequest(cGetArgument, cInvokeId, FALSE) )
{
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, send M-GET REQ msg FAILURE!!! Retry...\n" );
#endif // TEST_PRINTMSG
}
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, send M-GET REQ msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
#endif // TEST_PRINTMSG
}
void CCmisTestFsm::OnAACmisGetReq ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 接受M-GET应答命令
CInvokeIdType cInvokeId;
CGetReqArgument cReq;
// 分析消息参数
if ( ! CCmis::ParseMessage( lpIn, FsmLength(), cReq, cInvokeId ) )
{
#ifdef TEST_PRINTMSG
TRACE( (LPSTR)"...TEST : AACmis, M-GET REQ ParseMessage FAILURE!\n" );
#endif // TEST_PRINTMSG
return;
}
// 填写请求长度
if ( g_nCmisTestReqLength == 0 )
{
g_nCmisTestReqLength = FsmLength() - sizeof(tagCmaCmisOperationHeader);
ASSERT( g_nCmisTestReqLength >= 0 );
}
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, rece M-GET REQ msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
#endif // TEST_PRINTMSG
// 发送响应函数
CGetRspArgument cRsp;
SetGetRspArgument( cRsp );
while ( ! m_pcAACmis->GetResponse( cRsp, cInvokeId ) )
{
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, send M-GET RSP msg FAILURE!!! Retry...\n" );
#endif // TEST_PRINTMSG
}
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, send M-GET RSP msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
#endif // TEST_PRINTMSG
}
void CCmisTestFsm::OnAACmisGetRsp ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 接受M-GET应答命令
CInvokeIdType cInvokeId;
BOOL bIsLast;
CGetRspArgument cRsp;
// 分析消息参数
if ( ! CCmis::ParseMessage( lpIn, FsmLength(), cRsp, cInvokeId, bIsLast ) )
{
#ifdef TEST_PRINTMSG
TRACE( (LPSTR)"...TEST : AACmis, M-GET RSP ParseMessage FAILURE!\n" );
#endif // TEST_PRINTMSG
return;
}
// 填写请求长度
if ( g_nCmisTestRspLength == 0 )
{
g_nCmisTestRspLength = FsmLength() - sizeof(tagCmaCmisOperationHeader);
ASSERT( g_nCmisTestRspLength >= 0 );
}
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, rece M-GET RSP msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
#endif // TEST_PRINTMSG
// 继续发送测试消息
TestCmis();
}
void CCmisTestFsm::OnTestAACmisCreate( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
}
void CCmisTestFsm::OnAACmisCreateReq ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
}
void CCmisTestFsm::OnAACmisCreateRsp ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
}
void CCmisTestFsm::OnTestAACmisEventReport ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 发送M-GET请求命令
CEventReportArgument cEventReportArgument;
SetEventReportReqArgument( cEventReportArgument );
// 发送M-GET请求命令
CInvokeIdType cInvokeId;
VERIFY( m_pcAACmis->EventReportRequest(cEventReportArgument, cInvokeId, FALSE) );
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, send M-EVENT-REPORT REQ msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
#endif // TEST_PRINTMSG
}
void CCmisTestFsm::OnAACmisEventReportReq ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 接受M-GET应答命令
CInvokeIdType cInvokeId;
BOOL bNeedConfirm;
CEventReportReqArgument cReq;
// 分析消息参数
if ( ! CCmis::ParseMessage( lpIn, FsmLength(), cReq, cInvokeId, bNeedConfirm ) )
{
#ifdef TEST_PRINTMSG
TRACE( (LPSTR)"...TEST : AACmis, M-EVENT-REPORT REQ ParseMessage FAILURE!\n" );
#endif // TEST_PRINTMSG
return;
}
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, rece M-EVENT-REPORT REQ msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
#endif // TEST_PRINTMSG
// 发送响应函数
CEventReportRspArgument cRsp;
SetEventReportRspArgument( cRsp );
VERIFY( m_pcAACmis->EventReportResponse( cRsp, cInvokeId ) );
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, send M-EVENT-REPORT RSP msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
#endif // TEST_PRINTMSG
}
void CCmisTestFsm::OnAACmisEventReportRsp ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 接受M-GET应答命令
CInvokeIdType cInvokeId;
CEventReportRspArgument cRsp;
// 分析消息参数
if ( ! CCmis::ParseMessage( lpIn, FsmLength(), cRsp, cInvokeId ) )
{
#ifdef TEST_PRINTMSG
TRACE( (LPSTR)"...TEST : AACmis, M-EVENT-REPORT RSP ParseMessage FAILURE!\n" );
#endif // TEST_PRINTMSG
return;
}
#ifdef TEST_PRINTMSG
PrintMsg( (LPSTR)"...TEST : AACmis, rece M-EVENT-REPORT RSP msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
#endif // TEST_PRINTMSG
// 继续发送测试消息
TestCmis();
}
void CCmisTestFsm::OnTestBPCmisCreate ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
ASSERT( m_pcBPCmis );
// 发送
CCreateArgument cCreateArgument;
SetCreateReqArgument( cCreateArgument );
CInvokeIdType cInvokeId;
VERIFY( m_pcBPCmis->CreateRequest( cCreateArgument, cInvokeId ) );
PrintMsg( (LPSTR)"...TEST : BPCmis, send M-CREATE REQ msg, vid = %d\n",
(ASNINTEGERTYPE)cInvokeId );
}
void CCmisTestFsm::OnBPCmisCreateRsp ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
CCreateRspArgument rsp;
CInvokeIdType vid;
if ( ! CCmis::ParseMessage( lpIn, FsmLength(), rsp, vid ) )
{
TRACE( (LPSTR)"...TEST : BPCmis, M-CREATE PraseMessage FAILURE!\n" );
return;
}
PrintMsg( (LPSTR)"...TEST : BPCmis, recv M-CREATE msg, Vid = %d\n",
(ASNINTEGERTYPE)vid );
// 再次测试
TestCmis();
}
void CCmisTestFsm::OnTestMACmisGet( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 发送M-GET请求命令
CGetArgument cGetArgument;
//设置M-GET参数. 可以预先在其他地方设置好, 这里直接发送.
SetGetReqArgument( cGetArgument );
// 发送M-GET请求命令
CInvokeIdType cInvokeId;
BOOL bResult = m_pcMACmis->GetRequest(cGetArgument, cInvokeId, FALSE);
ASSERT ( bResult );
PrintMsg( (LPSTR)"...TEST : MACmis, send M-GET REQ msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
}
void CCmisTestFsm::OnAMCmisGetReq ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 接受M-GET应答命令
CInvokeIdType cInvokeId;
CGetReqArgument cReq;
// 分析消息参数
if ( ! CCmis::ParseMessage( lpIn, FsmLength(), cReq, cInvokeId ) )
{
TRACE( (LPSTR)"...TEST : AMCmis, M-GET REQ ParseMessage FAILURE!\n" );
return;
}
PrintMsg( (LPSTR)"...TEST : AMCmis, rece M-GET REQ msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
// 发送响应函数
CGetRspArgument cRsp;
SetGetRspArgument( cRsp );
VERIFY( m_pcAMCmis->GetResponse( cRsp, cInvokeId ) );
PrintMsg( (LPSTR)"...TEST : AMCmis, send M-GET RSP msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
}
void CCmisTestFsm::OnMACmisGetRsp ( LPBYTE lpIn, LPBYTE lpOut, LPBYTE lpData )
{
// 接受M-GET应答命令
CInvokeIdType cInvokeId;
BOOL bIsLast;
CGetRspArgument cRsp;
// 分析消息参数
if ( ! CCmis::ParseMessage( lpIn, FsmLength(), cRsp, cInvokeId, bIsLast ) )
{
TRACE( (LPSTR)"...TEST : MACmis, M-GET RSP ParseMessage FAILURE!\n" );
return;
}
PrintMsg( (LPSTR)"...TEST : MACmis, rece M-GET RSP msg, Vid = %d\n ",
(ASNINTEGERTYPE)cInvokeId );
// 继续发送测试消息
TestCmis();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -