RS323串口连接仪器,接收仪器信息
SerialPort sp1 = new SerialPort();
getBloodPressur(); public void getBloodPressur()
{
try
{
string[] str = SerialPort.GetPortNames();
if (str == null)
{
MessageBox.Show("仪器未连接,请确认连接是否正常!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
sp1.DataReceived += new SerialDataReceivedEventHandler(sp1_DataReceived);
//准备就绪
sp1.DtrEnable = true;
sp1.RtsEnable = true;
//设置数据读取超时为1秒
sp1.ReadTimeout = ; foreach (string s in System.IO.Ports.SerialPort.GetPortNames())//获取有多少个COM口
{
sp1.PortName = s;
}
sp1.BaudRate = System.Convert.ToInt32(""); //波特率
sp1.DataBits = System.Convert.ToInt32(""); //数据位
sp1.StopBits = StopBits.One;//停止位
sp1.Parity = Parity.Even;//校验位
sp1.Close();
if (sp1.IsOpen == true)//如果打开状态,则先关闭一下
{
sp1.Close();
}
sp1.Open();
}
catch (Exception ex)
{
throw ex;
}
} void sp1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (sp1.IsOpen)
{ byte[] byteRead = new byte[sp1.BytesToRead]; //BytesToRead:sp1接收的字符个数 try
{
Byte[] receivedData = new Byte[sp1.BytesToRead]; //创建接收字节数组
sp1.Read(receivedData, , receivedData.Length); //读取数据 sp1.DiscardInBuffer(); //清空SerialPort控件的Buffer string strRcv = null;
for (int i = ; i < receivedData.Length; i++)
{
strRcv += ((char)System.Convert.ToInt32(receivedData[i]));
}
Thread.Sleep(); if (strRcv.Split(' ').Length > )
{
strBloodPressur = strRcv.Substring(strRcv.Length - , ); if (dicBloodPressur.ContainsKey("") && dicBloodPressur.ContainsKey("") && dicBloodPressur.ContainsKey(""))
{ if (dtExamCopy.Select("EXAM_ID = '" + dicBloodPressur[""].Split(',')[] + "' AND EXAM_DETAIL_ID = '" + dicBloodPressur[""].Split(',')[] + "'")[]["RESULT_VALUE"].ToString().Trim().Length == )
{
dtExamCopy.Select("EXAM_ID = '" + dicBloodPressur[""].Split(',')[] + "' AND EXAM_DETAIL_ID = '" + dicBloodPressur[""].Split(',')[] + "'")[]["RESULT_VALUE"] = System.Convert.ToInt32(strBloodPressur.Split(' ')[]).ToString() + "/" + System.Convert.ToInt32(strBloodPressur.Split(' ')[]).ToString();
checkExamItemAbnormal(dtExamCopy.Rows.IndexOf(dtExamCopy.Select("EXAM_ID = '" + dicBloodPressur[""].Split(',')[] + "' AND EXAM_DETAIL_ID = '" + dicBloodPressur[""].Split(',')[] + "'")[]));
}
else
{
dtExamCopy.Select("EXAM_ID = '" + dicBloodPressur[""].Split(',')[] + "' AND EXAM_DETAIL_ID = '" + dicBloodPressur[""].Split(',')[] + "'")[]["RESULT_VALUE"] = System.Convert.ToInt32(strBloodPressur.Split(' ')[]).ToString() + "/" + System.Convert.ToInt32(strBloodPressur.Split(' ')[]).ToString();
checkExamItemAbnormal(dtExamCopy.Rows.IndexOf(dtExamCopy.Select("EXAM_ID = '" + dicBloodPressur[""].Split(',')[] + "' AND EXAM_DETAIL_ID = '" + dicBloodPressur[""].Split(',')[] + "'")[]));
}
dtExamCopy.Select("EXAM_ID = '" + dicBloodPressur[""].Split(',')[] + "' AND EXAM_DETAIL_ID = '" + dicBloodPressur[""].Split(',')[] + "'")[]["RESULT_VALUE"] = System.Convert.ToInt32(strBloodPressur.Split(' ')[]).ToString(); checkExamItemAbnormal(dtExamCopy.Rows.IndexOf(dtExamCopy.Select("EXAM_ID = '" + dicBloodPressur[""].Split(',')[] + "' AND EXAM_DETAIL_ID = '" + dicBloodPressur[""].Split(',')[] + "'")[]));
}
} }
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
else
{
MessageBox.Show("仪器未连接,请确认仪器连接是否正常!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
RS323串口连接仪器,接收仪器信息的更多相关文章
- 【嵌入式开发】嵌入式 开发环境 (远程登录 | 文件共享 | NFS TFTP 服务器 | 串口连接 | Win8.1 + RedHat Enterprise 6.3 + Vmware11)
作者 : 万境绝尘 博客地址 : http://blog.csdn.net/shulianghan/article/details/42254237 一. 相关工具下载 嵌入式开发工具包 : -- 下 ...
- 【记录】恢复win7与ARM开发板TQ2440的串口连接
1.给板子上电. 2.接好物理上的串口连接,板子那端就是普通的RS232串口,电脑这端是USB转串口的线的USB这头,连到电脑上,然后在Win7系统下,先去看看,当前连接的USB虚拟出来的串口是哪个口 ...
- MQTT的学习研究(四)moquette-mqtt 的使用之mqtt Blocking API客户端订阅并接收主题信息
在上面两篇关于mqtt的broker的启动和mqtt的服务端发布主题信息之后,我们客户端需要订阅相关的信息并接收相关的主题信息. package com.etrip.mqtt; import java ...
- 记一次PHP实现接收邮件信息(我这里测试的腾讯企业邮件)
PHP实现接收邮件信息(我这里测试的腾讯企业邮件) , 其他的类型的没有测,应该只要更换pop3地址 端口号就可以. 代码如下(代码参考网络分享): <?php //此处查看链接状态 heade ...
- Qt 串口连接
Qt 串口连接 使用 Qt 开发上位机程序时,经常需要用到串口,在 Qt 中访问串口比较简单,因为 Qt 已经提供了 QSerialPort 和 QSerialPortInfo 这两个类用于访问串口. ...
- socket 异步接收连接和接收数据
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- C# 串口连接的读取与发送
一.串口连接的打开与关闭 串口,即COM口,在.NET中使用 SerialPort 类进行操作.串口开启与关闭,是涉及慢速硬件的IO操作,频繁打开或关闭会影响整体处理速度,甚至导致打开或关闭串口失败. ...
- 接收新信息,在会话中看不到(thread表数据插入/更新失败)
分析原因:收到短信,sms表插入信息,触发器会自动更新thread表,更新失败导致一直有一条未读信息数量显示,但在会话列表中却看不到. (偶现,低概率. 解决方法:接收新信息插入后,立即查询threa ...
- mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)
mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)()里面的为shel ...
随机推荐
- 《Head first设计模式》之抽象工厂
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类. 确保原料的一致 披萨店成功的关键在于新鲜.高质量的原料.要如何确保每家加盟店使用高质量的原料?你打算建造一家生成原料的 ...
- php gettype()函数
gettype() 会根据 参数类型返回值: boolean:表示变量为布尔类型 integer:表示变量为整数类型 double :表示变量为float类型(历史原因) string:表示变量为 ...
- Params:params 关键字可以指定在参数数目可变处采用参数的方法参数。
Params:params 关键字可以指定在参数数目可变处采用参数的方法参数. 注意点: 1.一个方法中只能使用一个params来声明不定长参数数组: 2.params参数数组只能放在已定义参数后面 ...
- 国内jenkins搭建不再龟速的方式
最新国内jenkisn搭建过程 第一步下载jenkins 点击进入清华源jenkins下载地址,我们下载的是jenkins-2.204.2.zip版本 之后解压后安装. 第二步配置管理员密码 自动弹出 ...
- iOS开发基础--C语言简述(一)
先占个坑,回来再补 需要的运行环境,自行搜寻,工具不止一种,不详细叙述. C语言是一门非常重要的编程语言,与硬件底层直接相关,很多语言到最后的接口封装都会选择C语言,因而C语言一直很受欢迎,也务必掌握 ...
- .NET代码混淆工具NET Reactor - 初学者系列-学习者系列文章
这几天无事,除了看书,然后就倒腾原来的代码.想起.NET的代码混淆工具软件,所以今天就讲讲这个.NET代码混淆工具. .NET代码混淆工具软件,以前有了解和找过,但是当时需求不大,所以找了下就搁置了. ...
- Error serializing object:序列化对象时出错
序列化对象时出错 :Error serializing object. Error serializing object. Cause: java.io.NotSerializableExceptio ...
- 多线程笔记 - Master-Worker
多线程的 Master-Worker 从字面上也是可以理解的. Master 相当于领导, 一个就够了, 如果是多个, 那么听谁的, 是个大问题. Master负责指派任务给 Worker. 然后对每 ...
- Javascript 基础学习(七)常用内置对象
Array 定义 数组也是一个对象,是一个用来存储数据的对象.和Object类似,但是它的存储效率比普通对象要高.数组中保存的内容我们称为元素.数组使用索引(index)来操作元素.索引指由0开始的整 ...
- 回炉重造之重读Windows核心编程-003-内核对象
内核对象是个比较难理解的概念,问题的根源就在于即使是<核心编程>书中也没有说清楚它的定义,只是不停地举例和描述它的性质,还有如何使用. 盲人摸象,难见全貌.只能尽可能列举它的性质,注意使用 ...