?? package.cpp
字號:
default:
break;
}
}
else if(memcmp(tmpStr,"001",3)==0)//卡中無該項存款
{
memcpy(packstruct->m_Fhdm,"0001",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續
alltrimSpace(tmpStr);
strcpy(packstruct->m_Data, tmpStr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
return -1;
}
else//其它為通信故障。
{
memcpy(packstruct->m_Fhdm,"9001",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續
strcpy(packstruct->m_Data, "通信故障");
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
return -1;
}
RetValue = RetValue + MAX_HEAD_LEN;
return RetValue;
}
int Cpackage::Function_CxQgt(PACKSTRUCT *packstruct, char *cSendbuf)
{
//儲 種 (18)
/*
//幣 種
//儲 種
card_no
password
查詢起始日期YYYYMMDD
*/
char tmpStr[ 200 ], tmpstr[ 200 ];
//Buff[ 20 ], dateBuf[ 20 ];
int iLength,RetValue=0;
information_request Str_info_request;
memset( &Str_info_request, 0x30, sizeof(information_request) );
memset( tmpStr, 0x00, sizeof(tmpStr) );
memset( tmpstr, 0x00, sizeof(tmpstr) );
iLength = 0;
//信息查詢請求
//02 - 信息查詢 jylx[2];
/*
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,packstruct->m_Jydm,sizeof(packstruct->m_Jydm));
alltrimSpace(tmpStr);
mempy(Str_info_request.jylx,"02",sizeof(Str_info_request.jylx));
*/
memcpy(Str_info_request.jylx,"02",sizeof(Str_info_request.jylx));
//多媒體查詢 設備編號 3
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,packstruct->m_Zdh,sizeof(packstruct->m_Zdh));
alltrimSpace(tmpStr);
memcpy(Str_info_request.pprno,tmpStr,sizeof(Str_info_request.pprno));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通請求模塊","設備編號",tmpStr);
//處理號 3 ????????????????????
//memset(tmpstr,0x00,sizeof(tmpstr));
//mwmcpy(tmpstr,packstruct->m_Zdh,sizeof(packstruct->m_Zdh));
//alltrimSpace(tmpstr);
memset(tmpStr,0x00,sizeof(tmpStr));
strcpy(tmpStr,WriteContNum());
alltrimSpace(tmpStr);
memcpy(Str_info_request.pprclh,tmpStr,sizeof(Str_info_request.pprclh));
//card_no 16
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.card_no))
{
memcpy(Str_info_request.card_no,tmpStr,iLength);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通請求模塊","card_no",tmpStr);
}
//幣 種 2
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 2, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.bz))
{
memcpy(Str_info_request.bz,tmpStr,iLength);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通請求模塊","bz",tmpStr);
}
//儲 種 2 ???/??
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 3, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.cz))
{
memcpy(Str_info_request.cz,tmpStr,iLength);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通請求模塊","bz",tmpStr);
}
//筆數號,查詢通知明細時需要輸入 4
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 4, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.bs))
{
memcpy(Str_info_request.bs,tmpStr,iLength);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通請求模塊","bz",tmpStr);
}
//查詢起始日期YYYYMMDD
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 5, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.rq1))
{
memcpy(Str_info_request.rq1,tmpStr,iLength);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通請求模塊","card_no",tmpStr);
}
//查詢日期2YYYYMMDD
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 6, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.rq2))
{
memcpy(Str_info_request.rq2,tmpStr,iLength);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通請求模塊","card_no",tmpStr);
}
RetValue=sizeof(information_request);
memcpy((char *)cSendbuf,(char *)&Str_info_request,RetValue);
return RetValue;
}
//全國通查詢
int Cpackage::Function_CxQgt_ans(int jydm, PACKSTRUCT *packstruct, char *cRecvbuf)
{
int ErrCode,RetValue=0;
int Ans_PackRecNum=0;
int Ans_PackBodyLen=0;
int offset=0;
int iLen=0;
char tmpStr[4096];
message_headqgt Str_message_head;
offset = sizeof(message_headqgt);
iLen = sizeof(deposit_msg_structqgt);
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(&Str_message_head,cRecvbuf,sizeof(message_headqgt));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通查詢返回信息模塊","Str_message_head.jylx",Str_message_head.jylx);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通查詢回信息模塊","Str_message_head.pprno",Str_message_head.pprno);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通查詢返回信息模塊","Str_message_head.pprclh",Str_message_head.pprclh);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通查詢返回信息模塊","Str_message_head.jgdm",Str_message_head.jgdm);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通查詢返回信息模塊","Str_message_head.rec_num",Str_message_head.rec_num);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","全國通查詢返回信息模塊","Str_message_head.reserve",Str_message_head.reserve);
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.jgdm,3);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","返回信息模塊","結果代碼",tmpStr);
//判斷錯誤碼
strcpy(tmpStr,"000");
if(!memcmp(tmpStr,"000",3) == 0)
{
ErrCode = atoi(tmpStr);
memcpy(packstruct->m_Fhdm,"9001",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
alltrimSpace(tmpStr);
strcpy(packstruct->m_Data, tmpStr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
memset(packstruct->m_DataLen,0x00,sizeof(packstruct->m_DataLen));
return MAX_HEAD_LEN;
}
//得到包中記錄數
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.rec_num,3);
alltrimSpace(tmpStr);
Ans_PackRecNum = atoi(tmpStr);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%d]","全國通返回信息模塊","記錄信息",Ans_PackRecNum);
//目前無法知道真樣判斷是何種返回,分解包
/*********************************************************/
//-------------deposit_msg_structcxxx
//得到儲蓄信息查詢中記錄信息總長度
Ans_PackBodyLen = Ans_PackRecNum*iLen;
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%d]","全國通返回信息模塊","記錄信息總長度",Ans_PackBodyLen);
//復制記錄內容
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,cRecvbuf+offset,Ans_PackBodyLen);
RetValue = ChangeQgt(packstruct, tmpStr, Ans_PackRecNum);
RetValue = RetValue + MAX_HEAD_LEN;
return RetValue;
}
//綜合信息查詢
int Cpackage::Function_CxZhxx(PACKSTRUCT *packstruct, char *cSendbuf)
{
//儲 種 (10)
/*
//幣 種
//儲 種
card_no
password
查詢起始日期YYYYMMDD
*/
char tmpStr[ 200 ], tmpstr[ 200 ];
//Buff[ 20 ], dateBuf[ 20 ];
int iLength, RetValue=0;
information_request Str_info_request;
memset( &Str_info_request, 0x30, sizeof(information_request) );
memset( tmpStr, 0x00, sizeof(tmpStr) );
memset( tmpstr, 0x00, sizeof(tmpstr) );
memcpy(Str_info_request.jylx,"02",sizeof(Str_info_request.jylx));
//多媒體查詢 設備編號 3
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,packstruct->m_Zdh,sizeof(packstruct->m_Zdh));
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
memcpy(Str_info_request.pprno,tmpStr,sizeof(packstruct->m_Zdh));
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","綜合信息請求模塊","設備編號",tmpStr);
memset(tmpStr,0x00,sizeof(tmpStr));
strcpy(tmpStr,WriteContNum());
alltrimSpace(tmpStr);
memcpy(Str_info_request.pprclh,tmpStr,sizeof(Str_info_request.pprclh));
//card_no 16
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.card_no))
{
memcpy(Str_info_request.card_no,tmpStr,iLength);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","綜合信息請求模塊","設備編號",tmpStr);
}
//memcpy(Str_info_request.card_no,tmpStr,sizeof(Str_info_request.card_no));
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","綜合信息請求模塊","card_no",tmpStr);
//幣 種 2
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 2, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.bz))
{
memcpy(Str_info_request.bz,tmpStr,iLength);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","綜合信息請求模塊","bz",tmpStr);
}
//儲 種 2 ???/??
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 3, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.cz))
{
memcpy(Str_info_request.cz,tmpStr,sizeof(Str_info_request.cz));
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","綜合信息請求模塊","cz",tmpStr);
}
//筆數號,查詢通知明細時需要輸入 筆數號 (起始頁數3)
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 4, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.bs))
{
memcpy(Str_info_request.bs,tmpStr,sizeof(Str_info_request.bs));
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","綜合信息請求模塊","bs",tmpStr);
}
//查詢起始日期YYYYMMDD
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 5, 0x01 );
alltrimSpace(tmpStr);
iLength = strlen(tmpStr);
if(iLength <= sizeof(Str_info_request.rq1))
{
memcpy(Str_info_request.rq1,tmpStr,iLength);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","綜合信息請求模塊","起始日期",tmpStr);
}
//終止日期00000000
//memcpy(Str_info_request.rq2,"00000000",sizeof(Str_info_request.rq2));
//reserve[15];
//memcpy(Str_info_request.reserve,"000000000000000",sizeof(Str_info_request.reserve));
RetValue=sizeof(information_request);
memcpy((char *)cSendbuf,(char *)&Str_info_request,RetValue);
return RetValue;
}
//綜合信息
int Cpackage::Function_CxZhxx_ans(int jydm,PACKSTRUCT *packstruct, char *cRecvbuf)
{
//int head_length;
int ErrCode,RetValue=0;
int Ans_PackRecNum=0;
int Ans_PackBodyLen=0;
int offset=0;
int iLen=0;
char tmpStr[4096];
message_headzhxx Str_message_head;
offset = sizeof(message_headzhxx);
iLen = sizeof(deposit_msg_structtwo);
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(&Str_message_head,cRecvbuf,sizeof(message_headzhxx));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","zhxx查詢返回信息模塊","Str_message_head.jylx",Str_message_head.jylx);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","zhxx查詢返回信息模塊","Str_message_head.pprno",Str_message_head.sbh);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","zhxx查詢返回信息模塊","Str_message_head.pprclh",Str_message_head.clh);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","zhxx查詢返回信息模塊","Str_message_head.jgdm",Str_message_head.jgdm);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","zhxx查詢返回信息模塊","Str_message_head.rec_num",Str_message_head.rec_num);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","zhxx查詢返回信息模塊","Str_message_head.reserve",Str_message_head.reserve);
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.jgdm,3);
//判斷錯誤碼
strcpy(tmpStr,"000");
if(!memcmp(tmpStr,"000",3) == 0)
{
ErrCode = atoi(tmpStr);
//switch(ErrCode)
//{
//default:
memcpy(packstruct->m_Fhdm,"9001",4);
// break;
//}
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
strcpy(packstruct->m_Data, tmpStr);
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
memset(packstruct->m_DataLen,0x00,sizeof(packstruct->m_DataLen));
return -1;
}
//得到包中記錄數
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.rec_num,3);
alltrimSpace(tmpStr);
Ans_PackRecNum = atoi(tmpStr);
//目前無法知道真樣判斷是何種返回,分解包
/*********************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -