From 1a2975570219aa48586dba329a05f902add8c5a2 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Thu, 28 Jan 2021 06:30:12 +0800 Subject: [PATCH] dmonitoring_publish: use kj::ArrayPtr raw_pred as paramater instead of float (#19916) old-commit-hash: 8bb3c41cfd8c71d9dd2368da0a980d8f635e2a75 --- selfdrive/modeld/dmonitoringmodeld.cc | 3 +-- selfdrive/modeld/models/dmonitoring.cc | 4 ++-- selfdrive/modeld/models/dmonitoring.h | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/selfdrive/modeld/dmonitoringmodeld.cc b/selfdrive/modeld/dmonitoringmodeld.cc index 6879f40fdc..48b16980bb 100644 --- a/selfdrive/modeld/dmonitoringmodeld.cc +++ b/selfdrive/modeld/dmonitoringmodeld.cc @@ -52,8 +52,7 @@ int main(int argc, char **argv) { double t2 = millis_since_boot(); // send dm packet - const float* raw_pred_ptr = send_raw_pred ? (const float *)dmonitoringmodel.output : nullptr; - dmonitoring_publish(pm, extra.frame_id, res, raw_pred_ptr, (t2-t1)/1000.0); + dmonitoring_publish(pm, extra.frame_id, res, (t2-t1)/1000.0, dmonitoringmodel.output); LOGD("dmonitoring process: %.2fms, from last %.2fms", t2-t1, t1-last); last = t1; diff --git a/selfdrive/modeld/models/dmonitoring.cc b/selfdrive/modeld/models/dmonitoring.cc index 8e9fc578cd..d08c2298f1 100644 --- a/selfdrive/modeld/models/dmonitoring.cc +++ b/selfdrive/modeld/models/dmonitoring.cc @@ -177,7 +177,7 @@ DMonitoringResult dmonitoring_eval_frame(DMonitoringModelState* s, void* stream_ return ret; } -void dmonitoring_publish(PubMaster &pm, uint32_t frame_id, const DMonitoringResult &res, const float* raw_pred, float execution_time){ +void dmonitoring_publish(PubMaster &pm, uint32_t frame_id, const DMonitoringResult &res, float execution_time, kj::ArrayPtr raw_pred){ // make msg MessageBuilder msg; auto framed = msg.initEvent().initDriverState(); @@ -196,7 +196,7 @@ void dmonitoring_publish(PubMaster &pm, uint32_t frame_id, const DMonitoringResu framed.setRightBlinkProb(res.right_blink_prob); framed.setSgProb(res.sg_prob); if (send_raw_pred) { - framed.setRawPred(kj::arrayPtr((const uint8_t*)raw_pred, OUTPUT_SIZE*sizeof(float))); + framed.setRawPred(raw_pred.asBytes()); } pm.send("driverState", msg); diff --git a/selfdrive/modeld/models/dmonitoring.h b/selfdrive/modeld/models/dmonitoring.h index 7df3355bbc..82bcec9359 100644 --- a/selfdrive/modeld/models/dmonitoring.h +++ b/selfdrive/modeld/models/dmonitoring.h @@ -34,6 +34,6 @@ typedef struct DMonitoringModelState { void dmonitoring_init(DMonitoringModelState* s); DMonitoringResult dmonitoring_eval_frame(DMonitoringModelState* s, void* stream_buf, int width, int height); -void dmonitoring_publish(PubMaster &pm, uint32_t frame_id, const DMonitoringResult &res, const float* raw_pred, float execution_time); +void dmonitoring_publish(PubMaster &pm, uint32_t frame_id, const DMonitoringResult &res, float execution_time, kj::ArrayPtr raw_pred); void dmonitoring_free(DMonitoringModelState* s);