/// <summary> /// Sends a ir command. /// </summary> /// <returns>Send ir command task.</returns> /// <param name="state">State ir to send.</param> public async Task SendIRCommandStateAsync(IRCommandState state) { var msg = new JsonBaseMessage { msgid = next_msg_id, request = "SendKey", @params = new { button_id = $"{state.cmd}", device_id = state.stump_device } }; await _transport.SendAsync(msg); }
/// <summary> /// get a ir commands /// </summary> /// <returns>Array of ir commands can be issued task.</returns> public async Task <IEnumerable <IRDevice> > GetIRCommandsAsync() { var message = new JsonBaseMessage { msgid = next_msg_id, request = "GetConfiguration" }; var receive_task = MessageExtensions.WaitForMessageAsync <JsonBaseMessage, JsonBaseMessage>( _transport, TimeSpan.FromSeconds(10), () => _transport.SendAsync(message), (to_filter) => to_filter.msgid == message.msgid ); var res = await receive_task; if (res.@params is JArray ja) { return(ja.ToObject <IRDevice[]>()); } return(null); }