This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 571f52c9d3 feature: sensor: add force sensor
571f52c9d3 is described below

commit 571f52c9d3797cea048458922eac543d8c21d649
Author: jinxudong <[email protected]>
AuthorDate: Mon Feb 27 14:23:46 2023 +0800

    feature: sensor: add force sensor
    
    A sensor of this type measures the force on it, and additionally
    compares the force with one or more specified thresholds. The sensor
    can output the force value directly. Moreover, it's usually applied
    as a press key. In that case, when it detects a force greater than
    some given threshold, a corresponding event is reported.
    
    Signed-off-by: jinxudong <[email protected]>
---
 drivers/sensors/sensor.c       |  3 ++-
 include/nuttx/sensors/sensor.h | 19 ++++++++++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/sensors/sensor.c b/drivers/sensors/sensor.c
index eab7ec94a5..ddebe96593 100644
--- a/drivers/sensors/sensor.c
+++ b/drivers/sensors/sensor.c
@@ -157,7 +157,8 @@ static const struct sensor_info_s g_sensor_info[] =
   {sizeof(struct sensor_gps_satellite),   "gps_satellite"},
   {sizeof(struct sensor_wake_gesture),    "wake_gesture"},
   {sizeof(struct sensor_cap),             "cap"},
-  {sizeof(struct sensor_gas),             "gas"}
+  {sizeof(struct sensor_gas),             "gas"},
+  {sizeof(struct sensor_force),           "force"},
 };
 
 static const struct file_operations g_sensor_fops =
diff --git a/include/nuttx/sensors/sensor.h b/include/nuttx/sensors/sensor.h
index 5f6830138c..e4edae2e7f 100644
--- a/include/nuttx/sensors/sensor.h
+++ b/include/nuttx/sensors/sensor.h
@@ -297,9 +297,19 @@
 
 #define SENSOR_TYPE_GAS                             33
 
+/* Force
+ * A sensor of this type measures the force on it, and additionally
+ * compares the force with one or more specified thresholds. The sensor
+ * can output the force value directly. Moreover, it's usually applied
+ * as a press key. In that case, when it detects a force greater than
+ * some given threshold, a corresponding event is reported.
+ */
+
+#define SENSOR_TYPE_FORCE                           34
+
 /* The total number of sensor */
 
-#define SENSOR_TYPE_COUNT                           34
+#define SENSOR_TYPE_COUNT                           35
 
 /* The additional sensor open flags */
 
@@ -608,6 +618,13 @@ struct sensor_gas           /* Type: Gas */
   float gas_resistance;     /* Gas resistance in kOhm */
 };
 
+struct sensor_force         /* Type: Force */
+{
+  uint64_t timestamp;       /* Unit is microseconds */
+  float force;              /* Force value, units is N */
+  int32_t event;            /* Force event */
+};
+
 /* The sensor lower half driver interface */
 
 struct sensor_lowerhalf_s;

Reply via email to