Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        public void PublisherInit()
        {
            rcl_publisher_t publisher        = new rcl_publisher_t();
            IntPtr          publisherOptions = new IntPtr();

            InitPublisher(ref publisher, ref node, publisherOptions);
            ShutdownPublisher(ref publisher, ref node, publisherOptions);
        }
Ejemplo n.º 3
0
        public static void ShutdownPublisher(ref rcl_publisher_t publisher, ref rcl_node_t node, IntPtr publisherOptions)
        {
            RCLReturnEnum ret;

            ret = (RCLReturnEnum)NativeMethods.rcl_publisher_fini(ref publisher, ref node);
            Assert.That(ret, Is.EqualTo(RCLReturnEnum.RCL_RET_OK), Utils.PopRclErrorString());
            NativeMethods.rclcs_publisher_dispose_options(publisherOptions);
        }
Ejemplo n.º 4
0
        public static void InitPublisher(ref rcl_publisher_t publisher, ref rcl_node_t node, IntPtr publisherOptions)
        {
            RCLReturnEnum ret;

            publisher        = NativeMethods.rcl_get_zero_initialized_publisher();
            publisherOptions = NativeMethods.rclcs_publisher_create_default_options();
            IMessageInternals msg = new std_msgs.msg.Bool();
            IntPtr            typeSupportHandle = msg.TypeSupportHandle;

            ret = (RCLReturnEnum)NativeMethods.rcl_publisher_init(ref publisher, ref node, typeSupportHandle, "publisher_test_topic", publisherOptions);
        }
Ejemplo n.º 5
0
        public void PublisherPublish()
        {
            RCLReturnEnum   ret;
            rcl_publisher_t publisher        = new rcl_publisher_t();
            IntPtr          publisherOptions = new IntPtr();

            PublisherInitialize.InitPublisher(ref publisher, ref node, publisherOptions);
            IMessageInternals msg = new std_msgs.msg.Bool();

            ret = (RCLReturnEnum)NativeMethods.rcl_publish(ref publisher, msg.Handle);
            Assert.That(ret, Is.EqualTo(RCLReturnEnum.RCL_RET_OK), Utils.PopRclErrorString());
            PublisherInitialize.ShutdownPublisher(ref publisher, ref node, publisherOptions);
        }
Ejemplo n.º 6
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());
        }
Ejemplo n.º 7
0
 public void GetZeroInitializedPublisher()
 {
     rcl_publisher_t publisher = NativeMethods.rcl_get_zero_initialized_publisher();
 }