/// <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); } } }
/// <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) } ); }