Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Promote T265 FW Tag; Minor SDK fixes #3669

Merged
merged 2 commits into from
Apr 4, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 24 additions & 25 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,50 +46,49 @@ endif()

target_sources(${LRS_TARGET}
PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/environment.cpp"
"${CMAKE_CURRENT_LIST_DIR}/device_hub.cpp"
"${CMAKE_CURRENT_LIST_DIR}/algo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/archive.cpp"
"${CMAKE_CURRENT_LIST_DIR}/backend.cpp"
"${CMAKE_CURRENT_LIST_DIR}/context.cpp"
"${CMAKE_CURRENT_LIST_DIR}/device.cpp"
"${CMAKE_CURRENT_LIST_DIR}/sensor.cpp"
"${CMAKE_CURRENT_LIST_DIR}/algo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/sync.cpp"
"${CMAKE_CURRENT_LIST_DIR}/stream.cpp"
"${CMAKE_CURRENT_LIST_DIR}/option.cpp"
"${CMAKE_CURRENT_LIST_DIR}/device_hub.cpp"
"${CMAKE_CURRENT_LIST_DIR}/environment.cpp"
"${CMAKE_CURRENT_LIST_DIR}/error-handling.cpp"
"${CMAKE_CURRENT_LIST_DIR}/hw-monitor.cpp"
"${CMAKE_CURRENT_LIST_DIR}/image.cpp"
"${CMAKE_CURRENT_LIST_DIR}/image-avx.cpp"
"${CMAKE_CURRENT_LIST_DIR}/log.cpp"
"${CMAKE_CURRENT_LIST_DIR}/option.cpp"
"${CMAKE_CURRENT_LIST_DIR}/rs.cpp"
"${CMAKE_CURRENT_LIST_DIR}/types.cpp"
"${CMAKE_CURRENT_LIST_DIR}/backend.cpp"
"${CMAKE_CURRENT_LIST_DIR}/verify.c"
"${CMAKE_CURRENT_LIST_DIR}/sensor.cpp"
"${CMAKE_CURRENT_LIST_DIR}/software-device.cpp"
"${CMAKE_CURRENT_LIST_DIR}/source.cpp"
"${CMAKE_CURRENT_LIST_DIR}/stream.cpp"
"${CMAKE_CURRENT_LIST_DIR}/sync.cpp"
"${CMAKE_CURRENT_LIST_DIR}/types.cpp"
"${CMAKE_CURRENT_LIST_DIR}/verify.c"

"${CMAKE_CURRENT_LIST_DIR}/software-device.h"
"${CMAKE_CURRENT_LIST_DIR}/environment.h"
"${CMAKE_CURRENT_LIST_DIR}/device_hub.h"
"${CMAKE_CURRENT_LIST_DIR}/algo.h"
"${CMAKE_CURRENT_LIST_DIR}/api.h"
"${CMAKE_CURRENT_LIST_DIR}/archive.h"
"${CMAKE_CURRENT_LIST_DIR}/backend.h"
"${CMAKE_CURRENT_LIST_DIR}/concurrency.h"
"${CMAKE_CURRENT_LIST_DIR}/context.h"
"${CMAKE_CURRENT_LIST_DIR}/sensor.h"
"${CMAKE_CURRENT_LIST_DIR}/sync.h"
"${CMAKE_CURRENT_LIST_DIR}/sensor.h"
"${CMAKE_CURRENT_LIST_DIR}/stream.h"
"${CMAKE_CURRENT_LIST_DIR}/algo.h"
"${CMAKE_CURRENT_LIST_DIR}/option.h"
"${CMAKE_CURRENT_LIST_DIR}/metadata.h"
"${CMAKE_CURRENT_LIST_DIR}/metadata-parser.h"
"${CMAKE_CURRENT_LIST_DIR}/device.h"
"${CMAKE_CURRENT_LIST_DIR}/device_hub.h"
"${CMAKE_CURRENT_LIST_DIR}/environment.h"
"${CMAKE_CURRENT_LIST_DIR}/error-handling.h"
"${CMAKE_CURRENT_LIST_DIR}/frame-archive.h"
"${CMAKE_CURRENT_LIST_DIR}/hw-monitor.h"
"${CMAKE_CURRENT_LIST_DIR}/image.h"
"${CMAKE_CURRENT_LIST_DIR}/image-avx.h"
"${CMAKE_CURRENT_LIST_DIR}/metadata.h"
"${CMAKE_CURRENT_LIST_DIR}/metadata-parser.h"
"${CMAKE_CURRENT_LIST_DIR}/option.h"
"${CMAKE_CURRENT_LIST_DIR}/sensor.h"
"${CMAKE_CURRENT_LIST_DIR}/software-device.h"
"${CMAKE_CURRENT_LIST_DIR}/source.h"
"${CMAKE_CURRENT_LIST_DIR}/ivcam/ivcam-private.h"
"${CMAKE_CURRENT_LIST_DIR}/stream.h"
"${CMAKE_CURRENT_LIST_DIR}/sync.h"
"${CMAKE_CURRENT_LIST_DIR}/types.h"
"${CMAKE_CURRENT_LIST_DIR}/backend.h"
"${CMAKE_CURRENT_LIST_DIR}/device.h"
"${CMAKE_CURRENT_LIST_DIR}/api.h"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ev-mp because you sorted this list and changed its contents at the same time, it's hard to see what changed here. I see at least ivcam/ivcam-private.h is now gone, which is unrelated to T265 as far as I know.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes rectify inconsistencies discovered during the validation of the new TM2 FW. And they are separate from the FW update commit

)
2 changes: 1 addition & 1 deletion src/l500/l500-color.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ namespace librealsense

