mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-06-12 05:44:14 +08:00
Merge branch 'devel-en' into devel-zhs
This commit is contained in:
@@ -814,27 +814,27 @@ static void ui_draw_infobar(UIState *s) {
|
||||
strftime(date_time, sizeof(date_time),"%D %T", &timeinfo);
|
||||
|
||||
// Create temp string
|
||||
char temp[6];
|
||||
snprintf(temp, sizeof(temp), "%02.0f°C", s->scene.pa0);
|
||||
char temp[7];
|
||||
snprintf(temp, sizeof(temp), "% 3d°C", s->scene.pa0);
|
||||
|
||||
// create battery percentage string
|
||||
char battery[4];
|
||||
snprintf(battery, sizeof(battery), "%02d%%", s->scene.batteryPercent);
|
||||
char battery[5];
|
||||
snprintf(battery, sizeof(battery), "% 3d%%", s->scene.batteryPercent);
|
||||
|
||||
if (s->dragon_ui_dev_mini) {
|
||||
char rel_steer[9];
|
||||
snprintf(rel_steer, sizeof(rel_steer), "%s%05.1f°", s->scene.angleSteers < 0? "-" : "+", fabs(s->scene.angleSteers));
|
||||
snprintf(rel_steer, sizeof(rel_steer), "%s% 5.1f°", s->scene.angleSteers < 0? "-" : "+", fabs(s->scene.angleSteers));
|
||||
|
||||
char des_steer[9];
|
||||
if (s->scene.engaged) {
|
||||
snprintf(des_steer, sizeof(des_steer), "%s%05.1f°", s->scene.angleSteersDes < 0? "-" : "+", fabs(s->scene.angleSteersDes));
|
||||
snprintf(des_steer, sizeof(des_steer), "%s% 5.1f°", s->scene.angleSteersDes < 0? "-" : "+", fabs(s->scene.angleSteersDes));
|
||||
} else {
|
||||
snprintf(des_steer, sizeof(des_steer), "%7s", "-");
|
||||
}
|
||||
|
||||
char lead_dist[8];
|
||||
if (s->scene.lead_status) {
|
||||
snprintf(lead_dist, sizeof(lead_dist), "%06.2fm", s->scene.lead_d_rel);
|
||||
snprintf(lead_dist, sizeof(lead_dist), "% 6.2fm", s->scene.lead_d_rel);
|
||||
} else {
|
||||
snprintf(lead_dist, sizeof(lead_dist), "%7s", "-");
|
||||
}
|
||||
|
||||
@@ -113,7 +113,6 @@ static void ui_init(UIState *s) {
|
||||
s->livecalibration_sock = SubSocket::create(s->ctx, "liveCalibration");
|
||||
s->radarstate_sock = SubSocket::create(s->ctx, "radarState");
|
||||
s->carstate_sock = SubSocket::create(s->ctx, "carState");
|
||||
s->thermal_sock = SubSocket::create(s->ctx, "thermal");
|
||||
|
||||
assert(s->model_sock != NULL);
|
||||
assert(s->controlsstate_sock != NULL);
|
||||
@@ -121,7 +120,6 @@ static void ui_init(UIState *s) {
|
||||
assert(s->livecalibration_sock != NULL);
|
||||
assert(s->radarstate_sock != NULL);
|
||||
assert(s->carstate_sock != NULL);
|
||||
assert(s->thermal_sock != NULL);
|
||||
|
||||
s->poller = Poller::create({
|
||||
s->model_sock,
|
||||
@@ -129,8 +127,7 @@ static void ui_init(UIState *s) {
|
||||
s->uilayout_sock,
|
||||
s->livecalibration_sock,
|
||||
s->radarstate_sock,
|
||||
s->carstate_sock,
|
||||
s->thermal_sock
|
||||
s->carstate_sock
|
||||
});
|
||||
|
||||
#ifdef SHOW_SPEEDLIMIT
|
||||
@@ -240,20 +237,7 @@ static void ui_init_vision(UIState *s, const VisionStreamBufs back_bufs,
|
||||
s->limit_set_speed_timeout = UI_FREQ;
|
||||
|
||||
// dragonpilot, 1hz
|
||||
s->dragon_ui_speed_timeout = 100;
|
||||
s->dragon_ui_event_timeout = 100;
|
||||
s->dragon_ui_maxspeed_timeout = 100;
|
||||
s->dragon_ui_face_timeout = 100;
|
||||
s->dragon_ui_dev_timeout = 100;
|
||||
s->dragon_ui_dev_mini_timeout = 100;
|
||||
s->dragon_enable_dashcam_timeout = 100;
|
||||
s->dragon_ui_volume_boost_timeout = 100;
|
||||
s->dragon_driving_ui_timeout = 100;
|
||||
s->dragon_ui_lane_timeout = 100;
|
||||
s->dragon_ui_lead_timeout = 100;
|
||||
s->dragon_ui_path_timeout = 100;
|
||||
s->dragon_ui_blinker_timeout = 100;
|
||||
s->dragon_waze_mode_timeout = 100;
|
||||
s->dragon_ui_timeout = 100;
|
||||
}
|
||||
|
||||
static PathData read_path(cereal_ModelData_PathData_ptr pathp) {
|
||||
@@ -484,12 +468,6 @@ void handle_message(UIState *s, Message * msg) {
|
||||
}
|
||||
s->scene.leftBlinker = datad.leftBlinker;
|
||||
s->scene.rightBlinker = datad.rightBlinker;
|
||||
} else if (eventd.which == cereal_Event_thermal) {
|
||||
struct cereal_ThermalData datad;
|
||||
cereal_read_ThermalData(&datad, eventd.thermal);
|
||||
|
||||
s->scene.batteryPercent = datad.batteryPercent;
|
||||
s->scene.pa0 = datad.pa0;
|
||||
}
|
||||
capn_free(&ctx);
|
||||
}
|
||||
@@ -898,6 +876,7 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
set_volume(MIN_VOLUME);
|
||||
s->volume_timeout = 5 * UI_FREQ;
|
||||
s->dragon_ui_info_timeout = 5 * UI_FREQ;
|
||||
int draws = 0;
|
||||
while (!do_exit) {
|
||||
bool should_swap = false;
|
||||
@@ -1006,13 +985,36 @@ int main(int argc, char* argv[]) {
|
||||
s->controls_seen = false;
|
||||
}
|
||||
|
||||
// update ui temp/battery values only when vision is up.
|
||||
if (s->awake && s->vision_connected) {
|
||||
if (s->dragon_ui_info_timeout > 0) {
|
||||
s->dragon_ui_info_timeout--;
|
||||
} else {
|
||||
// update temp
|
||||
int temp = open("/sys/devices/virtual/thermal/thermal_zone25/temp", O_RDONLY);
|
||||
if (temp >= 0) {
|
||||
char temp_buf[3];
|
||||
read(temp, temp_buf, 3);
|
||||
s->scene.pa0 = atoi(temp_buf);
|
||||
}
|
||||
// update battery level
|
||||
int battery = open("/sys/class/power_supply/battery/capacity", O_RDONLY);
|
||||
if (battery >= 0) {
|
||||
char battery_buf[3];
|
||||
read(battery, battery_buf, 3);
|
||||
s->scene.batteryPercent = atoi(battery_buf);
|
||||
}
|
||||
s->dragon_ui_info_timeout = 5 * UI_FREQ;
|
||||
}
|
||||
}
|
||||
|
||||
read_param_bool_timeout(&s->is_metric, "IsMetric", &s->is_metric_timeout);
|
||||
read_param_bool_timeout(&s->longitudinal_control, "LongitudinalControl", &s->longitudinal_control_timeout);
|
||||
read_param_bool_timeout(&s->limit_set_speed, "LimitSetSpeed", &s->limit_set_speed_timeout);
|
||||
read_param_float_timeout(&s->speed_lim_off, "SpeedLimitOffset", &s->limit_set_speed_timeout);
|
||||
// dragonpilot
|
||||
read_param_float_timeout(&s->dragon_ui_volume_boost, "DragonUIVolumeBoost", &s->dragon_ui_volume_boost_timeout);
|
||||
read_param_bool_timeout(&s->dragon_waze_mode, "DragonWazeMode", &s->dragon_waze_mode_timeout);
|
||||
read_param_float_timeout(&s->dragon_ui_volume_boost, "DragonUIVolumeBoost", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_waze_mode, "DragonWazeMode", &s->dragon_ui_timeout);
|
||||
|
||||
if (s->dragon_waze_mode) {
|
||||
s->dragon_ui_speed = false;
|
||||
@@ -1028,18 +1030,18 @@ int main(int argc, char* argv[]) {
|
||||
s->dragon_ui_path = false;
|
||||
s->dragon_ui_blinker = false;
|
||||
} else {
|
||||
read_param_bool_timeout(&s->dragon_ui_speed, "DragonUISpeed", &s->dragon_ui_speed_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_event, "DragonUIEvent", &s->dragon_ui_event_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_maxspeed, "DragonUIMaxSpeed", &s->dragon_ui_maxspeed_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_face, "DragonUIFace", &s->dragon_ui_face_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_dev, "DragonUIDev", &s->dragon_ui_dev_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_dev_mini, "DragonUIDevMini", &s->dragon_ui_dev_mini_timeout);
|
||||
read_param_bool_timeout(&s->dragon_enable_dashcam, "DragonEnableDashcam", &s->dragon_enable_dashcam_timeout);
|
||||
read_param_bool_timeout(&s->dragon_driving_ui, "DragonDrivingUI", &s->dragon_driving_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_lane, "DragonUILane", &s->dragon_ui_lane_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_lead, "DragonUILead", &s->dragon_ui_lead_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_path, "DragonUIPath", &s->dragon_ui_path_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_blinker, "DragonUIBlinker", &s->dragon_ui_blinker_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_speed, "DragonUISpeed", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_event, "DragonUIEvent", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_maxspeed, "DragonUIMaxSpeed", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_face, "DragonUIFace", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_dev, "DragonUIDev", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_dev_mini, "DragonUIDevMini", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_enable_dashcam, "DragonEnableDashcam", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_driving_ui, "DragonDrivingUI", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_lane, "DragonUILane", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_lead, "DragonUILead", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_path, "DragonUIPath", &s->dragon_ui_timeout);
|
||||
read_param_bool_timeout(&s->dragon_ui_blinker, "DragonUIBlinker", &s->dragon_ui_timeout);
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&s->lock);
|
||||
|
||||
@@ -122,7 +122,7 @@ typedef struct UIScene {
|
||||
// for minimal UI
|
||||
float angleSteersDes;
|
||||
float angleSteers;
|
||||
float pa0;
|
||||
int pa0;
|
||||
int batteryPercent;
|
||||
|
||||
// for blinker, from kegman
|
||||
@@ -257,21 +257,8 @@ typedef struct UIState {
|
||||
|
||||
// dragonpilot
|
||||
SubSocket *carstate_sock;
|
||||
SubSocket *thermal_sock;
|
||||
int dragon_ui_speed_timeout;
|
||||
int dragon_ui_event_timeout;
|
||||
int dragon_ui_maxspeed_timeout;
|
||||
int dragon_ui_face_timeout;
|
||||
int dragon_ui_dev_timeout;
|
||||
int dragon_ui_dev_mini_timeout;
|
||||
int dragon_enable_dashcam_timeout;
|
||||
int dragon_ui_volume_boost_timeout;
|
||||
int dragon_driving_ui_timeout;
|
||||
int dragon_ui_lane_timeout;
|
||||
int dragon_ui_lead_timeout;
|
||||
int dragon_ui_path_timeout;
|
||||
int dragon_ui_blinker_timeout;
|
||||
int dragon_waze_mode_timeout;
|
||||
int dragon_ui_info_timeout;
|
||||
int dragon_ui_timeout;
|
||||
|
||||
bool dragon_ui_speed;
|
||||
bool dragon_ui_event;
|
||||
|
||||
Reference in New Issue
Block a user