/// <summary> /// 一次通讯过程 /// </summary> protected virtual void OneCommunication() { try { if (PortInstance != null && ProtocolIntance != null) { #region 发送 byte[] array = ProtocolIntance.GetCBytesommand(); if (array != null) { PortInstance.Send(array); } #endregion end 发送 #region 接收 //等1s超时 DateTime dtLastSendOn = DateTime.Now; while (DateTime.Now.Subtract(dtLastSendOn).TotalMilliseconds < 1000) { byte[] arrayRec; if ((arrayRec = PortInstance.Recive()) != null) { byte[] arrayBack; if (RegDeata(arrayRec, out arrayBack)) { ProtocolIntance.Update(arrayBack); } return; } } #endregion end 接收 } } catch (Exception ex) { Trace.WriteLine(ex); } }