Example #1
0
 /// <summary>
 /// 异步启动RFID
 /// </summary>
 public void Start()
 {
     if (rfid.Available)
     {
         try
         {
             CmdHostFactory factory = new CmdHostFactory();
             host = factory.CreateTcpClientHost(
                 new TcpClientOptions(rfid.Socket.Host, rfid.Socket.Port)
             {
                 OnDisconnected = () => {
                     _log.Warn("rfid断开连接。");
                     OnNetChanged?.Invoke(false);
                 },
                 OnTryConnecting = (i) => _log.Info("rfid正在重连。"),
                 OnConnected     = () => {
                     _log.Info("rfid已连接。");
                     OnNetChanged?.Invoke(true);
                 }
             },
                 new CmdClientOptions(rfid.ProtocolType)
             {
                 AutoOutputType = rfid.OutputType,
                 AutoOutput     = rfid.OutputOptions,
                 OutputHandler  = (b, t) => RfidOutPutHandler(b, t)
             }
                 );
             Task.Run(() => OpenRFID(host));
         }
         catch (Exception ex)
         {
             _log.Error("RFID初始化异常", ex);
         }
     }
 }
Example #2
0
        /// <summary>
        /// 创建通讯实例
        /// </summary>
        private void CreateHost()
        {
            CmdHostFactory factory = new CmdHostFactory();

            host = factory.CreateTcpClientHost(
                new TcpClientOptions(rfid.Host, rfid.RemotePort)
            {
                OnDisconnected = () => {
                    Log.Warning("rfid断开连接。");
                    NetStatus = false;
                    NetChangedAction?.Invoke(this, false);
                },
                OnTryConnecting = (i) => Log.Information("rfid正在重连。"),
                OnConnected     = () => {
                    Log.Information("rfid已连接。");
                    NetStatus = true;
                    NetChangedAction?.Invoke(this, true);
                }
            },
                new CmdClientOptions(rfid.ProtocolType)
            {
                AutoOutputType = rfid.OutputType,
                AutoOutput     = rfid.OutputOptions,
                OutputHandler  = (b, t) => RfidOutPutHandler(b, t)
            }
                );
        }