- Fix controlsd crash: self.state.name AttributeError when state is int - Move telemetry tlog import to module level in carstate.py (was per-frame) - Remove FrogPilot screen recorder from UI (was crashing OMX on init) - Ready screen: boot logo background, 8-bit READY! sprite, error states (panda not connected, car not recognized) with 10s startup grace period - ClearPilot menu: always opens to General, QButtonGroup for sidebar, System Status uses ButtonControl, VPN toggle with process control - Sidebar hidden on construction (no flash before splash) - Status window: threaded data collection (QtConcurrent), panda detection via scene.pandaType (SPI, not USB), only refreshes when visible - VPN: moved to system/clearpilot/, SIGTERM graceful shutdown, keepalive ping through tunnel, killall openvpn on disable, launched from launch_openpilot.sh instead of continue.sh - Disable gpsd and dashcamd temporarily for perf testing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
34 lines
826 B
C++
Executable File
34 lines
826 B
C++
Executable File
#pragma once
|
|
|
|
#include <QMovie>
|
|
#include <QLabel>
|
|
#include <QPushButton>
|
|
#include <QPixmap>
|
|
#include <QProgressBar>
|
|
#include <QSocketNotifier>
|
|
#include <QVariantAnimation>
|
|
#include <QWidget>
|
|
#include <QElapsedTimer>
|
|
#include <QTimer>
|
|
|
|
#include "common/util.h"
|
|
#include "selfdrive/ui/ui.h"
|
|
|
|
class ReadyWindow : public QWidget {
|
|
Q_OBJECT
|
|
public:
|
|
ReadyWindow(QWidget* parent = nullptr);
|
|
private:
|
|
void showEvent(QShowEvent *event) override;
|
|
void hideEvent(QHideEvent *event) override;
|
|
void refresh();
|
|
void paintEvent(QPaintEvent *event) override;
|
|
Params params;
|
|
QTimer* timer;
|
|
bool is_hot = false;
|
|
QString cur_temp;
|
|
QString error_msg; // non-empty = show red error instead of READY!
|
|
QElapsedTimer uptime;
|
|
QPixmap img_bg;
|
|
QPixmap img_hot;
|
|
}; |