mirror of
https://gitee.com/xiaohuolufeihua/bizhang_-obav.git
synced 2026-05-21 01:12:11 +00:00
logger: only add data message to the log if orb_copy succeeds, when adding a new instance
This commit is contained in:
@@ -441,7 +441,7 @@ bool Logger::copy_if_updated_multi(LoggerSubscription &sub, int multi_instance,
|
|||||||
if (OK == orb_exists(sub.metadata, multi_instance)) {
|
if (OK == orb_exists(sub.metadata, multi_instance)) {
|
||||||
handle = orb_subscribe_multi(sub.metadata, multi_instance);
|
handle = orb_subscribe_multi(sub.metadata, multi_instance);
|
||||||
|
|
||||||
//PX4_INFO("subscribed to instance %d of topic %s", multi_instance, topic->o_name);
|
//PX4_INFO("subscribed to instance %d of topic %s", multi_instance, sub.metadata->o_name);
|
||||||
|
|
||||||
/* copy first data */
|
/* copy first data */
|
||||||
if (handle >= 0) {
|
if (handle >= 0) {
|
||||||
@@ -454,8 +454,11 @@ bool Logger::copy_if_updated_multi(LoggerSubscription &sub, int multi_instance,
|
|||||||
orb_set_interval(handle, interval);
|
orb_set_interval(handle, interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
orb_copy(sub.metadata, handle, buffer);
|
/* It can happen that orb_exists returns true, even if there is no publisher (but another subscriber).
|
||||||
updated = true;
|
* We catch this here, because orb_copy will fail in this case. */
|
||||||
|
if (orb_copy(sub.metadata, handle, buffer) == PX4_OK) {
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -295,7 +295,8 @@ public:
|
|||||||
int orb_stat(int handle, uint64_t *time) ;
|
int orb_stat(int handle, uint64_t *time) ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a topic has already been created.
|
* Check if a topic has already been created (a publisher or a subscriber exists with
|
||||||
|
* the given instance).
|
||||||
*
|
*
|
||||||
* @param meta ORB topic metadata.
|
* @param meta ORB topic metadata.
|
||||||
* @param instance ORB instance
|
* @param instance ORB instance
|
||||||
|
|||||||
Reference in New Issue
Block a user