From 8411cf2f85e6b07c0e55b8e6f344ac0ea2b38e64 Mon Sep 17 00:00:00 2001 From: liyaoyao Date: Wed, 17 Apr 2024 17:12:05 +0800 Subject: [PATCH] Add additional extended parameters related to production test Signed-off-by: liyaoyao --- frameworks/js/napi/src/sensor_napi_utils.cpp | 8 +++++- interfaces/inner_api/sensor_agent_type.h | 26 +++++++++++--------- interfaces/kits/c/oh_sensor_type.h | 5 ++++ services/src/sensor_dump.cpp | 2 ++ 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/frameworks/js/napi/src/sensor_napi_utils.cpp b/frameworks/js/napi/src/sensor_napi_utils.cpp index df2dd4d3..e699d047 100644 --- a/frameworks/js/napi/src/sensor_napi_utils.cpp +++ b/frameworks/js/napi/src/sensor_napi_utils.cpp @@ -25,6 +25,7 @@ namespace OHOS { namespace Sensors { namespace { constexpr int32_t STRING_LENGTH_MAX = 64; + constexpr int32_t OPTIONAL_PARAMETER_INVALID = -1; } // namespace bool IsSameValue(const napi_env &env, const napi_value &lhs, const napi_value &rhs) { @@ -160,7 +161,7 @@ std::map> g_sensorAttributeList = { { 0, { "x" } }, { SENSOR_TYPE_ID_ACCELEROMETER, { "x", "y", "z" } }, { SENSOR_TYPE_ID_GYROSCOPE, { "x", "y", "z" } }, - { SENSOR_TYPE_ID_AMBIENT_LIGHT, { "intensity" } }, + { SENSOR_TYPE_ID_AMBIENT_LIGHT, { "intensity", "colorTemp", "irLuminance" } }, { SENSOR_TYPE_ID_MAGNETIC_FIELD, { "x", "y", "z" } }, { SENSOR_TYPE_ID_BAROMETER, { "pressure" } }, { SENSOR_TYPE_ID_HALL, { "status" } }, @@ -328,6 +329,11 @@ bool ConvertToSensorData(const napi_env &env, sptr asyncCallb napi_value message = nullptr; auto sensorAttributes = g_sensorAttributeList[sensorTypeId]; for (uint32_t i = 0; i < size; ++i) { + if (sensorTypeId == SENSOR_TYPE_ID_AMBIENT_LIGHT && i > 0) { + if (asyncCallbackInfo->data.sensorData.data[i] == OPTIONAL_PARAMETER_INVALID) { + CHKNRF(env, napi_get_undefined(env, &message), "napi_get_undefined"); + } + } CHKNRF(env, napi_create_double(env, asyncCallbackInfo->data.sensorData.data[i], &message), "napi_create_double"); CHKNRF(env, napi_set_named_property(env, result[1], sensorAttributes[i].c_str(), message), diff --git a/interfaces/inner_api/sensor_agent_type.h b/interfaces/inner_api/sensor_agent_type.h index 4312d5b9..3e320ed6 100644 --- a/interfaces/inner_api/sensor_agent_type.h +++ b/interfaces/inner_api/sensor_agent_type.h @@ -80,6 +80,7 @@ typedef enum SensorTypeId { SENSOR_TYPE_ID_SAR = 15, /**< Sar sensor */ SENSOR_TYPE_ID_AMBIENT_LIGHT1 = 16, /**< Secondary ambient light sensor */ SENSOR_TYPE_ID_HALL_EXT = 17, /**< Extended hall effect sensor */ + SENSOR_TYPE_ID_PROXIMITY1 = 18, /**< Secondary proximity sensor */ SENSOR_TYPE_ID_PHYSICAL_MAX = 0xFF, /**< Maximum type ID of a physical sensor */ SENSOR_TYPE_ID_ORIENTATION = 256, /**< Orientation sensor */ SENSOR_TYPE_ID_GRAVITY = 257, /**< Gravity sensor */ @@ -87,20 +88,21 @@ typedef enum SensorTypeId { SENSOR_TYPE_ID_ROTATION_VECTOR = 259, /**< Rotation vector sensor */ SENSOR_TYPE_ID_AMBIENT_TEMPERATURE = 260, /**< Ambient temperature sensor */ SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED = 261, /**< Uncalibrated magnetic field sensor */ - SENSOR_TYPE_ID_GAME_ROTATION_VECTOR = 262, /**< Game rotation vector sensor */ - SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED = 263, /**< Uncalibrated gyroscope sensor */ - SENSOR_TYPE_ID_SIGNIFICANT_MOTION = 264, /**< Significant motion sensor */ - SENSOR_TYPE_ID_PEDOMETER_DETECTION = 265, /**< Pedometer detection sensor */ - SENSOR_TYPE_ID_PEDOMETER = 266, /**< Pedometer sensor */ - SENSOR_TYPE_ID_POSTURE = 267, /**< Posture sensor */ - SENSOR_TYPE_ID_HEADPOSTURE = 268, /**< Head posture sensor */ + SENSOR_TYPE_ID_GAME_ROTATION_VECTOR = 262, /**< Game rotation vector sensor */ + SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED = 263, /**< Uncalibrated gyroscope sensor */ + SENSOR_TYPE_ID_SIGNIFICANT_MOTION = 264, /**< Significant motion sensor */ + SENSOR_TYPE_ID_PEDOMETER_DETECTION = 265, /**< Pedometer detection sensor */ + SENSOR_TYPE_ID_PEDOMETER = 266, /**< Pedometer sensor */ + SENSOR_TYPE_ID_POSTURE = 267, /**< Posture sensor */ + SENSOR_TYPE_ID_HEADPOSTURE = 268, /**< Head posture sensor */ SENSOR_TYPE_ID_DROP_DETECTION = 269, /**< Drop detection sensor */ SENSOR_TYPE_ID_GEOMAGNETIC_ROTATION_VECTOR = 277, /**< Geomagnetic rotation vector sensor */ - SENSOR_TYPE_ID_HEART_RATE = 278, /**< Heart rate sensor */ - SENSOR_TYPE_ID_DEVICE_ORIENTATION = 279, /**< Device orientation sensor */ - SENSOR_TYPE_ID_WEAR_DETECTION = 280, /**< Wear detection sensor */ + SENSOR_TYPE_ID_HEART_RATE = 278, /**< Heart rate sensor */ + SENSOR_TYPE_ID_DEVICE_ORIENTATION = 279, /**< Device orientation sensor */ + SENSOR_TYPE_ID_WEAR_DETECTION = 280, /**< Wear detection sensor */ SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED = 281, /**< Uncalibrated acceleration sensor */ - SENSOR_TYPE_ID_MAX = 30, /**< Maximum number of sensor type IDs*/ + SENSOR_TYPE_ID_RPC = 282, /**< Radio Power Control */ + SENSOR_TYPE_ID_MAX = 30, /**< Maximum number of sensor type IDs*/ } SensorTypeId; /** @@ -417,6 +419,8 @@ typedef struct ProximityData { */ typedef struct AmbientLightData { float intensity = 0.0; + float colorTemperature = 0.0; + float infraredLuminance = 0.0; } AmbientLightData; /** diff --git a/interfaces/kits/c/oh_sensor_type.h b/interfaces/kits/c/oh_sensor_type.h index f4d51c5b..c41ce90c 100644 --- a/interfaces/kits/c/oh_sensor_type.h +++ b/interfaces/kits/c/oh_sensor_type.h @@ -81,6 +81,11 @@ typedef enum Sensor_Type { * @since 11 */ SENSOR_TYPE_PROXIMITY = 12, + /** + * Senondary ambient light sensor. + * @since 11 + */ + SENSOR_TYPE_AMBIENT_LIGHT1 = 16, /** * Orientation sensor. * @since 11 diff --git a/services/src/sensor_dump.cpp b/services/src/sensor_dump.cpp index 01feacb2..cd126b53 100644 --- a/services/src/sensor_dump.cpp +++ b/services/src/sensor_dump.cpp @@ -86,6 +86,7 @@ std::unordered_map SensorDump::sensorMap_ = { { SENSOR_TYPE_ID_POSTURE, "POSTURE" }, { SENSOR_TYPE_ID_HEADPOSTURE, "HEAD POSTURE" }, { SENSOR_TYPE_ID_DROP_DETECTION, "DROP DETECTION" }, + { SENSOR_TYPE_ID_RPC, "RPC" }, }; void SensorDump::RunSensorDump(int32_t fd, int32_t optionIndex, const std::vector &args, char **argv) @@ -295,6 +296,7 @@ int32_t SensorDump::GetDataDimension(int32_t sensorId) case SENSOR_TYPE_ID_AMBIENT_LIGHT: case SENSOR_TYPE_ID_AMBIENT_LIGHT1: case SENSOR_TYPE_ID_BAROMETER: + case SENSOR_TYPE_ID_RPC: case SENSOR_TYPE_ID_HALL: case SENSOR_TYPE_ID_HALL_EXT: case SENSOR_TYPE_ID_TEMPERATURE: -- Gitee