|
@@ -1,6 +1,8 @@
|
|
|
#include "stdafx.h"
|
|
|
#include <string.h>
|
|
|
#include "HeartBeatFSM.h"
|
|
|
+#include "HeartBeat_UserErrorCode.h"
|
|
|
+
|
|
|
#ifdef RVC_OS_WIN
|
|
|
#pragma comment (lib, "Ws2_32.lib")
|
|
|
#pragma comment (lib, "Mswsock.lib")
|
|
@@ -628,11 +630,13 @@ void CHeartBeatFSM::LocalPreOnline(int slot, CSimpleStringA fromTermNo,CSimpleSt
|
|
|
eErr = pCardReadAdapterClient->Connect();
|
|
|
if (pCardReadAdapterClient == NULL || eErr != Error_Succeed)
|
|
|
{
|
|
|
- Dbg("pGuiConsoleClient is null or connect CardReadAdapter failed.%d",eErr);
|
|
|
+ CSimpleStringA errMsg = CSimpleStringA::Format("LocalPreOnline, pGuiConsoleClient is null or connect CardReadAdapter failed:%d(0x%x)", eErr, eErr);
|
|
|
+ LogWarn(Severity_Low, Error_Unexpect, HeartBeat_UserErrorCode_Connect_CardReader_Failed, errMsg.GetData());
|
|
|
return;
|
|
|
}
|
|
|
CardReadAdapterService_PreOnline_Req req;
|
|
|
CardReadAdapterService_PreOnline_Ans ans;
|
|
|
+ CSimpleStringA outParam("");
|
|
|
req.businessData = data;
|
|
|
char buf[16];
|
|
|
ZeroMemory(buf, sizeof(buf));
|
|
@@ -643,16 +647,21 @@ void CHeartBeatFSM::LocalPreOnline(int slot, CSimpleStringA fromTermNo,CSimpleSt
|
|
|
req.reserved2[0] = kaku + CSimpleStringA(buf);
|
|
|
Dbg("local:%s", (const char*)req.reserved2[0]);
|
|
|
req.reserved2[1] = account;
|
|
|
+ CSimpleStringA inParam = CSimpleStringA::Format("PreOnline, CardStore heartbeat invodk PreOnline, slot:%s, accountLen:%d", req.reserved2[0].GetData(), account.GetLength());
|
|
|
+ LogWarn(Severity_Low, Error_Unexpect, HeartBeat_UserErrorCode_Connect_CardStore_Invoke_PreOnline_Inparam, inParam.GetData());
|
|
|
eErr = pCardReadAdapterClient->PreOnline(req, ans, 65000);
|
|
|
- if (eErr != Error_Succeed)
|
|
|
- Dbg("local preonline failed. code:%d", eErr);
|
|
|
+ if (eErr != Error_Succeed) {
|
|
|
+ outParam = CSimpleStringA::Format("local preonline failed:%d(0x%x)", eErr, eErr);
|
|
|
+ LogWarn(Severity_Low, Error_Unexpect, HeartBeat_UserErrorCode_Connect_CardStore_Invoke_PreOnline_Falied, inParam.GetData());
|
|
|
+ }
|
|
|
CardReadAdapterService_QueryCardInfoOnStore_Req reqX;
|
|
|
CardReadAdapterService_QueryCardInfoOnStore_Ans ansX;
|
|
|
ErrorCodeEnum eErrX = Error_Unexpect;
|
|
|
eErrX = pCardReadAdapterClient->QueryCardInfoOnStore(reqX, ansX,12000);
|
|
|
if (eErrX != Error_Succeed)
|
|
|
{
|
|
|
- Dbg("QueryCardInfoOnStore failed.%d",eErrX);
|
|
|
+ outParam = CSimpleStringA::Format("QueryCardInfoOnStore failed.%d", eErrX);
|
|
|
+ LogWarn(Severity_Low, Error_Unexpect, HeartBeat_UserErrorCode_Connect_CardStore_Invoke_QueryCardInfoOnStore_Falied, inParam.GetData());
|
|
|
ansX.findCard = ansX.cardPos = 9999;
|
|
|
}
|
|
|
if (m_pHandShakeConn && m_pHandShakeConn->IsConnectionOK())
|
|
@@ -1529,7 +1538,9 @@ void HeartBeatConnection::SendHandShake()
|
|
|
|
|
|
void HeartBeatConnection::SendCardActive(const int type,const int slot,unsigned long errCode,const char *termNo, const char *account, const int accSize, const char *data, const int dataSize,int findCard,int cardPos)
|
|
|
{
|
|
|
- Dbg("type:%d,errCode:%d,termNo:%s,dataSize:%d", type, errCode, termNo, dataSize);
|
|
|
+ CSimpleStringA inParm = CSimpleStringA::Format("SendCardActive,type:%d, slot:%d, errCode:%d, fromTerm:%s, termNo:%s, findCard:%d, cardPos:%d, dataSize:%d",
|
|
|
+ type, slot, errCode, m_TerminalNo.GetData(), termNo, findCard, cardPos, dataSize);
|
|
|
+ LogWarn(Severity_Low, Error_Unexpect, HeartBeat_UserErrorCode_SendCardActive_InParam, inParm.GetData());
|
|
|
//发起跨机调用包
|
|
|
if (type == 0)
|
|
|
{
|
|
@@ -1763,6 +1774,22 @@ void HeartBeatConnection::PkgRcvProcHandAndInstruc(const CSmartPointer<IPackage>
|
|
|
delete pBuf;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+void CHeartBeatFSM::ProcessCardActive(CardActiveReq* req)
|
|
|
+{
|
|
|
+ ProcessPreOnlineTask* ppTask = new ProcessPreOnlineTask(this, req);
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(ppTask);
|
|
|
+}
|
|
|
+
|
|
|
+void CHeartBeatFSM::ProcessPreOnline(CardActiveReq* req)
|
|
|
+{
|
|
|
+ if (req->type == 0)
|
|
|
+ LocalPreOnline(req->slot, req->TerminalNo, req->FromTerminalNo, req->Account, req->Param2);
|
|
|
+ else if (req->type == 1)
|
|
|
+ ReceivePreOnlineBack(req->ErrCode, req->Param2, req->findCard, req->cardPos);
|
|
|
+ delete req;
|
|
|
+}
|
|
|
+
|
|
|
void HeartBeatConnection::PkgRcvProcCardActive(const CSmartPointer<IPackage> &pRecvPkg)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
@@ -1779,14 +1806,10 @@ void HeartBeatConnection::PkgRcvProcCardActive(const CSmartPointer<IPackage> &pR
|
|
|
//for (int i = 0; i < nArrayNum; ++i)
|
|
|
if (nArrayNum > 0)
|
|
|
{
|
|
|
- Dbg("type %d,from term:%s,term %s,acc(len):%d,param1(len) %d", pAns->type, pAns->FromTerminalNo, pAns->TerminalNo
|
|
|
- , strlen(pAns->Account), strlen(pAns->Param2));
|
|
|
- //Dbg("type %d,from term:%s,term %s,acc:%s,param1 %s", pAns->type, pAns->FromTerminalNo,pAns->TerminalNo, pAns->Account, pAns->Param2);
|
|
|
- Dbg("findCard %d,cardPos %d", pAns->findCard, pAns->cardPos);
|
|
|
- if (pAns->type == 0)
|
|
|
- m_pFSM->LocalPreOnline(pAns->slot, pAns->TerminalNo, pAns->FromTerminalNo, pAns->Account, pAns->Param2);
|
|
|
- else if (pAns->type == 1)
|
|
|
- m_pFSM->ReceivePreOnlineBack(pAns->ErrCode, pAns->Param2, pAns->findCard, pAns->cardPos);
|
|
|
+ CSimpleStringA inParam = CSimpleStringA::Format("PkgRcvProcCardActive, type %d, from term:%s, term:%s, accLen:%d, param2Len:%d, findCard:%d,cardPos:%d",
|
|
|
+ pAns->type, pAns->FromTerminalNo, pAns->TerminalNo, strlen(pAns->Account), strlen(pAns->Param2), pAns->findCard, pAns->cardPos);
|
|
|
+ LogWarn(Severity_Low, Error_Unexpect, HeartBeat_UserErrorCode_PkgRcvProcCardActive_InParam, inParam.GetData());
|
|
|
+ m_pFSM->ProcessCardActive(pAns);
|
|
|
}
|
|
|
}
|
|
|
else {
|