public override void Transfer() { RosSocket.CallService <rosapi.GetParamRequest, rosapi.GetParamResponse>("/rosapi/get_param", ReceiveRobotName, new rosapi.GetParamRequest("/robot/name", "default")); var robotDescriptionReceiver = new ServiceReceiver <rosapi.GetParamRequest, rosapi.GetParamResponse>(RosSocket, "/rosapi/get_param", new rosapi.GetParamRequest(urdfParameter, "default"), Path.DirectorySeparatorChar + urdfParameter + ".urdf"); robotDescriptionReceiver.ReceiveEventHandler += ReceiveRobotDescription; }
private void ReceiveRobotDescription(ServiceReceiver <rosapi.GetParamRequest, rosapi.GetParamResponse> serviceReceiver, rosapi.GetParamResponse serviceResponse) { string robotDescription = FormatTextFileContents(serviceResponse.value); Thread importResourceFilesThread = new Thread(() => ImportResourceFiles(robotDescription)); importResourceFilesThread.Start(); Thread writeTextFileThread = new Thread(() => WriteTextFile((string)serviceReceiver.HandlerParameter, robotDescription)); writeTextFileThread.Start(); Status["robotDescriptionReceived"].Set(); }
private void ReceiveResourceFile(ServiceReceiver <file_server.GetBinaryFileRequest, file_server.GetBinaryFileResponse> serviceReceiver, file_server.GetBinaryFileResponse serviceResponse) { byte[] fileContents = serviceResponse.value; Uri resourceFileUri = new Uri(serviceReceiver.ServiceParameter.name); if (IsColladaFile(resourceFileUri)) { Thread importResourceFilesThread = new Thread(() => ImportColladaTextureFiles(resourceFileUri, System.Text.Encoding.UTF8.GetString(fileContents))); importResourceFilesThread.Start(); } else { UpdateFileRequestStatus(resourceFileUri.ToString()); } Thread writeTextFileThread = new Thread(() => WriteBinaryResponseToFile((string)serviceReceiver.HandlerParameter, fileContents)); writeTextFileThread.Start(); }
private void ReceiveTextureFiles(ServiceReceiver <file_server.GetBinaryFileRequest, file_server.GetBinaryFileResponse> serviceReceiver, file_server.GetBinaryFileResponse serviceResponse) { WriteBinaryResponseToFile((string)serviceReceiver.HandlerParameter, serviceResponse.value); UpdateFileRequestStatus(serviceReceiver.ServiceParameter.name); }