chenzihan0416 opened a new pull request, #17752:
URL: https://github.com/apache/nuttx/pull/17752

   ## Summary
   
   This PR introduces a new **Sensor Monitor** feature - a dynamic debugging 
tool for NuttX sensor subsystem that provides runtime control over sensor 
logging without requiring system rebuild.
   
   ## Impact
   
   Significantly improves debugging experience for sensor-related issues
   
   **No Breaking Changes**: Feature is opt-in via Kconfig
   
   ## Testing
   
   Testing on qemu
   
   **Add monitoring topics to sensor_monitor**
   ```bash
   goldfish-armv8a-ap> echo 1 sensor_accel0 2 sensor_baro0 > 
/proc/sensor_monitor
   goldfish-armv8a-ap> cat /proc/sensor_monitor
   Sensor procfs - Dynamic sensor debugging tool
   
   Usage:
     cat /proc/sensor_monitor - Show currently monitored topics
     echo <level> <topic> > /proc/sensor_monitor - Add topic(s)
     echo rm <topic> > /proc/sensor_monitor - Remove topic(s)
     echo add <topic> <topic> > /proc/sensor_monitor - add/remove topics
     echo clean > /proc/sensor_monitor      - Remove all topics
   
   Examples:
     echo sensor_accel > /proc/sensor_monitor
     echo "sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "1 sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "2 sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "rm sensor_accel" > /proc/sensor_monitor
     echo "rm sensor_accel sensor_compass" > /proc/sensor_monitor
     echo clean > /proc/sensor_monitor
     echo "add 1 sensor_a rm sensor_b" > /proc/sensor_monitor
   
   Note:
     If <level> is not specified, it defaults to 1.
   sensor_accel0        1                   
   sensor_baro0         1                   
   goldfish-armv8a-ap> 
   
   ```
   **Delete the monitored topic**
   ```bash
   goldfish-armv8a-ap> echo clean > /proc/sensor_monitor
   goldfish-armv8a-ap> cat /proc/sensor_monitor
   Sensor procfs - Dynamic sensor debugging tool
   
   Usage:
     cat /proc/sensor_monitor - Show currently monitored topics
     echo <level> <topic> > /proc/sensor_monitor - Add topic(s)
     echo rm <topic> > /proc/sensor_monitor - Remove topic(s)
     echo add <topic> <topic> > /proc/sensor_monitor - add/remove topics
     echo clean > /proc/sensor_monitor      - Remove all topics
   
   Examples:
     echo sensor_accel > /proc/sensor_monitor
     echo "sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "1 sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "2 sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "rm sensor_accel" > /proc/sensor_monitor
     echo "rm sensor_accel sensor_compass" > /proc/sensor_monitor
     echo clean > /proc/sensor_monitor
     echo "add 1 sensor_a rm sensor_b" > /proc/sensor_monitor
   
   Note:
     If <level> is not specified, it defaults to 1.
   
   goldfish-armv8a-ap> echo 1 sensor_accel0 > /proc/sensor_monitor
   goldfish-armv8a-ap> cat /proc/sensor_monitor
   Sensor procfs - Dynamic sensor debugging tool
   
   Usage:
     cat /proc/sensor_monitor - Show currently monitored topics
     echo <level> <topic> > /proc/sensor_monitor - Add topic(s)
     echo rm <topic> > /proc/sensor_monitor - Remove topic(s)
     echo add <topic> <topic> > /proc/sensor_monitor - add/remove topics
     echo clean > /proc/sensor_monitor      - Remove all topics
   
   Examples:
     echo sensor_accel > /proc/sensor_monitor
     echo "sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "1 sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "2 sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "rm sensor_accel" > /proc/sensor_monitor
     echo "rm sensor_accel sensor_compass" > /proc/sensor_monitor
     echo clean > /proc/sensor_monitor
     echo "add 1 sensor_a rm sensor_b" > /proc/sensor_monitor
   
   Note:
     If <level> is not specified, it defaults to 1.
   sensor_accel0        1                   
   goldfish-armv8a-ap> 
   goldfish-armv8a-ap> 
   goldfish-armv8a-ap> echo "rm sensor_accel0" > /proc/sensor_monitor
   goldfish-armv8a-ap> Aececat /proc/sensor_monitor
   Sensor procfs - Dynamic sensor debugging tool
   
   Usage:
     cat /proc/sensor_monitor - Show currently monitored topics
     echo <level> <topic> > /proc/sensor_monitor - Add topic(s)
     echo rm <topic> > /proc/sensor_monitor - Remove topic(s)
     echo add <topic> <topic> > /proc/sensor_monitor - add/remove topics
     echo clean > /proc/sensor_monitor      - Remove all topics
   
   Examples:
     echo sensor_accel > /proc/sensor_monitor
     echo "sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "1 sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "2 sensor_accel sensor_compass" > /proc/sensor_monitor
     echo "rm sensor_accel" > /proc/sensor_monitor
     echo "rm sensor_accel sensor_compass" > /proc/sensor_monitor
     echo clean > /proc/sensor_monitor
     echo "add 1 sensor_a rm sensor_b" > /proc/sensor_monitor
   
   Note:
     If <level> is not specified, it defaults to 1.
   goldfish-armv8a-ap> 
   
   ```
   **Log printing when listening to sensor_accel0**
   ```bash
   sensor_accel0        7                   
   goldfish-armv8a-ap> uorb_listener sensor_accel
   [  153.708584] [79] [  INFO] [ap] sensor_open: [topic: sensor_accel0] user 
address: 0x40ef8330, role type: 0, user generation: 22, upper generation: 22, 
nsubscribers: 0, nadvertisers: 1, persist: 0
   [  153.710719] [79] [  INFO] [ap] sensor_close: [topic: sensor_accel0] user 
address: 0x40ef8330, close subscriber: 0, close advertiser:1
   
   Mointor objects num:1
   object_name:sensor_accel, object_instance:0
   [  153.715162] [79] [  INFO] [ap] sensor_open: [topic: sensor_accel0] user 
address: 0x40f2a120, role type: 2, user generation: 22, upper generation: 22, 
nsubscribers: 1, nadvertisers: 1, persist: 0
   [  153.708584] [79] [  INFO] [ap] sensor_open: [topic: sensor_accel0] user 
address: 0x40ef8330, role type: 0, user generation: 22, upper generation: 22, 
nsubscribers: 0, nadvertisers: 1, persist: 0
   [  153.710719] [79] [  INFO] [ap] sensor_close: [topic: sensor_accel0] user 
address: 0x40ef8330, close subscriber: 0, close advertiser:1
   [  153.715162] [79] [  INFO] [ap] sensor_open: [topic: sensor_accel0] user 
address: 0x40f2a120, role type: 2, user generation: 22, upper genera[  
153.723194] [ 6] [  INFO] [ap] sensor_push_event: [topic: sensor_accel0] the 
number of write event is:1
   [  153.723970] [79] [  INFO] [ap] sensor_do_samples: [topic: sensor_accel0] 
do sample interval:23, user.generation:23, ret:32
   [  153.724229] [79] [  INFO] [ap] sensor_read: [topic: sensor_accel0] the 
number of read event is:1
   
sensor_accel(now:153724557):timestamp:153722454,x:0.000000,y:9.776310,z:0.812349,temperature:nan
   ```
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to