⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readcardlg.cpp

📁 我写的一个串口通讯的程序,该程序可以将收到的命令和文本重的程序进行比较,再将数据发回,适合通讯设备和电脑的通讯
💻 CPP
📖 第 1 页 / 共 3 页
字号:

	 char framecommand[200];
	 memset(framecommand,0,200);
	 BOOL bl=RecCommand(framecommand);
	 if(bl==0)
	 {
		AfxMessageBox("Receveive is error");
		return;
	 }
	 if(bl==65535)return;
	 if(!action(framecommand))AfxMessageBox("Receveive 0x55 is error");
}


void CReadCARDlg::OnCancel() 
{
    threadflag=false;
	Sleep(1000);
    CDialog::OnCancel();
}

void CReadCARDlg::OnClear() 
{
  datalong=0;
  m_readData.Empty();	
  m_readSee.Invalidate();
  pointx=0,pointy=0;
  UpdateData(false);
}

BOOL CReadCARDlg::action(char *val)
{
  int time=200;
  char ch=0;
  if(ReceiveOneByte(ch,time)&&ch==0x55)
	  senddata(val);
  else
	  return false;
  return true;
}

BOOL CReadCARDlg::RecCommand(char* framecommand)
{
 char ch=0;
 int time=300;
 int count=0;

 if(!ReceiveOneByte(ch,time)||ch==0x55)return 65535;
 {
	 int framenumber=ch;
	 framecommand[count++]=ch;
	 for(int i=0;i<framenumber;i++)
	 {
		 if(!ReceiveOneByte(ch,time*2))return 0;
		 int bytenumber=ch;
		 framecommand[count++]=ch;
		 BYTE first=count;
		 for(int k=0;k<bytenumber;k++)
		 {
			 if(!ReceiveOneByte(ch,time*2))
				 return 0;
			 framecommand[count++]=ch;
		 }
		 BYTE checkCRC=framecommand[count-1];
		 if(checkCRC!=CheckCalCulation(&framecommand[first],bytenumber-1))
			 BaseSendShow(-1);
	 }
 }
 return count;
}

char codestate[20][20]={
	{0x04,0x59,0x01,0x31,0x21},
	{0x04,0x59,0x01,0x32,0x21}, 
	{0x04,0x59,0x03,0x25,0x21},
	{0x04,0x59,0x03,0x27,0x21},
	{0x04,0x59,0x04,0x04,0x21},
	{0x04,0x59,0x05,0x02,0x21},
	{0x04,0x59,0x07,0x42,0x21},
	{0x04,0x59,0x07,0x51,0x21},
	{0x04,0x59,0x07,0x56,0x21},
	{0x04,0x59,0x18,0x10,0x21},
	{0x04,0x59,0x18,0x11,0x21},
	{0x04,0x59,0x18,0x14,0x21},
	{0x04,0x59,0x18,0x60,0x25},
	{0x04,0x59,0x18,0x87,0x21},
};

char fff1[12][20]={
	{0x06,0x52,0x00,0x00,0x03,0x00,0x00},
	{0x05,0x52,0x00,0x00,0x05,0x00},  
	{0x05,0x52,0x00,0x00,0x07,0x00},  
	{0x06,0x52,0x00,0x00,0x0c,0x00,0x00},
	{0x06,0x52,0x00,0x00,0x10,0x00,0x00},
	{0x06,0x52,0x00,0x11,0x93,0x00,0x00},
	{0x06,0x52,0x00,0x12,0x35,0x00,0x00}, 
	{0x05,0x52,0x00,0x12,0x37,0x00},  
	{0x05,0x52,0x00,0x12,0x39,0x00}, 
	{0x06,0x52,0x00,0x00,0x02,0x00,0x00}, 
};

