public CommandResult ExecuteCommand(String Target, Command Command, int Port = 0) { var message = new CommandMessage() { Sender = Caspara.DeviceName, RespondTo = ResponseTopic, Command = Command }; string commandString = Serializer.Serialize(message, SerializeType.JSON); MessageReceived = false; ReceivedMessageText = null; Client.Publish(Target + ".EXECUTE.COMMAND", commandString); bool timeout = false; while (!MessageReceived && !timeout) { timeout = (DateTime.Now - Command.TimeStamp).TotalSeconds < Command.TimeOutSeconds; Thread.Sleep(1); } if (!timeout) { var response = Serializer.Deserialize <CommandResult>(ReceivedMessageText, SerializeType.JSON); return(response); } return(null); }
private void Client_MessageReceived(object sender, string e) { var response = ResponseService.GetResponse(e); Client.Publish(response.RespondTo, response.Message); }
public void Publish(Observations.ObservationMessage Message) { var msg = JsonConvert.SerializeObject(Message); Client.Publish(Message.Topic, msg); }