public async Task <bool> OutputControl(Guid connectionId, byte address, OutputControls outputControls) { var reply = await SendCommand(connectionId, new OutputControlCommand(address, outputControls)).ConfigureAwait(false); return(reply.Type == ReplyType.Ack || reply.Type == ReplyType.OutputStatusReport); }
/// <summary> /// Send a command to alter the state of one or more outputs on a PD. /// </summary> /// <param name="connectionId">Identify the connection for communicating to the device.</param> /// <param name="address">Address assigned to the device.</param> /// <param name="outputControls">Data for one or more outputs to control.</param> /// <returns>Reply data that is returned after sending the command. There is the possibility of different replies can be returned from PD.</returns> public async Task <ReturnReplyData <OutputStatus> > OutputControl(Guid connectionId, byte address, OutputControls outputControls) { var reply = await SendCommand(connectionId, new OutputControlCommand(address, outputControls)).ConfigureAwait(false); return(new ReturnReplyData <OutputStatus> { Ack = reply.Type == ReplyType.Ack, Nak = reply.Type == ReplyType.Nak ? Nak.ParseData(reply.ExtractReplyData) : null, ReplyData = reply.Type == ReplyType.OutputStatusReport ? Model.ReplyData.OutputStatus.ParseData(reply.ExtractReplyData) : null }); }
public OutputControlCommand(byte address, OutputControls outputControls) { _outputControls = outputControls; Address = address; }