コード例 #1
0
        public bool Import(int maxTimeOut = int.MaxValue)
        {
            rosSocket.CallService("/rosapi/get_param", typeof(ParamValueString), receiveRobotName, new ParamName("/robot/name"));
            ServiceReceiver robotDescriptionReceiver = new ServiceReceiver(rosSocket, "/rosapi/get_param", new ParamName("/robot_description"), "\\robot_description.urdf", typeof(ParamValueString));

            robotDescriptionReceiver.ReceiveEventHandler += receiveRobotDescription;

            return(WaitHandle.WaitAll(Status.Values.ToArray(), maxTimeOut));
        }
コード例 #2
0
        private void receiveRobotDescription(ServiceReceiver serviceReciever, object serviceResponse)
        {
            string robotDescription = formatTextFileContents(((ParamValueString)serviceResponse).value);

            Thread importResourceFilesThread = new Thread(() => importResourceFiles(robotDescription));

            importResourceFilesThread.Start();

            Thread writeTextFileThread = new Thread(() => writeTextFile((string)serviceReciever.HandlerParameter, robotDescription));

            writeTextFileThread.Start();

            Status["robotDescriptionReceived"].Set();
        }
コード例 #3
0
        private void receiveResourceFile(ServiceReceiver serviceReceiver, object serviceResponse)
        {
            string fileContents    = System.Text.Encoding.UTF8.GetString(((ParamValueByte)serviceResponse).value);
            Uri    resourceFileUri = new Uri(((ParamName)serviceReceiver.ServiceParameter).name);

            if (isColladaFile(resourceFileUri))
            {
                Thread importResourceFilesThread = new Thread(() => importDaeTextureFiles(resourceFileUri, fileContents));
                importResourceFilesThread.Start();
            }
            Thread writeTextFileThread = new Thread(() => writeTextFile((string)serviceReceiver.HandlerParameter, fileContents));

            writeTextFileThread.Start();

            updateFileRequestStatus(resourceFileUri);
        }
コード例 #4
0
 private void receiveTextureFiles(ServiceReceiver serviceReceiver, object serviceResponse)
 {
     writeBinaryResponseToFile((string)serviceReceiver.HandlerParameter, ((ParamValueByte)serviceResponse).value);
     updateFileRequestStatus(new Uri(((ParamName)serviceReceiver.ServiceParameter).name));
 }