aaadlg.cpp

来自「本人调试通过的串口通信程序,对初学者有一定的参考价值」· C++ 代码 · 共 1,356 行 · 第 1/4 页

CPP
1,356
字号
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data1[32])
								{
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
									array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								
								
								  }
								else
								{
							
									
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
						}
						
					
						
						break;
					case 2:	
						if(flag==1)
						{	
							data2[j++] = a;
								
							if(j==33)
							{	
							 //if(j==18)/////////////CRC校验
								j=0;
								flag=0;
								count=0;
								for(m=0;m<32;m++)
									even(data2[m]);
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data2[32])
								{	
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
									array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								
								 }

								else
								{
							
									
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								
								  }
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
						}
						
					
						
						break;
					case 3:	
						if(flag==1)
						{	
							data3[j++] = a;
								
							if(j==33)
							{	
							 //if(j==33)/////////////CRC校验
								j=0;
								flag=0;
								count=0;
								for(m=0;m<32;m++)
									even(data3[m]);
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data3[32])
								{
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
									array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								
								 }
								else
								{
							
																	
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								
								  }
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
						}
						
					
						
						break;
					case 4:	
						if(flag==1)
						{	
							data4[j++] = a;
								
							if(j==33)
							{	
							 //if(j==18)/////////////CRC校验
								j=0;
								flag=0;
								count=0;
								for(m=0;m<32;m++)
									even(data4[m]);
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data4[32])
								{
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
									array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
								else
								{
							
								
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X42};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
						}
						
					
						
						break;
					case 5:	
						if(flag==1)
						{	
							data5[j++] = a;
								
							if(j==33)
							{	
							 //if(j==18)/////////////CRC校验
								j=0;
								flag=0;
								count=0;
								for(m=0;m<32;m++)
									even(data5[m]);
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data5[32])
								{
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
									array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
								else
								{
							
								
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X42};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
						}
						
					
						
						break;
					case 6:	
						if(flag==1)
						{	
							data6[j++] = a;
								
							if(j==33)
							{	
							 //if(j==18)/////////////CRC校验
								j=0;
								flag=0;
								count=0;
								for(m=0;m<32;m++)
									even(data6[m]);
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data6[32])
								{
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
									array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
								else
								{
							
								
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X42};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
						}
						
					
						
						break;
					case 7:	
						if(flag==1)
						{	
							data7[j++] = a;
								
							if(j==33)
							{	
							 //if(j==18)/////////////CRC校验
								j=0;
								flag=0;
								count=0;
								for(m=0;m<32;m++)
									even(data7[m]);
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data7[32])
								{
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中

⌨️ 快捷键说明

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