串口通信编程一例

医院新进一台生化分析仪,这台机器可以通过串口和电脑连接,化验结果可以通过串口传到电脑进行处理。

厂家提供了电脑端的软件,经过测试,软件可以接收到化验数据,但打印格式并不符合医院的要求,更重要的是,软件没有数据导出功能,化验结果不能整理到医院HIS系统里。

为了解决上问题,只能重新编程解决问题。

在Google上查询,Perl要处理串口通信要安装Win32::Serialport模块,如果在Linux上可以用Device::Serialport模块。

化验室的电脑是XP,在ActivePerl中安装Win32::Serialport模块,在ActivePerl中试了几次,没有安装好,因为这个模块需要编译,而XP上没有编译器。

后来想起了草莓Perl,自带编译器,所以安装了草莓Perl,顺利完成Win32::SerialPort和Win32::API两个模块。

化验室的电脑只需要接收数据,在Google上查“perl serialport”,会找到一些程序例子,经过简单的修改就可以在串口接收数据。

一旦接收数据成功,其他的问题,比如整理打印格式、写入其他数据库等等,都很好解决。

以下是部分关键代码:

#!/usr/bin/perl

use Win32::SerialPort;

my $port = 'COM1';
my $PortObj = new Win32::SerialPort ($port) || die "Can't open $port: $^E\n";    # $quiet is optional

$PortObj->error_msg(1);            # use built-in error messages
$PortObj->user_msg(1);

$PortObj->databits(8);
$PortObj->baudrate(9600);
$PortObj->parity("none");
$PortObj->stopbits(1);

$PortObj->write_settings || die "Couldn't write settings\n";
sleep 3;

 my $InBytes = 3000;
 my ($count_in, $string_in) = $PortObj->read($InBytes);

 if ($count_in != 0)
 {
  print "Status: $count_in \n$string_in\n";
  print "$string_in\n";
 }


undef $PortObj;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21129783/viewspace-662258/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21129783/viewspace-662258/

书名:《C/C++串口通信典型应用实例编程实践》(电子工业出版社.曹卫杉) PDF扫描版,全书共分10章,共316页。 内容介绍 本书从工程应用的角度出发,对目前流行的三种不同类型的C/C++语言(包括C++ Builder、Visual C++和LabWindows/CVI)开发串口通信(也称为串行通信)程序进行了阐述。 基础篇简单介绍了C/C++语言实现串口通信需要的基本知识;应用篇通过PC与PC、PC与单片机、PC与智能仪器、PC与PLC、PC与GSM短信模块、PC与远程I/O模块等典型应用实例,详细介绍了C/C++语言利用MSComm控件、API函数实现串口通信的程序设计方法。每个实例的设计任务同时采用C++ Builder、Visual C++和Labgrmdows/CVI实现。 本书内容丰富,结构清晰,文字叙述深入浅出,通俗易懂,以实践应用为主,突出程序设计,重在功能实现,有较强的实用性和可操作性。 本书可作为高等院校计算机应用、测控技术、机电一体化、自动化等专业的研究生、本科生以及计算机测控系统研发的工程技术人员等学习C/C++串口通信编程技术的参考书。 目录 基础篇   第1章 串口通信基础   1.1 串口通信的基本概念   1.2 串口通信及其标准   1.3 串口通信调试   第2章 C/C++编程语言与串口通信   2.1 串行通信控件MSComm   2.2 API函数   2.3 线程   2.4 LabWindows/CVI串口通信函数 应用篇   第3章 PC与PC串口通信程序设计   3.1 设计说明   3.2 任务实现   第4章 PC与单片机串口通信程序设计   4.1 设计说明   4.2 任务实现   第5章 PC与智能仪器串口通信程序设计   5.1 设计说明   5.2 任务实现   第6章 PC与PLC串口通信程序设计   6.1 设计说明   6.2 任务实现   第7章 PC与GSM短信模块串口通信程序设计   7.1 设计说明   7.2 任务实现   第8章 PC与读卡器串口通信程序设计   8.1 设计说明   8.2 任务实现   第9章 PC与智能仪器构成的DCS程序设计   9.1 设计说明   9.2 任务实现   第10章 PC与远程I/O模块构成的DCS程序设计   参考文献
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值