Sensor events splitup (#25714)
* PoC of reading sensors via interrupts instead of polling
* add Gyro and draft for magn
* add more functionality to gpio.cc
* change LSM gyro to interrupt
* resolve rebase conflict
* update BMX accel interrupt impl
* add interrupt collector thread to fetch in parallel
* change get_event interface to return true on successful read
* update BMX gyro interrupt impl
* update gpio.h/.cc according to comments
* address comments, rename Edgetype enum
* Edgetype to EdgeType
* update sensor interrupt interface
* add error handling, and read fd on trigger
* avoid sending empty messages
* fix build
* use gpiochip
* less diff
* gpiochip on both edges, but skip falling edge if rising edge is detected
* init last_ts with 0
* update sensord testcases
* update sensord testsweet
* test for pipeline
* readd with_process
* add null check
* move tests update to seperate PR
* sensord: improve test coverage (#25683)
* update sensord-interrupt testsweet
* address review comments
* inc stddev threshold
* fix format string
* add version 0 check again
* relax strictness after c3 with bmx tests
* relax strictness after tests
Co-authored-by: Kurt Nistelberger <kurt.nistelberger@gmail.com>
* address PR comments
* fix typo
* remove 4ms limit, and skip first 0.5sec of data
* revert disable_interuppt change to destructor
* fix and remove timing skip
* make gpiochip generic
* sensord port
* change from sensorEvents to separated events
* fix gyro usage
* add splitted sensor tests
* modify debug script sensor_data_to_hist.py
* refactor get_event interface to remove sensorEvent message type
* update locationd to non sensorEvent usage
* tmp commit
* fix replay
* fix accelerometer type
* fix sensor to hist debug script
* update sensord tests to split events
* remove rebase artifacts
* port test_sensord.py
* small clean up
* change cereal to sensorEvents-splitup branch
* upate sensorEvents in regen
* fix route generation for splitted sensor events
* regen cleanUp from sensorEvents change
* .
* remove light and temp from locationd
* add generic init delay per sensor
* .
* update routes
* move bmx gyro/accel to its own channel
* adopt sensor tests to bmx channel
* remove rebase artifacts
* fix sensord test
* handle bmx not present
* add bmx sockets to regen
* .
* .
* code cleanUp
* .
* address PR comments
* address PR comments
* address PR comments
* lsm clean up
* readd sensorEvents
* rever regen.py
* .
* update replay refs
* move channels
* fix artifact
* bump cereal
* update refs
* fix timing issue
Co-authored-by: Bruce Wayne <batman@workstation-eu-intern2.eu.local>
Co-authored-by: gast04 <kurt.nistelberger@gmail.com>
Co-authored-by: Willem Melching <willem.melching@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 29d3ed2ce6
taco
parent
90aff8c6fb
commit
fb06d2769f
36 changed files with 264 additions and 289 deletions
@ -1 +1 @@ |
|||||||
Subproject commit 5aa49864bce38f520705b6ed0b98e7cf9560ed0a |
Subproject commit d4cf8728e2fa2d87d90098efa7ddeaf8f98a03db |
@ -1,13 +1,18 @@ |
|||||||
#pragma once |
#pragma once |
||||||
|
|
||||||
#include "cereal/gen/cpp/log.capnp.h" |
#include "cereal/messaging/messaging.h" |
||||||
|
|
||||||
class Sensor { |
class Sensor { |
||||||
public: |
public: |
||||||
int gpio_fd = -1; |
int gpio_fd = -1; |
||||||
|
uint64_t init_delay = 500e6; // default dealy 500ms
|
||||||
virtual ~Sensor() {}; |
virtual ~Sensor() {}; |
||||||
virtual int init() = 0; |
virtual int init() = 0; |
||||||
virtual bool get_event(cereal::SensorEventData::Builder &event) = 0; |
virtual bool get_event(MessageBuilder &msg, uint64_t ts = 0) = 0; |
||||||
virtual bool has_interrupt_enabled() = 0; |
virtual bool has_interrupt_enabled() = 0; |
||||||
virtual int shutdown() = 0; |
virtual int shutdown() = 0; |
||||||
|
|
||||||
|
virtual bool is_data_valid(uint64_t st, uint64_t ct) { |
||||||
|
return (ct - st) > init_delay; |
||||||
|
} |
||||||
}; |
}; |
||||||
|
@ -1 +1 @@ |
|||||||
9098c1cf6993598071c3e27448356eef86660d02 |
761eada809a0eaa67989e6e435042633f965d1fe |
Loading…
Reference in new issue