Esempio n. 1
0
        public void SubscriptionInit()
        {
            // 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               = "subscription_test";
            string     nodeNamespace      = "/ns";
            IntPtr     defaultNodeOptions = NativeMethods.rclcs_node_create_default_options();

            NativeMethods.rcl_node_init(ref node, name, nodeNamespace, ref context, defaultNodeOptions);

            rcl_subscription_t subscription        = NativeMethods.rcl_get_zero_initialized_subscription();
            IntPtr             subscriptionOptions = NativeMethods.rclcs_subscription_create_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_subscription_init(ref subscription, ref node, typeSupportHandle, "/subscriber_test_topic", subscriptionOptions);
            Assert.That(ret, Is.EqualTo(RCLReturnEnum.RCL_RET_OK), Utils.PopRclErrorString());

            // shutdown
            ret = (RCLReturnEnum)NativeMethods.rcl_subscription_fini(ref subscription, ref node);
            NativeMethods.rclcs_subscription_dispose_options(subscriptionOptions);
            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);
        }
Esempio n. 2
0
        public static void ShutdownSubscription(ref rcl_subscription_t subscription, IntPtr subscriptionOptions, ref rcl_node_t node)
        {
            RCLReturnEnum ret;

            ret = (RCLReturnEnum)NativeMethods.rcl_subscription_fini(ref subscription, ref node);
            NativeMethods.rclcs_subscription_dispose_options(subscriptionOptions);
            Assert.That(ret, Is.EqualTo(RCLReturnEnum.RCL_RET_OK), Utils.PopRclErrorString());
        }
Esempio n. 3
0
        public static void InitSubscription(ref rcl_subscription_t subscription, IntPtr subscriptionOptions, ref rcl_node_t node)
        {
            RCLReturnEnum ret;

            subscription        = NativeMethods.rcl_get_zero_initialized_subscription();
            subscriptionOptions = NativeMethods.rclcs_subscription_create_default_options();
            IMessageInternals msg = new std_msgs.msg.Bool();
            IntPtr            typeSupportHandle = msg.TypeSupportHandle;

            ret = (RCLReturnEnum)NativeMethods.rcl_subscription_init(ref subscription, ref node, typeSupportHandle, "/subscriber_test_topic", subscriptionOptions);
            Assert.That(ret, Is.EqualTo(RCLReturnEnum.RCL_RET_OK), Utils.PopRclErrorString());
        }
Esempio n. 4
0
        public void SetSubscriptionQosProfile()
        {
            rcl_subscription_t subscription        = NativeMethods.rcl_get_zero_initialized_subscription();
            IntPtr             subscriptionOptions = NativeMethods.rclcs_subscription_create_default_options();

            NativeMethods.rclcs_subscription_set_qos_profile(subscriptionOptions, 0);

            MethodInfo m = typeof(std_msgs.msg.Bool).GetTypeInfo().GetDeclaredMethod("_GET_TYPE_SUPPORT");
            IntPtr     typeSupportHandle = (IntPtr)m.Invoke(null, new object[] { });

            NativeMethods.rcl_subscription_init(ref subscription, ref node, typeSupportHandle, "/subscriber_test_topic", subscriptionOptions);

            Assert.That(NativeMethods.rcl_subscription_is_valid(ref subscription), Is.True);

            NativeMethods.rcl_subscription_fini(ref subscription, ref node);
            NativeMethods.rclcs_subscription_dispose_options(subscriptionOptions);
        }
Esempio n. 5
0
        public void SetSubscriptionQosProfile()
        {
            rcl_subscription_t subscription        = NativeMethods.rcl_get_zero_initialized_subscription();
            IntPtr             subscriptionOptions = NativeMethods.rclcs_subscription_create_default_options();

            NativeMethods.rclcs_subscription_set_qos_profile(subscriptionOptions, 0);

            IMessageInternals msg = new std_msgs.msg.Bool();
            IntPtr            typeSupportHandle = msg.TypeSupportHandle;

            NativeMethods.rcl_subscription_init(ref subscription, ref node, typeSupportHandle, "/subscriber_test_topic", subscriptionOptions);

            Assert.That(NativeMethods.rcl_subscription_is_valid(ref subscription), Is.True);

            NativeMethods.rcl_subscription_fini(ref subscription, ref node);
            NativeMethods.rclcs_subscription_dispose_options(subscriptionOptions);
        }
Esempio n. 6
0
        public void SubscriptionInit()
        {
            rcl_context_t context     = new rcl_context_t();
            rcl_node_t    node        = new rcl_node_t();
            IntPtr        nodeOptions = new IntPtr();

            RCLInitialize.InitRcl(ref context);
            NodeInitialize.InitNode(ref node, nodeOptions, ref context);

            rcl_subscription_t subscription        = new rcl_subscription_t();
            IntPtr             subscriptionOptions = new IntPtr();

            InitSubscription(ref subscription, subscriptionOptions, ref node);
            ShutdownSubscription(ref subscription, subscriptionOptions, ref node);

            NodeInitialize.ShutdownNode(ref node, nodeOptions);
            RCLInitialize.ShutdownRcl(ref context);
        }
Esempio n. 7
0
        public void SetUp()
        {
            // init
            rcl_init_options_t init_options = NativeMethods.rcl_get_zero_initialized_init_options();

            allocator = NativeMethods.rcl_get_default_allocator();
            NativeMethods.rcl_init_options_init(ref init_options, allocator);
            context = NativeMethods.rcl_get_zero_initialized_context();
            NativeMethods.rcl_init(0, null, ref init_options, ref context);
            node = NativeMethods.rcl_get_zero_initialized_node();
            string name          = "subscription_test";
            string nodeNamespace = "/ns";

            defaultNodeOptions = NativeMethods.rclcs_node_create_default_options();
            NativeMethods.rcl_node_init(ref node, name, nodeNamespace, ref context, defaultNodeOptions);

            subscription        = NativeMethods.rcl_get_zero_initialized_subscription();
            subscriptionOptions = NativeMethods.rclcs_subscription_create_default_options();
            MethodInfo m = typeof(std_msgs.msg.Bool).GetTypeInfo().GetDeclaredMethod("_GET_TYPE_SUPPORT");
            IntPtr     typeSupportHandle = (IntPtr)m.Invoke(null, new object[] { });

            NativeMethods.rcl_subscription_init(ref subscription, ref node, typeSupportHandle, "/subscriber_test_topic", subscriptionOptions);
        }
Esempio n. 8
0
 public void GetZeroInitializedSubscription()
 {
     rcl_subscription_t subscription = NativeMethods.rcl_get_zero_initialized_subscription();
 }