/// <summary> /// 启用连接外部设备 /// </summary> /// <param name="_cfg"></param> private void SubDeviceInitial() { try { AE2DeviceFactory fac = new AE2DeviceFactory(); //IO模块 adam = fac.CreateAdamDevice(appConfig.Adam.PortNumber); adam.NetChangedAction = (d, n) => { ShowToAllForms(m => m.ADAMNet = n); }; adam.OnSensorTrigger += Adam_OnSensorTrigger; //RFID rfid = fac.CreateRFIDDevice(appConfig.Rfid); //相当于连接变化时的事件 rfid.NetChangedAction = (d, n) => { ShowToAllForms(m => { m.RFIDNet = n; m.PrintlnInfo("RFID已连接。"); }); }; rfid.OnTagDataReaded = TagReaded;//相当于RFID读到标签后的事件 //串口条码枪 scan = fac.CreateScanDevice(appConfig.Scanner); scan.OnScanCoded += Scan_OnScanCoded; //OPC opc = fac.CreateOpcDevice(appConfig.Opc); opc.LineStopChangedAction = (s) => { ShowToAllForms(v => v.StopLine = s); }; opc.NetChangedAction = (d, s) => { ShowToAllForms(m => { m.PLCNet = s; }); }; opc.ShieldChangedAction = s => { ShowToAllForms(m => { m.ShieldStatus = !s; m.PrintlnInfo(s ? "PLC屏蔽PC信号" : "PLC启动接收PC信号"); }); }; mwCard = fac.CreateCardDevice(appConfig.MwCard); Log.Information("设备初始化完成"); } catch (Exception ex) { Log.Error("外设模块初始化出错," + ex.Message, ex); } }
/// <summary> /// 建立通讯 /// 调用同步方法连接时,会报MianForm已经Disposed的异常 /// </summary> /// <returns></returns> public bool Connect() { try { if (TightenToolClient == null) { AE2DeviceFactory fac = new AE2DeviceFactory(); TightenToolClient = fac.CreateTightenDevice(tdConfig); TightenToolClient.NetChangedAction = TdNetChanged; TightenToolClient.OnLastTightenData = ReadLastTightenData; TightenToolClient.OnVehicleNumberAction = ReadVinNumber; } var start = DateTime.Now; if (TightenToolClient.Connect()) { NetStatus = true; //Subscribe(); } var cost = DateTime.Now - start; int connectCostTime = cost.Seconds + 2; Debug.WriteLine($"拧紧连接耗时{connectCostTime - 2}s"); Log.Information($"拧紧机{tdConfig.Host}通讯连接{(NetStatus ? "成功" : "失败")}。"); return(NetStatus); } catch (Exception ex) { Log.Error("拧紧通讯初始化失败", ex); NetChangedAction?.Invoke(tdConfig.ToolId, false); return(false); } }