remove usage of time point init and fini that are unnecessary now
switch rcl_time_point_get_now to be rcl_clock_get_now
This commit is contained in:
parent
d273703e09
commit
7b26e19900
3 changed files with 17 additions and 92 deletions
|
@ -237,43 +237,6 @@ RCL_WARN_UNUSED
|
|||
rcl_ret_t
|
||||
rcl_system_clock_fini(rcl_clock_t * clock);
|
||||
|
||||
/// Initialize a time point using the clock.
|
||||
/**
|
||||
* This function will initialize the time_point using the clock
|
||||
* as a reference.
|
||||
* If the clock is null it will use the system default clock.
|
||||
*
|
||||
* This will allocate all necessary internal structures, and initialize variables.
|
||||
* The clock may be of types `RCL_ROS_TIME`, `RCL_STEADY_TIME`, or
|
||||
* `RCL_SYSTEM_TIME`.
|
||||
*
|
||||
* \param[in] time_point the handle to the clock which is being initialized.
|
||||
* \param[in] clock_type the type of the clock that clock will be used for reference.
|
||||
* \return `RCL_RET_OK` if the last call time was retrieved successfully, or
|
||||
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
||||
* \return `RCL_RET_ERROR` an unspecified error occur.
|
||||
*/
|
||||
RCL_PUBLIC
|
||||
RCL_WARN_UNUSED
|
||||
rcl_ret_t
|
||||
rcl_time_point_init(rcl_time_point_t * time_point, rcl_clock_type_t * clock_type);
|
||||
|
||||
/// Finalize a time_point
|
||||
/**
|
||||
* Finalize the time_point such that it is ready for deallocation.
|
||||
*
|
||||
* This will deallocate all necessary internal structures, and clean up any variables.
|
||||
*
|
||||
* \param[in] time_point the handle to the time_point which is being finalized.
|
||||
* \return `RCL_RET_OK` if the last call time was retrieved successfully, or
|
||||
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
||||
* \return `RCL_RET_ERROR` an unspecified error occur.
|
||||
*/
|
||||
RCL_PUBLIC
|
||||
RCL_WARN_UNUSED
|
||||
rcl_ret_t
|
||||
rcl_time_point_fini(rcl_time_point_t * time_point);
|
||||
|
||||
/// Initialize a duration using the clock.
|
||||
/**
|
||||
* This function will initialize the duration using the clock as a reference.
|
||||
|
@ -344,7 +307,7 @@ rcl_difference_times(
|
|||
RCL_PUBLIC
|
||||
RCL_WARN_UNUSED
|
||||
rcl_ret_t
|
||||
rcl_time_point_get_now(rcl_clock_t * clock, rcl_time_point_t * time_point);
|
||||
rcl_clock_get_now(rcl_clock_t * clock, rcl_time_point_t * time_point);
|
||||
|
||||
|
||||
/// Enable the ROS time abstraction override.
|
||||
|
@ -396,7 +359,7 @@ RCL_PUBLIC
|
|||
RCL_WARN_UNUSED
|
||||
rcl_ret_t
|
||||
rcl_is_enabled_ros_time_override(
|
||||
rcl_time_source_t * time_source, bool * is_enabled);
|
||||
rcl_clock_t * time_source, bool * is_enabled);
|
||||
|
||||
/// Set the current time for this `RCL_ROS_TIME` time source.
|
||||
/**
|
||||
|
@ -415,7 +378,7 @@ RCL_PUBLIC
|
|||
RCL_WARN_UNUSED
|
||||
rcl_ret_t
|
||||
rcl_set_ros_time_override(
|
||||
rcl_time_source_t * time_source, rcl_time_point_value_t time_value);
|
||||
rcl_clock_t * time_source, rcl_time_point_value_t time_value);
|
||||
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -188,24 +188,6 @@ rcl_system_clock_fini(rcl_clock_t * clock)
|
|||
return RCL_RET_OK;
|
||||
}
|
||||
|
||||
rcl_ret_t
|
||||
rcl_time_point_init(rcl_time_point_t * time_point, rcl_clock_type_t * clock_type)
|
||||
{
|
||||
RCL_CHECK_ARGUMENT_FOR_NULL(time_point, RCL_RET_INVALID_ARGUMENT, rcl_get_default_allocator());
|
||||
RCL_CHECK_ARGUMENT_FOR_NULL(clock_type, RCL_RET_INVALID_ARGUMENT, rcl_get_default_allocator());
|
||||
time_point->clock_type = *clock_type;
|
||||
|
||||
return RCL_RET_OK;
|
||||
}
|
||||
|
||||
rcl_ret_t
|
||||
rcl_time_point_fini(rcl_time_point_t * time_point)
|
||||
{
|
||||
RCL_CHECK_ARGUMENT_FOR_NULL(time_point, RCL_RET_INVALID_ARGUMENT, rcl_get_default_allocator());
|
||||
(void)time_point;
|
||||
return RCL_RET_OK;
|
||||
}
|
||||
|
||||
rcl_ret_t
|
||||
rcl_duration_init(rcl_duration_t * duration, rcl_clock_type_t * clock_type)
|
||||
{
|
||||
|
@ -238,17 +220,18 @@ rcl_difference_times(
|
|||
if (finish->nanoseconds < start->nanoseconds) {
|
||||
rcl_time_point_value_t intermediate = start->nanoseconds - finish->nanoseconds;
|
||||
delta->nanoseconds = -1 * (int) intermediate;
|
||||
}
|
||||
} else {
|
||||
delta->nanoseconds = (int)(finish->nanoseconds - start->nanoseconds);
|
||||
}
|
||||
return RCL_RET_OK;
|
||||
}
|
||||
|
||||
rcl_ret_t
|
||||
rcl_time_point_get_now(rcl_clock_t * clock, rcl_time_point_t * time_point)
|
||||
rcl_clock_get_now(rcl_clock_t * clock, rcl_time_point_t * time_point)
|
||||
{
|
||||
// TODO(tfoote) switch to use external time source
|
||||
RCL_CHECK_ARGUMENT_FOR_NULL(time_point, RCL_RET_INVALID_ARGUMENT, rcl_get_default_allocator());
|
||||
if (time_point->clock_type && clock->get_now) {
|
||||
if (clock->type && clock->get_now) {
|
||||
return clock->get_now(clock->data,
|
||||
&(time_point->nanoseconds));
|
||||
}
|
||||
|
|
|
@ -82,12 +82,10 @@ TEST_F(CLASSNAME(TestTimeFixture, RMW_IMPLEMENTATION), test_rcl_ros_time_set_ove
|
|||
ret = rcl_is_enabled_ros_time_override(ros_clock, &is_enabled);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
EXPECT_EQ(is_enabled, false);
|
||||
ret = rcl_time_point_init(&query_now, &(ros_clock->type));
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
assert_no_malloc_begin();
|
||||
assert_no_free_begin();
|
||||
// Check for normal operation (not allowed to alloc).
|
||||
ret = rcl_time_point_get_now(ros_clock, &query_now);
|
||||
ret = rcl_clock_get_now(ros_clock, &query_now);
|
||||
assert_no_malloc_end();
|
||||
assert_no_realloc_end();
|
||||
assert_no_free_end();
|
||||
|
@ -95,7 +93,7 @@ TEST_F(CLASSNAME(TestTimeFixture, RMW_IMPLEMENTATION), test_rcl_ros_time_set_ove
|
|||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
EXPECT_NE(query_now.nanoseconds, 0u);
|
||||
// Compare to std::chrono::system_clock time (within a second).
|
||||
ret = rcl_time_point_get_now(ros_clock, &query_now);
|
||||
ret = rcl_clock_get_now(ros_clock, &query_now);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
{
|
||||
std::chrono::system_clock::time_point now_sc = std::chrono::system_clock::now();
|
||||
|
@ -119,7 +117,7 @@ TEST_F(CLASSNAME(TestTimeFixture, RMW_IMPLEMENTATION), test_rcl_ros_time_set_ove
|
|||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
EXPECT_EQ(is_enabled, false);
|
||||
// get real
|
||||
ret = rcl_time_point_get_now(ros_clock, &query_now);
|
||||
ret = rcl_clock_get_now(ros_clock, &query_now);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
{
|
||||
std::chrono::system_clock::time_point now_sc = std::chrono::system_clock::now();
|
||||
|
@ -137,7 +135,7 @@ TEST_F(CLASSNAME(TestTimeFixture, RMW_IMPLEMENTATION), test_rcl_ros_time_set_ove
|
|||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
EXPECT_EQ(is_enabled, true);
|
||||
// get sim
|
||||
ret = rcl_time_point_get_now(ros_clock, &query_now);
|
||||
ret = rcl_clock_get_now(ros_clock, &query_now);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
EXPECT_EQ(query_now.nanoseconds, set_point);
|
||||
// disable
|
||||
|
@ -148,7 +146,7 @@ TEST_F(CLASSNAME(TestTimeFixture, RMW_IMPLEMENTATION), test_rcl_ros_time_set_ove
|
|||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
EXPECT_EQ(is_enabled, false);
|
||||
// get real
|
||||
ret = rcl_time_point_get_now(ros_clock, &query_now);
|
||||
ret = rcl_clock_get_now(ros_clock, &query_now);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
{
|
||||
std::chrono::system_clock::time_point now_sc = std::chrono::system_clock::now();
|
||||
|
@ -172,19 +170,11 @@ TEST_F(CLASSNAME(TestTimeFixture, RMW_IMPLEMENTATION), test_rcl_init_for_clock_a
|
|||
ret = rcl_ros_clock_init(&source);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
|
||||
rcl_time_point_t a_time;
|
||||
ret = rcl_time_point_init(&a_time, &(source.type));
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
|
||||
rcl_clock_t * ros_clock =
|
||||
reinterpret_cast<rcl_clock_t *>(calloc(1, sizeof(rcl_clock_t)));
|
||||
rcl_ret_t retval = rcl_ros_clock_init(ros_clock);
|
||||
EXPECT_EQ(retval, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
|
||||
rcl_time_point_t default_time;
|
||||
ret = rcl_time_point_init(&default_time, &(ros_clock->type));
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
|
||||
// assert_no_malloc_begin();
|
||||
// assert_no_free_begin();
|
||||
// // Do stuff in here
|
||||
|
@ -205,10 +195,6 @@ TEST_F(CLASSNAME(TestTimeFixture, RMW_IMPLEMENTATION), test_rcl_init_for_clock_a
|
|||
// const int k_tolerance_ms = 1000;
|
||||
// EXPECT_LE(llabs(now_diff), RCL_MS_TO_NS(k_tolerance_ms)) << "system_clock differs";
|
||||
// }
|
||||
ret = rcl_time_point_fini(&a_time);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
ret = rcl_ros_clock_fini(&source);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
}
|
||||
|
||||
TEST(CLASSNAME(rcl_time, RMW_IMPLEMENTATION), clock_validation) {
|
||||
|
@ -285,16 +271,16 @@ TEST(CLASSNAME(rcl_time, RMW_IMPLEMENTATION), rcl_time_difference) {
|
|||
rcl_ret_t retval = rcl_ros_clock_init(ros_clock);
|
||||
EXPECT_EQ(retval, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
EXPECT_TRUE(ros_clock != nullptr);
|
||||
EXPECT_TRUE(ros_clock->data != nullptr);
|
||||
EXPECT_EQ(ros_clock->type, RCL_ROS_TIME);
|
||||
|
||||
rcl_ret_t ret;
|
||||
rcl_time_point_t a, b;
|
||||
ret = rcl_time_point_init(&a, &(ros_clock->type));
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
ret = rcl_time_point_init(&b, &(ros_clock->type));
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
|
||||
a.nanoseconds = 1000;
|
||||
b.nanoseconds = 2000;
|
||||
a.clock_type = RCL_ROS_TIME;
|
||||
b.clock_type = RCL_ROS_TIME;
|
||||
|
||||
rcl_duration_t d;
|
||||
ret = rcl_duration_init(&d, &(ros_clock->type));
|
||||
|
@ -310,10 +296,6 @@ TEST(CLASSNAME(rcl_time, RMW_IMPLEMENTATION), rcl_time_difference) {
|
|||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
EXPECT_EQ(d.nanoseconds, -1000);
|
||||
EXPECT_EQ(d.clock_type, RCL_ROS_TIME);
|
||||
|
||||
rcl_time_point_t e;
|
||||
ret = rcl_time_point_init(&e, &(ros_clock->type));
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
}
|
||||
|
||||
static bool pre_callback_called = false;
|
||||
|
@ -340,9 +322,6 @@ TEST(CLASSNAME(rcl_time, RMW_IMPLEMENTATION), rcl_time_update_callbacks) {
|
|||
rcl_ret_t ret;
|
||||
rcl_time_point_value_t set_point = 1000000000ull;
|
||||
|
||||
ret = rcl_time_point_init(&query_now, &(ros_clock->type));
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
|
||||
// set callbacks
|
||||
ros_clock->pre_update = pre_callback;
|
||||
ros_clock->post_update = post_callback;
|
||||
|
@ -352,7 +331,7 @@ TEST(CLASSNAME(rcl_time, RMW_IMPLEMENTATION), rcl_time_update_callbacks) {
|
|||
EXPECT_FALSE(post_callback_called);
|
||||
|
||||
// Query it to do something different. no changes expected
|
||||
ret = rcl_time_point_get_now(ros_clock, &query_now);
|
||||
ret = rcl_clock_get_now(ros_clock, &query_now);
|
||||
EXPECT_EQ(ret, RCL_RET_OK) << rcl_get_error_string_safe();
|
||||
|
||||
EXPECT_FALSE(pre_callback_called);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue