亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? modbus0.c

?? 我用ARM寫(xiě)的一些東西
?? C
字號(hào):
/******************************************************************************************


									TX0,RX0 Used Asigned 485


********************************************************************************************/


#include "config.h"
 
//unsigned char CmdBuf[10];
extern unsigned char X4Dat[65];
extern unsigned char X3Dat[100];
extern uint8 RecDat0[20];
extern uint8	X0Dat[5];
extern uint8 TureBdTmp;
extern uint16 StartTm;
extern uint16 WindowsFg;

extern uint16 TpumSpeed;
extern float TpumVaccum;
extern float LeakBase;
extern uint8 LeakExp;
extern uint8 CalBase  ;
extern uint8 CalExp	  ;	
extern uint8 Volum;

extern uint8  AlarmBase;
extern uint8  AlarmExp;
extern uint8  DecPort;
unsigned char OutBuf0[50];
uint8 SavePar0;
extern int8 RecLen0;
extern unsigned char const auchCRCHi[];
extern unsigned  char const auchCRCLo[] ;

extern void Delay(void);


extern unsigned short CRC(unsigned char dat[] , unsigned short usDataLen);

void SendX340(unsigned int Add,unsigned int Num1,uint8 Dat[])
{
	unsigned char i,Len;
	unsigned int CrcTmp;
	OutBuf0[0]=0x01;
	OutBuf0[1]=RecDat0[1];
	OutBuf0[2]=Num1*2;
		
	for(i=0;i<Num1*2;i++)
	{
		//OutBuf[i+3]=Dat[Add*2+i];	
		//OutBuf[i+4]=Dat[Add*2+i+1] ;
		OutBuf0[i+3]=Dat[Add*2+i];	

	}
	Len=i+3;

	CrcTmp=CRC(OutBuf0,Len);
	
	OutBuf0[Len+1]=CrcTmp&0x00ff;
	OutBuf0[Len]=(CrcTmp>>8)&0x00ff;

	Delay();
	for(i=0;i<Len+2;i++)
	{

		U0THR =OutBuf0[i];
		while ((U0LSR & 0x20) == 0);	// 等待數(shù)據(jù)發(fā)送完畢
	}
	Delay();	
}

void SendX010(unsigned int Add,unsigned int Num1,uint8 Dat[])
{
	unsigned char i,Len;
	unsigned int CrcTmp;
	OutBuf0[0]=0x01;
	OutBuf0[1]=RecDat0[1];
	OutBuf0[2]=Num1*2;
		
	for(i=0;i<Num1*2;i++)
	{
		//OutBuf[i+3]=Dat[Add*2+i];	
		//OutBuf[i+4]=Dat[Add*2+i+1] ;
		OutBuf0[i+3]=Dat[Add*2+i];	

	}
	Len=i+3;

	CrcTmp=CRC(OutBuf0,Len);
	
	OutBuf0[Len+1]=CrcTmp&0x00ff;
	OutBuf0[Len]=(CrcTmp>>8)&0x00ff;

	Delay();
	for(i=0;i<Len+2;i++)
	{

		U0THR =OutBuf0[i];
		while ((U0LSR & 0x20) == 0);	// 等待數(shù)據(jù)發(fā)送完畢
	}
	Delay();	
}


void SetResp0(unsigned int Add,unsigned int Num1)
{
	unsigned char i,Len;
	unsigned int CrcTmp;
	OutBuf0[0]=0x01;
	OutBuf0[1]=RecDat0[1];
	OutBuf0[2]=Add>>8&0x00ff;
	OutBuf0[3]=Add&0x00ff;
	//OutBuf[4]=RecDat[4];
	//OutBuf[5]=RecDat[5];

	for(i=0;i<Num1*2;i++)
	{
		//OutBuf[i+4]=X4Dat[Add*2+i];	
		//OutBuf[i+5]=X4Dat[Add*2+i+1] ;
		OutBuf0[i+4]=X4Dat[Add*2+i];	
	}
	//i=1;
	Len=i+4;

	CrcTmp=CRC(OutBuf0,Len);
	OutBuf0[Len+1]=CrcTmp&0x00ff;
	OutBuf0[Len]=(CrcTmp>>8)&0x00ff;
	Delay();
	for(i=0;i<Len+2;i++)
	{
		U0THR =OutBuf0[i];
		while ((U0LSR & 0x20) == 0);	// 等待數(shù)據(jù)發(fā)送完畢
	}
	Delay();	
}

