diff --git a/release/files_tici b/release/files_tici index bc82cde047..d26b09e7f3 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 0000000000..607b27c2a8 --- /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 badeff6c56..c5401136e1 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 9fa6cf6831..5976ce0349 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 10d216c8f4..7c9c781301 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 71d98864f9..cdfd0fad11 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 627f235ca2..1196e07369 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 2430c6c80a..eff7ed2e9a 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 835d6e24ff..f1975cc0b8 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 c65b0e2af2..3479764e21 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 bff559846d..a1f2ac2638 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 81d214d0a3..b35a17374d 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 ab1498bcc1..58003315dc 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 d19e388edc..e31044b856 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 874b19390f..57e5e234f0 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 9ee3388c34..af9fbd58c5 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 14463ea04b..c8ca6b526d 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 6823332143..28af33b910 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 1a5bb1367d..615a809228 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 f9b53cf7ad..f8ed28da56 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 0000000000..3235828d56 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 0000000000..e81e2ce801 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 0000000000..5dee06a964 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 0000000000..c93ea6b251 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 0000000000..103b6db974 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 0000000000..cf4f35b724 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 0000000000..29999f0ada 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 0000000000..601ff4eb03 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 0000000000..24757f4fe1 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 0000000000..c1ce4ec1e3 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 0000000000..ac03677ef5 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 0000000000..1962bfef3f 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 0000000000..58eb47fd29 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 0000000000..a26ecbf1eb 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 0000000000..bb1b116022 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 0000000000..8a3d930811 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 0000000000..fbfc5bdbc5 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 0000000000..c97398295a 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 4a298ae3c6..97ad36a632 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 0313da91da..bcd40e157f 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(); };