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)); }
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(); }
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); }
private void receiveTextureFiles(ServiceReceiver serviceReceiver, object serviceResponse) { writeBinaryResponseToFile((string)serviceReceiver.HandlerParameter, ((ParamValueByte)serviceResponse).value); updateFileRequestStatus(new Uri(((ParamName)serviceReceiver.ServiceParameter).name)); }