private static bool SendCommand(ComReader comReader, IcpDeviceModel icpDevice, IcpCommand command, int addr) { string request = IcpDcom.CreateIcpDcomRequest(command, addr); string response = comReader.SendCommand(request); bool result = IcpDcom.ParseIcpResponse(command, response, icpDevice); if (!result) { logger.Error($"Cant send {command} to {icpDevice.Name}, addr: {addr}, com: {comReader.Port}"); } return(result); }
public bool ChangeOutput(string name, int output, int value) { int addr = IcpDeviceDict .Where(el => el.Value.Name == name) .Select(kv => kv.Value.Address) .FirstOrDefault(); if (addr == 0) { return(false); } var request = IcpDcom.CreateIcpDcomRequest(IcpCommand.SetOutputs, addr, name, output); var response = ComReader.SendCommand(request); return(IcpDcom.ParseIcpResponse(IcpCommand.SetOutputs, response, IcpDeviceDict[addr])); }