private IO_Link_DiagnosisInfo GetDiagnosisData(string port) { var command = IO_LinkMasterModbusCommand.GetPortCommand(port); IO_Link_DiagnosisInfo res = new IO_Link_DiagnosisInfo(); if (myIomaster.NetStatus != NetStatus.Good) { res.VendorName = "NG"; res.VendorText = "Connect to device first"; return(res); } Task.Factory.StartNew(() => { string info = ""; myIomaster.BatchRead(DeviceType.Ultrasonic, command, out info); res = info.FromJSON <IO_Link_DiagnosisInfo>(); }).GetAwaiter().GetResult(); return(res); }
public static bool GetReadAnalysisReceiveByte(DeviceType type, CommandIO_Link command, byte[] receive, out string data) { data = ""; switch (command) { case CommandIO_Link.DiagnosisDataPort1: case CommandIO_Link.DiagnosisDataPort2: case CommandIO_Link.DiagnosisDataPort3: case CommandIO_Link.DiagnosisDataPort4: case CommandIO_Link.DiagnosisDataPort5: case CommandIO_Link.DiagnosisDataPort6: case CommandIO_Link.DiagnosisDataPort7: case CommandIO_Link.DiagnosisDataPort8: string VendorName = Encoding.ASCII.GetString(receive.GetBytes(9, 64)).Replace("\0", ""); string VendorText = Encoding.ASCII.GetString(receive.GetBytes(73, 64)).Replace("\0", ""); string ProductName = Encoding.ASCII.GetString(receive.GetBytes(137, 64)).Replace("\0", ""); string ProductID =Encoding.ASCII.GetString(receive.GetBytes(201, 64)).Replace("\0", ""); string ProductText = Encoding.ASCII.GetString(receive.GetBytes(265, 64)).Replace("\0", ""); string SerialNumber = Encoding.ASCII.GetString(receive.GetBytes(329, 16)).Replace("\0", ""); string HardwareRevision = Encoding.ASCII.GetString(receive.GetBytes(345, 64)).Replace("\0", ""); string FirmwareRevision = Encoding.ASCII.GetString(receive.GetBytes(409, 64)).Replace("\0", ""); string PDILength = Encoding.ASCII.GetString(receive.GetBytes(473, 2)).Replace("\0", ""); string PDOLength = Encoding.ASCII.GetString(receive.GetBytes(474, 2)).Replace("\0", ""); IO_Link_DiagnosisInfo info = new IO_Link_DiagnosisInfo() { Port = GetPort(command), VendorName = VendorName, VendorText = VendorText, ProductName = ProductName, ProductID = ProductID, ProductText = ProductText, SerialNumber = SerialNumber, HardwareRevision = HardwareRevision, FirmwareRevision = FirmwareRevision, PDILength = PDILength, PDOLength = PDOLength }; data = info.ToJSON(); break; case CommandIO_Link.PDIPort1: case CommandIO_Link.PDIPort2: case CommandIO_Link.PDIPort3: case CommandIO_Link.PDIPort4: case CommandIO_Link.PDIPort5: case CommandIO_Link.PDIPort6: case CommandIO_Link.PDIPort7: case CommandIO_Link.PDIPort8: data = ""; new DivceCategory(type).ReadDataAnalysis(receive, out data); return true; case CommandIO_Link.PDOPort1: case CommandIO_Link.PDOPort2: case CommandIO_Link.PDOPort3: case CommandIO_Link.PDOPort4: case CommandIO_Link.PDOPort5: case CommandIO_Link.PDOPort6: case CommandIO_Link.PDOPort7: case CommandIO_Link.PDOPort8: break; }; return true; }