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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? commun.c

?? 很好的Modbus協義庫棧
?? C
字號:
#include <modbus.h>#include <fcntl.h>/************************************************************************************		Mb_test_crc : check the crc of a packet*************************************************************************************input :-------trame  : packet with is crcn      : lenght of the packet without tht crc                              ^^^^^^^answer :--------1 = crc fealure0 = crc ok************************************************************************************/int Mb_test_crc(byte trame[],int n){	unsigned int crc,i,j,carry_flag,a;	crc=0xffff;	for (i=0;i<n;i++)	{		crc=crc^trame[i];		for (j=0;j<8;j++)		{			a=crc;			carry_flag=a&0x0001;			crc=crc>>1;			if (carry_flag==1)				crc=crc^0xa001;		}	}   if (Mb_verbose)      printf("test crc %0x %0x\n",(crc&255),(crc>>8));	if ((trame[n+1]!=(crc>>8)) || (trame[n]!=(crc&255)))      return 1;   else      return 0;}/************************************************************************************		Mb_calcul_crc : compute the crc of a packet and put it at the end*************************************************************************************input :-------trame  : packet with is crcn      : lenght of the packet without tht crc                              ^^^^^^^answer :--------crc************************************************************************************/int Mb_calcul_crc(byte trame[],int n){	unsigned int crc,i,j,carry_flag,a;	crc=0xffff;	for (i=0;i<n;i++)	{		crc=crc^trame[i];		for (j=0;j<8;j++)		{			a=crc;			carry_flag=a&0x0001;			crc=crc>>1;			if (carry_flag==1)				crc=crc^0xa001;		}	}	trame[n+1]=crc>>8;	trame[n]=crc&255;	return crc;}/************************************************************************************		Mb_close_device : Close the device*************************************************************************************input :-------Mb_device : device descriptorno output************************************************************************************/void Mb_close_device(int Mb_device){  if (tcsetattr (Mb_device,TCSANOW,&saved_tty_parameters) < 0)    perror("Can't restore terminal parameters ");  close(Mb_device);}/************************************************************************************		Mb_open_device : open the device*************************************************************************************input :-------Mbc_port   : string with the device to open (/dev/ttyS0, /dev/ttyS1,...)Mbc_speed  : speed (baudrate)Mbc_parity : 0=don't use parity, 1=use parity EVEN, -1 use parity ODDMbc_bit_l  : number of data bits : 7 or 8 	USE EVERY TIME 8 DATA BITSMbc_bit_s  : number of stop bits : 1 or 2    ^^^^^^^^^^^^^^^^^^^^^^^^^^answer  :---------device descriptor************************************************************************************/int Mb_open_device(char Mbc_port[20], int Mbc_speed, int Mbc_parity, int Mbc_bit_l, int Mbc_bit_s){  int fd;  /* open port */  fd = open(Mbc_port,O_RDWR | O_NOCTTY | O_NONBLOCK | O_NDELAY) ;  if(fd<0)  {    perror("Open device failure\n") ;    exit(-1) ;  }  /* save olds settings port */  if (tcgetattr (fd,&saved_tty_parameters) < 0)  {    perror("Can't get terminal parameters ");    return -1 ;  }  /* settings port */  bzero(&Mb_tio,sizeof(&Mb_tio));  switch (Mbc_speed)  {     case 0:        Mb_tio.c_cflag = B0;        break;     case 50:        Mb_tio.c_cflag = B50;        break;     case 75:        Mb_tio.c_cflag = B75;        break;     case 110:        Mb_tio.c_cflag = B110;        break;     case 134:        Mb_tio.c_cflag = B134;        break;     case 150:        Mb_tio.c_cflag = B150;        break;     case 200:        Mb_tio.c_cflag = B200;        break;     case 300:        Mb_tio.c_cflag = B300;        break;     case 600:        Mb_tio.c_cflag = B600;        break;     case 1200:        Mb_tio.c_cflag = B1200;        break;     case 1800:        Mb_tio.c_cflag = B1800;        break;     case 2400:        Mb_tio.c_cflag = B2400;        break;     case 4800:        Mb_tio.c_cflag = B4800;        break;     case 9600:        Mb_tio.c_cflag = B9600;        break;     case 19200:        Mb_tio.c_cflag = B19200;        break;     case 38400:        Mb_tio.c_cflag = B38400;        break;     case 57600:        Mb_tio.c_cflag = B57600;        break;     case 115200:        Mb_tio.c_cflag = B115200;        break;     case 230400:        Mb_tio.c_cflag = B230400;        break;     default:        Mb_tio.c_cflag = B9600;  }  switch (Mbc_bit_l)  {     case 7:        Mb_tio.c_cflag = Mb_tio.c_cflag | CS7;        break;     case 8:     default:        Mb_tio.c_cflag = Mb_tio.c_cflag | CS8;        break;  }  switch (Mbc_parity)  {     case 1:        Mb_tio.c_cflag = Mb_tio.c_cflag | PARENB;        Mb_tio.c_iflag = ICRNL;        break;     case -1:        Mb_tio.c_cflag = Mb_tio.c_cflag | PARENB | PARODD;        Mb_tio.c_iflag = ICRNL;        break;     case 0:     default:        Mb_tio.c_iflag = IGNPAR | ICRNL;        break;  }  if (Mbc_bit_s==2)     Mb_tio.c_cflag = Mb_tio.c_cflag | CSTOPB;       Mb_tio.c_cflag = Mb_tio.c_cflag | CLOCAL | CREAD;  Mb_tio.c_oflag = 0;  Mb_tio.c_lflag = 0; /*ICANON;*/  Mb_tio.c_cc[VMIN]=1;  Mb_tio.c_cc[VTIME]=0;  /* clean port */  tcflush(fd, TCIFLUSH);  fcntl(fd, F_SETFL, FASYNC);  /* activate the settings port */  if (tcsetattr(fd,TCSANOW,&Mb_tio) <0)  {    perror("Can't set terminal parameters ");    return -1 ;  }    /* clean I & O device */  tcflush(fd,TCIOFLUSH);     if (Mb_verbose)   {      printf("setting ok:\n");      printf("device        %s\n",Mbc_port);      printf("speed         %d\n",Mbc_speed);      printf("data bits     %d\n",Mbc_bit_l);      printf("stop bits     %d\n",Mbc_bit_s);      printf("parity        %d\n",Mbc_parity);   }   return fd ;}/************************************************************************************		Mb_rcv_print : print a characterThis function can be use with slave or master to print a character when it receive one*************************************************************************************input :-------c : characterno output************************************************************************************/void Mb_rcv_print(unsigned char c){   printf("-> receiving byte :0x%x %d \n",c,c);}/************************************************************************************		Mb_snd_print : print a characterThis function can be use with slave or master to print a character when it send one*************************************************************************************input :-------c : characterno output************************************************************************************/void Mb_snd_print(unsigned char c){   printf("<- sending byte :0x%x %d \n",c,c);}char *Mb_version(void){   return VERSION;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久综合激的五月天| 国产精品嫩草久久久久| 亚洲人成电影网站色mp4| 国产一区二区三区不卡在线观看| 日韩欧美三级在线| 日本午夜精品一区二区三区电影 | 国产精品欧美一级免费| 成人一区二区三区在线观看| 亚洲女人的天堂| 精品嫩草影院久久| 欧美性感一区二区三区| 国产一区二区日韩精品| 久久亚洲二区三区| 欧美视频在线观看一区二区| 麻豆91精品91久久久的内涵| 国产拍揄自揄精品视频麻豆| 一本一本大道香蕉久在线精品 | 国产日韩精品一区二区三区| av中文字幕不卡| 香蕉加勒比综合久久| 久久欧美中文字幕| 欧美另类一区二区三区| 国产成人在线视频网站| 日本亚洲视频在线| 亚洲日本va在线观看| 久久蜜臀中文字幕| 欧美精品xxxxbbbb| 不卡在线观看av| 国产在线精品不卡| 精品一区免费av| 午夜激情一区二区三区| 亚洲精品日韩专区silk| 欧美xxxx在线观看| 欧美一区二区视频在线观看 | 国产精品一区二区不卡| 午夜精品视频一区| 亚洲一区二区三区小说| 亚洲三级免费电影| 成人免费在线播放视频| 欧美国产欧美综合| 国产日韩欧美精品在线| 久久精品人人做人人综合| 26uuu国产在线精品一区二区| 欧美区视频在线观看| 69久久99精品久久久久婷婷| 欧美日韩三级在线| 91精品国产综合久久久蜜臀粉嫩 | 国产精品另类一区| 国产精品每日更新在线播放网址| 国产精品五月天| 国产精品伦一区| 亚洲与欧洲av电影| 日本在线观看不卡视频| 看电视剧不卡顿的网站| 国内精品国产三级国产a久久| 国产在线日韩欧美| 成人黄色小视频| 欧美日高清视频| 国产偷国产偷精品高清尤物| 久久久久久亚洲综合| 亚洲图片你懂的| 久久99久久久久久久久久久| 久久99精品国产麻豆不卡| 成人在线综合网| 在线成人免费观看| 国产精品欧美久久久久无广告 | 蜜臀va亚洲va欧美va天堂| 国产一区二区成人久久免费影院| 97精品国产97久久久久久久久久久久 | av日韩在线网站| 欧美一二三区在线| 亚洲综合图片区| 日韩精品一区二区三区四区视频| 中文字幕欧美激情| 日韩电影一二三区| 欧美性极品少妇| 一区二区三区美女视频| 韩国精品一区二区| 国产一区二区调教| 国产福利一区二区| 欧美日韩黄色一区二区| 亚洲高清视频的网址| 日韩一级大片在线| 国产一区二区三区在线观看免费视频| 色欧美片视频在线观看| 国产精品日韩精品欧美在线| 黑人巨大精品欧美一区| 欧美一级精品大片| 久久精品国内一区二区三区| 色婷婷狠狠综合| 亚洲女厕所小便bbb| 一本大道久久精品懂色aⅴ| 国产欧美日韩在线视频| 六月丁香综合在线视频| 日韩欧美国产1| 精品一区中文字幕| 久久久久国产精品免费免费搜索| 国产精品一二三| 亚洲视频你懂的| 99精品视频一区二区三区| 久久久电影一区二区三区| 国模套图日韩精品一区二区| 日韩精品一区二区在线观看| 国产一区二区视频在线播放| 精品久久一区二区三区| 成人蜜臀av电影| 亚洲影视资源网| www欧美成人18+| av在线一区二区三区| 亚洲制服丝袜在线| 日韩一区二区免费电影| 国产成人av一区二区| 一区二区高清视频在线观看| 欧美三级在线播放| 久久精品噜噜噜成人av农村| 精品国产三级电影在线观看| 国产精品一区二区三区网站| 亚洲精品中文在线观看| 日韩欧美第一区| 欧美日韩一二区| 99r国产精品| 99久久精品情趣| 成人av免费在线观看| 国产在线一区观看| 国产麻豆精品视频| 国产成人免费视频一区| 麻豆成人综合网| 国产精品人人做人人爽人人添| 欧美视频在线不卡| 99精品视频在线播放观看| 激情六月婷婷久久| 亚洲一区二区视频| 亚洲欧洲制服丝袜| 国产欧美精品一区二区色综合朱莉| 91精品国产免费| 欧美另类高清zo欧美| 欧美亚洲综合久久| 欧美日韩一区二区三区四区 | 亚洲人亚洲人成电影网站色| 91精品婷婷国产综合久久性色| 欧美午夜电影网| 欧美性一二三区| 欧美丝袜丝nylons| 欧美亚洲综合一区| 亚洲国产成人在线| 亚洲色图一区二区| 亚洲精品高清在线观看| 亚洲日本免费电影| 一区二区三区中文在线观看| 亚洲一二三区视频在线观看| 一区二区三区91| 奇米影视在线99精品| 国产成人免费av在线| 91色在线porny| 欧美日韩二区三区| 精品国产凹凸成av人网站| 精品国精品国产| 中文字幕乱码一区二区免费| 亚洲嫩草精品久久| 蜜臀精品久久久久久蜜臀| 成人动漫精品一区二区| 91免费视频大全| 精品少妇一区二区三区| 亚洲丝袜制服诱惑| 日韩精品视频网站| 成人av手机在线观看| 欧美精品高清视频| 欧美激情在线一区二区三区| 亚洲成av人片www| 国产成人综合精品三级| 精品视频在线免费看| 中文字幕不卡在线| 久久精品国内一区二区三区| 99久久99久久精品国产片果冻| 欧美一级国产精品| 亚洲成人一区二区| 成人av在线一区二区三区| 日韩视频一区二区在线观看| 亚洲欧美日韩久久| 国产成人啪午夜精品网站男同| 欧美精品 日韩| 樱花影视一区二区| 精品亚洲欧美一区| 亚洲精品国久久99热| 亚洲日本一区二区三区| 国产精品一区二区果冻传媒| 色婷婷亚洲精品| 亚洲最色的网站| 激情欧美一区二区三区在线观看| 欧美老肥妇做.爰bbww视频| 精品久久久久久最新网址| 欧美精品少妇一区二区三区| 欧美丰满美乳xxx高潮www| 欧美系列亚洲系列| 欧美丰满嫩嫩电影| 国产日产欧产精品推荐色| 亚洲欧美另类久久久精品2019| 一区av在线播放| 黑人巨大精品欧美一区| 欧美制服丝袜第一页|