精简C++跨平台串口库,支持CMake快速配置

需积分: 5 46 下载量 110 浏览量 更新于2024-11-09 3 收藏 30KB ZIP 举报
资源摘要信息: "c++跨平台串口库serial" 标题中提到的"C++跨平台串口库serial"指的是一个用C++编写的串口通信库,它旨在提供一个跨不同操作系统平台的统一接口,以便开发者能够更容易地进行串口编程。串口通信是计算机与外部设备如调制解调器、打印机、传感器等进行数据交换的一种方式,广泛应用于嵌入式系统和自动化控制领域。 描述中的"基于***项目修改"说明了这个库是根据一个已在GitHub上托管的项目进行修改得来的,原项目地址是***。这表明该库的开发可能是基于某个特定版本的串口通信库,而且特别提到了"boostless",这可能意味着原库依赖于Boost库,而修改后的版本则移除了对Boost库的依赖。Boost库是一个广泛使用的C++库,提供了包括线程、文件系统、正则表达式在内的多种功能。将依赖移除后,库的使用变得更加轻量,无需安装Boost库。 "无需catkin只要cmake即可使用"说明了库的编译与构建可以只依赖CMake工具,而不需要catkin构建系统。catkin是ROS(Robot Operating System,机器人操作系统)中的一个构建系统,用于构建和管理ROS包。CMake是一个跨平台的自动化构建系统,使用CMakeLists.txt文件作为配置文件,能够生成标准的构建文件,如Makefile等。这就意味着,用户在没有安装catkin的情况下,也可以利用CMake来编译和安装这个串口库,从而扩大了库的使用范围和便利性。 标签"C++ serial"表明这是一个与串口通信相关的C++库,简明地概括了库的主要功能和使用的编程语言。 压缩包子文件的文件名称列表中包含了"CMakeLists.txt"、"include"和"src"三个文件夹。其中"CMakeLists.txt"是一个文本文件,包含了使用CMake进行项目配置和构建时所需的所有指令,用于指定编译选项、依赖关系、查找并链接库文件等。"include"文件夹通常包含了库公开的头文件,这些头文件声明了库中可用的类、函数和变量,供项目中其他源文件包含使用,实现功能。"src"文件夹则包含了实际的源代码文件,即库中函数和类的实现。 综上所述,这个"C++跨平台串口库serial"是一个经过修改的库,它能够跨平台工作,且不依赖于Boost库和catkin构建系统,同时它使用CMake作为其构建工具。开发者可以利用该库在C++项目中方便地实现串口通信功能,无论是在Linux、Windows还是macOS等不同操作系统上。
598 浏览量
PComm 库函数 PComm 库函数是台湾MOXA公司提供的,他为用户提供了基于win32 api的开发接口。 PComm库函数分为7大类 控制函数、数据输入函数、数据输出函数、状态函数、事件驱动函数、传输文件函数、特殊设定函数 上述函数均返回int型数据,若函数调用成功则返回0,否则返回一个负整数。 控制函数主要包括 sio_open(PortNum) 打开串口 sio_close(PortNum) 关闭串口 sio_ioctl(PortNum, baud, mode)设置串口的工作模式,包括 波特率,数据位元,停止位,效验等 sio_flush(portNum,func)清除发送、接收缓冲区 其中func 为0清空输入 ,为1清空输出,为2清空输入输出 sio_SetWriteTimeouts(int port,DWORD TotalTimeouts):设置串口写操作的超时。 sio_lctrl(Portnum,mode) 设置串口RTS/DTS。 待定 数据输入函数主要包括 sio_getch(PortNum) 从输入缓冲区读一个字符 sio_read(PortNum,buf,len) 从输入缓冲区读指定个数的字符 sio_iqueue(Portnum)读取输入缓冲区中的字符长度 数据输出函数主要包括 sio_putch(PortNum) 写一个字符到输出缓冲区 sio_write(PortNum,buf,len)写指定个数的字符到输出缓冲区 状态函数主要包括 sio_lstatus(portNum)获取串口的CTS,DSR,DCD,RI线的状态 sio_getbaud(portNum)获取串口的波特率 sio_getmode(portNum)获取串口的工作模式。对应sio_ioct函数 事件函数主要包括 sio_term_irq(portNum,func,code) 当接收到指定字符时响应事件,func为回调函数名,code为指定的字符 sio_cnt_irq(PortNum,func,count) 当接收到指定个数字元时响应事件,func为回调函数名,count接收的个数 传输文件函数主要包括 sio_FtASCIITx(portNum,fname,func,key)发送一个文本文件 sio_FtASCIIRx(portNum,fname,func,Key,sec)接收一个文本文件 int i,Ret,DataLen; FILE *fp1; uchar RetDataC[30],WriteData[24],PSC[5]; Ret = sio_open(port); if (Ret != SIO_OK ) return(-1);//打开串口错误 Ret = sio_ioctl (port, B9600, P_NONE | BIT_8 | STOP_1 ); if (Ret != SIO_OK) { sio_close(port); return(-2);//设置串口参数失败 } /*Ret = sio_lctrl (port, C_DTR | C_RTS ); if (Ret != SIO_OK) { sio_close(port); return(-2);//设置串口参数失败 }*/ /*Ret = sio_flush(port,2); if (Ret != SIO_OK){ sio_close(port); return(-3);//清空 输入和输出缓冲区的数据 }*/