char fff2[10][20]={
	{0x06,0x52,0x00,0x00,0x03,0x02,0x00},
	{0x05,0x52,0x00,0x00,0x05,0x82},  
	{0x05,0x52,0x00,0x00,0x07,0x81},  
	{0x05,0x52,0x00,0x00,0x0d,0x00},
	{0x05,0x52,0x00,0x00,0x11,0x00},
	{0x05,0x52,0x00,0x11,0x9e,0x93},
	{0x06,0x52,0x00,0x12,0x36,0x00,0x3c}, 
	{0x05,0x52,0x00,0x12,0x38,0x01},  
	{0x05,0x52,0x00,0x12,0x51,0xfa},
	{0x06,0x52,0x01,0x00,0x02,0x18,0x60}, 
};

char fff3[11][20]={
	{0x05,0x62,0x12,0x34,0x00,0x00},
	{0x06,0x52,0x00,0x00,0x03,0x00,0x00},  
	{0x05,0x52,0x00,0x00,0x05,0x00},  
	{0x05,0x52,0x00,0x00,0x07,0x00},  
	{0x06,0x52,0x00,0x00,0x0c,0x00,0x00},
	{0x06,0x52,0x00,0x00,0x10,0x00,0x00},
	{0x06,0x52,0x00,0x11,0x93,0x00,0x00},
	{0x06,0x52,0x00,0x12,0x35,0x00,0x00}, 
	{0x05,0x52,0x00,0x12,0x37,0x00},  
	{0x05,0x52,0x00,0x12,0x39,0x00},
	{0x06,0x52,0x01,0x00,0x02,0x00,0x00}, 
};

 char chasissinfo[6][20]={
	{0x08,0x6A,0x11,0x09,0x37,0x00,0x00,0x00,0x00},//22
	{0x08,0x6A,0x10,0x09,0x36,0x00,0x00,0x00,0x00},//23
	{0x08,0x6A,0x12,0x09,0x38,0x00,0x00,0x00,0x00},//24
	{0x08,0x6A,0x13,0x09,0x38,0x00,0x00,0x00,0x00},//25
	{0x08,0x6A,0x14,0xA5,0xA0,0x00,0x00,0x00,0x20},//26  
	{0x08,0x6A,0x16,0x92,0x51,0x04,0x57,0x52,0x31},//27  
};
 char data1[21][20]={
	{0x03,0x6c,0xFe,0x4B},
	{0x08,0x2C,0xFE,0x62,0x00,0x05,0x00,0x0F},
	{0x08,0x2C,0xFE,0x71,0x11,0x43,0xFF,0xFF}, 
	{0x08,0x2C,0xFD,0x4A,0x00,0x11,0x11,0x42},
	{0x08,0x2C,0xFD,0x5C,0x12,0x50,0x00,0x10},
	{0x08,0x2C,0xFC,0x4A,0x12,0x51,0x11,0x72},
	{0x08,0x2C,0xFC,0x5A,0x11,0x06,0x11,0x07},
	{0x08,0x2C,0xFC,0x6A,0x12,0x55,0xFF,0xFF},
	{0x08,0x2C,0xFB,0x4B,0x11,0xA1,0x11,0x9E},
	{0x08,0x2C,0xFB,0x63,0x16,0x0A,0x19,0x9A},
	{0x08,0x2C,0xFA,0x4B,0x11,0x88,0x16,0x0B},
	{0x08,0x2C,0xFA,0x62,0x11,0x05,0x11,0x45},
	{0x08,0x2C,0xFA,0x71,0x11,0xAF,0xFF,0xFF},
	{0x08,0x2C,0xF9,0x4A,0x11,0xA6,0x00,0x0E},
};
 char chassisdata[6][20]={
//	 {0x08,0x6A,0x30,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x31,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x21,0x00,0x00,0x00,0xc0,0x00,0x00},
	 {0x08,0x6A,0x20,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x60,0x00,0x00,0x00,0x00,0x00,0x00},  
 };
 char radiodata[6][20]={
	 {0x08,0x6A,0x01,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x02,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x12,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x04,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x05,0x00,0x00,0x00,0x00,0x00,0x00},  
	 {0x08,0x6A,0x06,0x00,0x00,0x00,0x00,0x00,0x00},  
 };

 char SRSdata1[3][20]={
	 {0x06,0x6A,0x01,0x00,0x00,0x00,0x00}, 
	 {0x04,0x6A,0x02,0x00,0x00},
	 {0x08,0x6A,0x03,0x00,0x00,0x00,0x00,0x00,0x00},
 };
 char SRSdata2[3][20]={
	 {0x08,0x6A,0x04,0x4B,0x41,0x57,0x4D,0x4E,0x32},
	 {0x06,0x6A,0x06,0x09,0x38,0x00,0x60},
	 {0x08,0x6A,0x03,0x41,0x53,0x39,0x32,0x35,0x33},
 };
 char SRSdata3[3][20]={
	 {0x08,0x6A,0x11,0x00,0x00,0x00,0x00,0x00,0x00},
//	 {0x08,0x6A,0x20,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x06,0x6A,0x14,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x03,0x41,0x53,0x39,0x32,0x35,0x33},
 };

 char ICdata1[3][20]={
	 {0x08,0x6A,0x11,0x00,0x00,0x00,0x00,0x00,0x03},
	 {0x06,0x6A,0x12,0x00,0x00,0x00,0x00},
	 {0x04,0x6A,0x10,0x00,0x00},
};
 char ACdata1[3][20]={
	 {0x08,0x6A,0x10,0x00,0x00,0x00,0x00,0x3,0x00},
	 {0x08,0x6A,0x12,0x00,0x00,0x00,0x00,0x00,0x00},
//	 {0x08,0x6A,0x01,0xae,0x01,0x26,0x07,0x00,0x00},
};

 char Bodydata1[3][20]={
	 {0x08,0x6A,0x11,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x12,0x00,0x00,0x00,0x00,0x00,0x00},
	 {0x08,0x6A,0x13,0x00,0x00,0x00,0x00,0x00,0x00},
};

 char requset[COMMANDTOTAL][20]={
//Read DTC Command 1-15
//1.engine/at dtc
	{0x01,0x20},//enter system command----------------0
    {0x04,0x19,0xDA,0xFF,0x00},//1.read code information------------1
    {0x04,0x19,0x40,0xFF,0x00},//2.read point code ---------------2
    {0x04,0x19,0x04,0xFF,0x00},//3.after clean run code------------3
    {0x04,0x19,0x60,0xFF,0x00},//4.diagnosis tested   -------------4
    {0x03,0x17,0x18,0x60},//read point code count---------------5
//2.body F0.驾驶员信息中心dtc
	{0x04,0x19,0x02,0xFF,0x00},//read current dtc  -----------------6
	{0x04,0x19,0x10,0xFF,0x00},//read history dtc  -----------------7
	{0x01,0x14},//clean code-----------------8
//3.body 仪表板组合仪表dtc-------------60
    //command same f0.
//4.body F2.收音机dtc
//5.f3.辅助充气保护装置
//6.F4.车辆防盗
//7.底盘 read code same 
	{0x03,0x2A,0x01,0x14},////1999 chass enter----------------9
	{0x02,0x2A,0x01},  //1999 chass enter enhance dtc----------10
	{0x03,0x2A,0x04,0x51},//read enhance dtc----------------11
	{0x04,0x12,0x00,0xFF,0xFF},//故障记录------------12
	{0x02,0x10,0x00},//清除DTC ------------13
	{0x04,0x22,0x12,0x34,0x01},//获取信息------------14
	{0x04,0x12,0x01,0xFF,0xFF},//故障记录------------15
	{0x02,0x3C,0x01},//---------read information vin of engine 16
	{0x02,0x3C,0x02},//---------read information vin of engine 17
	{0x02,0x3C,0x03},//---------read information vin of engine 18
	{0x02,0x3C,0x08},//---------read information software versing of engine 19
	{0x03,0x2A,0x01,0x50},////1999 chass enter----------------9 20
	{0x08,0x2A,0x01,0x11,0x10,0x12,0x13,0x14,0x16},//----READ CHASSIS INFO-------21
//Read DTC Command 15
	{0x07,0x2C,0xFE,0x4B,0x00,0x0C,0x11,0x92},//READ DATA1
	{0x07,0x2C,0xFE,0x62,0x11,0x72,0x00,0x05},//READ DATA1
	{0x04,0x19,0x08,0xFF,0xFF},
//===============================ENGINE FUNCTION
	{0x07,0x2C,0xF9,0x4A,0x11,0xA6,0x00,0x0E},//fan low
	{0x07,0x2C,0xF9,0x5B,0x11,0x44,0x12,0x4F},
	{0x07,0x2C,0xF9,0x71,0x11,0x06,0xFF,0xFF},
	{0x07,0x2C,0xFE,0x71,0x00,0x0F,0xFF,0xFF},
	{0x07,0x2C,0xFE,0x63,0x00,0x05,0x16,0x0B},//READ DATA2
	{0x06,0x2A,0x14,0x20,0xFF,0xFF,0xFF},
	{0x07,0x2C,0xFD,0x4B,0x16,0x0A,0x00,0x0F},
	{0x07,0x2C,0xFE,0x4A,0x11,0x71,0x11,0x9b},
	{0x07,0x2C,0xFE,0x5A,0x11,0x52,0x11,0xBB},
	{0x07,0x2C,0xFD,0x4A,0x11,0xBD,0x11,0xC1},//------------------34
	{0x00},
	{0x07,0x2C,0xFC,0x4B,0x12,0x50,0x11,0x06},
	{0x07,0x2C,0xFC,0x62,0x11,0x43,0x00,0x11},
	{0x07,0x2C,0xFC,0x71,0x11,0x42,0xFF,0xFF},
	{0x07,0x2C,0xF7,0x4A,0x00,0x0D,0x19,0x9A},
	{0x07,0x2C,0xF7,0x5A,0x11,0x43,0x11,0x51},
	{0x07,0x2C,0xF7,0x6A,0x00,0x05,0x19,0x40},
	{0x04,0x12,0x02,0xFF,0xFF},//故障记录------------15
	{0x04,0x12,0x03,0xFF,0xFF},//故障记录------------15
	{0x04,0x12,0x04,0xFF,0xFF},//故障记录------------15
	{0x04,0x12,0x05,0xFF,0xFF},//故障记录------------15
	{0x04,0x12,0x06,0xFF,0xFF},//故障记录------------15
	{0x04,0x12,0x07,0xFF,0xFF},//故障记录------------15
	{0x04,0x12,0x08,0xFF,0xFF},//故障记录------------15
	{0x04,0x12,0x09,0xFF,0xFF},//故障记录------------15

	{0x07,0x2C,0xFB,0x71,0x00,0x06,0xFF,0xFF},
	{0x07,0x2C,0xFA,0x4A,0x11,0x41,0x11,0x04},
	{0x07,0x2C,0xFA,0x5A,0x11,0x07,0x11,0x0C},
	{0x07,0x2C,0xFA,0x6A,0x19,0x9A,0x11,0x02},
	{0x02,0x01,0x01},//--------------i/m system
	{0x06,0x2A,0x04,0x60,0x31,0x21,0x20}, //  2A  04  60  31  21  20
	{0x06,0x2A,0x04,0x20,0x21,0x30,0x60},
//srs datastream
	{0x06,0x2A,0x13,0x01,0x02,0x03,0xFF},  
	{0x06,0x2A,0x13,0x04,0x06,0xFF,0xFF},  
	{0x06,0x2A,0x13,0x11,0x20,0xFF,0xFF},  
	{0x06,0x2A,0x13,0x11,0x14,0xFF,0xFF},  
	{0x05,0x2A,0x03,0x11,0x12,0x10},
	{0x03,0x2A,0x03,0x13},
	{0x03,0x2A,0x03,0x16},
	{0x01,0x3f},
	{0x05,0x2A,0x04,0x20,0x21,0x30},
	{0x03,0x2A,0x03,0x10,0x12,0x03},
	{0x05,0x2A,0x03,0x11,0x12,0x13},  
	{0x03,0x2A,0x03,0x12},//----------68
	{0x06,0x2A,0x14,0x12,0xFF,0xFF,0xFF},
	{0x06,0x2A,0x14,0x10,0xFF,0xFF,0xFF},
	{0x06,0x2A,0x14,0x13,0xFF,0xFF,0xFF},
	{0x06,0x2A,0x14,0x15,0xFF,0xFF,0xFF},
	{0x03,0x2A,0x04,0x53},//read enhance dtc----------------11
	{0x03,0xAE,0x01,0x85,0x01,0x00,0x00,0x00,0x00},  
	{0x02,0x3C,0x15}, 
	{0x02,0x3C,0x84}, 
	{0x02,0x3C,0x17}, 
	{0x02,0x3C,0x18}, 
	{0x02,0x3C,0x86}, 
	{0x02,0x3C,0x85}, 
	{0x02,0x3C,0xA3},
	{0x03,0x3B,0xA3,0x07},  
	{0x02,0x3C,0xA0},  
	{0x02,0x3C,0xA8},
	{0x02,0x3C,0xA5},
	{0x06,0x3B,0xA8,0x36,0x35,0x30,0x36}, 
	{0x06,0x2A,0x13,0x06,0xff,0xFF,0xFF},  
	{0x02,0x3C,0x1a},
	{0x02,0x3C,0x1b},
	{0x02,0x3C,0x1c},
	{0x06,0x3b,0x1a,0x37,0x32,0x34,0x34},  
	{0x06,0x3b,0x1b,0x34,0x32,0x34,0x34},  
	{0x06,0x3b,0x1c,0x34,0x32,0x34,0x34},  
	{0x08,0x2A,0x01,0x01,0x02,0x04,0x05,0x06,0x12},  
	{0x03,0x3B,0x90,0xaa},
	{0x03,0x3B,0x84,0x00}, 
	{0x07,0x3B,0x85,0x00,0x00,0x00,0x00,0x00},  
	{0x03,0x3B,0x90,0xff},
	{0x02,0x3C,0x81},
 	{0x03,0x3B,0x81,0x08},
	{0x06,0x3B,0x86,0xCA,0xED,0x32,0xFF},
	{0x06,0x3B,0x89,0x10,0x4D,0x32,0xec},
	{0x06,0x3B,0x91,0xff,0xff,0xff,0xff},
	{0x07,0x3B,0x94,0x03,0x08,0x80,0x80,0x03},
	{0x03,0x3B,0x97,0x07},
	{0x05,0x3B,0x98,0x1a,0x00,0x06},
	{0x02,0x3C,0x88},
 };
