using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 口罩泄露定制款.Modbus { public class Connect_TSI { private SerialPort sp_Indoor; private SerialPort sp_Outdoor; private SerialPort sp_bendiPort; static string _indoor_data = "0.00"; static string _outdoor_data = "0.00"; static string sp_bendi = "0.00"; public string Indoor_Data { get { return _indoor_data; } set { _indoor_data = value; } } public string Outdoor_Data { get { return _outdoor_data; } set { _outdoor_data = value; } } public string sp_bendiData { get { return sp_bendi; } set { sp_bendi = value; } } public Connect_TSI(string ComPort_TSI_Indoor, string ComPort_TSI_Outdoor) { try { sp_Indoor = new SerialPort(ComPort_TSI_Indoor, 9600, Parity.None, 8, StopBits.One); // 订阅DataReceived事件(可选,用于接收数据) sp_Indoor.DataReceived += new SerialDataReceivedEventHandler(Sp_Indoor_DataReceived); sp_Outdoor = new SerialPort(ComPort_TSI_Outdoor, 9600, Parity.None, 8, StopBits.One); sp_Outdoor.DataReceived += new SerialDataReceivedEventHandler(Sp_Outdoor_DataReceived); sp_bendiPort = new SerialPort(ComPort_TSI_Outdoor, 9600, Parity.None, 8, StopBits.One); sp_bendiPort.DataReceived += new SerialDataReceivedEventHandler(Sp_bendi_DataReceived); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Sp_Indoor_DataReceived(object sender, SerialDataReceivedEventArgs e) { Indoor_Data = sp_Indoor.ReadExisting().Trim(); sp_bendiData = Indoor_Data; } private void Sp_Outdoor_DataReceived(object sender, SerialDataReceivedEventArgs e) { Outdoor_Data = sp_Outdoor.ReadExisting().Trim(); } private void Sp_bendi_DataReceived(object sender, SerialDataReceivedEventArgs e) { sp_bendiData = sp_bendiPort.ReadExisting().Trim(); } public void Start_Indoor() { if (sp_Outdoor.IsOpen) sp_Indoor.WriteLine("X"); } public void Start_Outdoor() { if (sp_Outdoor.IsOpen) sp_Outdoor.WriteLine("X"); } public void Start_bendidoor() { if (sp_bendiPort.IsOpen) sp_bendiPort.WriteLine("X"); } public void Stop_Indoor() { if (sp_Outdoor.IsOpen) sp_Indoor.WriteLine("Z"); } public void Stop_Outdoor() { if (sp_Outdoor.IsOpen) sp_Outdoor.WriteLine("Z"); } public void Stop_bendidoor() { if (sp_bendiPort.IsOpen) sp_bendiPort.WriteLine("Z"); } public void Connect() { sp_Indoor.Open(); sp_Outdoor.Open(); //sp_bendiPort.Open(); //if (sp_Indoor != null && sp_Outdoor != null) //{ // if (!sp_Indoor.IsOpen) // { // sp_Indoor.Open(); // } // if (!sp_Outdoor.IsOpen) // { // sp_Outdoor.Open(); // } //} } public void Disconnect() { if (sp_Indoor != null && sp_Outdoor != null) { if (sp_Indoor.IsOpen) { sp_Indoor.Close(); } if (sp_Outdoor.IsOpen) { sp_Outdoor.Close(); } } } } }