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]