Task IParameter.InitializeAsync(string nodeId, string paramName, Uri slaveUri, ParameterServerClient client) { NodeId = nodeId; _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId); Name = paramName; _slaveUri = slaveUri; _parameterServerClient = client; return(_parameterServerClient.HasParamAsync(NodeId, Name) .ContinueWith(task => { if (task.Result) { return _parameterServerClient.GetParamAsync(NodeId, Name); } else { return _parameterServerClient.SetParamAsync(NodeId, Name, new XmlRpcStruct()); } }) .Unwrap()); }
public Task SetAsync(TParam value) { return(_parameterServerClient.SetParamAsync(NodeId, Name, _converter.ConvertFrom(value))); }
public void SetParam_Success() { var result = new object[3] { 1, "Parameter [/rosversion]", "1.6.5" }; MXmlRpcClientProtocol.AllInstances.UrlSetString = (t1, t2) => { }; MParameterServerProxy.AllInstances.BeginSetParamStringStringObjectAsyncCallbackObject = (t1, t2, t3, t4, t5, t6) => { t5(null); return null; }; MParameterServerProxy.AllInstances.EndSetParamIAsyncResult= (t1, t2) => result; var client = new ParameterServerClient(new Uri("http://localhost")); client.SetParamAsync("test", "/test_param", 1234).Wait(); }