Example #1
0
        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);
        }
Example #2
0
        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());
        }
Example #3
0
 public void PublisherGetDefaultOptions()
 {
     rcl_publisher_options_t publisherOptions = NativeMethods.rcl_publisher_get_default_options();
 }