use different SubMasters for driverState/sensorEvents (#2522)
* use different sms * renamepull/2518/head^2
parent
9529764549
commit
4954db0381
|
@ -333,7 +333,8 @@ void cameras_init(MultiCameraState *s, cl_device_id device_id, cl_context ctx) {
|
|||
s->rear.device = s->device;
|
||||
s->front.device = s->device;
|
||||
|
||||
s->sm = new SubMaster({"driverState", "sensorEvents"});
|
||||
s->sm_front = new SubMaster({"driverState"});
|
||||
s->sm_rear = new SubMaster({"sensorEvents"});
|
||||
s->pm = new PubMaster({"frame", "frontFrame", "thumbnail"});
|
||||
|
||||
int err;
|
||||
|
@ -2046,7 +2047,7 @@ static void* ops_thread(void* arg) {
|
|||
}
|
||||
|
||||
void camera_process_front(MultiCameraState *s, CameraState *c, int cnt) {
|
||||
common_camera_process_front(s->sm, s->pm, c, cnt);
|
||||
common_camera_process_front(s->sm_front, s->pm, c, cnt);
|
||||
}
|
||||
|
||||
// called by processing_thread
|
||||
|
@ -2055,11 +2056,11 @@ void camera_process_frame(MultiCameraState *s, CameraState *c, int cnt) {
|
|||
// cache rgb roi and write to cl
|
||||
|
||||
// gz compensation
|
||||
s->sm->update(0);
|
||||
if (s->sm->updated("sensorEvents")) {
|
||||
s->sm_rear->update(0);
|
||||
if (s->sm_rear->updated("sensorEvents")) {
|
||||
float vals[3] = {0.0};
|
||||
bool got_accel = false;
|
||||
auto sensor_events = (*(s->sm))["sensorEvents"].getSensorEvents();
|
||||
auto sensor_events = (*(s->sm_rear))["sensorEvents"].getSensorEvents();
|
||||
for (auto sensor_event : sensor_events) {
|
||||
if (sensor_event.which() == cereal::SensorEventData::ACCELERATION) {
|
||||
auto v = sensor_event.getAcceleration().getV();
|
||||
|
@ -2291,6 +2292,7 @@ void cameras_close(MultiCameraState *s) {
|
|||
|
||||
clReleaseProgram(s->prg_rgb_laplacian);
|
||||
clReleaseKernel(s->krnl_rgb_laplacian);
|
||||
delete s->sm;
|
||||
delete s->sm_front;
|
||||
delete s->sm_rear;
|
||||
delete s->pm;
|
||||
}
|
||||
|
|
|
@ -142,7 +142,8 @@ typedef struct MultiCameraState {
|
|||
CameraState rear;
|
||||
CameraState front;
|
||||
|
||||
SubMaster *sm;
|
||||
SubMaster *sm_front;
|
||||
SubMaster *sm_rear;
|
||||
PubMaster *pm;
|
||||
|
||||
} MultiCameraState;
|
||||
|
|
Loading…
Reference in New Issue