public void PublisherInit() { // init RCLReturnEnum ret; rcl_init_options_t init_options = NativeMethods.rcl_get_zero_initialized_init_options(); rcl_allocator_t allocator = NativeMethods.rcl_get_default_allocator(); NativeMethods.rcl_init_options_init(ref init_options, allocator); rcl_context_t context = NativeMethods.rcl_get_zero_initialized_context(); NativeMethods.rcl_init(0, null, ref init_options, ref context); rcl_node_t node = NativeMethods.rcl_get_zero_initialized_node(); string name = "publisher_test"; string nodeNamespace = "/ns"; IntPtr defaultNodeOptions = NativeMethods.rclcs_node_create_default_options(); NativeMethods.rcl_node_init(ref node, name, nodeNamespace, ref context, defaultNodeOptions); rcl_publisher_t publisher = NativeMethods.rcl_get_zero_initialized_publisher(); rcl_publisher_options_t publisherOptions = NativeMethods.rcl_publisher_get_default_options(); MethodInfo m = typeof(std_msgs.msg.Bool).GetTypeInfo().GetDeclaredMethod("_GET_TYPE_SUPPORT"); IntPtr typeSupportHandle = (IntPtr)m.Invoke(null, new object[] { }); ret = (RCLReturnEnum)NativeMethods.rcl_publisher_init(ref publisher, ref node, typeSupportHandle, "publisher_test_topic", ref publisherOptions); // shutdown ret = (RCLReturnEnum)NativeMethods.rcl_publisher_fini(ref publisher, ref node); Assert.That(ret, Is.EqualTo(RCLReturnEnum.RCL_RET_OK), Utils.PopRclErrorString()); NativeMethods.rcl_node_fini(ref node); NativeMethods.rclcs_node_dispose_options(defaultNodeOptions); NativeMethods.rcl_shutdown(ref context); NativeMethods.rcl_context_fini(ref context); }
public void PublisherPublish() { RCLReturnEnum ret; rcl_publisher_t publisher = NativeMethods.rcl_get_zero_initialized_publisher(); rcl_publisher_options_t publisherOptions = NativeMethods.rcl_publisher_get_default_options(); std_msgs.msg.Bool msg = new std_msgs.msg.Bool(); IntPtr typeSupportHandle = msg.TypeSupportHandle; ret = (RCLReturnEnum)NativeMethods.rcl_publisher_init(ref publisher, ref node, typeSupportHandle, "/publisher_test_topic", ref publisherOptions); ret = (RCLReturnEnum)NativeMethods.rcl_publish(ref publisher, msg.Handle); Assert.That(ret, Is.EqualTo(RCLReturnEnum.RCL_RET_OK), Utils.PopRclErrorString()); ret = (RCLReturnEnum)NativeMethods.rcl_publisher_fini(ref publisher, ref node); Assert.That(ret, Is.EqualTo(RCLReturnEnum.RCL_RET_OK), Utils.PopRclErrorString()); }
public void PublisherGetDefaultOptions() { rcl_publisher_options_t publisherOptions = NativeMethods.rcl_publisher_get_default_options(); }