Beispiel #1
0
 public RosTopicServer(string nodeId, string topicName, Uri slaveUri)
 {
     NodeId    = nodeId;
     _logger   = RosOutLogManager.GetCurrentNodeLogger(NodeId);
     TopicName = topicName;
     SlaveUri  = slaveUri;
 }
        public RosTopicClient(string nodeId, string topicName)
        {
            Connected = false;
            NodeId    = nodeId;
            _logger   = RosOutLogManager.GetCurrentNodeLogger(NodeId);

            TopicName = topicName;
        }
        public ServiceInstance(string nodeId, IService service, Socket s)
        {
            NodeId   = nodeId;
            _logger  = RosOutLogManager.GetCurrentNodeLogger(NodeId);
            _service = service;

            _client = new TcpRosClient(s);
        }
Beispiel #4
0
        internal Subscriber(string topicName, string nodeId, bool nodelay = true)
        {
            NodeId    = nodeId;
            _logger   = RosOutLogManager.GetCurrentNodeLogger(NodeId);
            TopicName = topicName;
            var dummy = new TMessage();

            MessageType = dummy.MessageType;
            _nodelay    = nodelay;
        }
Beispiel #5
0
        internal Publisher(string topicName, string nodeId, bool latching = false)
        {
            NodeId = nodeId;
            var dummy = new TMessage();

            TopicName   = topicName;
            MessageType = dummy.MessageType;

            _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId);

            _latching = latching;
        }
        public ServiceProxy(string nodeId, string serviceName, TService service, TcpRosClient client)
        {
            NodeId  = nodeId;
            _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId);

            ServiceName = serviceName;
            Service     = service;
            _client     = client;

            Service.SetAction(Invoke);

            Service.Disposing += _ => DisposeAsync();
        }
        internal SlaveServer(string nodeId, int portNumber, TopicContainer topicContainer)
        {
            NodeId  = nodeId;
            _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId);

            _topicContainer = topicContainer;
            _tcpRosListener = new Dictionary <string, TcpRosListener>();

            string slaveName = "slave" + Guid.NewGuid().ToString("N");

            _channel = new HttpServerChannel(slaveName, portNumber, new XmlRpcServerFormatterSinkProvider());
            var tmp = new Uri(_channel.GetChannelUri());

            SlaveUri = new Uri("http://" + Ros.HostName + ":" + tmp.Port + "/" + slaveName);

            ChannelServices.RegisterChannel(_channel, false);
            RemotingServices.Marshal(this, slaveName); //Marshalするときの名前に/を入れるとだめ。
        }
Beispiel #8
0
        public Node(string nodeId)
        {
            _disposed = false;

            NodeId = nodeId;

            _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId);

            if (_logger.IsDebugEnabled)
            {
                LogLevel = Log.DEBUG;
            }
            else if (_logger.IsInfoEnabled)
            {
                LogLevel = Log.INFO;
            }
            else if (_logger.IsWarnEnabled)
            {
                LogLevel = Log.WARN;
            }
            else if (_logger.IsErrorEnabled)
            {
                LogLevel = Log.ERROR;
            }
            else if (_logger.IsFatalEnabled)
            {
                LogLevel = Log.FATAL;
            }

            _masterClient          = new MasterClient(Ros.MasterUri);
            _parameterServerClient = new ParameterServerClient(Ros.MasterUri);

            _serviceProxyFactory = new ServiceProxyFactory(NodeId);

            _topicContainer = new TopicContainer();
            _slaveServer    = new SlaveServer(NodeId, 0, _topicContainer);

            _slaveServer.ParameterUpdated += SlaveServerOnParameterUpdated;

            _logger.InfoFormat("Create Node: {0}", nodeId);
        }
Beispiel #9
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());
        }
Beispiel #10
0
 public ServiceServer(string nodeId)
 {
     NodeId  = nodeId;
     _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId);
 }
Beispiel #11
0
 public ServiceProxyFactory(string nodeId)
 {
     NodeId  = nodeId;
     _logger = RosOutLogManager.GetCurrentNodeLogger(NodeId);
 }