_color_device_idx = add_sensor(create_color_device(ctx, color_devs_info));
}
};
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems unrelated to T265, so probably shouldn't be in this PR

2 changes: 1 addition & 1 deletion src/tm2/tm-context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ namespace librealsense
[](perc::TrackingManager* ptr) { perc::TrackingManager::ReleaseInstance(ptr); });
if (_manager == nullptr)
{
LOG_WARNING("Failed to create TrackingManager");
LOG_INFO("Failed to create TrackingManager");
return;
}
_t = std::thread(&tm2_context::thread_proc, this);
Expand Down
10 changes: 5 additions & 5 deletions src/tm2/tm-device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -790,7 +790,7 @@ namespace librealsense
}
else
{
LOG_WARNING("Dropped frame. alloc_frame(...) returned nullptr");
LOG_INFO("Dropped frame. alloc_frame(...) returned nullptr");
return;
}
_source.invoke_callback(std::move(frame));
Expand Down Expand Up @@ -1012,20 +1012,20 @@ namespace librealsense
}
else
{
LOG_WARNING("Dropped frame. alloc_frame(...) returned nullptr");
LOG_INFO("Dropped frame. alloc_frame(...) returned nullptr");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In what scenario would alloc_frame return a nullptr that doesn't justify a warning?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The warning occurs whenever frames acquired by users are not released in a timely manner.
We observe it some OpenGl-enabled demos where the default frames queue allocated in the SDK (size=16) is probably not enough to compensate for 3D scene render.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main problem is that this is a negative feedback loop - frame drops cause console output, slowing the app and causing more frame drops.
A better solution that we discussed for a while (I think @aangerma tried implementing at some point) is for processing blocks to implement notification extension (like the sensor does) and manage some basic internal statistics. This way, we can avoid spamming the output with such warnings...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ev-mp Should we make the frame queue deeper for imu data which is small but high rate?

return;
}
_source.invoke_callback(std::move(frame));
}

void tm2_sensor::raise_hardware_event(const std::string& msg, const std::string& json_data, double timestamp)
{
notification controller_event{ RS2_NOTIFICATION_CATEGORY_HARDWARE_EVENT, 0, RS2_LOG_SEVERITY_INFO, msg };
controller_event.serialized_data = json_data;
controller_event.timestamp = timestamp;
get_notifications_processor()->raise_notification(controller_event);
}

void tm2_sensor::raise_error_notification(const std::string& msg)
{
notification error{ RS2_NOTIFICATION_CATEGORY_HARDWARE_ERROR, 0, RS2_LOG_SEVERITY_ERROR, msg };
Expand All @@ -1049,7 +1049,7 @@ namespace librealsense
}
});
}

void tm2_sensor::detach_controller(int id)
{
perc::Status status = _tm_dev->ControllerDisconnect(id);
Expand Down
2 changes: 1 addition & 1 deletion third-party/libtm/versions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 2.8)
# If FW source = Local - FW versions are defined according to /resources/remote_versions.log
# If FW source = Internal - FW versions are defined according to fw.h, CentralAppFw.h, CentralBlFw.h
set(INTERNAL_HOST_VERSION "0.19.3.1711")
set(INTERNAL_FW_VERSION "0.0.18.5129")
set(INTERNAL_FW_VERSION "0.0.18.5448")
set(INTERNAL_CENTRAL_APP_VERSION "2.0.19.271")
set(INTERNAL_CENTRAL_BL_VERSION "1.0.1.112")
set(INTERNAL_FW_SOURCE "Remote" CACHE STRING "Select TM2 FW archive: Remote/Local (to avoid FW polling from remote server)")
Expand Down