char answer[COMMANDTOTAL][20]={
//engine dtc-------------------10
	{0x01,0x60},//enter system command--------0
    {0x04,0x59,0x00,0x00,0x01},//1.read code information-----------1
    {0x04,0x59,0x00,0x00,0x01},//2.read point code -----------2
    {0x04,0x59,0x00,0x00,0x80},//3.after clean run code--------------3
    {0x04,0x59,0x00,0x00,0x40},//3.diagnosis tested   --------------4
	{0x04,0x57,0x18,0x60,0x00},//read point code count-----------5
//2.body F0.驾驶员信息中心dtc----------40
	{0x04,0x59,0x00,0x00,0x10},//read current dtc------------6
	{0x04,0x59,0x00,0x00,0x01},//read history dtc------------7
	{0x01,0x54},//clean code-----------------8
//3.body 仪表板组合仪表dtc-------------60
    //command same f0.
//4.body F2.收音机dtc
//5.f3.辅助充气保护装置
//6.F4.车辆防盗
//7.底盘 read code same 
	{0x08,0x6A,0x14,0xA5,0xA0,0x00,0x02,0x00,0x89},////1999 chass enter--------9
	{0x02,0x6A,0x01},  //1999 chass enter enhance dtc-----------10
	{0x08,0x6A,0x51,0x52,0x52,0x11,0x00,0x02,0x01}, 

	{0x04,0x6A,0x04,0x00,0xff},//trouble code recoder------------12
	{0x04,0x7F,0x10,0x00,0x12},//-clear code engine-----------13
	{0x05,0x62,0x12,0x34,0x00,0x00},//------------14
	{0x00},//------------15
//Read DTC Command 15
	{0x08,0x7C,0x01,0x35,0x32,0x57,0x34,0x59,0x53},//---------read information vin of engine 16
	{0x08,0x7C,0x02,0x35,0x32,0x57,0x34,0x59,0x53},//---------read information vin of engine 17
	{0x08,0x7C,0x03,0x31,0x30,0x34,0x31,0x38,0x38},//---------read information vin of engine 18
	{0x06,0x7C,0x08,0x00,0x8f,0x1f,0x1e},//---------read information software versing of engine 19
	
	{0x08,0x6A,0x90,0xA5,0xA0,0x00,0x02,0x00,0x89},////1999 chass enter--------9 20
	{0x00},
	{0x03,0x6C,0xFE,0x4B},
	{0x03,0x6C,0xFE,0x62},
	{0x03,0x59,0x08,0x02},  
//======================function=============
	{0x03,0x6C,0xF9,0x4A,0x32},
	{0x03,0x6C,0xF9,0x5B,0xE2}, 
	{0x03,0x6C,0xF9,0x71,0xB7},
	{0x00},
	{0x03,0x6C,0xFE,0x63,0x32},  
	{0x08,0x6A,0x20,0x16,0x25,0x70,0x50,0x44,0x33},  
	{0x00},
	{0x03,0x6C,0xFE,0x4A},
	{0x03,0x6C,0xFE,0x5A},
	{0x00},//-------------34
	{0x00},//-------------35
	{0x03,0x6C,0xFC,0x4B},
	{0x03,0x6C,0xFC,0x62},
	{0x00},//-------------38
	{0x03,0x6C,0xF7,0x4A},
	{0x03,0x6C,0xF7,0x5A},
	{0x00},
	{0x00},
	{0x00},
	{0x00},
	{0x00},
	{0x00},
	{0x00},
	{0x00},
	{0x00},
	{0x03,0x6C,0xFB,0x71},//---------------50
	{0x03,0x6C,0xFA,0x4A},
	{0x03,0x6C,0xFA,0x5A},
	{0x03,0x6C,0xFA,0x6A},
	{0x00},//--------------i/m system
	{0x00},//--------------chassis data
	{0x00},
	{0x00},//--------------chassis data
	{0x00},
	{0x00},
	{0x00},
	{0x00},
    {0x08,0x6A,0x13,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x08,0x6A,0x16,0x00,0x00,0x00,0x00,0x00,0x00},
	{0x08,0x7f,0x53,0xff,0xff,0xff,0xff,0xff,0xff},
	{0x00},
	{0x00},//-------------66
	{0x07,0x7f,0x2A,0x03,0x11,0x12,0x13,0x31},//---------67===61
	{0x00},//----------68
	{0x00},//----------68
	{0x08,0x6A,0x10,0x00,0x00,0x00,0x00,0x00,0x00},
	{0x08,0x6A,0x13,0x01,0x01,0x00,0x00,0x00,0x00},
	{0x08,0x6A,0x15,0x00,0x00,0x00,0x00,0x05,0x00},
	{0x08,0x6A,0x53,0x00,0x00,0x00,0x00,0x00,0x00}, 
	{0x05,0xEE,0x01,0xE1,0xD4,0x01},
	{0x08,0x7C,0x15,0x35,0x32,0x57,0x34,0x59,0x53},//---------read information vin of engine 16
	{0x08,0x7C,0x84,0x30,0xff,0x57,0x34,0x59,0x53},//---------read information vin of engine 16
	{0x08,0x7C,0x17,0x00,0x00,0x00,0x00,0x00,0x00},//---------read information vin of engine 16
	{0x08,0x7C,0x18,0x00,0x00,0x00,0x00,0x00,0x00},//---------read information vin of engine 16
	{0x08,0x7C,0x86,0x00,0x00,0x00,0x00,0x00,0x00},//---------read information vin of engine 16
	{0x08,0x7C,0x85,0x00,0x00,0x00,0x00,0x00,0x00},//---------read information vin of engine 16

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -