diff --git a/release/files_tici b/release/files_tici index bc82cde04..d26b09e7f 100644 --- a/release/files_tici +++ b/release/files_tici @@ -1,5 +1,8 @@ installer/continue_openpilot.sh +selfdrive/assets/navigation/* +selfdrive/assets/training_wide/* + selfdrive/camerad/cameras/camera_qcom2.cc selfdrive/camerad/cameras/camera_qcom2.h selfdrive/camerad/cameras/real_debayer.cl diff --git a/selfdrive/assets/compress-images.sh b/selfdrive/assets/compress-images.sh new file mode 100755 index 000000000..607b27c2a --- /dev/null +++ b/selfdrive/assets/compress-images.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +echo "compressing training guide images" +optipng -o7 -strip all training/* training_wide/* diff --git a/selfdrive/assets/training/step0.png b/selfdrive/assets/training/step0.png index badeff6c5..c5401136e 100644 Binary files a/selfdrive/assets/training/step0.png and b/selfdrive/assets/training/step0.png differ diff --git a/selfdrive/assets/training/step1.png b/selfdrive/assets/training/step1.png index 9fa6cf683..5976ce034 100644 Binary files a/selfdrive/assets/training/step1.png and b/selfdrive/assets/training/step1.png differ diff --git a/selfdrive/assets/training/step10.png b/selfdrive/assets/training/step10.png index 10d216c8f..7c9c78130 100644 Binary files a/selfdrive/assets/training/step10.png and b/selfdrive/assets/training/step10.png differ diff --git a/selfdrive/assets/training/step11.png b/selfdrive/assets/training/step11.png index 71d98864f..cdfd0fad1 100644 Binary files a/selfdrive/assets/training/step11.png and b/selfdrive/assets/training/step11.png differ diff --git a/selfdrive/assets/training/step12.png b/selfdrive/assets/training/step12.png index 627f235ca..1196e0736 100644 Binary files a/selfdrive/assets/training/step12.png and b/selfdrive/assets/training/step12.png differ diff --git a/selfdrive/assets/training/step13.png b/selfdrive/assets/training/step13.png index 2430c6c80..eff7ed2e9 100644 Binary files a/selfdrive/assets/training/step13.png and b/selfdrive/assets/training/step13.png differ diff --git a/selfdrive/assets/training/step14.png b/selfdrive/assets/training/step14.png index 835d6e24f..f1975cc0b 100644 Binary files a/selfdrive/assets/training/step14.png and b/selfdrive/assets/training/step14.png differ diff --git a/selfdrive/assets/training/step15.png b/selfdrive/assets/training/step15.png index c65b0e2af..3479764e2 100644 Binary files a/selfdrive/assets/training/step15.png and b/selfdrive/assets/training/step15.png differ diff --git a/selfdrive/assets/training/step16.png b/selfdrive/assets/training/step16.png index bff559846..a1f2ac263 100644 Binary files a/selfdrive/assets/training/step16.png and b/selfdrive/assets/training/step16.png differ diff --git a/selfdrive/assets/training/step17.png b/selfdrive/assets/training/step17.png index 81d214d0a..b35a17374 100644 Binary files a/selfdrive/assets/training/step17.png and b/selfdrive/assets/training/step17.png differ diff --git a/selfdrive/assets/training/step2.png b/selfdrive/assets/training/step2.png index ab1498bcc..58003315d 100644 Binary files a/selfdrive/assets/training/step2.png and b/selfdrive/assets/training/step2.png differ diff --git a/selfdrive/assets/training/step3.png b/selfdrive/assets/training/step3.png index d19e388ed..e31044b85 100644 Binary files a/selfdrive/assets/training/step3.png and b/selfdrive/assets/training/step3.png differ diff --git a/selfdrive/assets/training/step4.png b/selfdrive/assets/training/step4.png index 874b19390..57e5e234f 100644 Binary files a/selfdrive/assets/training/step4.png and b/selfdrive/assets/training/step4.png differ diff --git a/selfdrive/assets/training/step5.png b/selfdrive/assets/training/step5.png index 9ee3388c3..af9fbd58c 100644 Binary files a/selfdrive/assets/training/step5.png and b/selfdrive/assets/training/step5.png differ diff --git a/selfdrive/assets/training/step6.png b/selfdrive/assets/training/step6.png index 14463ea04..c8ca6b526 100644 Binary files a/selfdrive/assets/training/step6.png and b/selfdrive/assets/training/step6.png differ diff --git a/selfdrive/assets/training/step7.png b/selfdrive/assets/training/step7.png index 682333214..28af33b91 100644 Binary files a/selfdrive/assets/training/step7.png and b/selfdrive/assets/training/step7.png differ diff --git a/selfdrive/assets/training/step8.png b/selfdrive/assets/training/step8.png index 1a5bb1367..615a80922 100644 Binary files a/selfdrive/assets/training/step8.png and b/selfdrive/assets/training/step8.png differ diff --git a/selfdrive/assets/training/step9.png b/selfdrive/assets/training/step9.png index f9b53cf7a..f8ed28da5 100644 Binary files a/selfdrive/assets/training/step9.png and b/selfdrive/assets/training/step9.png differ diff --git a/selfdrive/assets/training_wide/step0.png b/selfdrive/assets/training_wide/step0.png new file mode 100644 index 000000000..3235828d5 Binary files /dev/null and b/selfdrive/assets/training_wide/step0.png differ diff --git a/selfdrive/assets/training_wide/step1.png b/selfdrive/assets/training_wide/step1.png new file mode 100644 index 000000000..e81e2ce80 Binary files /dev/null and b/selfdrive/assets/training_wide/step1.png differ diff --git a/selfdrive/assets/training_wide/step10.png b/selfdrive/assets/training_wide/step10.png new file mode 100644 index 000000000..5dee06a96 Binary files /dev/null and b/selfdrive/assets/training_wide/step10.png differ diff --git a/selfdrive/assets/training_wide/step11.png b/selfdrive/assets/training_wide/step11.png new file mode 100644 index 000000000..c93ea6b25 Binary files /dev/null and b/selfdrive/assets/training_wide/step11.png differ diff --git a/selfdrive/assets/training_wide/step12.png b/selfdrive/assets/training_wide/step12.png new file mode 100644 index 000000000..103b6db97 Binary files /dev/null and b/selfdrive/assets/training_wide/step12.png differ diff --git a/selfdrive/assets/training_wide/step13.png b/selfdrive/assets/training_wide/step13.png new file mode 100644 index 000000000..cf4f35b72 Binary files /dev/null and b/selfdrive/assets/training_wide/step13.png differ diff --git a/selfdrive/assets/training_wide/step14.png b/selfdrive/assets/training_wide/step14.png new file mode 100644 index 000000000..29999f0ad Binary files /dev/null and b/selfdrive/assets/training_wide/step14.png differ diff --git a/selfdrive/assets/training_wide/step15.png b/selfdrive/assets/training_wide/step15.png new file mode 100644 index 000000000..601ff4eb0 Binary files /dev/null and b/selfdrive/assets/training_wide/step15.png differ diff --git a/selfdrive/assets/training_wide/step16.png b/selfdrive/assets/training_wide/step16.png new file mode 100644 index 000000000..24757f4fe Binary files /dev/null and b/selfdrive/assets/training_wide/step16.png differ diff --git a/selfdrive/assets/training_wide/step17.png b/selfdrive/assets/training_wide/step17.png new file mode 100644 index 000000000..c1ce4ec1e Binary files /dev/null and b/selfdrive/assets/training_wide/step17.png differ diff --git a/selfdrive/assets/training_wide/step2.png b/selfdrive/assets/training_wide/step2.png new file mode 100644 index 000000000..ac03677ef Binary files /dev/null and b/selfdrive/assets/training_wide/step2.png differ diff --git a/selfdrive/assets/training_wide/step3.png b/selfdrive/assets/training_wide/step3.png new file mode 100644 index 000000000..1962bfef3 Binary files /dev/null and b/selfdrive/assets/training_wide/step3.png differ diff --git a/selfdrive/assets/training_wide/step4.png b/selfdrive/assets/training_wide/step4.png new file mode 100644 index 000000000..58eb47fd2 Binary files /dev/null and b/selfdrive/assets/training_wide/step4.png differ diff --git a/selfdrive/assets/training_wide/step5.png b/selfdrive/assets/training_wide/step5.png new file mode 100644 index 000000000..a26ecbf1e Binary files /dev/null and b/selfdrive/assets/training_wide/step5.png differ diff --git a/selfdrive/assets/training_wide/step6.png b/selfdrive/assets/training_wide/step6.png new file mode 100644 index 000000000..bb1b11602 Binary files /dev/null and b/selfdrive/assets/training_wide/step6.png differ diff --git a/selfdrive/assets/training_wide/step7.png b/selfdrive/assets/training_wide/step7.png new file mode 100644 index 000000000..8a3d93081 Binary files /dev/null and b/selfdrive/assets/training_wide/step7.png differ diff --git a/selfdrive/assets/training_wide/step8.png b/selfdrive/assets/training_wide/step8.png new file mode 100644 index 000000000..fbfc5bdbc Binary files /dev/null and b/selfdrive/assets/training_wide/step8.png differ diff --git a/selfdrive/assets/training_wide/step9.png b/selfdrive/assets/training_wide/step9.png new file mode 100644 index 000000000..c97398295 Binary files /dev/null and b/selfdrive/assets/training_wide/step9.png differ diff --git a/selfdrive/ui/qt/offroad/onboarding.cc b/selfdrive/ui/qt/offroad/onboarding.cc index 4a298ae3c..97ad36a63 100644 --- a/selfdrive/ui/qt/offroad/onboarding.cc +++ b/selfdrive/ui/qt/offroad/onboarding.cc @@ -10,28 +10,23 @@ #include "selfdrive/ui/qt/widgets/input.h" void TrainingGuide::mouseReleaseEvent(QMouseEvent *e) { - QPoint touch = QPoint(e->x(), e->y()) - imageCorner; - - // Check for restart - if (currentIndex == (boundingBox.size() - 1) && 200 <= touch.x() && touch.x() <= 920 && - 760 <= touch.y() && touch.y() <= 960) { - currentIndex = 0; - } else if (boundingBox[currentIndex][0] <= touch.x() && touch.x() <= boundingBox[currentIndex][1] && - boundingBox[currentIndex][2] <= touch.y() && touch.y() <= boundingBox[currentIndex][3]) { + if (boundingRect[currentIndex].contains(e->x(), e->y())) { currentIndex += 1; + } else if (currentIndex == (boundingRect.size() - 2) && boundingRect.last().contains(e->x(), e->y())) { + currentIndex = 0; } - if (currentIndex >= boundingBox.size()) { + if (currentIndex >= (boundingRect.size() - 1)) { emit completedTraining(); } else { - image.load("../assets/training/step" + QString::number(currentIndex) + ".png"); + image.load(IMG_PATH + "step" + QString::number(currentIndex) + ".png"); update(); } } void TrainingGuide::showEvent(QShowEvent *event) { currentIndex = 0; - image.load("../assets/training/step0.png"); + image.load(IMG_PATH + "step0.png"); } void TrainingGuide::paintEvent(QPaintEvent *event) { @@ -44,7 +39,6 @@ void TrainingGuide::paintEvent(QPaintEvent *event) { QRect rect(image.rect()); rect.moveCenter(bg.center()); painter.drawImage(rect.topLeft(), image); - imageCorner = rect.topLeft(); } void TermsPage::showEvent(QShowEvent *event) { diff --git a/selfdrive/ui/qt/offroad/onboarding.h b/selfdrive/ui/qt/offroad/onboarding.h index 0313da91d..bcd40e157 100644 --- a/selfdrive/ui/qt/offroad/onboarding.h +++ b/selfdrive/ui/qt/offroad/onboarding.h @@ -7,6 +7,7 @@ #include #include "selfdrive/common/params.h" +#include "selfdrive/ui/qt/qt_window.h" class TrainingGuide : public QFrame { Q_OBJECT @@ -20,32 +21,58 @@ private: void mouseReleaseEvent(QMouseEvent* e) override; QImage image; - QPoint imageCorner; int currentIndex = 0; - // Bounding boxes for the a given training guide step - // (minx, maxx, miny, maxy) - QVector> boundingBox { - {650, 1375, 700, 900}, - {1600, 1920, 0, 1080}, - {1600, 1920, 0, 1080}, - {1240, 1750, 480, 1080}, - {1570, 1780, 620, 750}, - {1600, 1920, 0, 1080}, - {1630, 1740, 620, 780}, - {1200, 1920, 0, 1080}, - {1455, 1850, 400, 660}, - {1460, 1800, 195, 520}, - {1600, 1920, 0, 1080}, - {1350, 1920, 65, 1080}, - {1600, 1920, 0, 1080}, - {1570, 1900, 130, 1000}, - {1350, 1770, 500, 700}, - {1600, 1920, 0, 1080}, - {1600, 1920, 0, 1080}, - {1000, 1800, 760, 954}, + // Bounding boxes for each training guide step + const QRect continueBtnStandard = {1610, 0, 310, 1080}; + QVector boundingRectStandard { + QRect(650, 710, 720, 190), + continueBtnStandard, + continueBtnStandard, + QRect(1470, 515, 235, 565), + QRect(1580, 630, 215, 130), + continueBtnStandard, + QRect(1580, 630, 215, 130), + QRect(1210, 0, 485, 590), + QRect(1460, 400, 375, 210), + QRect(1460, 210, 300, 310), + continueBtnStandard, + QRect(1375, 80, 545, 1000), + continueBtnStandard, + QRect(1610, 130, 280, 800), + QRect(1385, 485, 400, 270), + continueBtnStandard, + continueBtnStandard, + QRect(1036, 769, 718, 189), + QRect(201, 769, 718, 189), }; + const QRect continueBtnWide = {1850, 0, 310, 1080}; + QVector boundingRectWide { + QRect(654, 721, 718, 189), + continueBtnWide, + continueBtnWide, + QRect(1589, 530, 345, 555), + QRect(1660, 630, 195, 125), + continueBtnWide, + QRect(1820, 630, 180, 155), + QRect(1360, 0, 460, 620), + QRect(1570, 400, 375, 215), + QRect(1610, 210, 295, 310), + continueBtnWide, + QRect(1555, 90, 610, 990), + continueBtnWide, + QRect(1600, 140, 280, 790), + QRect(1385, 490, 750, 270), + continueBtnWide, + continueBtnWide, + QRect(1138, 755, 718, 189), + QRect(303, 755, 718, 189), + }; + + const QString IMG_PATH = vwp_w == 2160 ? "../assets/training_wide/" : "../assets/training/"; + const QVector boundingRect = vwp_w == 2160 ? boundingRectWide : boundingRectStandard; + signals: void completedTraining(); };