* do set reset for every measurement cycle
* use one sensorvec
* convert from continuous to manual mode
* separate the set/reset and TM_M
* make magnetometer readings manual, set appropriate sleep
* add more sleep and check validity of values
* add magnetometer to a separate thread
* refactor
* bugfix
* each sensor in a new thread, handle generically
* bugfix
* rm global
* update cpu
* update test
* update test
* revert cereal change
* split out temp sensors
* little more
* fix
* fix
* bump cereal
* linter fixes
---------
Co-authored-by: nuwandavek <vivekaithal44@gmail.com>
Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 239d6a24be
* add low power modes
* add sleep to lsm gyro init
* bmx055 gyro has a 30ms wakeup time from deep suspend
* Sensord skip init values, first 500ms (#25775)
* remove lsm gyro sleep, handled by general cut
Co-authored-by: Kurt Nistelberger <kurt.nistelberger@gmail.com>
old-commit-hash: bcf31aea07
* change LSM6DS3TR(-c) gyroscope and accelerometer to interrupt
* add pthread for linking
* add interrupt collector thread to fetch in parallel to non interrupt based sensors
* change get_event interface to return true on successful read
* fetch sensor interrupts via gpiochip
* avoid sending empty messages (interrupt only, non interupt magn can leave a gap in the orphan block)
* add verifier script to sensor interrupts (sensor_data_to_hist.py)
* add/update sensord testsweet (test_sensord.py)
* add poll timed out check
* unexport interrupt gpio pins
* gpiochip on both edges, but skip falling edge if rising edge is detected, this is handled in the sensor as the status flag is checked if new data is availble
* add test to sensord to verify 100Hz interrupt frequency
* add sensor shutdown/low power mode functionality on sensord exit
* relax test, will be readded in the splitup PR
Co-authored-by: Kurt Nistelberger <kurt.nistelberger@gmail.com>
old-commit-hash: 84a3c355e5