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

📄 klinecomm.c

📁 基于16位单片机的符合osek标准的操作系统
💻 C
📖 第 1 页 / 共 4 页
字号:
				G_uc8ResponseMessage[13]=(unsigned char)(KLineData06_5>>8);//
				G_uc8ResponseMessage[14]=(unsigned char)(KLineData06_5&0x00ff);//
				G_uc8ResponseMessage[15]=(unsigned char)(KLineData06_6>>8);//
				G_uc8ResponseMessage[16]=(unsigned char)(KLineData06_6&0x00ff);
				G_uc8ResponseMessage[17]=(unsigned char)(KLineData06_7>>8);
				G_uc8ResponseMessage[18]=(unsigned char)(KLineData06_7&0x00ff);
				G_uc8ResponseMessage[19]=(unsigned char)(KLineData06_8>>8);//
				G_uc8ResponseMessage[20]=(unsigned char)(KLineData06_8&0x00ff);
				G_un16ResponseMLength=22;
				G_uc8ResponseMessage[21]=CheckSum();
				break;
 			case 0x07://
 				G_uc8ResponseMessage[0]=0x92; 
 				//只读unsigned int 型数据
				G_uc8ResponseMessage[5]=(unsigned char)(KLineData07_1>>8);//
				G_uc8ResponseMessage[6]=(unsigned char)(KLineData07_1&0x00ff);
				G_uc8ResponseMessage[7]=(unsigned char)(KLineData07_2>>8);//
				G_uc8ResponseMessage[8]=(unsigned char)(KLineData07_2&0x00ff);
				G_uc8ResponseMessage[9]=(unsigned char)(KLineData07_3>>8);//
				G_uc8ResponseMessage[10]=(unsigned char)(KLineData07_3&0x00ff);
				G_uc8ResponseMessage[11]=(unsigned char)(KLineData07_4>>8);//
				G_uc8ResponseMessage[12]=(unsigned char)(KLineData07_4&0x00ff);//
				G_uc8ResponseMessage[13]=(unsigned char)(KLineData07_5>>8);//
				G_uc8ResponseMessage[14]=(unsigned char)(KLineData07_5&0x00ff);//
				G_uc8ResponseMessage[15]=(unsigned char)(KLineData07_6>>8);//
				G_uc8ResponseMessage[16]=(unsigned char)(KLineData07_6&0x00ff);
				G_uc8ResponseMessage[17]=(unsigned char)(KLineData07_7>>8);//
				G_uc8ResponseMessage[18]=(unsigned char)(KLineData07_7&0x00ff);
				G_uc8ResponseMessage[19]=(unsigned char)(KLineData07_8>>8);//
				G_uc8ResponseMessage[20]=(unsigned char)(KLineData07_8&0x00ff);
				G_un16ResponseMLength=22;
				G_uc8ResponseMessage[21]=CheckSum();
				break;
 			case 0x08://
 				G_uc8ResponseMessage[0]=0x92; 
 				//只读int 型数据
				G_uc8ResponseMessage[5]=(unsigned char)(KLineData08_1>>8);//
				G_uc8ResponseMessage[6]=(unsigned char)(KLineData08_1&0x00ff);
				G_uc8ResponseMessage[7]=(unsigned char)(KLineData08_2>>8);//
				G_uc8ResponseMessage[8]=(unsigned char)(KLineData08_2&0x00ff);//
				G_uc8ResponseMessage[9]=(unsigned char)(KLineData08_3>>8);//
				G_uc8ResponseMessage[10]=(unsigned char)(KLineData08_3&0x00ff);
				G_uc8ResponseMessage[11]=(unsigned char)(KLineData08_4>>8);//
				G_uc8ResponseMessage[12]=(unsigned char)(KLineData08_4&0x00ff);//
				G_uc8ResponseMessage[13]=(unsigned char)(KLineData08_5>>8);//
				G_uc8ResponseMessage[14]=(unsigned char)(KLineData08_5&0x00ff);//
				G_uc8ResponseMessage[15]=(unsigned char)(KLineData08_6>>8);//
				G_uc8ResponseMessage[16]=(unsigned char)(KLineData08_6&0x00ff);
				G_uc8ResponseMessage[17]=(unsigned char)(KLineData08_7>>8);//
				G_uc8ResponseMessage[18]=(unsigned char)(KLineData08_7&0x00ff);
				G_uc8ResponseMessage[19]=(unsigned char)(KLineData08_8>>8);//
				G_uc8ResponseMessage[20]=(unsigned char)(KLineData08_8&0x00ff);
				G_un16ResponseMLength=22;
				G_uc8ResponseMessage[21]=CheckSum();
				break;
			case 0x09://
 				G_uc8ResponseMessage[0]=0x8a; 
				//只读unsigned char 型数据
				G_uc8ResponseMessage[5]=KLineData09_1;//
				G_uc8ResponseMessage[6]=KLineData09_2;//
				G_uc8ResponseMessage[7]=KLineData09_3;//
				G_uc8ResponseMessage[8]=KLineData09_4;//
				G_uc8ResponseMessage[9]=KLineData09_5;//
				G_uc8ResponseMessage[10]=KLineData09_6;//
				G_uc8ResponseMessage[11]=KLineData09_7;//
				G_uc8ResponseMessage[12]=KLineData09_8;//
				G_un16ResponseMLength=14;
				G_uc8ResponseMessage[13]=CheckSum();
				break;
			case 0x0a://
 				G_uc8ResponseMessage[0]=0x8a; 	
				//只读 char 型数据
				G_uc8ResponseMessage[5]=KLineData10_1;//
				G_uc8ResponseMessage[6]=KLineData10_2;//
				G_uc8ResponseMessage[7]=KLineData10_3;//
				G_uc8ResponseMessage[8]=KLineData10_4;//
				G_uc8ResponseMessage[9]=KLineData10_5;//
				G_uc8ResponseMessage[10]=KLineData10_6;//
				G_uc8ResponseMessage[11]=KLineData10_7;//
				G_uc8ResponseMessage[12]=KLineData10_8;//
				G_un16ResponseMLength=14;
				G_uc8ResponseMessage[13]=CheckSum();
				break;
			case 0x0b://
 				G_uc8ResponseMessage[0]=0x92;
				// 只读Float 型数据
				scalingtemp=(unsigned int)(KLineData11_1*10);//
				G_uc8ResponseMessage[5]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[6]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData11_2*10);//
				G_uc8ResponseMessage[7]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[8]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData11_3*10);//
				G_uc8ResponseMessage[9]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[10]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData11_4*10);//
				G_uc8ResponseMessage[11]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[12]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData11_5*10);//
				G_uc8ResponseMessage[13]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[14]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData11_6*10);//
				G_uc8ResponseMessage[15]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[16]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData11_7*10);//
				G_uc8ResponseMessage[17]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[18]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData11_8*10);//
				G_uc8ResponseMessage[19]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[20]=(unsigned char)(scalingtemp&0x00ff);
				G_un16ResponseMLength=22;
				G_uc8ResponseMessage[21]=CheckSum();
 				break;
 			case 0x0c://
 				G_uc8ResponseMessage[0]=0x92;
				// 只读Float 型数据
				scalingtemp=(unsigned int)(KLineData12_1*10);//
				G_uc8ResponseMessage[5]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[6]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData12_2*10);//
				G_uc8ResponseMessage[7]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[8]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData12_3*10);//
				G_uc8ResponseMessage[9]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[10]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData12_4*10);//
				G_uc8ResponseMessage[11]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[12]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData12_5*10);//
				G_uc8ResponseMessage[13]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[14]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData12_6*10);//
				G_uc8ResponseMessage[15]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[16]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData12_7*10);//
				G_uc8ResponseMessage[17]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[18]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineData12_8*10);//
				G_uc8ResponseMessage[19]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[20]=(unsigned char)(scalingtemp&0x00ff);
				G_un16ResponseMLength=22;
				G_uc8ResponseMessage[21]=CheckSum();
 				break;
 			case 0x51:
				G_uc8ResponseMessage[0]=0x92; 
 				//可读写的unsigned int 型数据
				G_uc8ResponseMessage[5]=(unsigned char)(KLineWData81_1>>8);// write data by ID 01
				G_uc8ResponseMessage[6]=(unsigned char)(KLineWData81_1&0x00ff);//
				G_uc8ResponseMessage[7]=(unsigned char)(KLineWData81_2>>8);//write data by ID 02
				G_uc8ResponseMessage[8]=(unsigned char)(KLineWData81_2&0x00ff);//
				G_uc8ResponseMessage[9]=(unsigned char)(KLineWData81_3>>8);//write data by ID 03
				G_uc8ResponseMessage[10]=(unsigned char)(KLineWData81_3&0x00ff);//
				G_uc8ResponseMessage[11]=(unsigned char)(KLineWData81_4>>8);//write data by ID 04
				G_uc8ResponseMessage[12]=(unsigned char)(KLineWData81_4&0x00ff);
				G_uc8ResponseMessage[13]=(unsigned char)(KLineWData81_5>>8);//write data by ID 05
				G_uc8ResponseMessage[14]=(unsigned char)(KLineWData81_5&0x00ff);
				G_uc8ResponseMessage[15]=(unsigned char)(KLineWData81_6>>8);//write data by ID 06
				G_uc8ResponseMessage[16]=(unsigned char)(KLineWData81_6&0x00ff);
				G_uc8ResponseMessage[17]=(unsigned char)(KLineWData81_7>>8);//write data by ID 07
				G_uc8ResponseMessage[18]=(unsigned char)(KLineWData81_7&0x00ff);//
				G_uc8ResponseMessage[19]=(unsigned char)(KLineWData81_8>>8);//write data by ID 08
				G_uc8ResponseMessage[20]=(unsigned char)(KLineWData81_8&0x00ff);
				G_un16ResponseMLength=22;
				G_uc8ResponseMessage[21]=CheckSum();
				break;
			case 0x52:
				G_uc8ResponseMessage[0]=0x92; 
 				//可读写的unsigned int 型数据
				G_uc8ResponseMessage[5]=(unsigned char)(KLineWData82_1>>8);// write data by ID 09
				G_uc8ResponseMessage[6]=(unsigned char)(KLineWData82_1&0x00ff);//
				G_uc8ResponseMessage[7]=(unsigned char)(KLineWData82_2>>8);//write data by ID 10
				G_uc8ResponseMessage[8]=(unsigned char)(KLineWData82_2&0x00ff);//
				G_uc8ResponseMessage[9]=(unsigned char)(KLineWData82_3>>8);//write data by ID 11
				G_uc8ResponseMessage[10]=(unsigned char)(KLineWData82_3&0x00ff);//
				G_uc8ResponseMessage[11]=(unsigned char)(KLineWData82_4>>8);//write data by ID 12
				G_uc8ResponseMessage[12]=(unsigned char)(KLineWData82_4&0x00ff);
				G_uc8ResponseMessage[13]=(unsigned char)(KLineWData82_5>>8);//write data by ID 13
				G_uc8ResponseMessage[14]=(unsigned char)(KLineWData82_5&0x00ff);
				G_uc8ResponseMessage[15]=(unsigned char)(KLineWData82_6>>8);//write data by ID 14
				G_uc8ResponseMessage[16]=(unsigned char)(KLineWData82_6&0x00ff);
				G_uc8ResponseMessage[17]=(unsigned char)(KLineWData82_7>>8);//write data by ID 15
				G_uc8ResponseMessage[18]=(unsigned char)(KLineWData82_7&0x00ff);//
				G_uc8ResponseMessage[19]=(unsigned char)(KLineWData82_8>>8);//write data by ID 16
				G_uc8ResponseMessage[20]=(unsigned char)(KLineWData82_8&0x00ff);
				G_un16ResponseMLength=22;
				G_uc8ResponseMessage[21]=CheckSum();
				break;
			case 0x53:
				G_uc8ResponseMessage[0]=0x8a;
				//可读写的unsigned char 型数据
				G_uc8ResponseMessage[5]=0xff & KLineWData83_1;//write data by ID 17
				G_uc8ResponseMessage[6]=0xff & KLineWData83_2;//write data by ID 18
				G_uc8ResponseMessage[7]=0xff & KLineWData83_3;//write data by ID 19
				G_uc8ResponseMessage[8]=0xff & KLineWData83_4;//write data by ID 20
				G_uc8ResponseMessage[9]=0xff & KLineWData83_5;//write data by ID 21
				G_uc8ResponseMessage[10]=0xff & KLineWData83_6;//write data by ID 22
				G_uc8ResponseMessage[11]=0xff & KLineWData83_7;//write data by ID 23
				G_uc8ResponseMessage[12]=0xff & KLineWData83_8;//write data by ID 24
				G_un16ResponseMLength=14;
				G_uc8ResponseMessage[13]=CheckSum();
				break; 
			case 0x54:
				G_uc8ResponseMessage[0]=0x8a;
				//可读写的int 型数据
				G_uc8ResponseMessage[5]=0xff & KLineWData84_1;//write data by ID 25
				G_uc8ResponseMessage[6]=0xff & KLineWData84_1;//write data by ID 26
				G_uc8ResponseMessage[7]=0xff & KLineWData84_1;//write data by ID 27
				G_uc8ResponseMessage[8]=0xff & KLineWData84_1;//write data by ID 28
				G_uc8ResponseMessage[9]=0xff & KLineWData84_1;//write data by ID 29
				G_uc8ResponseMessage[10]=0xff & KLineWData84_1;//write data by ID 30
				G_uc8ResponseMessage[11]=0xff & KLineWData84_1;//write data by ID 31
				G_uc8ResponseMessage[13]=0xff & KLineWData84_1;//write data by ID 32
				G_un16ResponseMLength=14;
				G_uc8ResponseMessage[13]=CheckSum();
				break;
			case 0x55:
				G_uc8ResponseMessage[0]=0x92;
				//可读写的Float 型数据
				scalingtemp=(unsigned int)(KLineWData85_1*10);//write data by ID 33
				G_uc8ResponseMessage[5]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[6]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineWData85_2*10);//write data by ID 34
				G_uc8ResponseMessage[7]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[8]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineWData85_3*10);//write data by ID 35
				G_uc8ResponseMessage[9]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[10]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineWData85_4*10);//write data by ID 36
				G_uc8ResponseMessage[11]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[12]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineWData85_5*10);//write data by ID 37
				G_uc8ResponseMessage[13]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[14]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineWData85_6*10);//write data by ID 38
				G_uc8ResponseMessage[15]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[16]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineWData85_7*10);//write data by ID 39
				G_uc8ResponseMessage[17]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[18]=(unsigned char)(scalingtemp&0x00ff);
				scalingtemp=(unsigned int)(KLineWData85_8*10);//write data by ID 40
				G_uc8ResponseMessage[19]=(unsigned char)(scalingtemp>>8);
				G_uc8ResponseMessage[20]=(unsigned char)(scalingtemp&0x00ff);
				G_un16ResponseMLength=22;
				G_uc8ResponseMessage[21]=CheckSum();
 				break;
 			default:
 				bSubFunNotSup=1;
 				G_uc8ResponseMessage[0]=0x83;
				G_uc8ResponseMessage[3]=0x7f;
				G_uc8ResponseMessage[4]=0x61;
				G_uc8ResponseMessage[5]=0x12;
				G_un16ResponseMLength=7;
				G_uc8ResponseMessage[6]=CheckSum();
 				break;             
 		}
 		G_bSendReady=1;
		bReadDataLIDFlag=0;
	
	}
	if(bReadMemoryByAFlag)   //Read Memory By Address service
	{
		unsigned char page0;
		unsigned char *addr;
		unsigned int addrvalue;
		G_uc8ResponseMessage[0]=0x80;
		G_uc8ResponseMessage[3]=G_uc8MemorySize+1;
		G_uc8ResponseMessage[4]=0x63;
		
		page0=PPAGE;
		addrvalue=(G_uc8MemoryAddressM*256)+G_uc8MemoryAddressL;//calculate the value of address 
		addr=(unsigned char*)addrvalue;
		PPAGE=G_uc8MemoryAddressH;
		for(i=0;i<G_uc8MemorySize;i++)//
		{	
			G_uc8ResponseMessage[i+5]=addr[i];
		}
		PPAGE=page0;
		G_un16ResponseMLength=G_uc8MemorySize+6;
		G_uc8ResponseMessage[G_un16ResponseMLength-1]=CheckSum();
 		G_bSendReady=1;
		bReadMemoryByAFlag=0;
			
	}
	
	if(bWriteDataByLIdFlag)   //Write Data By Local Identifier service
	{
		unsigned char recordvH,recordvL;
    	unsigned char highnibble;//lownibble;
    	highnibble=(unsigned char)(G_uc8Receivedata[G_StartLocation+5]/16);
		/*lownibble=(unsigned char)(G_uc8Receivedata[G_StartLocation+5]%16);
		for(i=0;i<lownibble;i++)
			un16RecordValue+=G_uc8Receivedata[G_StartLocation+6+i]*(256^(lownibble-i-1));
		*/
		if(highnibble==7)
		{
			int recordTemp;
			recordvH=G_uc8Receivedata[G_StartLocation+6];
			recordvL=G_uc8Receivedata[G_StartLocation+7];
			un16RecordValue=(recordvH*256)+recordvL;
			if(un16RecordValue&0x8000)
			{
				recordTemp=un16RecordValue-0xffff-1;
				floRecordValue=(float)recordTemp/10;
			}
			else
				floRecordValue=(float)un16RecordValue/10;
		}
		if(G_uc8RequstMLength==9)
		{
			recordvH=G_uc8Receivedata[G_StartLocation+6];
			recordvL=G_uc8Receivedata[G_StartLocation+7];
			un16RecordValue=(recordvH*256)+recordvL;
		}
		if(G_uc8RequstMLength==8)
		{
			un16RecordValue=G_uc8Receivedata[G_StartLocation+6];	
		}
  		
  		
  		ConfigCalibratedPara();

⌨️ 快捷键说明

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