boost库在工作(40)串行通讯
来源:互联网 发布:类似快聊软件 编辑:程序博客网 时间:2024/09/21 09:26
现代的计算机技术进步很快,各种的通讯也日新月异,像USB、网络、蓝牙、WIFI等通讯技术飞速地出现,改变了整个计算机的通讯能力,速度已经达到GBit级别。但是有一种最原始的通讯方式,还是保留了30年,它就是串行接口通讯。前一些年,有很多计算机已经准备把这个接口去掉,全部换USB了,近年来又看到串口恢复过来,重新成为基本计算机配置。那为什么呢?其实串口具体一个大特点,就是简单,它简单到不需要什么驱动代码,不用担心中间有什么复杂处理出错。在计算机与外设通讯速度不高的情况下,它还是很合适的接口,比如在工业里一些简单监控,一些命令发送;在嵌入式软件开发里,调试软件信息显示和自动化测试。这时需要开发一些开发工具或者自动化测试工具辅助要完成这个任务,那么怎么样才能用C++最快捷,又简单地完成任务呢?下面就来看看使用boost库里提供的类,很容易就完成了这个任务,其实只需要开发10多分钟就可以了,例子的代码如下:
// boost_029.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <boost/asio.hpp>#include <boost/asio/serial_port.hpp> #include <iostream>#include <fstream>////串口接收,并把收到数据写到文件里。//软件开发人员: 蔡军生 2013-09-01 //QQ: 9073204//void ComOutputToFile(void) {//设置本化的UNICODE输出std::wcout.imbue(std::locale("chs"));std::wcout << L"开始写串口数据到文件..." << std::endl;//创建保存串口输出的文件.std::ofstream outfile("Com2File.dat", std::ios::binary | std::ios::out);if (!outfile.good()){std::wcout << L"出错了" << std::endl;return;}outfile.flush();//创建IO服务boost::asio::io_service ioService;//创建串口对象。boost::asio::serial_port port(ioService);//打开串口1port.open("COM1");//设置通讯波特率port.set_option(boost::asio::serial_port_base::baud_rate(115200));//循环地接收串口的数据。char chRecv = 0;const int nOneByte = 1;do{//每次收到一个字符就输出到文件。boost::asio::read(port, boost::asio::buffer(&chRecv,nOneByte));std::cout << chRecv;outfile<<chRecv;//立即输出到文件。outfile.flush();}while(true);port.close();}int _tmain(int argc, _TCHAR* argv[]){ComOutputToFile();return 0;}
- boost库在工作(40)串行通讯
- boost库在工作(1)第一个例子
- boost库在工作(16)线程之一
- boost库在工作(17)线程之二
- boost库在工作(18)线程之三
- boost库在工作(19)线程之四
- boost库在工作(20)线程之五
- boost库在工作(21)任务之一
- boost库在工作(22)任务之二
- boost库在工作(23)任务之三
- boost库在工作(24)任务之四
- boost库在工作(25)任务之五
- boost库在工作(26)网络客户端之一
- boost库在工作(27)网络客户端之二
- boost库在工作(28)网络客户端之三
- boost库在工作(29)网络客户端之四
- boost库在工作(30)网络客户端之五
- boost库在工作(31)网络服务端之一
- json详解
- 数据连接 3G ppp pppd
- UITableViewCell的显示格式
- 求两个数的最大公约数
- javascript 去除字符串空格
- boost库在工作(40)串行通讯
- SqlServer - 工作总结
- 我的测试
- 北广传媒RTMP流媒体服务器漏洞
- jQuery跨任何域
- Google2014年大中华区在线测试题
- 黑马程序员_<<生产者和消费着>>
- android 关机闹钟
- 在Centos 5.x或6.x上安装RHEL EPEL Repo