Exemple #1
0
        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());
        }
Exemple #2
0
 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();
        }