diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..9c76ad3 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,36 @@ +# !!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT AND USE +# https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags +# +# If you need to override existing CMake configuration or add extra, +# please create `CMakeListsUser.txt` in the root of project. +# The `CMakeListsUser.txt` will not be overwritten by PlatformIO. + +cmake_minimum_required(VERSION 3.13) +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_C_COMPILER_WORKS 1) +set(CMAKE_CXX_COMPILER_WORKS 1) + +project("untitled" C CXX) + +include(CMakeListsPrivate.txt) + +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeListsUser.txt) +include(CMakeListsUser.txt) +endif() + +add_custom_target( + Production ALL + COMMAND platformio -c clion run "$<$>:-e${CMAKE_BUILD_TYPE}>" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + Debug ALL + COMMAND platformio -c clion run --target debug "$<$>:-e${CMAKE_BUILD_TYPE}>" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_executable(Z_DUMMY_TARGET ${SRC_LIST}) + +add_definitions(-DVESC_CONTROLLER) +add_definitions(-DFEATURE_DPAD) \ No newline at end of file diff --git a/CMakeListsPrivate.txt b/CMakeListsPrivate.txt new file mode 100644 index 0000000..9f32b3d --- /dev/null +++ b/CMakeListsPrivate.txt @@ -0,0 +1,173 @@ +# !!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT AND USE +# https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags +# +# If you need to override existing CMake configuration or add extra, +# please create `CMakeListsUser.txt` in the root of project. +# The `CMakeListsUser.txt` will not be overwritten by PlatformIO. + + + +set(CMAKE_CONFIGURATION_TYPES "esp32dev" CACHE STRING "Build Types reflect PlatformIO Environments" FORCE) + + +SET(CMAKE_C_COMPILER "$ENV{HOME}/.platformio/packages/toolchain-xtensa32/bin/xtensa-esp32-elf-gcc") +SET(CMAKE_CXX_COMPILER "$ENV{HOME}/.platformio/packages/toolchain-xtensa32/bin/xtensa-esp32-elf-g++") +SET(CMAKE_CXX_FLAGS "-fno-rtti -fno-exceptions -std=gnu++11 -Werror=all -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-error=unused-function -Os -Wall -nostdlib -Wpointer-arith -Wno-error=unused-but-set-variable -Wno-error=unused-variable -mlongcalls -ffunction-sections -fdata-sections -fstrict-volatile-bitfields") +SET(CMAKE_C_FLAGS "-Wno-old-style-declaration -std=gnu99 -Werror=all -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-error=unused-function -Os -Wall -nostdlib -Wpointer-arith -Wno-error=unused-but-set-variable -Wno-error=unused-variable -mlongcalls -ffunction-sections -fdata-sections -fstrict-volatile-bitfields") + +SET(CMAKE_C_STANDARD 99) +set(CMAKE_CXX_STANDARD 11) + +if (CMAKE_BUILD_TYPE MATCHES "esp32dev") + add_definitions(-D'WITH_POSIX') + add_definitions(-D'UNITY_INCLUDE_CONFIG_H') + add_definitions(-D'IDF_VER=\"3.30300.190916\"') + add_definitions(-D'PLATFORMIO=40303') + add_definitions(-D'ARDUINO_ESP32_DEV') + add_definitions(-D'ESP32') + add_definitions(-D'ESP_PLATFORM') + add_definitions(-D'F_CPU=240000000L') + add_definitions(-D'HAVE_CONFIG_H') + add_definitions(-D'MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"') + add_definitions(-D'GCC_NOT_5_2_0=0') + add_definitions(-D'PROJECT_NAME=\"untitled\"') + add_definitions(-D'PROJECT_VER=\"1.0.0\"') + + include_directories("${CMAKE_CURRENT_LIST_DIR}/include") + include_directories("${CMAKE_CURRENT_LIST_DIR}/src") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/avrc/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/smp/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/gatt/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/gap/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/a2dp/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/sdp/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/avct/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/btm/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/rfcomm/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/l2cap/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/avdt/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/stack/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/osi/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/hci/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/common/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/gatt/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/sdp/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/ar/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/hh/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/dm/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/av/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/jv/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/hf_client/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/sys/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/bta/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/api/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/external/sbc/encoder/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/external/sbc/decoder/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/profile/std/hid/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/profile/std/battery/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/profile/std/smp/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/profile/std/a2dp/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/profile/std/dis/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/profile/std/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/profile/esp/blufi/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/profile/esp/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/btc/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/device/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/app_trace/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/app_update/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/asio/asio/asio/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/asio/port/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/aws_iot/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/aws_iot/aws-iot-device-sdk-embedded-C/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bootloader_support/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bootloader_support/include_bootloader") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/bt/bluedroid/api/include/api") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/coap/port/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/coap/port/include/coap") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/coap/libcoap/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/coap/libcoap/include/coap") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/console") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/driver/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/efuse/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/efuse/esp32/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp-tls") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp_adc_cal/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp_event/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp_http_client/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp_http_server/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp_https_server/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp_https_ota/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp_ringbuf/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/esp32/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/espcoredump/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/ethernet/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/expat/expat/lib") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/expat/port/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/fatfs/src") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/freemodbus/modbus/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/freemodbus/modbus_controller") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/freertos/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/heap/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/jsmn/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/json/cJSON") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/libsodium/libsodium/src/libsodium/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/libsodium/port_include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/log/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/lwip/include/apps") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/lwip/lwip/src/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/lwip/port/esp32/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/lwip/port/esp32/include/arch") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/include_compat") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/mbedtls/port/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/mbedtls/mbedtls/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/mdns/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/micro-ecc/micro-ecc") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/mqtt/esp-mqtt/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/nghttp/nghttp2/lib/includes") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/nghttp/port/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/newlib/platform_include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/newlib/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/nvs_flash/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/openssl/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/protobuf-c/protobuf-c") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/protocomm/include/common") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/protocomm/include/security") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/protocomm/include/transports") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/pthread/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/sdmmc/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/smartconfig_ack/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/soc/esp32/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/soc/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/spi_flash/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/spiffs/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/tcp_transport/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/tcpip_adapter/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/unity/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/unity/unity/src") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/ulp/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/vfs/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/wear_levelling/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/wifi_provisioning/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/wpa_supplicant/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/wpa_supplicant/port/include") + include_directories("$ENV{HOME}/.platformio/packages/framework-espidf/components/xtensa-debug-module/include") + include_directories("$ENV{HOME}/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0") + include_directories("$ENV{HOME}/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf") + include_directories("$ENV{HOME}/.platformio/packages/toolchain-xtensa32/lib/gcc/xtensa-esp32-elf/5.2.0/include-fixed") + include_directories("$ENV{HOME}/.platformio/packages/toolchain-xtensa32/lib/gcc/xtensa-esp32-elf/5.2.0/include") + include_directories("$ENV{HOME}/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include") + include_directories("$ENV{HOME}/.platformio/packages/tool-unity") + + FILE(GLOB_RECURSE EXTRA_LIB_SOURCES + ${CMAKE_CURRENT_LIST_DIR}/.pio/libdeps/esp32dev/*.* + ) +endif() + + +FILE(GLOB_RECURSE SRC_LIST + ${CMAKE_CURRENT_LIST_DIR}/src/*.* + ${CMAKE_CURRENT_LIST_DIR}/lib/*.* +) + +list(APPEND SRC_LIST ${EXTRA_LIB_SOURCES}) diff --git a/platformio.ini b/platformio.ini index f52678c..a04f17f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -182,18 +182,7 @@ upload_port = /dev/ttyUSB* -[env:aveexy_usb] -platform = ${common_env_data.platform} -board = ${common_env_data.board} -framework = ${common_env_data.framework} -board_build.partitions = ${common_env_data.board_build.partitions} -lib_deps = ${common_env_data.lib_deps} -lib_compat_mode = ${common_env_data.lib_compat_mode} -build_unflags = ${common_env_data.build_unflags} - -upload_speed = 921600 -upload_port = /dev/ttyUSB* - +[aveexy] build_flags = ${common_env_data.build_flags} ${peters_platine.build_flags} @@ -219,6 +208,31 @@ build_flags = -DDEFAULT_BREMSMIN=1300 -DDEFAULT_BREMSMAX=4000 +[env:aveexy_usb] +platform = ${common_env_data.platform} +board = ${common_env_data.board} +framework = ${common_env_data.framework} +board_build.partitions = ${common_env_data.board_build.partitions} +lib_deps = ${common_env_data.lib_deps} +lib_compat_mode = ${common_env_data.lib_compat_mode} +build_unflags = ${common_env_data.build_unflags} +build_flags = ${aveexy.build_flags} + +upload_speed = 921600 +upload_port = /dev/ttyUSB* + +[env:aveexy_ota] +platform = ${common_env_data.platform} +board = ${common_env_data.board} +framework = ${common_env_data.framework} +board_build.partitions = ${common_env_data.board_build.partitions} +lib_deps = ${common_env_data.lib_deps} +lib_compat_mode = ${common_env_data.lib_compat_mode} +build_unflags = ${common_env_data.build_unflags} +build_flags = ${aveexy.build_flags} + +upload_protocol = espota +upload_port = 192.168.127.108 [env:testbench_usb] diff --git a/src/displays/calibratedisplay.h b/src/displays/calibratedisplay.h index 12b3693..9b0f63d 100644 --- a/src/displays/calibratedisplay.h +++ b/src/displays/calibratedisplay.h @@ -37,6 +37,7 @@ public: private: const bool m_bootup{false}; + bool saved{false}; ModeInterface *m_oldMode; IgnoreInputMode m_mode{ 0, @@ -57,6 +58,8 @@ private: ProgressBar{20, 200, 200, 10, 0, 1000}, ProgressBar{20, 230, 200, 10, 0, 1000} }}; + + Label savedLabel{25, 50}; }; CalibrateDisplay::CalibrateDisplay(bool bootup) : @@ -82,15 +85,24 @@ void CalibrateDisplay::initScreen() tft.setTextColor(TFT_WHITE, TFT_BLACK); - for (auto &label : m_labels) + if (!saved) { + for (auto &label : m_labels) label.start(); - for (auto &progressBar : m_progressBars) + for (auto &progressBar : m_progressBars) progressBar.start(); + } + + savedLabel.start(); } void CalibrateDisplay::redraw() { + if (saved) { + savedLabel.redraw(String{"Saved"}); + return; + } + m_labels[0].redraw(String{gas}); m_labels[1].redraw(String{raw_gas}); @@ -127,7 +139,18 @@ void CalibrateDisplay::triggered() switchScreen(); #endif #ifdef VESC_CONTROLLER - switchScreen(); + if (saved) { + switchScreen(); + return; + } + + settings.boardcomputerHardware.gasMax = raw_gas * 0.9; + settings.boardcomputerHardware.bremsMax = raw_brems * 0.9; + saveSettings(); + + saved = true; + + initScreen(); #endif } }