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

Windows hid gyro fix #2940

Merged
merged 2 commits into from
Dec 25, 2018
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
25 changes: 18 additions & 7 deletions src/win/win-hid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,19 +145,30 @@ namespace librealsense
rawY *= accelerator_transform_factor;
rawZ *= accelerator_transform_factor;
}
else
else if (type == SENSOR_TYPE_GYROMETER_3D)
{
// Raw X
CHECK_HR(report->GetSensorValue(SENSOR_DATA_TYPE_CUSTOM_VALUE3, &var));
rawX = var.iVal;
CHECK_HR(report->GetSensorValue(SENSOR_DATA_TYPE_ANGULAR_VELOCITY_X_DEGREES_PER_SECOND, &var));
rawX = var.dblVal;

// Raw Y
CHECK_HR(report->GetSensorValue(SENSOR_DATA_TYPE_CUSTOM_VALUE4, &var));
rawY = var.iVal;
CHECK_HR(report->GetSensorValue(SENSOR_DATA_TYPE_ANGULAR_VELOCITY_Y_DEGREES_PER_SECOND, &var));
rawY = var.dblVal;

// Raw Z
CHECK_HR(report->GetSensorValue(SENSOR_DATA_TYPE_CUSTOM_VALUE5, &var));
rawZ = var.iVal;
CHECK_HR(report->GetSensorValue(SENSOR_DATA_TYPE_ANGULAR_VELOCITY_Z_DEGREES_PER_SECOND, &var));
rawZ = var.dblVal;

static constexpr double gyro_transform_factor = 10.0;

rawX *= gyro_transform_factor;
rawY *= gyro_transform_factor;
rawZ *= gyro_transform_factor;
}
else
{
/* Unsupported sensor */
return S_FALSE;
}

