/// <summary> /// Подключение по порту к устройству /// </summary> public void Connect(bool isDefault) { try { if (IsConnect || port != null) { Disconnect(); } if (isDefault) { DefaultParametrs(); } port = new SerialPort(); InitParametrs(port); ExchangePacket packet = new ExchangePacket(); packet.Code = (byte)ResponseCode.POSITIVE; packet.Payload = Encoding.ASCII.GetBytes("a"); byte[] staf = WakeConvertHelper.Staffing(packet.GetBytes()); receiver = new Thread(Receive) { Priority = ThreadPriority.AboveNormal, IsBackground = true }; port.ErrorReceived += OnErrorReceive; port.Open(); OnSerialStateChangeEvent(true); receiver.Start(); } catch (Exception ex) { OnSerialErrorEvent(0, null, ex); } }
/// <summary> /// Отправка данных по порту /// </summary> public void Transmit(byte[] data, int dataLength) { try { if (port == null || !port.IsOpen) { throw new Exception("Нет подключения"); } byte[] staffingData = WakeConvertHelper.Staffing(data); if (staffingData == null) { return; } port.Write(staffingData, 0, staffingData.Length); } catch (Exception ex) { OnSerialErrorEvent(0, null, ex); } }