Я студент и в настоящее время экспериментирую с настройками QoS в ROS 2. Я пытаюсь реализовать событие (RMW_EVENT_REQUESTED_DEADLINE_MISSED).
Сначала я объявляю подписку и событие:
static const rmw_subscription_t sub1
{
"sub1", (void *) "gets deadline missed", "topic1"
};
static const rmw_event_t deadline_missed =
{
"event 1" , (void *) "deadline missed", RMW_EVENT_REQUESTED_DEADLINE_MISSED
};
После этого я пытаюсь инициализировать событие:
rmw_subscription_event_init(deadline_missed, sub1, RMW_EVENT_REQUESTED_DEADLINE_MISSED);
Но я получаю ошибку (Нет подходящей функции для вызова 'rmw_subscription_event_init')
Программа предлагает мнеизмените мою подписку и объявление события на:
static const rmw_subscription_t *const sub1
{
"sub1", (void *) "gets deadline missed", "topic1"
};
static rmw_event_t *const deadline_missed =
{
"event 1" , (void *) "deadline missed", RMW_EVENT_REQUESTED_DEADLINE_MISSED
};
Но тогда я получаю следующую ошибку (Избыточные элементы в скалярном инициализаторе).
Как исправить эту проблему и в каком из этих двух случаевсамый лучший? Или есть совершенно другой способ создания этого события?
Заранее спасибо!