bug_memo
总阅读次
文章目录
char 数组长度不能存储’\0’,导致 后面的字符贴上来了
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<stdio.h>
using namespace std;
typedef unsigned char U8;
typedef struct stInitMode {
char chModeStartTime[15]; // IN,模式发生时间(YYYYMMDDhh24mmss);
U8 ucModeID; // IN,模式ID (参见第4分册“3.2.11 降级运营模式ID”)
}_stInitMode;
struct stInitReaderInfo_CD
{
char chLineNumber[3]; // IN,线路编码
char chStationNumber[3]; // IN,车站编码
char chEquipType[3]; // IN,设备类型
char chEquipNumber[4]; // IN,3bytes设备编号
U8 EquipWorkMode; // IN,设备工作模式(读写器工作模式:0x00——使用指令中的工作模式;0x10——ES;0x20——非付费区BOM;0x21——付费区BOM;0x22——TVM;0x23——TCM;0x24——PCA;0x40——进站AGM;0x41——出站AGM)
U8 DownWorkModenum; // IN,模式数量
char chRCodeBaudrate[12]; // IN,关联扫码枪通讯波特率
_stInitMode Mode[16];
// stInitMode_CD Mode[16];
char chRCodeCOM[10]; // IN,关联扫码枪串口号
char chModeStartTime[15]; // IN,模式发生时间(YYYYMMDDhh24mmss);
char chRCodeServerAddr[256]; // IN, 支付平台接入地址,例如http://182.140.238.35:61082/
U8 ucModeID; // IN,模式ID (参见第4分册“3.2.11 降级运营模式ID”)
bool Mark_IsUseQRcode; //take:add是否启用二维码 在读写器里传参标志需要
};
typedef struct stInitReaderInfo {
char chLineNumber[3]; // IN,线路编码
char chStationNumber[3]; // IN,车站编码
char chEquipmentType[3]; // IN,设备类型
char chEquipmentNumber[4]; // IN,3bytes设备编号
U8 ucEquipWorkMode; // IN,设备工作模式(读写器工作模式:0x00——使用指令中的工作模式;0x10——ES;0x20——非付费区BOM;0x21——付费区BOM;0x22——TVM;0x23——TCM;0x24——PCA;0x40——进站AGM;0x41——出站AGM)
U8 ucDownWorkModenum; // IN,模式数量
_stInitMode Mode[16];
//char chEquipmentID[17]; // OUT,16位PSAM卡ID
} _stInitReaderInfo;
typedef struct _stRCodeInfo {
char chRCodeCOM[10]; // IN,关联扫码枪串口号
char chRCodeBaudrate[12]; // IN,关联扫码枪通讯波特率
char chRCodeServerAddr[256]; // IN, 支付平台接入地址,例如http://182.140.238.35:61082/
} _stRCodeInfo;
void startReaderAFC(void* i_StartAFCData)
{
/****>>>>>>>>>>>>>>>>>>take:第一个参数结构体***>>>>>>>>>>>>>>>>>>>>>>>>>******************/
_stInitReaderInfo take_stInitReaderInfo;
strcpy(take_stInitReaderInfo.chLineNumber, ((stInitReaderInfo_CD*)i_StartAFCData)->chLineNumber);
strcpy(take_stInitReaderInfo.chStationNumber, ((stInitReaderInfo_CD*)i_StartAFCData)->chStationNumber);
strcpy(take_stInitReaderInfo.chEquipmentType, ((stInitReaderInfo_CD*)i_StartAFCData)->chEquipType);
strcpy(take_stInitReaderInfo.chEquipmentNumber, ((stInitReaderInfo_CD*)i_StartAFCData)->chEquipNumber);
take_stInitReaderInfo.ucEquipWorkMode = ((stInitReaderInfo_CD*)i_StartAFCData)->EquipWorkMode;
take_stInitReaderInfo.ucDownWorkModenum = ((stInitReaderInfo_CD*)i_StartAFCData)->DownWorkModenum;
//take_stInitReaderInfo.Mode = ((stInitReaderInfo_CD*)i_StartAFCData)->Mode;
memcpy(take_stInitReaderInfo.Mode, ((stInitReaderInfo_CD*)i_StartAFCData)->Mode, sizeof(take_stInitReaderInfo.Mode));//take:这样可以吗?
/***<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<take:第一个参数结构体**<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<******/
/*>>>>>>>>>>>>>>>>>>>>>>>>>>>take:第二个参数*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
_stRCodeInfo *ptr_stRCodeInfo = (_stRCodeInfo*)malloc(sizeof(_stRCodeInfo));
memset(ptr_stRCodeInfo->chRCodeBaudrate, '\0', sizeof(ptr_stRCodeInfo->chRCodeBaudrate));
memset(ptr_stRCodeInfo->chRCodeCOM, '\0', sizeof(ptr_stRCodeInfo->chRCodeCOM));
memset(ptr_stRCodeInfo->chRCodeServerAddr, '\0', sizeof(ptr_stRCodeInfo->chRCodeServerAddr));
cout << "(stInitReaderInfo_CD*)i_StartAFCData)->chRCodeCOM):" << ((stInitReaderInfo_CD*)i_StartAFCData)->chRCodeCOM << endl;
strcpy(ptr_stRCodeInfo->chRCodeCOM, ((stInitReaderInfo_CD*)i_StartAFCData)->chRCodeCOM);
cout << ptr_stRCodeInfo->chRCodeCOM << " line:" << __LINE__ << endl; //只有这里是正确的
strcpy(ptr_stRCodeInfo->chRCodeBaudrate, ((stInitReaderInfo_CD*)i_StartAFCData)->chRCodeBaudrate);
cout << ptr_stRCodeInfo->chRCodeCOM <<" line:"<<__LINE__<< endl;
strcpy(ptr_stRCodeInfo->chRCodeServerAddr, ((stInitReaderInfo_CD*)i_StartAFCData)->chRCodeServerAddr);
cout << ptr_stRCodeInfo->chRCodeCOM << " line:" << __LINE__ << endl;
//cout << "(stInitReaderInfo_CD*)i_StartAFCData)->chRCodeCOM):" << ((stInitReaderInfo_CD*)i_StartAFCData)->chRCodeCOM << endl;
/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************************************************<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
// cout << ((test*)i_StartAFCData)->chEquipNumber << endl;
// cout<<((stInitReaderInfo_CD*)i_StartAFCData)->chEquipmentNumber;
}
int main()
{
stInitReaderInfo_CD temp[2];
// strcpy(temp[0].chEquipNumber_, "aa");
temp[0].EquipWorkMode = 34;
strcpy(temp[0].Mode[0].chModeStartTime, "201804-=18");
strcpy( temp[0].chLineNumber, "nu");
strcpy(temp[0].chStationNumber,"st");
strcpy(temp[0].chEquipType,"tp");
strcpy(temp[0].chEquipNumber, "chn");
sprintf(temp[0].chRCodeBaudrate, "%d", 115200);
strcpy(temp[0].chRCodeCOM, "/dev/ttyS8");
strcpy(temp[1].chRCodeCOM, "/dev/ttyS9");
temp[1] = { 0 };
startReaderAFC(&temp);
}