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

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

?? serialport.cpp

?? 用一個開源碼ASCII ENCODE,DECODE,來發送ASCII短信
?? CPP
字號:
#include "SerialPort.h"#include <iostream>#include <sys/ioctl.h>using namespace std ;using namespace SerialPorts ;int SerialPort::open(char * devicename) {		this->fd = ::open(devicename, O_RDWR | O_NOCTTY | O_NDELAY);		if (this->fd == -1) {		/*		 * Could not open the port.		 */		//printf("open_port: Unable to open %s\n", serialPort);		this->state = -1;	} else {		/*		 * Restore blocking behaviour of the port, as we opened it with O_NDELAY		 */		struct termios options;				/* Get Current Settings of the fileDescriptor */		if ( tcgetattr(this->fd, &options) != 0 ){			this->state = -1;			return this->state;		}		options.c_cflag |= (CLOCAL | CREAD);		options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);		if ( tcsetattr(this->fd, TCSANOW, &options) != 0 ) {			this->state = -1;			return this->state;		}	  	fcntl(fd, F_SETFL, 0);		this->state = 1;	}	return this->state;}int SerialPort::close(void) {	this->state = -1;	return ::close(this->fd);}int SerialPort::status() {	return this->state;}int SerialPort::write(char * data, int lenght) {//	cout << "Size van data is : " << sizeof(data) << endl;//	cout << "Size van data is : " << sizeof(data) << endl;//	cout << "String is : " << data << endl;	return ::write(this->fd, data, lenght);}char SerialPort::readChar() {	char character = '\0';	char * character_ptr;	int bytesRecv;		character_ptr = &character;	bytesRecv = read(this->fd, character_ptr, sizeof(character));	if ( bytesRecv == sizeof(character) ){		return character;	}	return 0;}char * SerialPort::readBytes(int bytes) {	char * buffer =  (char *) malloc(bytes);	int bytesRead;	bytesRead = ::read(this->fd, buffer, bytes);	if ( bytesRead != bytes ) {		cout << "OOPS bytes <> bytes_wait" << endl;	}	return buffer;}int SerialPort::dataWaiting() {	int bytes;    ioctl(this->fd, FIONREAD, &bytes);	return bytes;}enum BaudRateEnum SerialPort::setBaudRate( enum BaudRateEnum baud) {	if ( ! this->state ) {		this->baud = BAUD_ERR;		return this->baud;	}    switch ( baud ) {	    case BAUD_50:	    case BAUD_75:   	    case BAUD_110:  	    case BAUD_134:  	    case BAUD_150:  	    case BAUD_200:  	    case BAUD_300:  	    case BAUD_600:  	    case BAUD_1200: 	    case BAUD_1800: 	    case BAUD_2400: 	    case BAUD_4800: 	    case BAUD_9600: 	    case BAUD_19200:	    case BAUD_38400:	    case BAUD_57600:	    case BAUD_115200:    		   	struct termios options;						/* Get Current Settings of the fileDescriptor */			if ( tcgetattr(this->fd, &options) != 0 ){				this->state = -1; 			}						/* Set port speed to xxx baud */			if ( cfsetispeed(&options, baud) != 0 ){				this->state = -1;			}		    if ( cfsetospeed(&options, baud) != 0 ){				this->state = -1;			}			if ( this->state == -1 ) {				this->baud = BAUD_ERR;			} else {				this->baud = baud;			}			return this->baud;		    break ;    	    default:    	    this->baud = BAUD_ERR;        	return this->baud;        	break;    };//switch}enum CharSizeEnum SerialPort::setCharSize( enum CharSizeEnum charsize) {	if ( ! this->state ) {		this->charsize = CHAR_SIZE_ERR;		return this->charsize;	}		struct termios options;	if ( tcgetattr(this->fd, &options) != 0 ) {		this->state = -1;		this->charsize = CHAR_SIZE_ERR;		return this->charsize;	}		switch ( charsize ) {		case CHAR_SIZE_5:        case CHAR_SIZE_6:        case CHAR_SIZE_7:        case CHAR_SIZE_8:                	if( charsize == CHAR_SIZE_8 ) {            	options.c_iflag &= ~ISTRIP ; // clear the ISTRIP flag.        	} else {            	options.c_iflag |= ISTRIP ;  // set the ISTRIP flag.        	}        	options.c_cflag &= ~CSIZE;        	options.c_cflag |= charsize;        	        	if ( tcsetattr(this->fd, TCSANOW, &options) != 0 ){				this->state = -1;				this->charsize = CHAR_SIZE_ERR;			} else {				this->charsize = charsize;			}			return this->charsize;        	break ;        	        default:        	this->charsize = CHAR_SIZE_ERR;        	return this->charsize;        	break;	}//switch}enum ParityEnum SerialPort::setParity( enum ParityEnum parity) {	if ( ! this->state ) {		this->parity = PARITY_ERR;		return this->parity;	}		struct termios options ;	if ( tcgetattr(this->fd, &options) != 0 ) {		this->state = -1;		this->parity = PARITY_ERR;		return this->parity;	}    switch ( parity ) {	    case PARITY_EVEN:	        options.c_cflag |= PARENB ;	        options.c_cflag &= ~PARODD ;	        break ;	    case PARITY_ODD:	        options.c_cflag |= PARENB ;	        options.c_cflag |= PARODD ;	        break ;	    case PARITY_NONE:	        options.c_cflag &= ~PARENB ;	        break ;	    default:			this->parity = PARITY_ERR;			return this->parity;	}	if ( tcsetattr(this->fd, TCSANOW, &options) != 0 ){		this->state = -1;		this->parity = PARITY_ERR;	} else {		this->parity = parity;	}	return this->parity;}int SerialPort::setStopBits(int stopbits) {	if ( ! this->state ) {		this->stopbits = -1;		return this->parity;	}		struct termios options ;	if ( tcgetattr(this->fd, &options) != 0 ) {		this->state = -1;		this->stopbits = -1;		return this->parity;	}	switch ( stopbits ) {		case 1:			options.c_cflag &= ~CSTOPB ;			break;		case 2:			options.c_cflag |= CSTOPB ;			break;		default:			this->stopbits = -1;			return this->stopbits;			break;	}		if ( tcsetattr(this->fd, TCSANOW, &options) != 0 ){		this->state = -1;		this->stopbits = -1;		return this->stopbits;	}	this->stopbits = stopbits;	return this->stopbits;}enum FlowControlEnum SerialPort::setFlowControl( enum FlowControlEnum flowctrl) {	if ( ! this->state ) {		this->flowctrl = FLOW_CONTROL_ERR;		return this->flowctrl;	}		struct termios options ;	if ( tcgetattr(this->fd, &options) != 0 ) {		this->state = -1;		this->flowctrl = FLOW_CONTROL_ERR;		return this->flowctrl; 	}		switch ( flowctrl ) {		case FLOW_CONTROL_HARD:			options.c_iflag &= ~ (IXON|IXOFF);        	options.c_cflag |= CRTSCTS;			options.c_cc[VSTART] = _POSIX_VDISABLE;        	options.c_cc[VSTOP] = _POSIX_VDISABLE;        	break;		case FLOW_CONTROL_SOFT:			options.c_iflag |= IXON|IXOFF;			options.c_cflag &= ~CRTSCTS;			options.c_cc[VSTART] = CTRL_Q ; // 0x11 (021) ^q			options.c_cc[VSTOP]  = CTRL_S ; // 0x13 (023) ^s			break;		case FLOW_CONTROL_NONE:			options.c_iflag &= ~(IXON|IXOFF);			options.c_cflag &= ~CRTSCTS;			break;		default:			this->flowctrl = FLOW_CONTROL_ERR;			return this->flowctrl;			break;	}		if ( tcsetattr(this->fd, TCSANOW, &options) != 0 ){		this->state = -1;		this->flowctrl = FLOW_CONTROL_ERR;		return this->flowctrl;	}	this->flowctrl = flowctrl;	return this->flowctrl;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜av电影| 欧美激情一区二区三区不卡| 亚洲精品在线观| 亚洲午夜一区二区| 成人在线综合网站| 日韩欧美国产精品一区| 亚洲欧洲色图综合| 国产99久久久久| 精品国产乱码久久久久久牛牛| 一区二区视频在线看| 国产盗摄一区二区| 精品理论电影在线观看| 日韩影院精彩在线| 欧美日韩一区二区不卡| 亚洲欧洲综合另类| a在线欧美一区| 国产精品萝li| 北条麻妃国产九九精品视频| 欧美精品一区二区三区视频| 美腿丝袜亚洲一区| 欧美一区二区视频在线观看2020 | 日韩免费视频线观看| 一区二区在线观看视频在线观看| 成人一区二区视频| 久久久精品免费网站| 日本不卡一二三区黄网| 91麻豆精品国产自产在线观看一区 | 日韩精品影音先锋| 美女一区二区视频| 精品福利一区二区三区免费视频| 麻豆精品久久精品色综合| 日韩一区二区免费视频| 久久99精品久久久久久久久久久久| 欧美一区二区三区四区在线观看| 亚洲午夜国产一区99re久久| 欧美日韩国产影片| 青青草视频一区| 久久综合国产精品| 国产成人在线视频播放| 国产精品国产三级国产aⅴ原创| 成人国产精品免费网站| 一区二区三区视频在线看| 欧美在线999| 日本午夜一本久久久综合| 欧美一区二区三区电影| 寂寞少妇一区二区三区| 国产精品日韩精品欧美在线| 91亚洲精品久久久蜜桃| 一区二区三区产品免费精品久久75| 欧美视频中文一区二区三区在线观看 | 日韩二区在线观看| 精品少妇一区二区三区免费观看| 国产黄色精品视频| 亚洲精品综合在线| 欧美一卡二卡三卡四卡| 久久99国产精品久久99果冻传媒| 国产日韩欧美电影| 91精品办公室少妇高潮对白| 日韩va欧美va亚洲va久久| 久久嫩草精品久久久精品一| 99久久精品国产观看| 日韩精品一卡二卡三卡四卡无卡| 久久久久国产精品麻豆| 91美女片黄在线| 久热成人在线视频| 亚洲美女屁股眼交| 日韩美女视频一区二区在线观看| 国产v综合v亚洲欧| 舔着乳尖日韩一区| 一区免费观看视频| 日韩精品一区二区在线| 97超碰欧美中文字幕| 免费看日韩a级影片| 亚洲欧美一区二区在线观看| 欧美一区二区三区在| 91美女视频网站| 国产乱人伦偷精品视频免下载| 亚洲一区二区欧美| 国产精品嫩草影院com| 欧美日韩国产区一| 91社区在线播放| 韩国三级中文字幕hd久久精品| 亚洲自拍偷拍网站| 国产精品网站导航| 精品日韩一区二区三区免费视频| 色婷婷一区二区三区四区| 国产不卡在线一区| 久久精品噜噜噜成人av农村| 日韩美女视频一区| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美日韩在线播放| 91免费视频网址| 国产成人亚洲综合a∨婷婷 | 成人激情综合网站| 精品午夜久久福利影院| 日本女优在线视频一区二区| 亚洲一区在线视频| 亚洲男同性恋视频| 亚洲视频每日更新| 国产精品久久久久久久蜜臀| 久久午夜色播影院免费高清| 日韩午夜在线影院| 91精品麻豆日日躁夜夜躁| 在线观看一区二区视频| 色综合色综合色综合色综合色综合| 国产成人av电影在线观看| 国产精品一卡二| 国产精品一级片| 成人国产精品视频| 99久久精品国产观看| 91网站最新网址| 日本久久一区二区| 在线观看免费成人| 日本精品裸体写真集在线观看| 91论坛在线播放| 在线欧美日韩国产| 欧美区一区二区三区| 9191成人精品久久| 欧美一区日韩一区| 日韩三级视频中文字幕| 精品国产一区二区三区久久影院 | 亚洲免费伊人电影| 亚洲精品少妇30p| 图片区小说区区亚洲影院| 秋霞影院一区二区| 国内精品不卡在线| 成人永久aaa| 91国内精品野花午夜精品| 在线观看一区二区精品视频| 欧美日韩精品福利| 精品国产伦一区二区三区观看方式 | 精品国产亚洲在线| 国产欧美视频一区二区三区| 亚洲欧美怡红院| 天天色 色综合| 国产在线看一区| 丁香六月综合激情| 一本大道久久a久久综合婷婷| 欧美色区777第一页| 欧美成人猛片aaaaaaa| 国产色产综合产在线视频| 亚洲人成亚洲人成在线观看图片| 亚洲va国产va欧美va观看| 久久国产福利国产秒拍| 韩国av一区二区三区在线观看| 成人精品鲁一区一区二区| 欧美丝袜第三区| 国产亚洲欧美一级| 亚洲永久精品国产| 国产成人综合亚洲91猫咪| 91久久精品午夜一区二区| 日韩精品一区在线观看| 亚洲人一二三区| 另类小说一区二区三区| 91在线看国产| 日韩视频一区二区三区| 国产精品成人免费精品自在线观看 | 精品一区二区三区日韩| 成人做爰69片免费看网站| 欧美日韩视频在线第一区| 久久精品欧美一区二区三区不卡| 亚洲国产精品视频| 成人av集中营| 亚洲精品一区二区三区蜜桃下载 | 亚洲黄色免费网站| 国产一区二区毛片| 正在播放亚洲一区| 一区二区三区电影在线播| 懂色av一区二区夜夜嗨| 日韩欧美一二三四区| 亚洲一区二区三区美女| 99麻豆久久久国产精品免费| 久久网站最新地址| 久久99国产精品尤物| 欧美精品在线观看一区二区| 亚洲免费观看高清完整版在线| 国产麻豆91精品| 精品久久99ma| 蜜臀av性久久久久蜜臀aⅴ| 在线免费不卡视频| 亚洲美腿欧美偷拍| 91浏览器在线视频| 亚洲日本免费电影| 91丨九色丨国产丨porny| 国产精品午夜在线| 国产91精品一区二区麻豆亚洲| 精品三级av在线| 精品一区二区三区av| 欧美成人一级视频| 极品美女销魂一区二区三区免费| 91精品欧美一区二区三区综合在 | 欧美成人精品3d动漫h| 丝袜亚洲另类欧美综合| 欧美亚洲动漫精品| 亚洲一区二区三区四区五区中文 | 久久久久综合网| 国产电影精品久久禁18| 国产日韩欧美不卡在线| 国产91清纯白嫩初高中在线观看| 国产午夜精品久久|