using System; using System.IO; namespace NfcC7_DLL.NfcHandler.Utils { public class SerialPortData { private Boolean? _cliExists; public bool CliExists { get { if (_cliExists == null || !_cliExists.HasValue) { _cliExists = File.Exists(SerialPortCmdClientPath); } return _cliExists.Value; } } public string SerialPortCmdClientPath { get { #if DEBUG return Path.Combine("C:\\","TBF","Cli", CmdClientName); #else return Path.Combine("..","Cli", CmdClientName); #endif } } public string CmdClientName { get; set; } = "HalCli.exe"; public string PortName { get; set; } public int MeterType { get; set; } public string MeterTypeStr { get; set; } public enum EMeterArg { Calibration = 0, AllParams = 2, DeviceId = 3, Optohead = 4, } EMeterArg _eMeterArg = EMeterArg.AllParams; public string DefaultArgSettingsRead(EMeterArg eMeterArg) { string meterTypeInsert = !string.IsNullOrEmpty(MeterTypeStr) ? MeterTypeStr : MeterType.ToString(); switch (eMeterArg) { case EMeterArg.AllParams: return $"-p {PortName} -m {meterTypeInsert} --operation readall"; case EMeterArg.DeviceId: return $"-p {PortName} -m {meterTypeInsert} --operation read --parameter DeviceId"; case EMeterArg.Optohead: return $"-p {PortName} -m {meterTypeInsert} --operation read --parameter \"OpticalDataMode\""; default: throw new Exception("Not implemented correct command!"); } } public string DefaultArgSettingsWrite(EMeterArg eMeterArg, string arg) { string meterTypeInsert = !string.IsNullOrEmpty(MeterTypeStr) ? MeterTypeStr : MeterType.ToString(); switch (eMeterArg) { case EMeterArg.Calibration: return $"-p {PortName} -m {meterTypeInsert} --operation write --parameter Calibration --value {arg}"; case EMeterArg.Optohead: return $"-p {PortName} -m {meterTypeInsert} --operation write --parameter \"OpticalDataMode\" --value {arg}"; default: throw new Exception("Not implemented correct command!"); } } public SerialPortData( string portName, string cmdClientName, int meterType) { PortName = portName; CmdClientName = cmdClientName; MeterType = meterType; } public SerialPortData( string portName, string cmdClientName, string meterType) { PortName = portName; CmdClientName = cmdClientName; MeterTypeStr = meterType; } } }