示例#1
0
 /// <summary>
 /// 停止
 /// </summary>
 public void Stop()
 {
     MainTask.Dispose();
     PortInstance.Dispose();
     PortInstance = null;
     ProtocolIntance.Dispose();
     ProtocolIntance = null;
 }
示例#2
0
        /// <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);
            }
        }