PropVariantClear(&var);
Expand Down
9 changes: 7 additions & 2 deletions third-party/libtm/libtm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,14 @@ set(LIBVERSION ${LIBTM_VERSION_MAJOR}.${LIBTM_VERSION_MINOR}.${LIBTM_VERSION_PAT

# Retrieve Git branch name
execute_process(COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY "${LIBTM_ROOT}"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE)
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)

if(GIT_BRANCH STREQUAL "")
set (GIT_BRANCH "Branch_Unknown")
endif()

message(STATUS "--------------------------------------------------------------------------------------------------------------------------------------------------------------")
message(STATUS "Building ${PROJECT_NAME} project on ${OS}, LIBTM version [${LIBTM_VERSION_MAJOR}.${LIBTM_VERSION_MINOR}.${LIBTM_VERSION_PATCH}.${LIBTM_VERSION_BUILD}], API version [${LIBTM_API_VERSION_MAJOR}.${LIBTM_API_VERSION_MINOR}], branch [${GIT_BRANCH}], FW [${FW_VERSION}], Central APP [${CENTRAL_APP_VERSION}], Central BL [${CENTRAL_BL_VERSION}]")
Expand Down
37 changes: 18 additions & 19 deletions third-party/libtm/resources/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ function(readBinHeaderField input_bin_file offset limit output_hex_buffer)

file(READ ${input_bin_file} buffer LIMIT ${limit} OFFSET ${offset} HEX)
string(TOUPPER "${buffer}" buffer)
string(REGEX REPLACE "([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])" "\\4\\3\\2\\1" buffer ${buffer})
string(REGEX REPLACE "([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])" "\\4\\3\\2\\1" buffer "${buffer}")
from_hex("${buffer}" buffer)

# Copy ready buffer to output buffer
Expand All @@ -59,7 +59,7 @@ endfunction()

# Creates hex buffer from binary file - binary file must be 4 bytes aligned
function(bin2h input_bin_file offset output_hex_buffer)
message(STATUS "Creating HEX buffer from ${input_bin_file} offset ${offset}")
# message(STATUS "Creating HEX buffer from ${input_bin_file} offset ${offset}")

# Read hex data from file
file(READ ${input_bin_file} buffer OFFSET ${offset} HEX)
Expand All @@ -68,10 +68,10 @@ function(bin2h input_bin_file offset output_hex_buffer)
string(TOUPPER "${buffer}" buffer)

# Convert every 4 bytes from AABBCCDD to 0xDDCCBBAA
string(REGEX REPLACE "([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])" "0x\\4\\3\\2\\1," buffer ${buffer})
string(REGEX REPLACE "([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])" "0x\\4\\3\\2\\1," buffer "${buffer}")

# Add new line to every 16 columns
string(REGEX REPLACE "(0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,)" "\\1\\n" buffer ${buffer})
string(REGEX REPLACE "(0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,0x........,)" "\\1\\n" buffer "${buffer}")

# Copy ready buffer to output buffer
set(${output_hex_buffer} "${buffer}" PARENT_SCOPE)
Expand All @@ -85,7 +85,7 @@ if(FW_VERSION)
file(REMOVE ${LIBTM_RESOURCES_DIR}/target.mvcmd)
message(STATUS "Downloading FW ${FW_VERSION} from '${FW_ARTIFACTORY_DIR}/${FW_VERSION}/target-${FW_VERSION}.mvcmd'")
file(DOWNLOAD "${FW_ARTIFACTORY_DIR}/${FW_VERSION}/target-${FW_VERSION}.mvcmd" "${LIBTM_RESOURCES_DIR}/target.mvcmd" TIMEOUT 60 STATUS status LOG log)
message(STATUS "Downloading FW ${FW_VERSION} completed - status ${status}")
# message(STATUS "Downloading FW ${FW_VERSION} completed - status ${status}")

list (FIND status "\"No error\"" _index)
if (${_index} EQUAL -1)
Expand All @@ -101,7 +101,7 @@ if(FW_VERSION)

if (FW_SOURCE MATCHES "Remote" OR FW_SOURCE MATCHES "Local")
file(REMOVE ${FW_OUTPUT_FILE})
message(STATUS "Converting FW version ${FW_VERSION} ${LIBTM_RESOURCES_DIR}/target.mvcmd to ${FW_OUTPUT_FILE}")
message(STATUS "Converting FW version ${FW_VERSION} from target.mvcmd to ${FW_OUTPUT_FILE}")

# Create empty output file
file(WRITE ${FW_OUTPUT_FILE} "")
Expand Down Expand Up @@ -130,13 +130,13 @@ endif(FW_VERSION)


if(CENTRAL_APP_VERSION)
message(STATUS "--------------------------------------------------------------------------------------------------------------------------------------------------------------")
# message(STATUS "--------------------------------------------------------------------------------------------------------------------------------------------------------------")

if (FW_SOURCE MATCHES "Remote")
file(REMOVE ${LIBTM_RESOURCES_DIR}/central_app.bin)
message(STATUS "Downloading Central App ${CENTRAL_APP_VERSION} from '${CENTRAL_APP_ARTIFACTORY_DIR}/${CENTRAL_APP_VERSION}/central_app-${CENTRAL_APP_VERSION}.bin'")
file(DOWNLOAD "${CENTRAL_APP_ARTIFACTORY_DIR}/${CENTRAL_APP_VERSION}/central_app-${CENTRAL_APP_VERSION}.bin" "${LIBTM_RESOURCES_DIR}/central_app.bin" TIMEOUT 60 STATUS status LOG log)
message(STATUS "Downloading Central App ${CENTRAL_APP_VERSION} completed - status ${status}")
# message(STATUS "Downloading Central App ${CENTRAL_APP_VERSION} completed - status ${status}")
list (FIND status "\"No error\"" _index)
if (${_index} EQUAL -1)
message(FATAL_ERROR "Download error ${CENTRAL_APP_ARTIFACTORY_DIR}/${CENTRAL_APP_VERSION}/central_app-${CENTRAL_APP_VERSION}.bin" )
Expand All @@ -151,7 +151,7 @@ if(CENTRAL_APP_VERSION)

if (FW_SOURCE MATCHES "Remote" OR FW_SOURCE MATCHES "Local")
file(REMOVE ${CENTRAL_APP_OUTPUT_FILE})
message(STATUS "Converting Central App version ${CENTRAL_APP_VERSION} ${LIBTM_RESOURCES_DIR}/central_app.bin to ${CENTRAL_APP_OUTPUT_FILE}")
message(STATUS "Converting Central App version ${CENTRAL_APP_VERSION} from central_app.bin to ${CENTRAL_APP_OUTPUT_FILE}")

STRING(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+\\.[0-9]+" "\\1" central_app_major_version "${CENTRAL_APP_VERSION}")
STRING(REGEX REPLACE "^[0-9]+\\.([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" central_app_minor_version "${CENTRAL_APP_VERSION}")
Expand Down Expand Up @@ -204,12 +204,12 @@ if(CENTRAL_APP_VERSION)
message(FATAL_ERROR "Wrong Central FW version (${central_app_version_major}.${central_app_version_minor}.${central_app_version_patch}.${central_app_version_build}) VS (${central_app_major_version}.${central_app_minor_version}.${central_app_patch_version}.${central_app_build_version})")
endif()

message(STATUS "Central Header:")
message(STATUS "- header_size = ${central_app_header_size}")
message(STATUS "- data_size = ${central_app_data_size}")
message(STATUS "- file_format_version = ${central_app_format_ver}")
message(STATUS "- version_size = ${central_app_version_size}")
message(STATUS "- version = ${central_app_version_major}.${central_app_version_minor}.${central_app_version_patch}.${central_app_version_build}")
# message(STATUS "Central Header:")
# message(STATUS "- header_size = ${central_app_header_size}")
# message(STATUS "- data_size = ${central_app_data_size}")
# message(STATUS "- file_format_version = ${central_app_format_ver}")
# message(STATUS "- version_size = ${central_app_version_size}")
# message(STATUS "- version = ${central_app_version_major}.${central_app_version_minor}.${central_app_version_patch}.${central_app_version_build}")

# Create empty output file
file(WRITE ${CENTRAL_APP_OUTPUT_FILE} "")
Expand All @@ -222,7 +222,6 @@ if(CENTRAL_APP_VERSION)
file(APPEND ${CENTRAL_APP_OUTPUT_FILE} "#define CENTRAL_APP_VERSION \"${CENTRAL_APP_VERSION}\"\n")
file(APPEND ${CENTRAL_APP_OUTPUT_FILE} "#define CENTRAL_APP_SIZE ${central_app_data_size}\n\n")


file(APPEND ${CENTRAL_APP_OUTPUT_FILE} "namespace CentralAppFw {\n\n")
file(APPEND ${CENTRAL_APP_OUTPUT_FILE} "const int Version[] = { ${central_app_major_version}, ${central_app_minor_version}, ${central_app_patch_version}, ${central_app_build_version} };\n")
file(APPEND ${CENTRAL_APP_OUTPUT_FILE} "const uint32_t Buffer [] = {\n")
Expand All @@ -245,13 +244,13 @@ endif(CENTRAL_APP_VERSION)


if(CENTRAL_BL_VERSION)
message(STATUS "--------------------------------------------------------------------------------------------------------------------------------------------------------------")
# message(STATUS "--------------------------------------------------------------------------------------------------------------------------------------------------------------")

if (FW_SOURCE MATCHES "Remote")
file(REMOVE ${LIBTM_RESOURCES_DIR}/central_bl.bin)
message(STATUS "Downloading Central BL ${CENTRAL_BL_VERSION} from '${CENTRAL_BL_ARTIFACTORY_DIR}/${CENTRAL_BL_VERSION}/central_bl-${CENTRAL_BL_VERSION}.bin'")
file(DOWNLOAD "${CENTRAL_BL_ARTIFACTORY_DIR}/${CENTRAL_BL_VERSION}/central_bl-${CENTRAL_BL_VERSION}.bin" "${LIBTM_RESOURCES_DIR}/central_bl.bin" TIMEOUT 60 STATUS status LOG log)
message(STATUS "Downloading Central BL ${CENTRAL_BL_VERSION} completed - status ${status}")
# message(STATUS "Downloading Central BL ${CENTRAL_BL_VERSION} completed - status ${status}")
list (FIND status "\"No error\"" _index)
if (${_index} EQUAL -1)
message(FATAL_ERROR "Download error ${CENTRAL_BL_ARTIFACTORY_DIR}/${CENTRAL_BL_VERSION}/central_bl-${CENTRAL_BL_VERSION}.bin" )
Expand All @@ -266,7 +265,7 @@ if(CENTRAL_BL_VERSION)

if (FW_SOURCE MATCHES "Remote" OR FW_SOURCE MATCHES "Local")
file(REMOVE ${CENTRAL_BL_OUTPUT_FILE})
message(STATUS "Converting Central BL version ${CENTRAL_BL_VERSION} ${LIBTM_RESOURCES_DIR}/central_bl.bin to ${CENTRAL_BL_OUTPUT_FILE}")
message(STATUS "Converting Central BL version ${CENTRAL_BL_VERSION} from central_bl.bin to ${CENTRAL_BL_OUTPUT_FILE}")

STRING(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+\\.[0-9]+" "\\1" central_bl_major_version "${CENTRAL_BL_VERSION}")
STRING(REGEX REPLACE "^[0-9]+\\.([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" central_bl_minor_version "${CENTRAL_BL_VERSION}")
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 @@ -49,7 +49,7 @@ else()
endif(FW_SOURCE)

message(STATUS "----------------------------------------------------------------------------")
message(STATUS "Product versions:")
message(STATUS "TM2 Product versions:")
message(STATUS "- HOST ${HOST_VERSION} (${HOST_VERSION_SOURCE})")

if (FW_SOURCE MATCHES "Remote")
Expand Down