温湿度设备开发总结
来源:互联网 发布:中国离婚率数据 编辑:程序博客网 时间:2024/05/17 02:58
温湿度设备是S200HT型号,基于RS-485通信接口,报文格式如下:
发送例文:01 03 00 03 00 24 34 0b
接受例文:01 03 04 01 3b 02 d3 ca ff
温度值计算:0x013b/10=315/10=31.5(℃);
湿度值计算:0x02d3/10=723/10=72.3%.
思路:使用.net的串口进行开发,但是在这之前使用google进行查询是否有现成的代码或者类库。
使用.net串口进行开发,模拟相应的发送报文,在标签为2的时候可以成功发送,并接受到相应的报文,但是按照计算,结果不正确。
使用NModbus类库,进行多次测试和应用,结果正确。
总结:第一,遇到问题的首要是不要慌张,告诉自己一定能解决,结果就是能解决的。第二,多使用类库或者别人的经验,这样做的原因主要能快速解决问题,当然如果是学习,可以自己来写,但是工作呢还是快速结束为好,毕竟公司需要你多产出。第三,多思考,结合整体来进行思考。报文的传输,二进制数据传输,如何解析等等。第四,做项目并不是所有的问题都要解决才开始动手,先将大致的框架搭好,然后逐步解决程序中的各个问题,遇到花1-2小时不能解决或者解决无望的情况下,赶紧跳过,进行下一个功能点的开发,将最复杂的放到后面,这样进度就不会受到影响。
以下是核心代码:
using (SerialPort serialPort = new SerialPort())
{
serialPort.PortName = "COM1";
serialPort.BaudRate = 9600;
//以下配置不需要进行手工配置 遵守 RS-485通信协议
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.DataBits = 8;
serialPort.Open();
// create Modbus RTU Master by the comport client
//document->Modbus.Device.Namespace->ModbusSerialMaster Class->CreateRtu Method
ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(serialPort);
// read the input register 0~9 (30001~300010) of the device slave ID 1
//document->Modbus.Device.Namespace->ModbusMaster Class->ReadInputRegisters Method
byte slaveID = 1;//标签ID
//开始地址为0
ushort startAddress = 0;
ushort numOfPoints = 9;
master.Transport.ReadTimeout = 300;
try
{
ushort[] register = master.ReadHoldingRegisters(slaveID, startAddress, numOfPoints);
float temperatureValue = Convert.ToSingle(register[3]) / 10;
float humidityValue = Convert.ToSingle(register[4]) / 10;
- 温湿度设备开发总结
- 设备驱动开发详解总结
- 嵌入式开发之 DHT11温湿度传感器
- c# 温湿度变送器传感器开发(一)
- c# 温湿度变送器传感器开发(二)
- hikey开发板温湿度传感器(一)
- Android开发:Android设备传感器开发总结
- Android开发:Android设备传感器开发总结
- Android开发:Android设备传感器开发总结
- 字符设备驱动开发流程(总结)
- 医疗设备BLE蓝牙开发的总结。
- MFC开发智能设备的总结
- nrf51822开发指导之温湿度传感器(DHT11)驱动程序
- 对移动开发中蓝牙温湿度源码的部分分析
- 【Linux开发】linux设备驱动归纳总结(三):1.字符型设备之设备申请
- 基于Tiny4412的DHT11温湿度传感器的Linux设备驱动的简单实现
- VS2008中开发智能设备程序的一些总结
- VS2008中开发智能设备程序的一些总结(转)
- 一些函数说明
- 程序员必须知道的编程格言(转)
- 测量中两点之间的方位角计算
- 虹山艺术高地步进电机控制—拨码开关设定速度和宽度(开关量读入有问题)
- 初学PHP的18个基础例程
- 温湿度设备开发总结
- iec61850 资料
- 【C#】Linq to Object
- vim + ctags + cscope+taglist
- 虹山艺术高地步进电机控制—独立按键输入设定速度和宽度(工作正常)
- windows 7恶意攻击减少
- HttpClient
- Oracle数据库-建库、建表空间,建用户
- 一位国企高管对年轻人的忠告