void RespX010(unsigned int Add)
{
	unsigned char i,Len;
	unsigned int CrcTmp;
	OutBuf0[0]=0x01;
	OutBuf0[1]=RecDat0[1];
	OutBuf0[2]=Add>>8&0x00ff;
	OutBuf0[3]=Add&0x00ff;
	OutBuf0[4]=RecDat0[4];
	OutBuf0[5]=RecDat0[5];

	//for(i=0;i<Num1*2;i++)
	//{
		//OutBuf[i+4]=X4Dat[Add*2+i];	
		//OutBuf[i+5]=X4Dat[Add*2+i+1] ;
		//OutBuf[i+4]=X4Dat[Add*2+i];	
	//}
	//i=1;
	Len=6;

	CrcTmp=CRC(OutBuf0,Len);
	OutBuf0[Len+1]=CrcTmp&0x00ff;
	OutBuf0[Len]=(CrcTmp>>8)&0x00ff;
	Delay();
	for(i=0;i<Len+2;i++)
	{
		U0THR =OutBuf0[i];
		while ((U0LSR & 0x20) == 0);	// 等待數(shù)據(jù)發(fā)送完畢
	}
	Delay();	
}

		
void MbusDel0(void)
{
	uint8 i,CmdAdd,Num;
	float TmpVcm;
	if((RecLen0>0)||RecLen0>6)
	{
		
		for(i=RecLen0;i>0;i--)
		{
			//CmdBuf[i-1]=RecDat[i-1];
		}
		//CrcRes= CRC(RecDat,RecLen-2);
		if ((RecDat0[RecLen0-2]*256+RecDat0[RecLen0-1])==CRC(RecDat0,RecLen0-2) )//Cmd Right
		{
			if (RecDat0[0]==0x1)//設(shè)備號(hào)為1
			{
				switch(RecDat0[1])
				{
					case 1:
						CmdAdd=RecDat0[2]*256+RecDat0[3];
						Num=(RecDat0[4]*256+RecDat0[5])/16;
						SendX340(CmdAdd,Num,X0Dat);						
					break;
					case 2:
					break;
					case 3:
						//X4Dat[61]=TureBdTmp;
						//X4Dat[60]=BdTmp/256;
						X4Dat[0]=AlarmBase/256;
						X4Dat[1]=AlarmBase;
						X4Dat[2]=AlarmExp/256;
						X4Dat[3]=AlarmExp;
						
						X4Dat[4]=Volum/256;
						X4Dat[5]=Volum;
						X4Dat[6]=Unit/256;
						X4Dat[7]=Unit%256;
						
						X4Dat[8]=CalBase/256;
						X4Dat[9]=CalBase;
						X4Dat[10]=CalExp/256;;
						X4Dat[11]=CalExp;
						
						X4Dat[12]=DecPort/256;;
						X4Dat[13]=DecPort;
						
						X4Dat[16]=VacumUnit/256;
						X4Dat[17]=VacumUnit%256;

						X4Dat[18]=FltMod/256;
						X4Dat[19]=FltMod%256;
						
						X4Dat[38]=RunHour/256;
						X4Dat[39]=RunHour%256;
						X4Dat[40]=0;
						X4Dat[41]=0;
						X4Dat[42]=RunMin/256;
						X4Dat[43]=RunMin%256;
						X4Dat[44]=0;
						X4Dat[45]=0;
						X4Dat[46]=ErrTimes/256;
						X4Dat[47]=ErrTimes%256;
						X4Dat[48]=0;
						X4Dat[49]=0;																														
						
						CmdAdd=RecDat0[2]*256+RecDat0[3];
						Num=RecDat0[4]*256+RecDat0[5];
						SendX340(CmdAdd,Num,X4Dat);

					break;
					case 4:
						X3Dat[0]=WindowsFg/256;
						X3Dat[1]=WindowsFg%256;
						
						X3Dat[2]=StartTm/256;
						X3Dat[3]=StartTm%256;
						
						X3Dat[4]=CalTm/256;
						X3Dat[5]=CalTm%256;
						
					

						X3Dat[8]=(int16)(LkPtVaccumMain) /256;
						X3Dat[9]=(int16)(LkPtVaccumMain) % 256;

						X3Dat[10]=(int16)(TpumVaccumMain)/256;
						X3Dat[11]=(int16)(TpumVaccumMain)%256;
						
						
						TmpVcm=LkPtVaccum;
						i=0;
						if((LkPtVaccum<10)&&(LkPtVaccum!=0))
						{
							X3Dat[16]=0;//檢漏口壓力符號(hào)
							X3Dat[17]=1;//負(fù)號(hào)
														
							while(TmpVcm<10)
							{
								TmpVcm=TmpVcm*10;
								i++;
							}

							X3Dat[12]=(int8)(TmpVcm)/256;
							X3Dat[13]=(int8)(TmpVcm)%256;	

							X3Dat[14]=(int8)(i-1) /256;
							X3Dat[15]=(int8)(i-1) % 256;
							
						}
						else if((LkPtVaccum>=100))
						{
							X3Dat[16]=0;//檢漏口壓力符號(hào)
							X3Dat[17]=0;//+號(hào)
														
							while((uint32)(TmpVcm)>=100)
							{
								TmpVcm=TmpVcm/10;
								i++;
							}

							X3Dat[12]=(int8)(TmpVcm)/256;
							X3Dat[13]=(int8)(TmpVcm)%256;	
													
							X3Dat[14]=(int8)(i+1) /256;
							X3Dat[15]=(int8)(i+1) % 256;						
						}
						
						
						TmpVcm=TpumVaccum;
						i=0;
						if((TpumVaccum<10)&&(TpumVaccum!=0))
						{
							X3Dat[26]=0;//壓力符號(hào)
							X3Dat[27]=1;//負(fù)號(hào)
														
							while(TmpVcm<10)
							{
								TmpVcm=TmpVcm*10;
								i++;
							}

							X3Dat[22]=(int8)(TmpVcm)/256;
							X3Dat[23]=(int8)(TmpVcm)%256;	
													
							X3Dat[24]=(int8)(i-1) /256;
							X3Dat[25]=(int8)(i-1) % 256;
						}
						else  if((TpumVaccum>=100))
						{
							X3Dat[26]=0;//壓力符號(hào)
							X3Dat[27]=0;//+號(hào)
														
							while((uint32)(TmpVcm)>=100)
							{
								TmpVcm=TmpVcm/10;
								i++;
							}

							X3Dat[22]=(int8)(TmpVcm)/256;
							X3Dat[23]=(int8)(TmpVcm)%256;	
													
							X3Dat[24]=(int8)(i+1) /256;
							X3Dat[25]=(int8)(i+1) % 256;						
						}		
												

						X3Dat[18]=(int8)(LeakBase)/256;
						X3Dat[19]=(int8)(LeakBase)%256;
						
						X3Dat[20]=LeakExp/256;
						X3Dat[21]=LeakExp%256;
						
						
						X3Dat[30]=(uint16)(RemCal)/256;
						X3Dat[31]=(uint16)(RemCal)%256;
						X3Dat[32]=0;
						X3Dat[33]=0;														
 
						X3Dat[34]=StartBar/256;
						X3Dat[35]=StartBar%256;
						
 
						X3Dat[36]=DxCurent/256;
						X3Dat[37]=DxCurent%256;
						
						X3Dat[38]=TrapCurent/256;
						X3Dat[39]=TrapCurent%256;
						
						X3Dat[40]=SigVol/256;
						X3Dat[41]=SigVol%256;
						
						
					
						X3Dat[42]=LkVol/256;
						X3Dat[43]=LkVol%256;
						
						X3Dat[44]=PumVol/256;
						X3Dat[45]=PumVol%256;
						
						X3Dat[46]=0;
						X3Dat[47]=0;
						
						X3Dat[48]=TureBdTmp/256;
						X3Dat[49]=TureBdTmp%256;

						X3Dat[50]=AmpRate/256;
						X3Dat[51]=AmpRate%256;

						X3Dat[52]=Xx/256;
						X3Dat[53]=Xx%256;
						
						X3Dat[54]=0;
						X3Dat[55]=(int8)(MsOk&1);
						X3Dat[56]=0;
						X3Dat[57]=(int8)(TmpOk&1);
						X3Dat[58]=0;
						if((IO0PIN&Var1)==0)
							X3Dat[59]=0;
						else
							X3Dat[59]=1;
								
						X3Dat[60]=0;
						if((IO0PIN&Var2)==0)
							X3Dat[61]=0;
						else
							X3Dat[61]=1;							

						X3Dat[62]=0;
						if((IO0PIN&Var3)==0)
							X3Dat[63]=0;
						else
							X3Dat[63]=1;
							
						X3Dat[64]=0;
						if((IO0PIN&Var4)==0)
							X3Dat[65]=0;
						else
							X3Dat[65]=1;
							
						X3Dat[66]=0;
						if((IO1PIN&Var5)==0)
							X3Dat[67]=0;
						else
							X3Dat[67]=1;						

						X3Dat[68]=0;
						if((IO0PIN&Var6)==0)
							X3Dat[69]=0;
						else
							X3Dat[69]=1;
							

							X3Dat[70]=0;
							X3Dat[71]=(int8)(Zeroing&0x01);
																																																
						CmdAdd=RecDat0[2]*256+RecDat0[3];
						Num=RecDat0[4]*256+RecDat0[5];
						SendX340(CmdAdd,Num,X3Dat);	
										
					break;
					case 5:
						CmdAdd=RecDat0[2]*256+RecDat0[3];
						
						if (RecDat0[4]==0xff)
							X0Dat[CmdAdd/8]=X0Dat[CmdAdd/8]|(1<<(CmdAdd%8));
						else
							X0Dat[CmdAdd/8]=X0Dat[CmdAdd/8]&(~(1<<(CmdAdd%8)));	
						RespX010(CmdAdd);
				
					break;
					case 6:
						X4Dat[61]=TureBdTmp;
						//X4Dat[60]=BdTmp/256;
						CmdAdd=RecDat0[2]*256+RecDat0[3];
						Num=RecDat0[4]*256+RecDat0[5];
						SendX340(CmdAdd,Num,X4Dat);					
					break;
					case 16:
					


						
						CmdAdd=RecDat0[2]*256+RecDat0[3];
						Num=RecDat0[4]*256+RecDat0[5];
						
						for(i=0;i<Num*2;i++)
						{
							X4Dat[CmdAdd*2+i]=RecDat0[7+i];
							//X4Dat[CmdAdd*2]=RecDat[7];
							//X4Dat[CmdAdd*2+1]=RecDat[8];
						}
						
						AlarmBase=256*X4Dat[0]+X4Dat[1];
						AlarmExp =256*X4Dat[2]+X4Dat[3];
						Volum    =256*X4Dat[4]+X4Dat[5];	
						Unit	 =256*X4Dat[6]+X4Dat[7];	
						CalBase  =256*X4Dat[8]+X4Dat[9];
						CalExp  =256*X4Dat[10]+X4Dat[11];
						
						DecPort  =256*X4Dat[12]+X4Dat[13];
						VacumUnit=256*X4Dat[16]+X4Dat[17];
						FltMod   =256*X4Dat[18]+X4Dat[19];
						SavePar0=1;
	
						SetResp0(CmdAdd,Num);
					break;
					default:
					 RecLen0=0;
					break;

				}
			}	
		}
		else
		{
			RecLen0=0;
			
		}

		RecLen0=0;
		
	}
	else if(RecLen0<6)
	{
		RecLen0=0;
}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜羞羞片| 国产一区二区三区在线观看精品 | 五月天欧美精品| 91视视频在线观看入口直接观看www | 久久久九九九九| 美腿丝袜亚洲色图| 91精品国产丝袜白色高跟鞋| 亚洲网友自拍偷拍| 欧美日韩久久一区| 亚洲va欧美va人人爽午夜| 欧美亚洲国产一卡| 亚洲国产日韩精品| 欧美裸体bbwbbwbbw| 亚洲国产美女搞黄色| 欧美三级午夜理伦三级中视频| 亚洲一区二区免费视频| 欧美日韩电影在线播放| 日韩国产精品91| 日韩一级大片在线观看| 看国产成人h片视频| 欧美成人a视频| 国内精品免费**视频| 欧美国产日韩精品免费观看| 成人网页在线观看| 国产精品你懂的| 色婷婷激情久久| 亚洲成人在线免费| 91精品国产免费久久综合| 免费在线成人网| 久久久久久久久一| 99riav一区二区三区| 亚洲精品写真福利| 欧美欧美欧美欧美| 激情另类小说区图片区视频区| 国产欧美视频在线观看| 97久久精品人人做人人爽| 亚洲国产美女搞黄色| 欧美一级日韩免费不卡| 国产白丝精品91爽爽久久| 亚洲欧美日韩在线| 欧美精品久久久久久久久老牛影院| 青青草成人在线观看| 国产日韩av一区| 色综合天天天天做夜夜夜夜做| 亚洲国产一区视频| 精品欧美一区二区久久 | 国产超碰在线一区| 亚洲视频1区2区| 欧美人狂配大交3d怪物一区| 久久99精品久久久| 国产精品伦理在线| 欧美日本国产视频| 国产精品一区二区久久不卡| **欧美大码日韩| 欧美日韩精品一区二区三区 | 国产色91在线| 91久久精品一区二区二区| 日韩在线一区二区三区| 国产日本亚洲高清| 在线精品亚洲一区二区不卡| 久久99国产精品成人| 亚洲精选一二三| 日韩你懂的在线播放| av电影一区二区| 日本欧美在线观看| 国产精品乱人伦中文| 91精品久久久久久久91蜜桃| 丁香桃色午夜亚洲一区二区三区| 亚洲国产精品久久一线不卡| 国产日韩欧美一区二区三区综合| 在线看日韩精品电影| 国产精品123区| 午夜欧美电影在线观看| 国产蜜臀97一区二区三区| 精品视频一区二区不卡| 成人免费不卡视频| 日韩国产欧美三级| 中文字幕一区二区三区在线观看 | 日韩一区在线看| 日韩精品专区在线影院观看 | zzijzzij亚洲日本少妇熟睡| 日本伊人精品一区二区三区观看方式| 亚洲欧洲日韩女同| 亚洲另类春色校园小说| 亚洲精品视频一区二区| 午夜精品免费在线| 国产精品正在播放| 国产日韩av一区| 欧美夫妻性生活| 91在线无精精品入口| 激情另类小说区图片区视频区| 99精品欧美一区二区三区小说 | 亚洲男帅同性gay1069| 欧美成人a在线| 欧美日韩激情在线| 91网站在线播放| 国产98色在线|日韩| 美国毛片一区二区三区| 亚洲福利一二三区| 亚洲欧美日韩综合aⅴ视频| 久久精品亚洲麻豆av一区二区| 欧美一区二区三区色| 欧美网站大全在线观看| 97超碰欧美中文字幕| 国产激情视频一区二区三区欧美| 免费在线观看视频一区| 午夜激情综合网| 亚洲黄色录像片| 亚洲人成精品久久久久久| 国产日韩欧美a| 久久久一区二区| 精品国产免费人成在线观看| 91精品国产综合久久精品app| 欧美性淫爽ww久久久久无| 色综合一区二区三区| 不卡一区中文字幕| 成人av免费在线观看| 国产精品一区二区男女羞羞无遮挡| 成人国产一区二区三区精品| 精品久久人人做人人爰| 欧美亚洲一区三区| 国产乱子轮精品视频| 精品久久久久av影院 | av中文字幕在线不卡| 国产河南妇女毛片精品久久久 | 亚洲成人免费视频| 亚洲综合免费观看高清在线观看| 亚洲欧美在线视频| 亚洲色图19p| 亚洲免费观看高清在线观看| 成人欧美一区二区三区视频网页| 国产精品免费看片| ●精品国产综合乱码久久久久| 国产精品久久久久久久久免费桃花| 国产女主播一区| 国产精品伦理一区二区| 中文字幕视频一区| 亚洲欧洲一区二区三区| 亚洲色图20p| 一区二区三区欧美在线观看| 亚洲永久精品国产| 视频一区二区欧美| 免费成人av在线播放| 麻豆91精品91久久久的内涵| 精品在线观看视频| 国产福利91精品一区二区三区| 国产成人免费av在线| av一区二区不卡| 在线观看成人小视频| 欧美电影影音先锋| 精品国产成人系列| 亚洲国产精品精华液2区45| 国产精品福利一区二区三区| 一区二区三区在线观看欧美| 美女精品自拍一二三四| 日韩精品在线看片z| 欧美精品18+| 欧美一区二区三区在| 久久综合丝袜日本网| 亚洲国产精品v| 亚洲欧美电影一区二区| 亚洲成a人片在线不卡一二三区| 日韩在线一区二区| 国产一区二区精品久久99| 成人性生交大片免费| 欧美性猛片xxxx免费看久爱| 日韩三级高清在线| 中日韩免费视频中文字幕| 亚洲人精品午夜| 偷拍一区二区三区四区| 国产在线视频不卡二| 99久久精品国产精品久久| 欧美日韩夫妻久久| 久久久久久久久97黄色工厂| 亚洲欧洲综合另类| 蜜臀av一级做a爰片久久| 国产成人8x视频一区二区| 在线观看日韩电影| 精品国产精品网麻豆系列| 136国产福利精品导航| 日韩主播视频在线| 国产成人精品午夜视频免费| 在线看不卡av| 精品国产乱码久久久久久蜜臀 | 亚洲一区二区三区四区在线观看 | 日韩一级成人av| 国产精品午夜春色av| 亚洲欧美激情一区二区| 久久精品男人天堂av| 亚洲国产综合在线| 精品一区二区三区影院在线午夜| 91视频xxxx| 欧美成人精精品一区二区频| 成人欧美一区二区三区白人| 麻豆精品一区二区综合av| 亚洲黄色在线视频| 狠狠色狠狠色综合日日91app| 99久精品国产| 日韩午夜三级在线| 一区二区三区国产精华|