using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TProduct.Link.Debugger.RS485
{
///
/// 南通农业
///
internal class NtnyMsgHelper
{
///
/// 获取控制指令(真空泵_关)
///
///
public byte[] GetControlMsg调频(double frequece)
{
var iFrequece = (int)(frequece * 10);
byte[] commandSend = null;
TProduct.RS485.ModBusRtuHelper.BuildSendMessage06(0x01, 20, 2, iFrequece, ref commandSend);
return commandSend;
}
///
/// 获取查询指令(监控值)
///
///
public byte[] GetMonitorMsg监控值()
{
return new byte[] { 0x01, 0x03, 0x00, 0x19, 0x00, 0x19, 0x55, 0xC7 };
}
///
/// 获取查询指令(状态值)
///
///
public byte[] GetMonitorMsg状态值()
{
return new byte[] { 0x01, 0x03, 0x00, 0x19, 0x00, 0x23, 0xD5, 0xD4 };
}
public class MonitorValvue
{
public long ID { get; set; }
public double Value { get; set; }
}
///
/// 字符串转16进制字符2
///
/// 字符串
/// 编码格式
///
private List StringToHexValuve(string content, out string error_info)
{
//去掉空格
string[] arr = content.Split(' ');
if (arr.Length < 3)
{
error_info = "字符无法解析";
return null;
}
List result = new List();
for (int i = 0; i < arr.Length; i++)
{
if (string.IsNullOrWhiteSpace(arr[i]))
continue;
var dddd = Convert.ToByte(arr[i], 16);
result.Add(dddd);
}
error_info = null;
return result;
}
///
/// 分析监控数据
///
///
///
/* public List AnaReceiveMonitorMsg(string msg)
{
string error_info;
var byteMessage = StringToHexValuve(msg, out error_info);
if (byteMessage == null)
{
MessageBox.Show(error_info);
}
else
{
return ReadMessage监控值(byteMessage);
}
}
///
/// 读取消息(监控值)
///
///
private List ReadMessage监控值(List byteMessage)
{
try
{
//显示消息
//string strMessage = BitConverter.ToString(byteMessage, 0, byteMessage.Length);
//DisplayMessage(string.Format(" 收到的消息: {0} ", strMessage));
//DisplayMessage(string.Format(" 设备地址: {0} (0x{1})", byteMessage[0], Convert.ToString(byteMessage[0], 16)));
//DisplayMessage(string.Format(" 功能码: {0} ", byteMessage[1]));
byte start = 0x1A;
string msg;
//当前管网压力:26
//3 = 3+(26-26)*2
DisplayMessage(string.Format("########当前管网压力 -----> {0} Mpa 数据二进制{1}", GetInt2Byte(byteMessage, 3, out msg), msg));//0.001Mpa
//变频频率:27
//5 = 3+(27-26)*2
DisplayMessage(string.Format("########变频频率 -----> {0} Hz 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (27 - start) * 2, out msg) * 0.1, msg));//0.1HZ
//变频电流:28
DisplayMessage(string.Format("########变频电流 -----> {0} A 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (28 - start) * 2, out msg) * 0.1, msg));//0.1A
//真空当前压力:29
DisplayMessage(string.Format("########真空当前压力 -----> {0} Mpa 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (29 - start) * 2, out msg) * 0.001, msg));//0.001Mpa
//A相电压:30
//3 = 3+(30-26)*2
DisplayMessage(string.Format("########A相电压 -----> {0} 数据二进制{1} ", GetDouble1(byteMessage, 3 + (30 - start) * 2, out msg), msg));
//B相电压:32
DisplayMessage(string.Format("########B相电压 -----> {0} 数据二进制{1}", GetDouble1(byteMessage, 3 + (32 - start) * 2, out msg), msg));
//C相电压:34
DisplayMessage(string.Format("########C相电压 -----> {0} 数据二进制{1} ", GetDouble1(byteMessage, 3 + (34 - start) * 2, out msg), msg));
//A相电流:36
DisplayMessage(string.Format("########A相电流 -----> {0} 数据二进制{1}", GetDouble1(byteMessage, 3 + (36 - start) * 2, out msg), msg));
//B相电流:38
DisplayMessage(string.Format("########B相电流 -----> {0} 数据二进制{1}", GetDouble1(byteMessage, 3 + (38 - start) * 2, out msg), msg));
//C相电流:40
DisplayMessage(string.Format("########C相电流 -----> {0} 数据二进制{1}", GetDouble1(byteMessage, 3 + (40 - start) * 2, out msg), msg));
//变频泵状态:42
DisplayMessage(string.Format("########变频泵状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (42 - start) * 2, out msg), msg));
//真空泵状态 :43 //变频泵状态:42
DisplayMessage(string.Format("########真空泵状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (43 - start) * 2, out msg), msg));
//电动阀开阀状态 :44
DisplayMessage(string.Format("########电动阀开阀状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (44 - start) * 2, out msg), msg));
//电动阀关阀状态 :45
DisplayMessage(string.Format("########电动阀关阀状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (45 - start) * 2, out msg), msg));
//电磁阀状态 :46
DisplayMessage(string.Format("########电磁阀状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (46 - start) * 2, out msg), msg));
//水位状态:47
DisplayMessage(string.Format("########水位状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (47 - start) * 2, out msg), msg));
//超压状态:48
DisplayMessage(string.Format("########超压状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (48 - start) * 2, out msg), msg));
//报警状态:49
DisplayMessage(string.Format("########报警状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (49 - start) * 2, out msg), msg));
//变频器状态:50
DisplayMessage(string.Format("########变频器状态 -----> {0} 数据二进制{1}", GetInt2Byte(byteMessage, 3 + (50 - start) * 2, out msg), msg));
//当前液位:51
DisplayMessage(string.Format("########当前液位 -----> {0} 数据二进制{1} ", GetInt2Byte(byteMessage, 3 + (51 - start) * 2, out msg) * 0.01, msg));
//瞬时流量:52
DisplayMessage(string.Format("########瞬时流量 -----> {0} 数据二进制{1} ", GetInt4Byte(byteMessage, 3 + (52 - start) * 2, out msg) * 0.001, msg));
//累计流量:54
DisplayMessage(string.Format("########累计流量 -----> {0} 数据二进制{1} ", GetInt4Byte(byteMessage, 3 + (54 - start) * 2, out msg) * 1.0, msg));
//有功功率:56
DisplayMessage(string.Format("########有功功率 -----> {0} 数据二进制{1} ", GetDouble1(byteMessage, 3 + (56 - start) * 2, out msg), msg));
}
catch (Exception err)
{
MessageBox.Show(err.Message);
return null;
}
}
*/
}
}