using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AutomaticApp.Common; using Communication; using Communication.Modbus; namespace AutomaticApp.Models { //串口通信类 public class ComModel : NotifyBase { RTU rtuInstance = null; private BeiDouModel BeiDouModel { get; set; } = new BeiDouModel(); private SerialInfo serialInfo = new SerialInfo() { PortName = tools.GetAppSetting("PortName").Trim(),//端口号 BaudRate = Convert.ToInt32(tools.GetAppSetting("BaudRate").Trim()), DataBit = 8, Parity = System.IO.Ports.Parity.None, StopBits = System.IO.Ports.StopBits.One }; /// /// 串口连接信息1 /// //public SerialInfo SerialInfo //{ // get { return serialInfo; } // set { serialInfo = value; this.DoNotify(); } //} private bool isConnected; /// /// 是否连接 /// public bool IsConnected { get { return isConnected; } set { isConnected = value; this.DoNotify(); } } /// /// 建立连接 /// /// public bool DoConnect(SerialInfo serialInfo) { rtuInstance = RTU.GetInstance(serialInfo); rtuInstance.ResponseData = new Action>(BeiDouModel.ParsingData); IsConnected = rtuInstance.Connection(); return IsConnected; } /// /// 断开连接 /// /// public bool DisConnect() { rtuInstance.Dispose(); IsConnected = false; return IsConnected; } public bool SendMessage(byte[] _send) { if (_send.Length == 0) return false; try { if (IsConnected) { rtuInstance.Send(_send); return true; } else { return false; } } catch (Exception ex) { return false; } } } }