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串口连接仪器,接收仪器信息的更多相关文章

  1. 【嵌入式开发】嵌入式 开发环境 (远程登录 | 文件共享 | NFS TFTP 服务器 | 串口连接 | Win8.1 + RedHat Enterprise 6.3 + Vmware11)

    作者 : 万境绝尘 博客地址 : http://blog.csdn.net/shulianghan/article/details/42254237 一. 相关工具下载 嵌入式开发工具包 : -- 下 ...

  2. 【记录】恢复win7与ARM开发板TQ2440的串口连接

    1.给板子上电. 2.接好物理上的串口连接,板子那端就是普通的RS232串口,电脑这端是USB转串口的线的USB这头,连到电脑上,然后在Win7系统下,先去看看,当前连接的USB虚拟出来的串口是哪个口 ...

  3. MQTT的学习研究(四)moquette-mqtt 的使用之mqtt Blocking API客户端订阅并接收主题信息

    在上面两篇关于mqtt的broker的启动和mqtt的服务端发布主题信息之后,我们客户端需要订阅相关的信息并接收相关的主题信息. package com.etrip.mqtt; import java ...

  4. 记一次PHP实现接收邮件信息(我这里测试的腾讯企业邮件)

    PHP实现接收邮件信息(我这里测试的腾讯企业邮件) , 其他的类型的没有测,应该只要更换pop3地址 端口号就可以. 代码如下(代码参考网络分享): <?php //此处查看链接状态 heade ...

  5. Qt 串口连接

    Qt 串口连接 使用 Qt 开发上位机程序时,经常需要用到串口,在 Qt 中访问串口比较简单,因为 Qt 已经提供了 QSerialPort 和 QSerialPortInfo 这两个类用于访问串口. ...

  6. socket 异步接收连接和接收数据

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. C# 串口连接的读取与发送

    一.串口连接的打开与关闭 串口,即COM口,在.NET中使用 SerialPort 类进行操作.串口开启与关闭,是涉及慢速硬件的IO操作,频繁打开或关闭会影响整体处理速度,甚至导致打开或关闭串口失败. ...

  8. 接收新信息,在会话中看不到(thread表数据插入/更新失败)

    分析原因:收到短信,sms表插入信息,触发器会自动更新thread表,更新失败导致一直有一条未读信息数量显示,但在会话列表中却看不到. (偶现,低概率. 解决方法:接收新信息插入后,立即查询threa ...

  9. 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 ...

随机推荐

  1. Codeforces 1092 D2 Great Vova Wall (Version 2) (栈)

    题意: 给一排砖,每列的高度$a_i$,问是否可以放1*2的砖,使得n列高度一样,砖只能横着放 思路: 每两个相邻的高度相同的砖可以变成大于等于它的高度的任意高度 所以像这样的 123321 是不满足 ...

  2. Flyway 的使用及Spring Boot集成Flyway

    一.简单介绍 Flyway 是一个开源.跨环境的数据库迁移工具,它强烈主张简单性和约定性而不是配置. Flyway 是一个便于多人开发对数据库管理的工具,将sql语句写入文件中,只需要在控制台输入指令 ...

  3. Go语言实现:【剑指offer】二叉树的镜像

    该题目来源于牛客网<剑指offer>专题. 操作给定的二叉树,将其变换为源二叉树的镜像. 示例: 输入: 4 / 2 7 / \ / 1 3 6 9 输出: 4 / 7 2 / \ / 9 ...

  4. MySql Docker的一些操作方法

    偶尔有需求,涉及到数据库的改动,那一定要表结构改动.程序调试都先在测试环境淬炼千百遍. 现在流行微服务.docker部署,很容易拉起一整套环境. Compose File Demo mysql: im ...

  5. 不用'+'完成a + b

    这也是'+'底层运算原理: #include<bits/stdc++.h> using namespace std; int a,b; int main() { scanf("% ...

  6. idea快速创建一个类 实现一个接口

    一 创建一个接口类 二  点击接口名称 按alt + ent 三 选择implement interface 选项 完美!!!!!!!

  7. Ant Design Vue Pro 项目实战-项目初始化(一)

    写在前面 时间真快,转眼又是新的一年.随着前后端技术的不断更新迭代,尤其是前端,在目前前后端分离开发模式这样的一个大环境下,交互性.兼容性等传统的开发模式已经显得有些吃力.之前一直用的是react,随 ...

  8. 杭电-------2048不容易系列之(4)考新郎(C语言)

    /* 思路:有n位新郎,但是又m位新郎会找错,那么有n-m位新郎会找对,而找对的n-m位新郎的找发就是在 n位新郎中随机找n-m位有多少种排列组合公式有n!/(m!*(n-m!)),而另外找错的新郎则 ...

  9. WinBox软路由的自定义IP设定

             软路由ros(MIKRTIK)安装简单步骤 由于本主也是刚刚接触软路由这个硬件方面的知识.所以也是略知皮毛而已,今天通过网上的学习,然后自己总结了一下怎么在软路由中设定一个自定义IP ...

  10. indexedDB 使用

    数据库的打开/新增/删除 initDB() { let _this = this; let obj = { id: 1, name: _this.addForm.content } let index ...