From 416dbb0830fbb0305621cb7f829d2999688185d9 Mon Sep 17 00:00:00 2001 From: Vincent Hamp Date: Tue, 7 May 2024 16:22:12 +0200 Subject: [PATCH] refactor: add definitions for bit timings and remove emergencyStop API --- .github/workflows/build.yml | 8 +- .vscode/tasks.json | 6 + CHANGELOG.md | 40 +- CMakeLists.txt | 49 +- README.md | 128 +-- TODO.md | 3 +- clang-format-all | 84 -- data/images/NUCLEO-H743ZI.png | Bin 0 -> 426250 bytes examples/CMakeLists.txt | 9 +- examples/{rmt => esp32}/.gitignore | 0 examples/{rmt => esp32}/CMakeLists.txt | 0 examples/{rmt => esp32}/main/CMakeLists.txt | 0 examples/{rmt => esp32}/main/app_main.cpp | 0 .../{rmt => esp32}/main/idf_component.yml | 0 examples/repl/CMakeLists.txt | 2 +- examples/repl/{ => src}/command_station.cpp | 2 +- examples/repl/{ => src}/command_station.hpp | 4 +- examples/repl/{ => src}/decoder.cpp | 8 +- examples/repl/{ => src}/decoder.hpp | 9 +- examples/repl/{ => src}/fifo.hpp | 0 examples/repl/{ => src}/main.cpp | 16 +- examples/stm32/CMakeLists.txt | 57 ++ examples/stm32/STM32H743ZITX_FLASH.ld | 180 +++++ examples/stm32/src/bsp.c | 351 ++++++++ examples/stm32/src/bsp.h | 37 + examples/stm32/src/command_station.cpp | 66 ++ examples/stm32/src/command_station.hpp | 23 + examples/stm32/src/decoder.cpp | 67 ++ examples/stm32/src/decoder.hpp | 44 + examples/stm32/src/startup_stm32h743zitx.s | 750 ++++++++++++++++++ include/dcc/bidi/dyn.hpp | 4 +- include/dcc/bidi/{speed.hpp => kmh.hpp} | 6 +- include/dcc/direction.hpp | 22 + include/dcc/rx/bidi/crtp_base.hpp | 79 +- include/dcc/rx/bidi/high_current.hpp | 2 +- include/dcc/rx/crtp_base.hpp | 57 +- include/dcc/rx/decoder.hpp | 3 +- .../rx/{east_west_man.hpp => east_west.hpp} | 12 +- include/dcc/rx/timing.hpp | 12 +- include/dcc/speed.hpp | 22 + include/dcc/tx/command_station.hpp | 4 +- include/dcc/tx/config.hpp | 15 +- include/dcc/tx/crtp_base.hpp | 19 +- include/dcc/tx/timing.hpp | 12 +- include/dcc/tx/timings.hpp | 2 +- include/dcc/utility.hpp | 12 +- src/rmt_dcc_encoder.c | 10 +- tests/CMakeLists.txt | 2 + tests/rx/advanced_operations.cpp | 25 +- tests/rx/{ => bidi}/bidi_app_adr.cpp | 0 tests/rx/bidi/bidi_app_dyn.cpp | 61 ++ tests/rx/{ => bidi}/bidi_app_pom.cpp | 0 tests/rx/{ => bidi}/bidi_app_tos.cpp | 0 tests/rx/{ => bidi}/bidi_backoff.cpp | 0 tests/rx/{ => bidi}/bidi_backoff_test.cpp | 0 tests/rx/{ => bidi}/bidi_backoff_test.hpp | 0 tests/rx/{ => bidi}/bidi_test.cpp | 0 tests/rx/{ => bidi}/bidi_test.hpp | 2 +- tests/rx/logon.cpp | 4 +- tests/rx/rx_mock.hpp | 1 - 60 files changed, 2016 insertions(+), 315 deletions(-) delete mode 100755 clang-format-all create mode 100644 data/images/NUCLEO-H743ZI.png rename examples/{rmt => esp32}/.gitignore (100%) rename examples/{rmt => esp32}/CMakeLists.txt (100%) rename examples/{rmt => esp32}/main/CMakeLists.txt (100%) rename examples/{rmt => esp32}/main/app_main.cpp (100%) rename examples/{rmt => esp32}/main/idf_component.yml (100%) rename examples/repl/{ => src}/command_station.cpp (63%) rename examples/repl/{ => src}/command_station.hpp (77%) rename examples/repl/{ => src}/decoder.cpp (91%) rename examples/repl/{ => src}/decoder.hpp (80%) rename examples/repl/{ => src}/fifo.hpp (100%) rename examples/repl/{ => src}/main.cpp (92%) create mode 100644 examples/stm32/CMakeLists.txt create mode 100644 examples/stm32/STM32H743ZITX_FLASH.ld create mode 100644 examples/stm32/src/bsp.c create mode 100644 examples/stm32/src/bsp.h create mode 100644 examples/stm32/src/command_station.cpp create mode 100644 examples/stm32/src/command_station.hpp create mode 100644 examples/stm32/src/decoder.cpp create mode 100644 examples/stm32/src/decoder.hpp create mode 100644 examples/stm32/src/startup_stm32h743zitx.s rename include/dcc/bidi/{speed.hpp => kmh.hpp} (76%) create mode 100644 include/dcc/direction.hpp rename include/dcc/rx/{east_west_man.hpp => east_west.hpp} (58%) create mode 100644 include/dcc/speed.hpp rename tests/rx/{ => bidi}/bidi_app_adr.cpp (100%) create mode 100644 tests/rx/bidi/bidi_app_dyn.cpp rename tests/rx/{ => bidi}/bidi_app_pom.cpp (100%) rename tests/rx/{ => bidi}/bidi_app_tos.cpp (100%) rename tests/rx/{ => bidi}/bidi_backoff.cpp (100%) rename tests/rx/{ => bidi}/bidi_backoff_test.cpp (100%) rename tests/rx/{ => bidi}/bidi_backoff_test.hpp (100%) rename tests/rx/{ => bidi}/bidi_test.cpp (100%) rename tests/rx/{ => bidi}/bidi_test.hpp (93%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9a65e8a..516676a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,10 +5,16 @@ on: branches: [master] jobs: + arm-none-eabi-gcc: + uses: ZIMO-Elektronik/.github-workflows/.github/workflows/arm-none-eabi-gcc.yml@v0.0.4 + with: + arch: -mcpu=cortex-m7 + target: DCCStm32Decoder DCCStm32CommandStation + esp-elf-gcc: uses: ZIMO-Elektronik/.github-workflows/.github/workflows/esp-elf-gcc.yml@v0.0.4 with: - path: examples/rmt + path: examples/esp32 target: esp32 x86_64-linux-gnu-gcc: diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 94df8b4..38283ea 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,6 +1,12 @@ { "version": "2.0.0", "tasks": [ + { + "label": "CMake DCCStm32*", + "type": "shell", + "isBackground": true, + "command": "cmake -Bbuild -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DARCH=\"-mcpu=cortex-m7 -mfloat-abi=hard\" -DCMAKE_TOOLCHAIN_FILE=CMakeModules/cmake/toolchain-arm-none-eabi-gcc.cmake" + }, { "label": "CMake DCCTests", "type": "shell", diff --git a/CHANGELOG.md b/CHANGELOG.md index c02060f..22809c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,19 @@ # Changelog +## +- Add datagram method to `rx::bidi::CrtpBase` to queue dyn (ID7) datagrams +- Replace `int32_t` direction (1, -1) with `bool` (1, 0) +- Remove decoders `emergencyStop` API and replace it with `speed(-1)` +- Add `Direction` and `Speed` enumerations +- Rename `bidi::Speed` to `bidi::Kmh` to avoid ambiguity +- Rename `tx::Config::preamble_bits` to `num_preamble` to match RMT configuration + ## 0.33.1 - Add `DCC_TX_MAX_PREAMBLE_BITS` definition ## 0.33.0 - Limit number of preamble bits of RMT encoder to 30 -- Rename dcc_encoder_config_t::cutoutbit_duration to bidibit_duration +- Rename `dcc_encoder_config_t::cutoutbit_duration` to `bidibit_duration` - Remove optional mduEntry - Bugfix standard compliant CV28 - Logon must be enabled by CV28:7 and ignores CV28:1 and CV28:0 @@ -15,17 +23,17 @@ - Logon address is only temporary ## 0.32.0 -- Individual timings for namespace dcc::rx and dcc::tx -- Move time2bit to namespace dcc::rx +- Individual timings for namespace `dcc::rx` and `dcc::tx` +- Move `time2bit` to namespace `dcc::rx` - Bugfix RMT encoder [#13032](https://github.com/espressif/esp-idf/issues/13032) ## 0.31.0 -- Changes to namespace dcc::tx - - Rename raw2timings to bytes2timings - - Rename CrtpBase::raw to CrtpBase::bytes +- Changes to namespace `dcc::tx` + - Rename `raw2timings` to `bytes2timings` + - Rename `CrtpBase::raw` to `CrtpBase::bytes` ## 0.30.0 -- Use 'speed' instead of 'notch' +- Use `speed` instead of `notch` - Update to ZTL 0.18.0 ## 0.29.1 @@ -52,26 +60,26 @@ - API changes to bytewise CV read ## 0.26.1 -- Bugfix QoS message not written to deque +- Bugfix QoS datagram not written to deque ## 0.26.0 - API changes to bitwise CV read ## 0.25.0 -- BiDi dyn messages get added from execute method -- Add BiDi temperature message (ID7, subindex 26) +- BiDi dyn datagrams get added from execute method +- Add BiDi temperature datagram (ID7, subindex 26) - CV15/16 the values 0 can no longer activate the lock ## 0.24.1 - Short and long addresses are considered equal if their values are -- make_*_packet functions -- Bugfix QoS message wasn't thread safe +- `make_*_packet` functions +- Bugfix QoS datagram wasn't thread safe ## 0.24.0 -- Rename serviceMode to serviceModeHook +- Rename `serviceMode` to `serviceModeHook` ## 0.23.0 -- time2bit returns Bit enum instead of std::optional (overhead is pretty significant) +- `time2bit` returns `Bit` enum instead of `std::optional` (overhead is pretty significant) ## 0.22.2 - Use CPM.cmake @@ -95,7 +103,7 @@ - LOGON_ASSIGN CRC must be calculated before 6/8 encoding ## 0.21.0 -- Mainline RCN218 +- Mainline RCN-218 - LOGON_ENABLE does not have CRC - LOGON_SELECT uses 6/8 encoding @@ -103,7 +111,7 @@ - Add proprietary CV20 ## 0.20.0 -- Minimal implementation of (crippled) RCN218 +- Minimal implementation of (crippled) RCN-218 - Update to ZTL 0.15.0 ## 0.19.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index 522bd9c..51fcb02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ include(FetchContent) if(ESP_PLATFORM) file(GLOB_RECURSE SRC src/*.c) idf_component_register(SRCS ${SRC} INCLUDE_DIRS include REQUIRES driver) + # Change OUTPUT_NAME from DCC to lib__idf_DCC to avoid conflicts set_target_properties(${COMPONENT_LIB} PROPERTIES PREFIX "") set_target_properties( ${COMPONENT_LIB} PROPERTIES OUTPUT_NAME @@ -14,7 +15,7 @@ endif() FetchContent_Declare( CMakeModules GIT_REPOSITORY "https://github.com/ZIMO-Elektronik/CMakeModules" - GIT_TAG v0.8.0 + GIT_TAG v0.9.1 SOURCE_DIR ${CMAKE_BINARY_DIR}/CMakeModules) FetchContent_MakeAvailable(CMakeModules) @@ -22,11 +23,23 @@ version_from_git() project( DCC VERSION ${VERSION_FROM_GIT} - LANGUAGES C CXX) + LANGUAGES ASM C CXX) set(DCC_MAX_PACKET_SIZE 18u CACHE STRING "Maximum size of a packet in bytes") +set(DCC_RX_MIN_BIT_1_TIMING + 52u + CACHE STRING "Minimum duration of a 1 bit of decoder") +set(DCC_RX_MAX_BIT_1_TIMING + 64u + CACHE STRING "Maximum duration of a 1 bit of decoder") +set(DCC_RX_MIN_BIT_0_TIMING + 90u + CACHE STRING "Minimum duration of a 0 bit of decoder") +set(DCC_RX_MAX_BIT_0_TIMING + 119u + CACHE STRING "Maximum duration of a 0 bit of decoder") set(DCC_RX_MIN_PREAMBLE_BITS 10u CACHE STRING "Minimum number of preambel bits of decoder") @@ -36,6 +49,18 @@ set(DCC_RX_DEQUE_SIZE set(DCC_RX_BIDI_DEQUE_SIZE 7u CACHE STRING "Size of the sender deque of decoder") +set(DCC_TX_MIN_BIT_1_TIMING + 56u + CACHE STRING "Minimum duration of a 1 bit of command station") +set(DCC_TX_MAX_BIT_1_TIMING + 60u + CACHE STRING "Maximum duration of a 1 bit of command station") +set(DCC_TX_MIN_BIT_0_TIMING + 97u + CACHE STRING "Minimum duration of a 0 bit of command station") +set(DCC_TX_MAX_BIT_0_TIMING + 114u + CACHE STRING "Maximum duration of a 0 bit of command station") set(DCC_TX_MIN_PREAMBLE_BITS 17u CACHE STRING "Minimum number of preambel bits of command station") @@ -54,17 +79,23 @@ target_compile_features(DCC INTERFACE cxx_std_23) target_compile_definitions( DCC INTERFACE DCC_MAX_PACKET_SIZE=${DCC_MAX_PACKET_SIZE} + DCC_RX_MIN_BIT_1_TIMING=${DCC_RX_MIN_BIT_1_TIMING} + DCC_RX_MAX_BIT_1_TIMING=${DCC_RX_MAX_BIT_1_TIMING} + DCC_RX_MIN_BIT_0_TIMING=${DCC_RX_MIN_BIT_0_TIMING} + DCC_RX_MAX_BIT_0_TIMING=${DCC_RX_MAX_BIT_0_TIMING} DCC_RX_MIN_PREAMBLE_BITS=${DCC_RX_MIN_PREAMBLE_BITS} DCC_RX_DEQUE_SIZE=${DCC_RX_DEQUE_SIZE} DCC_RX_BIDI_DEQUE_SIZE=${DCC_RX_BIDI_DEQUE_SIZE} + DCC_TX_MIN_BIT_1_TIMING=${DCC_TX_MIN_BIT_1_TIMING} + DCC_TX_MAX_BIT_1_TIMING=${DCC_TX_MAX_BIT_1_TIMING} + DCC_TX_MIN_BIT_0_TIMING=${DCC_TX_MIN_BIT_0_TIMING} + DCC_TX_MAX_BIT_0_TIMING=${DCC_TX_MAX_BIT_0_TIMING} DCC_TX_MIN_PREAMBLE_BITS=${DCC_TX_MIN_PREAMBLE_BITS} DCC_TX_MAX_PREAMBLE_BITS=${DCC_TX_MAX_PREAMBLE_BITS} DCC_TX_DEQUE_SIZE=${DCC_TX_DEQUE_SIZE}) -if(PROJECT_IS_TOP_LEVEL AND CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME) +if(PROJECT_IS_TOP_LEVEL) target_include_directories(DCC INTERFACE include) - target_compile_options(DCC - INTERFACE -Werror;-Wno-error=deprecated-declarations) else() target_include_directories(DCC SYSTEM INTERFACE include) endif() @@ -76,7 +107,7 @@ if(NOT TARGET static_math) NAME static_math GITHUB_REPOSITORY - Morwenn/static_math + "Morwenn/static_math" GIT_TAG master SYSTEM @@ -86,16 +117,17 @@ if(NOT TARGET static_math) endif() if(NOT TARGET ZTL::ZTL) - cpmaddpackage(gh:ZIMO-Elektronik/ZTL@0.19.0) + cpmaddpackage("gh:ZIMO-Elektronik/ZTL@0.19.0") endif() target_link_libraries(DCC INTERFACE static_math ZTL::ZTL) if(PROJECT_IS_TOP_LEVEL) include(CTest) + add_subdirectory(examples) file( DOWNLOAD - https://raw.githubusercontent.com/ZIMO-Elektronik/.clang-format/master/.clang-format + "https://github.com/ZIMO-Elektronik/.clang-format/raw/master/.clang-format" ${CMAKE_CURRENT_LIST_DIR}/.clang-format) file(GLOB_RECURSE SRC examples/*.[ch]pp include/*.[ch]pp src/*.[ch]pp tests/*.[ch]pp) @@ -103,6 +135,5 @@ if(PROJECT_IS_TOP_LEVEL) endif() if(BUILD_TESTING AND CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME) - add_subdirectory(examples) add_subdirectory(tests) endif() diff --git a/README.md b/README.md index c0c7480..22583ca 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ DCC is an acronym for [Digital Command Control](https://en.wikipedia.org/wiki/Digital_Command_Control), a standardized protocol for controlling digital model railways. This C++ library of the same name contains platform-independent code to either decode (decoder) or generate (command station) a DCC signal on the track. For both cases, a typical microcontroller timer with microsecond precision is sufficient for implementing a receiver or transmitter class. Also included, but not platform-independent, is an encoder for the [ESP32 RMT](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/rmt.html) peripherals. The implementation provided here is used in the following products: -- [ZIMO MN decoders](http://www.zimo.at/web2010/products/mn-nicht-sound-decoder_EN.htm) -- [ZIMO small-](http://www.zimo.at/web2010/products/ms-sound-decoder_EN.htm) and [large-scale MS decoders](http://www.zimo.at/web2010/products/ms-sound-decoder-grossbahn_EN.htm) +- [ZIMO MN decoders](https://www.zimo.at/web2010/products/mn-nicht-sound-decoder_EN.htm) +- [ZIMO small-](https://www.zimo.at/web2010/products/ms-sound-decoder_EN.htm) and [large-scale MS decoders](https://www.zimo.at/web2010/products/ms-sound-decoder-grossbahn_EN.htm)
Table of contents @@ -33,17 +33,17 @@ The implementation provided here is used in the following products: ## Protocol The DCC protocol is defined by various standards published by the [National Model Railroad Association (NMRA)](https://www.nmra.org/) and the [RailCommunity](https://www.vhdm.at/). The standards are mostly consistent and we have attempted to match the English and German standards in the table below. However, if you can read German, we recommend that you stick to the RCN standards as they are updated more frequently. -| NMRA (English) | RailCommunity (German) | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| [S-9.1 Electrical Standards for Digital Command Control](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.1_electrical_standards_for_digital_command_control_2021.pdf) | [RCN-210 DCC - Protokoll Bit - Übertragung](http://normen.railcommunity.de/RCN-210.pdf) | -| [S-9.2 Communications Standards For Digital Command Control, All Scales](https://www.nmra.org/sites/default/files/s-92-2004-07.pdf) | [RCN-211 DCC - Protokoll Paketstruktur, Adressbereiche und globale Befehle](http://normen.railcommunity.de/RCN-211.pdf) | -| [S-9.2.1 DCC Extended Packet Formats](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.1_dcc_extended_packet_formats.pdf) | [RCN-212 DCC - Protokoll Betriebsbefehle für Fahrzeugdecoder](http://normen.railcommunity.de/RCN-212.pdf) | -| [S-9.2.1 DCC Extended Packet Formats](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.1_dcc_extended_packet_formats.pdf) | [RCN-213 DCC - Protokoll Betriebsbefehle für Zubehördecoder](http://normen.railcommunity.de/RCN-213.pdf) | -| [S-9.2.1 DCC Extended Packet Formats](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.1_dcc_extended_packet_formats.pdf) | [RCN-214 DCC - Protokoll Konfigurationsbefehle](http://normen.railcommunity.de/RCN-214.pdf) | -| [S-9.2.3 Service Mode For Digital Command Control, All Scales](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/S-9.2.3_2012_07.pdf) | [RCN-216 DCC - Protokoll Programmierumgebung](http://normen.railcommunity.de/RCN-216.pdf) | -| [S-9.3.2 Communications Standard for Digital Command Control Basic Decoder Transmission](https://www.nmra.org/sites/default/files/s-9.3.2_2012_12_10.pdf) | [RCN-217 RailCom DCC-Rückmeldeprotokol](http://normen.railcommunity.de/RCN-217.pdf) | -| [S-9.2.1.1 Advanced Extended Packet Formats](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.1.1_advanced_extended_packet_formats.pdf) | [RCN-218 DCC - Protokoll DCC-A - Automatische Anmeldung](http://normen.railcommunity.de/RCN-218.pdf) | -| [S-9.2.2 Configuration Variables For Digital Command Control, All Scales](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.2_decoder_cvs_2012.07.pdf) | [RCN-225 DCC - Protokoll Konfigurationsvariablen](http://normen.railcommunity.de/RCN-225.pdf) | +| NMRA (English) | RailCommunity (German) | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| [S-9.1 Electrical Standards for Digital Command Control](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.1_electrical_standards_for_digital_command_control_2021.pdf) | [RCN-210 DCC - Protokoll Bit - Übertragung](https://normen.railcommunity.de/RCN-210.pdf) | +| [S-9.2 Communications Standards For Digital Command Control, All Scales](https://www.nmra.org/sites/default/files/s-92-2004-07.pdf) | [RCN-211 DCC - Protokoll Paketstruktur, Adressbereiche und globale Befehle](https://normen.railcommunity.de/RCN-211.pdf) | +| [S-9.2.1 DCC Extended Packet Formats](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.1_dcc_extended_packet_formats.pdf) | [RCN-212 DCC - Protokoll Betriebsbefehle für Fahrzeugdecoder](https://normen.railcommunity.de/RCN-212.pdf) | +| [S-9.2.1 DCC Extended Packet Formats](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.1_dcc_extended_packet_formats.pdf) | [RCN-213 DCC - Protokoll Betriebsbefehle für Zubehördecoder](https://normen.railcommunity.de/RCN-213.pdf) | +| [S-9.2.1 DCC Extended Packet Formats](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.1_dcc_extended_packet_formats.pdf) | [RCN-214 DCC - Protokoll Konfigurationsbefehle](https://normen.railcommunity.de/RCN-214.pdf) | +| [S-9.2.3 Service Mode For Digital Command Control, All Scales](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/S-9.2.3_2012_07.pdf) | [RCN-216 DCC - Protokoll Programmierumgebung](https://normen.railcommunity.de/RCN-216.pdf) | +| [S-9.3.2 Communications Standard for Digital Command Control Basic Decoder Transmission](https://www.nmra.org/sites/default/files/s-9.3.2_2012_12_10.pdf) | [RCN-217 RailCom DCC-Rückmeldeprotokol](https://normen.railcommunity.de/RCN-217.pdf) | +| [S-9.2.1.1 Advanced Extended Packet Formats](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.1.1_advanced_extended_packet_formats.pdf) | [RCN-218 DCC - Protokoll DCC-A - Automatische Anmeldung](https://normen.railcommunity.de/RCN-218.pdf) | +| [S-9.2.2 Configuration Variables For Digital Command Control, All Scales](https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.2_decoder_cvs_2012.07.pdf) | [RCN-225 DCC - Protokoll Konfigurationsvariablen](https://normen.railcommunity.de/RCN-225.pdf) | ## Features - Platform-independent (apart from the ESP32 RMT encoder) @@ -105,48 +105,53 @@ The DCC protocol is defined by various standards published by the [National Mode ### Prerequisites - C++23 compatible compiler - [CMake](https://cmake.org/) ( >= 3.25 ) -- Optional for building [ESP32 RMT](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/rmt.html) encoder - - [ESP-IDF](https://github.com/espressif/esp-idf) ( >= 5.01 ) +- Optional + - for building [ESP32](https://www.espressif.com/en/products/socs/esp32) [RMT](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/rmt.html) encoder example + - [ESP-IDF](https://github.com/espressif/esp-idf) ( >= 5.0.3 ) + - for building [STM32](https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html) example + - [arm-none-eabi-gcc](https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases) ( >= 12.2.0 ) ### Installation -This library is meant to be consumed with CMake. +This library is meant to be consumed with CMake, ```cmake # Either by including it with CPM -cpmaddpackage("gh:ZIMO-Elektronik/DCC@0.27.0") +cpmaddpackage("gh:ZIMO-Elektronik/DCC@0.34.0") # or the FetchContent module FetchContent_Declare( DCC - GIT_REPOSITORY https://github.com/ZIMO-Elektronik/DCC - GIT_TAG v0.27.0) + GIT_REPOSITORY "https://github.com/ZIMO-Elektronik/DCC" + GIT_TAG v0.34.0) target_link_libraries(YourTarget PRIVATE DCC::DCC) ``` -For the ESP32 there is also the possibility to integrate the library via the [IDF Component Manager](https://docs.espressif.com/projects/idf-component-manager/en/latest/) by adding it to a `idf_component.yml` file. +or, on [ESP platforms](https://www.espressif.com/en/products/socs/esp32), with the [IDF Component Manager](https://docs.espressif.com/projects/idf-component-manager/en/latest/) by adding it to a `idf_component.yml` file. ```yaml dependencies: - dcc: - version: v0.27.0 - git: https://github.com/ZIMO-Elektronik/DCC.git + zimo-elektronik/dcc: + version: "0.34.0" ``` A number of [options](CMakeLists.txt) are provided to configure various sizes such as the receiver deque length or the maximum packet length. When RAM becomes scarce, deque lengths can be reduced. On the other hand, if the processing of the commands is too slow and cannot be done every few milliseconds, it can make sense to lengthen the deques and batch process several commands at once. Otherwise, we recommend sticking with the defaults. ```cmake set(DCC_RX_DEQUE_SIZE - 8 + 8u CACHE STRING "" FORCE) ``` ### Build -If the build is running as a top-level CMake project then tests and a REPL example will be generated. +The library itself is header-only, so technically it can't be built. However, if run as top-level CMake project then, depending on the target platform, different examples can be built. + +#### Host +On host platforms a [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop) example allows a handful of commands to be sent from a simulated command station running in one thread to a simulated decoder running in another. ```sh cmake -Bbuild cmake --build build --target DCCRepl ``` -The REPL allows a handful of commands to be sent from a simulated command station running in one thread to a simulated decoder running in another. +Available commands can be listed by using `help`. ```sh ./build/examples/repl/DCCRepl dcc> help @@ -157,7 +162,7 @@ Commands available: Quit the session - address
Set address all commands are sent to - - direction_speed 0 forward, <=0 backward]> + - direction_speed Set direction and speed - f4-f0 Functions F4-F0 @@ -171,15 +176,51 @@ Commands available: Read CV bit - write_cv_bit Write CV bit +``` + +Set speed level 10 in the reverse direction by sending an "advanced operations speed packet". +```sh dcc> direction_speed 0 10 dcc> Read CV byte 28==2 dcc> Address 3: set direction backward dcc> Address 3: set speed 18 ``` +#### ESP32 + +#### STM32 +An example that runs on [STM32](https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html) platforms is a decoder and command station pair for a [NUCLEO-H743ZI](https://www.st.com/en/evaluation-tools/nucleo-h743zi.html) development board. + +```sh +cmake -Bbuild -GNinja -DARCH="-mcpu=cortex-m7 -mfloat-abi=hard" -DCMAKE_TOOLCHAIN_FILE=CMakeModules/cmake/toolchain-arm-none-eabi-gcc.cmake +cmake --build build --target DCCStm32Decoder DCCStm32CommandStation +``` + + + +This example builds two firmwares, one for the decoder (`DCCStm32Decoder.hex`) and one for the command station (`DCCStm32CommandStation.hex`). Both files must be flashed onto a development board each (e.g. with the [STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html)). + +Since this example simulates real transmission over a track, it is also necessary to connect the two PE5 pins (N track) and the two PE5 pins (P track) with each other. The command station uses the pins as outputs to send a DCC signal, the decoder uses the pins as inputs to receive the same signal again. The development board with command station firmware can be recognized by the permanently lit red LED. + +During ongoing operation, the following steps are repeated in an endless loop: +1. Accelerate loco "3" to speed step 42 in forward direction +2. Turn on green LED +3. Wait for 2s +4. Set function F3 on loco "3" +5. Turn on yellow LED +6. Wait for 2s +7. Stop loco "3" +8. Turn off green LED +9. Wait for 2s +10. Clear function F3 on loco "3" +11. Turn off yellow LED +12. Wait for 2s + +There is also a virtual com port (baud rate 115200) on the micro USB plug (CN1) through which the sent/received commands can be monitored. + ## Usage ### Receiver -To create a receiver (decoder) class it is necessary to derive from dcc::rx::CrtpBase. As the name suggest this class relies on [CRTP](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern) to implement static polymorphism. The template argument of the base is checked with a concept called [Decoder](include/dcc/rx/decoder.hpp). This concept verifies that the following methods can be called from the base. The friend declarations are only necessary if the methods the base needs to call are not public. +To create a receiver (decoder) class it is necessary to derive from `dcc::rx::CrtpBase`. As the name suggest this class relies on [CRTP](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern) to implement static polymorphism. The template argument of the base is checked with a concept called [Decoder](include/dcc/rx/decoder.hpp). This concept verifies that the following methods can be called from the base. The friend declarations are only necessary if the methods the base needs to call are not public. ```cpp #include @@ -188,15 +229,12 @@ struct Decoder : dcc::rx::CrtpBase { friend dcc::rx::CrtpBase::BiDi; private: - // Set direction (1 forward, -1 backward) - void direction(uint32_t addr, int32_t dir); + // Set direction (1 forward, 0 backward) + void direction(uint32_t addr, bool dir); - // Set speed (regardless of CV settings scaled to 0-255) + // Set speed [-1, 255] (regardless of CV settings) void speed(uint32_t addr, int32_t speed); - // Emergency stop - void emergencyStop(uint32_t addr); - // Set function inputs void function(uint32_t addr, uint32_t mask, uint32_t state); @@ -239,7 +277,7 @@ Implementing the [Decoder](include/dcc/rx/decoder.hpp) concept alone is not enou } ``` -3. In order to keep the time in handler mode (interrupt context) as short as possible, received packets (with the exception of [RCN218](http://normen.railcommunity.de/RCN-218.pdf) ones) are not executed immediately. For received packets to be executed, the `execute` method must be called periodically. This could either be done either inside a super-loop or, as in the snippet below, in an RTOS task. +3. In order to keep the time in handler mode (interrupt context) as short as possible, received packets (with the exception of [RCN-218](https://normen.railcommunity.de/RCN-218.pdf) ones) are not executed immediately. For received packets to be executed, the `execute` method must be called periodically. This could either be done either inside a super-loop or, as in the snippet below, in an RTOS task. ```cpp // RTOS task void task(void*) { @@ -251,7 +289,7 @@ Implementing the [Decoder](include/dcc/rx/decoder.hpp) concept alone is not enou ``` #### Optional -There are various optional methods that can be implemented if required. One of them are asynchronous CV methods that contain a callback as the last parameter. These methods allow to return immediately and execute the callback at a later point in time. Another addition can enable or disable high-current BiDi if the corresponding bit is set in CV29. Further extensions are things specific to [ZIMO](http://zimo.at/), e.g. east-west direction. +There are various optional methods that can be implemented if required. One of them are asynchronous CV methods that contain a callback as the last parameter. These methods allow to return immediately and execute the callback at a later point in time. Another addition can enable or disable high-current BiDi if the corresponding bit is set in CV29. And last but not least, the east-west direction according to [RCN-212](https://normen.railcommunity.de/RCN-212.pdf) is supported. ```cpp // Read CV asynchronously void readCv(uint32_t cv_addr, uint8_t byte, std::function cb); @@ -272,15 +310,15 @@ There are various optional methods that can be implemented if required. One of t uint32_t pos, std::function cb); - // High-current RailCom - void highCurrent(bool high_current); + // High-current BiDi + void highCurrentBiDi(bool high_current); - // Set east-west MAN - void eastWestMan(uint32_t cv_addr, std::optional dir); + // Set east-west direction + void eastWestDirection(uint32_t cv_addr, std::optional dir); ``` ### Transmitter -As before for the receiver, for the transmitter (command station) we need to derive from a class, this time from dcc::tx::CrtpBase. The template argument of the base is checked with a concept called [CommandStation](include/dcc/tx/command_station.hpp). +As before for the receiver, for the transmitter (command station) we need to derive from a class, this time from `dcc::tx::CrtpBase`. The template argument of the base is checked with a concept called [CommandStation](include/dcc/tx/command_station.hpp). ```cpp #include @@ -288,8 +326,8 @@ struct CommandStation : dcc::tx::CrtpBase { friend dcc::tx::CrtpBase; private: - // Switch left and right track output - void setTrackOutputs(bool left, bool right); + // Write track outputs + void trackOutputs(bool N, bool P); // BiDi start void biDiStart(); @@ -309,7 +347,7 @@ Again implementing the [CommandStation](include/dcc/tx/command_station.hpp) conc 1. After we have instantiated the class we can configure the track signal by calling the `init` method. The method takes `Config` as a parameter and lets us set the number of preamble bits, the bit durations and whether a BiDi cutout should be generated. This step is optional, if `init` it is not called, then default settings are used. ```cpp // Initializing the command station is optional - command_station.init({.preamble_bits = 17u, + command_station.init({.num_preamble = 17u, .bit1_duration = 58u, .bit0_duration = 100u, .bidi = true}); @@ -346,7 +384,7 @@ This duration may be set to values between 57-61 to enable the generation of BiD ![BiDi cutout](https://github.com/ZIMO-Elektronik/DCC/raw/master/data/images/bidibit_duration.png) #### End bit duration -Mainly due to a workaround of [esp-idf #13003](https://github.com/espressif/esp-idf/issues/13003) the end bit duration can adjusted independently of the bit1 duration. This allows the RMT transmission complete callback to be executed at the right time. +Mainly due to a workaround of [esp-idf #13003](https://github.com/espressif/esp-idf/issues/13003) the end bit duration can be adjusted independently of the bit1 duration. This allows the RMT transmission complete callback to be executed at the right time. #### Flags - invert diff --git a/TODO.md b/TODO.md index 168fb3b..9cdac93 100644 --- a/TODO.md +++ b/TODO.md @@ -1,3 +1,4 @@ - Literal for converting CV number to index? The "- 1u" everything is fucking ugly - dcc::tx::CrtpBase currently pops it's deque at a bad time. Although the design or inplace_deque guarantees that it's not UB it looks funky. -- Replace `RMT_MEM_ALLOC_CAPS` macro with [`rmt_alloc_encoder_mem`](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/rmt.html#_CPPv421rmt_alloc_encoder_mem6size_t) \ No newline at end of file +- Replace `RMT_MEM_ALLOC_CAPS` macro with [`rmt_alloc_encoder_mem`](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/rmt.html#_CPPv421rmt_alloc_encoder_mem6size_t) +- Add STM32 examples? \ No newline at end of file diff --git a/clang-format-all b/clang-format-all deleted file mode 100755 index 645c3ce..0000000 --- a/clang-format-all +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash -# -# clang-format-all: a tool to run clang-format on an entire project -# Copyright (C) 2016 Evan Klitzke -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -function usage { - echo "Usage: $0 DIR..." - exit 1 -} - -if [ $# -eq 0 ]; then - usage -fi - -# Variable that will hold the name of the clang-format command -FMT="" - -# Some distros just call it clang-format. Others (e.g. Ubuntu) are insistent -# that the version number be part of the command. We prefer clang-format if -# that's present, otherwise we work backwards from highest version to lowest -# version. -for clangfmt in clang-format{,-{4,3}.{9,8,7,6,5,4,3,2,1,0}}; do - if which "$clangfmt" &>/dev/null; then - FMT="$clangfmt" - break - fi -done - -# Check if we found a working clang-format -if [ -z "$FMT" ]; then - echo "failed to find clang-format" - exit 1 -fi - -# Check all of the arguments first to make sure they're all directories -for dir in "$@"; do - if [ ! -d "${dir}" ]; then - echo "${dir} is not a directory" - usage - fi -done - -# Find a dominating file, starting from a given directory and going up. -find-dominating-file() { - if [ -r "$1"/"$2" ]; then - return 0 - fi - if [ "$1" = "/" ]; then - return 1 - fi - find-dominating-file "$(realpath "$1"/..)" "$2" - return $? -} - -# Run clang-format -i on all of the things -for dir in "$@"; do - pushd "${dir}" &>/dev/null - if ! find-dominating-file . .clang-format; then - echo "Failed to find dominating .clang-format starting at $PWD" - continue - fi - find . \ - \( -name '*.c' \ - -o -name '*.cc' \ - -o -name '*.cpp' \ - -o -name '*.h' \ - -o -name '*.hh' \ - -o -name '*.hpp' \) \ - -exec "${FMT}" -i '{}' \; - popd &>/dev/null -done diff --git a/data/images/NUCLEO-H743ZI.png b/data/images/NUCLEO-H743ZI.png new file mode 100644 index 0000000000000000000000000000000000000000..75602404a1defeef232653ed6bdf418351b5c2cb GIT binary patch literal 426250 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

4aP?qo? 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
k;~l4XvfoxNr%K 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 XqQc$OcTZYzd-YUaRjx$F=>7izD^5?_ literal 0 HcmV?d00001 diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index afa15aa..ef970d5 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1 +1,8 @@ -add_subdirectory(repl) +if(ESP_PLATFORM) + # ESP32 example gets automatically included by component manager + # https://docs.espressif.com/projects/idf-component-manager/en/latest/reference/manifest_file.html#examples +elseif(CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME) + add_subdirectory(repl) +else() + add_subdirectory(stm32) +endif() diff --git a/examples/rmt/.gitignore b/examples/esp32/.gitignore similarity index 100% rename from examples/rmt/.gitignore rename to examples/esp32/.gitignore diff --git a/examples/rmt/CMakeLists.txt b/examples/esp32/CMakeLists.txt similarity index 100% rename from examples/rmt/CMakeLists.txt rename to examples/esp32/CMakeLists.txt diff --git a/examples/rmt/main/CMakeLists.txt b/examples/esp32/main/CMakeLists.txt similarity index 100% rename from examples/rmt/main/CMakeLists.txt rename to examples/esp32/main/CMakeLists.txt diff --git a/examples/rmt/main/app_main.cpp b/examples/esp32/main/app_main.cpp similarity index 100% rename from examples/rmt/main/app_main.cpp rename to examples/esp32/main/app_main.cpp diff --git a/examples/rmt/main/idf_component.yml b/examples/esp32/main/idf_component.yml similarity index 100% rename from examples/rmt/main/idf_component.yml rename to examples/esp32/main/idf_component.yml diff --git a/examples/repl/CMakeLists.txt b/examples/repl/CMakeLists.txt index 44cb3f3..e3db06a 100644 --- a/examples/repl/CMakeLists.txt +++ b/examples/repl/CMakeLists.txt @@ -1,4 +1,4 @@ -file(GLOB_RECURSE SRC *.cpp) +file(GLOB_RECURSE SRC src/*.cpp) add_executable(DCCRepl ${SRC}) target_common_warnings(DCCRepl PRIVATE) diff --git a/examples/repl/command_station.cpp b/examples/repl/src/command_station.cpp similarity index 63% rename from examples/repl/command_station.cpp rename to examples/repl/src/command_station.cpp index f1990d6..51c7300 100644 --- a/examples/repl/command_station.cpp +++ b/examples/repl/src/command_station.cpp @@ -1,6 +1,6 @@ #include "command_station.hpp" -void CommandStation::setTrackOutputs(bool, bool) {} +void CommandStation::trackOutputs(bool, bool) {} void CommandStation::biDiStart() {} diff --git a/examples/repl/command_station.hpp b/examples/repl/src/command_station.hpp similarity index 77% rename from examples/repl/command_station.hpp rename to examples/repl/src/command_station.hpp index 1c0020c..abf5e97 100644 --- a/examples/repl/command_station.hpp +++ b/examples/repl/src/command_station.hpp @@ -6,8 +6,8 @@ struct CommandStation : dcc::tx::CrtpBase { friend dcc::tx::CrtpBase; private: - // Switch left and right track output - void setTrackOutputs(bool left, bool right); + // Write track outputs + void trackOutputs(bool N, bool P); // BiDi start void biDiStart(); diff --git a/examples/repl/decoder.cpp b/examples/repl/src/decoder.cpp similarity index 91% rename from examples/repl/decoder.cpp rename to examples/repl/src/decoder.cpp index f0f5cf7..1022635 100644 --- a/examples/repl/decoder.cpp +++ b/examples/repl/src/decoder.cpp @@ -12,9 +12,9 @@ Decoder::Decoder() { _cvs[8uz - 1uz] = 13u; // Temporary manufacturer ID (S-9.2.2 Appendix A) } -void Decoder::direction(uint32_t addr, int32_t dir) { +void Decoder::direction(uint32_t addr, bool dir) { cli::Cli::cout() << "Address " << addr << ": set direction " - << (dir == 1 ? "forward" : "backward") << PROMPTENDL; + << (dir ? "forward" : "backward") << PROMPTENDL; } void Decoder::speed(uint32_t addr, int32_t speed) { @@ -22,10 +22,6 @@ void Decoder::speed(uint32_t addr, int32_t speed) { << PROMPTENDL; } -void Decoder::emergencyStop(uint32_t addr) { - cli::Cli::cout() << "Address " << addr << ": e-stop" << PROMPTENDL; -} - void Decoder::function(uint32_t addr, uint32_t mask, uint32_t state) { auto const f_high{std::bit_width(mask) - 1}; auto const f_low{std::countr_zero(mask)}; diff --git a/examples/repl/decoder.hpp b/examples/repl/src/decoder.hpp similarity index 80% rename from examples/repl/decoder.hpp rename to examples/repl/src/decoder.hpp index c908583..4ca050f 100644 --- a/examples/repl/decoder.hpp +++ b/examples/repl/src/decoder.hpp @@ -9,15 +9,12 @@ struct Decoder : dcc::rx::CrtpBase { Decoder(); private: - // Set direction (1 forward, -1 backward) - void direction(uint32_t addr, int32_t dir); + // Set direction (1 forward, 0 backward) + void direction(uint32_t addr, bool dir); - // Set speed (regardless of CV settings scaled to 0-255) + // Set speed [-1, 255] void speed(uint32_t addr, int32_t speed); - // Emergency stop - void emergencyStop(uint32_t addr); - // Set function inputs void function(uint32_t addr, uint32_t mask, uint32_t state); diff --git a/examples/repl/fifo.hpp b/examples/repl/src/fifo.hpp similarity index 100% rename from examples/repl/fifo.hpp rename to examples/repl/src/fifo.hpp diff --git a/examples/repl/main.cpp b/examples/repl/src/main.cpp similarity index 92% rename from examples/repl/main.cpp rename to examples/repl/src/main.cpp index 80b027c..e6e73b8 100644 --- a/examples/repl/main.cpp +++ b/examples/repl/src/main.cpp @@ -36,10 +36,12 @@ void command_station_task(FiFo* fifo) { CommandStation command_station; // Initializing the command station is optional - command_station.init({.preamble_bits = DCC_TX_MIN_PREAMBLE_BITS, - .bit1_duration = 58u, - .bit0_duration = 100u, - .bidi = true}); + command_station.init({ + .num_preamble = DCC_TX_MIN_PREAMBLE_BITS, + .bit1_duration = 58u, + .bit0_duration = 100u, + .flags = {.invert = false, .bidi = true}, + }); for (;;) { std::this_thread::sleep_for(1ms); @@ -73,13 +75,13 @@ void repl_task(FiFo* fifo) { // Set direction and speed root->Insert("direction_speed", - [&](std::ostream&, int8_t dir, uint8_t speed) { + [&](std::ostream&, bool dir, uint8_t speed) { auto const packet{dcc::make_advanced_operations_speed_packet( - addr, dir, speed)}; + addr, dir << 7u | speed)}; fifo->push_back(packet); }, "Set direction and speed", - {"Direction [>0 forward, <=0 backward]", "Speed [0-126]"}); + {"Direction [1 forward, 0 backward]", "Speed [0-127]"}); // Set F4-F0 root->Insert("f4-f0", diff --git a/examples/stm32/CMakeLists.txt b/examples/stm32/CMakeLists.txt new file mode 100644 index 0000000..b3d8370 --- /dev/null +++ b/examples/stm32/CMakeLists.txt @@ -0,0 +1,57 @@ +cpmaddpackage("gh:STMicroelectronics/STM32CubeH7@1.11.2") + +function(add_stm32_target TARGET) + file(GLOB_RECURSE SRC + ${STM32CubeH7_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/*.c + src/startup_stm32h743zitx.s src/bsp.c) + # Filter unwanted .template files + list(FILTER SRC EXCLUDE REGEX ".*template") + add_executable(${TARGET} ${SRC}) + + # Include either decoder.cpp or command_station.cpp, but not both + target_sources( + ${TARGET} + PRIVATE + "$,src/decoder.cpp,src/command_station.cpp>" + ) + + target_compile_definitions(${TARGET} PUBLIC USE_FULL_LL_DRIVER USE_HAL_DRIVER + STM32H743xx) + + target_include_directories( + ${TARGET} + PUBLIC ${STM32CubeH7_SOURCE_DIR}/Drivers/CMSIS/Core/Include + ${STM32CubeH7_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include + ${STM32CubeH7_SOURCE_DIR}/Drivers/CMSIS/Include + ${STM32CubeH7_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc) + + # Use some other projects stm32h7xx_hal_conf.h and system_stm32h7xx.c files + target_include_directories( + ${TARGET} + PUBLIC + ${STM32CubeH7_SOURCE_DIR}/Projects/NUCLEO-H743ZI/Applications/FreeRTOS/FreeRTOS_MPU/Inc + ) + target_sources( + ${TARGET} + PRIVATE + ${STM32CubeH7_SOURCE_DIR}/Projects/NUCLEO-H743ZI/Applications/FreeRTOS/FreeRTOS_MPU/Src/system_stm32h7xx.c + ) + + target_link_libraries(${TARGET} PRIVATE DCC::DCC) + + target_link_libraries( + ${TARGET} PRIVATE --specs=nano.specs -Wl,--gc-sections,-Map=${TARGET}.map + -T${CMAKE_CURRENT_SOURCE_DIR}/STM32H743ZITX_FLASH.ld) + + # Create .hex files post build + add_custom_command( + TARGET ${TARGET} + POST_BUILD + COMMAND ${CMAKE_OBJCOPY} -O ihex ${TARGET} ${TARGET}.hex + COMMAND ${CMAKE_OBJDUMP} --source --all-headers --demangle --line-numbers + --wide ${TARGET} > ${TARGET}.lst + COMMAND ${CMAKE_SIZE} --format=berkeley ${TARGET}) +endfunction() + +add_stm32_target(DCCStm32Decoder) +add_stm32_target(DCCStm32CommandStation) diff --git a/examples/stm32/STM32H743ZITX_FLASH.ld b/examples/stm32/STM32H743ZITX_FLASH.ld new file mode 100644 index 0000000..fa44fad --- /dev/null +++ b/examples/stm32/STM32H743ZITX_FLASH.ld @@ -0,0 +1,180 @@ +/* +****************************************************************************** +** +** File : LinkerScript.ld +** +** Author : STM32CubeIDE +** +** Abstract : Linker script for STM32H7 series +** 2048Kbytes FLASH and 1056Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Distribution: The file is distributed as is, without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +** Copyright (c) 2024 STMicroelectronics. +** All rights reserved. +** +** This software is licensed under terms that can be found in the LICENSE file +** in the root directory of this software component. +** If no LICENSE file comes with this software, it is provided AS-IS. +** +**************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM_D1) + LENGTH(RAM_D1); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x200; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 2048K + DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K + RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K + RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K + RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K + ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } >FLASH + .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + + .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + + .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */ + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + *(.RamFunc) /* .RamFunc sections */ + *(.RamFunc*) /* .RamFunc* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM_D1 AT> FLASH + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss section */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM_D1 + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM_D1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + + diff --git a/examples/stm32/src/bsp.c b/examples/stm32/src/bsp.c new file mode 100644 index 0000000..ecf6a42 --- /dev/null +++ b/examples/stm32/src/bsp.c @@ -0,0 +1,351 @@ +#include "bsp.h" +#include +#include +#include +#include +#include "stm32h7xx_hal.h" +#include "stm32h7xx_ll_cortex.h" +#include "stm32h7xx_ll_gpio.h" +#include "stm32h7xx_ll_pwr.h" +#include "stm32h7xx_ll_rcc.h" +#include "stm32h7xx_ll_tim.h" +#include "stm32h7xx_ll_usart.h" +#include "stm32h7xx_ll_utils.h" + +// LEDs +#define LD1_Pin LL_GPIO_PIN_0 +#define LD1_GPIO_Port GPIOB +#define LD2_Pin LL_GPIO_PIN_1 +#define LD2_GPIO_Port GPIOE +#define LD3_Pin LL_GPIO_PIN_14 +#define LD3_GPIO_Port GPIOB + +// STLINK UART bridge +#define STLINK_RX_Pin LL_GPIO_PIN_8 +#define STLINK_RX_GPIO_Port GPIOD +#define STLINK_TX_Pin LL_GPIO_PIN_9 +#define STLINK_TX_GPIO_Port GPIOD + +// Track pins +#define TRACK_N_PIN LL_GPIO_PIN_5 +#define TRACK_P_PIN LL_GPIO_PIN_6 +#define TRACK_GPIO_Port GPIOE +#define TRACK_N_BS_Pos GPIO_BSRR_BS5_Pos +#define TRACK_N_BR_Pos GPIO_BSRR_BR5_Pos +#define TRACK_P_BS_Pos GPIO_BSRR_BS6_Pos +#define TRACK_P_BR_Pos GPIO_BSRR_BR6_Pos + +static uint8_t* __sbrk_heap_end = NULL; + +void* _sbrk(ptrdiff_t incr) { + extern uint8_t _end; + extern uint8_t _estack; + extern uint32_t _Min_Stack_Size; + uint32_t const stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; + uint8_t const* max_heap = (uint8_t*)stack_limit; + uint8_t* prev_heap_end; + + // Initialize heap end at first call + if (NULL == __sbrk_heap_end) { __sbrk_heap_end = &_end; } + + // Protect heap from growing into the reserved MSP stack + if (__sbrk_heap_end + incr > max_heap) { + errno = ENOMEM; + return (void*)-1; + } + + prev_heap_end = __sbrk_heap_end; + __sbrk_heap_end += incr; + + return (void*)prev_heap_end; +} + +int _gettimeofday(struct timeval* ptimeval, + void* ptimezone __attribute__((unused))) { + uint32_t const tick_ms = HAL_GetTick(); + ptimeval->tv_sec = tick_ms / 1000; + ptimeval->tv_usec = (suseconds_t)tick_ms % 1000; + return 0; +} + +int _getpid() { return 1; } + +int _kill(int, int) { return -1; } + +void _exit(int) { + for (;;) + ; +} + +int _close(int) { return -1; } + +int _fstat(int, struct stat*) { return 0; } + +int _isatty(int) { return 1; } + +int _lseek(int, int, int) { return 0; } + +int _read(int, char*, int) { return -1; } + +int _write(int, char* ptr, int len) { + for (int i = 0; i < len; ++i) { + while (!LL_USART_IsActiveFlag_TXE_TXFNF(USART3)) + ; + LL_USART_TransmitData8(USART3, ptr[i]); + } + return len; +} + +void SysTick_Handler() { HAL_IncTick(); } + +void HAL_MspInit() { __HAL_RCC_SYSCFG_CLK_ENABLE(); } + +// Initialize system core clock to 64MHz +static void init_clock() { + LL_FLASH_SetLatency(LL_FLASH_LATENCY_1); + while (LL_FLASH_GetLatency() != LL_FLASH_LATENCY_1) {} + LL_PWR_ConfigSupply(LL_PWR_LDO_SUPPLY); + LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE2); + while (LL_PWR_IsActiveFlag_VOS() == 0) {} + LL_RCC_HSI_Enable(); + + // Wait till HSI is ready + while (LL_RCC_HSI_IsReady() != 1) {} + LL_RCC_HSI_SetCalibTrimming(64); + LL_RCC_HSI_SetDivider(LL_RCC_HSI_DIV1); + LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSI); + + // Wait till System clock is ready + while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSI) {} + LL_RCC_SetSysPrescaler(LL_RCC_SYSCLK_DIV_1); + LL_RCC_SetAHBPrescaler(LL_RCC_AHB_DIV_1); + LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1); + LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1); + LL_RCC_SetAPB3Prescaler(LL_RCC_APB3_DIV_1); + LL_RCC_SetAPB4Prescaler(LL_RCC_APB4_DIV_1); + LL_SetSystemCoreClock(64000000); + + // Update the time base + if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) _exit(-1); +} + +// Initialize LEDs +static void init_gpio(void) { + // GPIO ports clock enable + LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOA); + LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOB); + LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOC); + LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOD); + LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOE); + LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOH); + + LL_GPIO_ResetOutputPin(LD1_GPIO_Port, LD1_Pin); + LL_GPIO_ResetOutputPin(LD2_GPIO_Port, LD2_Pin); + LL_GPIO_ResetOutputPin(LD3_GPIO_Port, LD3_Pin); + + LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; + GPIO_InitStruct.Pin = LD1_Pin; + GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; + GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; + LL_GPIO_Init(LD1_GPIO_Port, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = LD2_Pin; + LL_GPIO_Init(LD2_GPIO_Port, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = LD3_Pin; + LL_GPIO_Init(LD3_GPIO_Port, &GPIO_InitStruct); +} + +// Initialize UART3 to 115.2k +static void init_uart(void) { + LL_RCC_SetUSARTClockSource(LL_RCC_USART234578_CLKSOURCE_PCLK1); + + // Peripheral clock enable + LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART3); + + LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOD); + + LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; + GPIO_InitStruct.Pin = STLINK_RX_Pin | STLINK_TX_Pin; + GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; + GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; + GPIO_InitStruct.Alternate = LL_GPIO_AF_7; + LL_GPIO_Init(GPIOD, &GPIO_InitStruct); + + LL_USART_InitTypeDef USART_InitStruct = {0}; + USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1; + USART_InitStruct.BaudRate = 115200; + USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B; + USART_InitStruct.StopBits = LL_USART_STOPBITS_1; + USART_InitStruct.Parity = LL_USART_PARITY_NONE; + USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX; + USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE; + USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16; + LL_USART_Init(USART3, &USART_InitStruct); + LL_USART_SetTXFIFOThreshold(USART3, LL_USART_FIFOTHRESHOLD_1_8); + LL_USART_SetRXFIFOThreshold(USART3, LL_USART_FIFOTHRESHOLD_1_8); + LL_USART_DisableFIFO(USART3); + LL_USART_ConfigAsyncMode(USART3); + + LL_USART_Enable(USART3); + + // Polling USART3 initialisation + while ((!(LL_USART_IsActiveFlag_TEACK(USART3))) || + (!(LL_USART_IsActiveFlag_REACK(USART3)))) {} +} + +// +static void bsp_common_init(void) { + HAL_Init(); + + init_clock(); + init_uart(); + init_gpio(); +} + +void bsp_init_decoder(void) { + // Common part + bsp_common_init(); + + LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; + GPIO_InitStruct.Pin = TRACK_N_PIN | TRACK_P_PIN; + GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; + GPIO_InitStruct.Pull = LL_GPIO_PULL_DOWN; + GPIO_InitStruct.Alternate = LL_GPIO_AF_4; + LL_GPIO_Init(TRACK_GPIO_Port, &GPIO_InitStruct); + + // Peripheral clock enable + LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM15); + + // TIM15 interrupt + NVIC_SetPriority(TIM15_IRQn, + NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0, 0)); + NVIC_EnableIRQ(TIM15_IRQn); + + LL_TIM_InitTypeDef TIM_InitStruct = {0}; + TIM_InitStruct.Prescaler = SystemCoreClock / 1000000; + TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; + TIM_InitStruct.Autoreload = 65535; + TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; + TIM_InitStruct.RepetitionCounter = 0; + LL_TIM_Init(TIM15, &TIM_InitStruct); + LL_TIM_DisableARRPreload(TIM15); + LL_TIM_SetClockSource(TIM15, LL_TIM_CLOCKSOURCE_INTERNAL); + LL_TIM_SetTriggerOutput(TIM15, LL_TIM_TRGO_RESET); + LL_TIM_DisableMasterSlaveMode(TIM15); + LL_TIM_IC_SetActiveInput( + TIM15, LL_TIM_CHANNEL_CH1, LL_TIM_ACTIVEINPUT_DIRECTTI); + LL_TIM_IC_SetPrescaler(TIM15, LL_TIM_CHANNEL_CH1, LL_TIM_ICPSC_DIV1); + LL_TIM_IC_SetFilter(TIM15, LL_TIM_CHANNEL_CH1, LL_TIM_IC_FILTER_FDIV1); + LL_TIM_IC_SetPolarity(TIM15, LL_TIM_CHANNEL_CH1, LL_TIM_IC_POLARITY_RISING); + + // Enable CH1 + LL_TIM_CC_EnableChannel(TIM15, LL_TIM_CHANNEL_CH1); + LL_TIM_EnableIT_CC1(TIM15); + LL_TIM_EnableCounter(TIM15); +} + +void bsp_init_command_station(void) { + // Common part + bsp_common_init(); + + LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; + GPIO_InitStruct.Pin = TRACK_N_PIN | TRACK_P_PIN; + GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; + GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; + GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; + LL_GPIO_Init(TRACK_GPIO_Port, &GPIO_InitStruct); + + // Peripheral clock enable + LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM15); + + // TIM15 interrupt + NVIC_SetPriority(TIM15_IRQn, + NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0, 0)); + NVIC_EnableIRQ(TIM15_IRQn); + + LL_TIM_InitTypeDef TIM_InitStruct = {0}; + TIM_InitStruct.Prescaler = SystemCoreClock / 1000000; + TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; + TIM_InitStruct.Autoreload = 0; + TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; + LL_TIM_Init(TIM15, &TIM_InitStruct); + LL_TIM_DisableARRPreload(TIM15); + LL_TIM_SetClockSource(TIM15, LL_TIM_CLOCKSOURCE_INTERNAL); + LL_TIM_SetTriggerOutput(TIM15, LL_TIM_TRGO_RESET); + LL_TIM_DisableMasterSlaveMode(TIM15); + + // Enable update + LL_TIM_EnableIT_UPDATE(TIM15); + LL_TIM_EnableCounter(TIM15); +} + +// Handle timer interrupt for decoder +// +// Toggle input between TI1 and TI2, subtract captured value from running +// counter and clear capture/compare interrupt flag. +uint32_t bsp_decoder_irq(void) { + // Get captured value + uint32_t const ccr = LL_TIM_IC_GetCaptureCH1(TIM15); + + // Toggle input TI1 and TI2 + LL_TIM_CC_DisableChannel(TIM15, LL_TIM_CHANNEL_CH1); + LL_TIM_IC_SetActiveInput( + TIM15, + LL_TIM_CHANNEL_CH1, + LL_TIM_IC_GetActiveInput(TIM15, LL_TIM_CHANNEL_CH1) == + LL_TIM_ACTIVEINPUT_DIRECTTI + ? LL_TIM_ACTIVEINPUT_INDIRECTTI + : LL_TIM_ACTIVEINPUT_DIRECTTI); + LL_TIM_CC_EnableChannel(TIM15, LL_TIM_CHANNEL_CH1); + + // Subtract captured value from running counter + __disable_irq(); + LL_TIM_SetCounter(TIM15, LL_TIM_GetCounter(TIM15) - ccr); + __enable_irq(); + + // Clear capture/compare interrupt flag + while (LL_TIM_IsActiveFlag_CC1(TIM15)) LL_TIM_ClearFlag_CC1(TIM15); + + return ccr; +} + +// Handle timer interrupt for command station +// +// Reload ARR register of TIM15 and clear update interrupt flag. +void bsp_command_station_irq(uint32_t arr) { + // Reload ARR register + LL_TIM_SetAutoReload(TIM15, arr); + + // Clear update interrupt flag + while (LL_TIM_IsActiveFlag_UPDATE(TIM15)) LL_TIM_ClearFlag_UPDATE(TIM15); +} + +void bsp_write_track(bool N, bool P) { + TRACK_GPIO_Port->BSRR = !N << TRACK_N_BR_Pos | !P << TRACK_P_BR_Pos | + N << TRACK_N_BS_Pos | P << TRACK_P_BS_Pos; +} + +void bsp_write_green_led(bool on) { + if (on) LL_GPIO_SetOutputPin(LD1_GPIO_Port, LD1_Pin); + else LL_GPIO_ResetOutputPin(LD1_GPIO_Port, LD1_Pin); +} + +void bsp_write_yellow_led(bool on) { + if (on) LL_GPIO_SetOutputPin(LD2_GPIO_Port, LD2_Pin); + else LL_GPIO_ResetOutputPin(LD2_GPIO_Port, LD2_Pin); +} + +void bsp_write_red_led(bool on) { + if (on) LL_GPIO_SetOutputPin(LD3_GPIO_Port, LD3_Pin); + else LL_GPIO_ResetOutputPin(LD3_GPIO_Port, LD3_Pin); +} + +void bsp_delay(uint32_t ms) { HAL_Delay(ms); } \ No newline at end of file diff --git a/examples/stm32/src/bsp.h b/examples/stm32/src/bsp.h new file mode 100644 index 0000000..a7e7120 --- /dev/null +++ b/examples/stm32/src/bsp.h @@ -0,0 +1,37 @@ +#pragma once + +#include +#include + +#define TIMER_IRQ_HANDLER TIM15_IRQHandler + +#ifdef __cplusplus +extern "C" { +#endif + +// Initialize board to decoder (PE5 and PE6 are track inputs) +void bsp_init_decoder(void); + +// Initialize board to command station (PE5 and PE5 are track outputs) +void bsp_init_command_station(void); + +// Handle decoder interrupt +uint32_t bsp_decoder_irq(void); + +// Handle command station interrupt +void bsp_command_station_irq(uint32_t arr); + +// Set track outputs +void bsp_write_track(bool N, bool P); + +// Write LEDs +void bsp_write_green_led(bool on); +void bsp_write_yellow_led(bool on); +void bsp_write_red_led(bool on); + +// Delay milliseconds +void bsp_delay(uint32_t ms); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/examples/stm32/src/command_station.cpp b/examples/stm32/src/command_station.cpp new file mode 100644 index 0000000..4e62424 --- /dev/null +++ b/examples/stm32/src/command_station.cpp @@ -0,0 +1,66 @@ +#include "command_station.hpp" +#include +#include "bsp.h" + +void CommandStation::trackOutputs(bool N, bool P) { bsp_write_track(N, P); } + +void CommandStation::biDiStart() {} + +void CommandStation::biDiChannel1() {} + +void CommandStation::biDiChannel2() {} + +void CommandStation::biDiEnd() {} + +CommandStation command_station; + +extern "C" void TIMER_IRQ_HANDLER() { + auto const arr{command_station.transmit()}; + bsp_command_station_irq(arr); +} + +int main() { + bsp_init_command_station(); + command_station.init({ + .num_preamble = DCC_TX_MIN_PREAMBLE_BITS, + .bit1_duration = 58u, + .bit0_duration = 100u, + .flags = {.invert = false, .bidi = true}, + }); + + // Turn red LED on to indicate this board is the command station + bsp_write_red_led(true); + + printf("\n\nBoot\n"); + bsp_delay(2000u); + dcc::Packet packet{}; + for (;;) { + // Accelerate + packet = dcc::make_advanced_operations_speed_packet(3u, 1u << 7u | 42u); + command_station.packet(packet); + printf("\nCommand station: accelerate to speed step 42\n"); + bsp_write_green_led(true); + bsp_delay(2000u); + + // Set function F3 + packet = dcc::make_function_group_f4_f0_packet(3u, 0b0'1000u); + command_station.packet(packet); + printf("Command station: set function F3\n"); + bsp_write_yellow_led(true); + bsp_delay(2000u); + + // Decelerate + packet = dcc::make_advanced_operations_speed_packet(3u, 1u << 7u | 0u); + command_station.packet(packet); + printf("Command station: stop\n"); + bsp_write_green_led(false); + bsp_delay(2000u); + + // Clear function + packet = dcc::make_function_group_f4_f0_packet(3u, 0b0'0000u); + command_station.packet(packet); + printf("Command station: clear function F3\n"); + bsp_write_yellow_led(false); + bsp_delay(2000u); + } +} diff --git a/examples/stm32/src/command_station.hpp b/examples/stm32/src/command_station.hpp new file mode 100644 index 0000000..abf5e97 --- /dev/null +++ b/examples/stm32/src/command_station.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include + +struct CommandStation : dcc::tx::CrtpBase { + friend dcc::tx::CrtpBase; + +private: + // Write track outputs + void trackOutputs(bool N, bool P); + + // BiDi start + void biDiStart(); + + // BiDi channel 1 + void biDiChannel1(); + + // BiDi channel 2 + void biDiChannel2(); + + // BiDi end + void biDiEnd(); +}; \ No newline at end of file diff --git a/examples/stm32/src/decoder.cpp b/examples/stm32/src/decoder.cpp new file mode 100644 index 0000000..a4f9a7e --- /dev/null +++ b/examples/stm32/src/decoder.cpp @@ -0,0 +1,67 @@ +#include "decoder.hpp" +#include +#include +#include "bsp.h" + +void Decoder::direction(uint32_t addr, bool dir) {} + +void Decoder::speed(uint32_t, int32_t speed) { + if (speed) { + printf("\nDecoder: accelerate to speed step %d\n", speed); + bsp_write_green_led(true); + } else { + printf("Decoder: stop\n"); + bsp_write_green_led(false); + } +} + +void Decoder::function(uint32_t addr, uint32_t mask, uint32_t state) { + if (!(mask & 0b0'1000u)) return; + else if (state & 0b0'1000u) { + printf("Decoder: set function F3\n"); + bsp_write_yellow_led(true); + } else { + printf("Decoder: clear function F3\n"); + bsp_write_yellow_led(false); + } +} + +void Decoder::serviceModeHook(bool service_mode) {} + +void Decoder::serviceAck() {} + +void Decoder::transmitBiDi(std::span bytes) {} + +uint8_t Decoder::readCv(uint32_t cv_addr, uint8_t) { + if (cv_addr >= size(_cvs)) return 0u; + return _cvs[cv_addr]; +} + +uint8_t Decoder::writeCv(uint32_t cv_addr, uint8_t byte) { + if (cv_addr >= size(_cvs)) return 0u; + return _cvs[cv_addr] = byte; +} + +bool Decoder::readCv(uint32_t cv_addr, bool, uint32_t pos) { return false; } + +bool Decoder::writeCv(uint32_t cv_addr, bool bit, uint32_t pos) { + return false; +} + +Decoder decoder; + +extern "C" void TIMER_IRQ_HANDLER() { + auto const ccr{bsp_decoder_irq()}; + decoder.receive(ccr); +} + +int main() { + bsp_init_decoder(); + decoder.init(); + + printf("\n\nBoot\n"); + for (;;) { + decoder.execute(); + bsp_delay(5u); + } +} diff --git a/examples/stm32/src/decoder.hpp b/examples/stm32/src/decoder.hpp new file mode 100644 index 0000000..9288c95 --- /dev/null +++ b/examples/stm32/src/decoder.hpp @@ -0,0 +1,44 @@ +#pragma once + +#include + +struct Decoder : dcc::rx::CrtpBase { + friend dcc::rx::CrtpBase; + friend dcc::rx::CrtpBase::BiDi; + +private: + // Set direction (1 forward, 0 backward) + void direction(uint32_t addr, bool dir); + + // Set speed [-1, 255] (regardless of CV settings) + void speed(uint32_t addr, int32_t speed); + + // Set function inputs + void function(uint32_t addr, uint32_t mask, uint32_t state); + + // Enter or exit service mode + void serviceModeHook(bool service_mode); + + // Generate current pulse as service ACK + void serviceAck(); + + // Transmit BiDi + void transmitBiDi(std::span bytes); + + // Read CV + uint8_t readCv(uint32_t cv_addr, uint8_t byte = 0u); + + // Write CV + uint8_t writeCv(uint32_t cv_addr, uint8_t byte); + + // Read CV bit + bool readCv(uint32_t cv_addr, bool, uint32_t pos); + + // Write CV bit + bool writeCv(uint32_t cv_addr, bool bit, uint32_t pos); + + // Minimal set of CVs + std::array _cvs{ + 3u, 1u, 2u, 1u, 1u, 1u, 4u, 145u, 55u, 0u, 0u, 117u, 128u, 195u, 0u, + 0u, 192u, 128u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 131u, 14u}; +}; \ No newline at end of file diff --git a/examples/stm32/src/startup_stm32h743zitx.s b/examples/stm32/src/startup_stm32h743zitx.s new file mode 100644 index 0000000..1658c6c --- /dev/null +++ b/examples/stm32/src/startup_stm32h743zitx.s @@ -0,0 +1,750 @@ +/** + ****************************************************************************** + * @file startup_stm32h743xx.s + * @author MCD Application Team + * @brief STM32H743xx Devices vector table for GCC based toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m7 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss +/* stack used for SystemInit_ExtMemCtl; always internal RAM used */ + +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr sp, =_estack /* set stack pointer */ + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call static constructors */ + bl __libc_init_array +/* Call the application's entry point.*/ + bl main + bx lr +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/****************************************************************************** +* +* The minimal vector table for a Cortex M. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +*******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + + +g_pfnVectors: + .word _estack + .word Reset_Handler + + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + + /* External Interrupts */ + .word WWDG_IRQHandler /* Window WatchDog */ + .word PVD_AVD_IRQHandler /* PVD/AVD through EXTI Line detection */ + .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */ + .word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */ + .word FLASH_IRQHandler /* FLASH */ + .word RCC_IRQHandler /* RCC */ + .word EXTI0_IRQHandler /* EXTI Line0 */ + .word EXTI1_IRQHandler /* EXTI Line1 */ + .word EXTI2_IRQHandler /* EXTI Line2 */ + .word EXTI3_IRQHandler /* EXTI Line3 */ + .word EXTI4_IRQHandler /* EXTI Line4 */ + .word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */ + .word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */ + .word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */ + .word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */ + .word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */ + .word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */ + .word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */ + .word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */ + .word FDCAN1_IT0_IRQHandler /* FDCAN1 interrupt line 0 */ + .word FDCAN2_IT0_IRQHandler /* FDCAN2 interrupt line 0 */ + .word FDCAN1_IT1_IRQHandler /* FDCAN1 interrupt line 1 */ + .word FDCAN2_IT1_IRQHandler /* FDCAN2 interrupt line 1 */ + .word EXTI9_5_IRQHandler /* External Line[9:5]s */ + .word TIM1_BRK_IRQHandler /* TIM1 Break interrupt */ + .word TIM1_UP_IRQHandler /* TIM1 Update interrupt */ + .word TIM1_TRG_COM_IRQHandler /* TIM1 Trigger and Commutation interrupt */ + .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ + .word TIM2_IRQHandler /* TIM2 */ + .word TIM3_IRQHandler /* TIM3 */ + .word TIM4_IRQHandler /* TIM4 */ + .word I2C1_EV_IRQHandler /* I2C1 Event */ + .word I2C1_ER_IRQHandler /* I2C1 Error */ + .word I2C2_EV_IRQHandler /* I2C2 Event */ + .word I2C2_ER_IRQHandler /* I2C2 Error */ + .word SPI1_IRQHandler /* SPI1 */ + .word SPI2_IRQHandler /* SPI2 */ + .word USART1_IRQHandler /* USART1 */ + .word USART2_IRQHandler /* USART2 */ + .word USART3_IRQHandler /* USART3 */ + .word EXTI15_10_IRQHandler /* External Line[15:10]s */ + .word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */ + .word 0 /* Reserved */ + .word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */ + .word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */ + .word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */ + .word TIM8_CC_IRQHandler /* TIM8 Capture Compare */ + .word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */ + .word FMC_IRQHandler /* FMC */ + .word SDMMC1_IRQHandler /* SDMMC1 */ + .word TIM5_IRQHandler /* TIM5 */ + .word SPI3_IRQHandler /* SPI3 */ + .word UART4_IRQHandler /* UART4 */ + .word UART5_IRQHandler /* UART5 */ + .word TIM6_DAC_IRQHandler /* TIM6 and DAC1&2 underrun errors */ + .word TIM7_IRQHandler /* TIM7 */ + .word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */ + .word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */ + .word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */ + .word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */ + .word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */ + .word ETH_IRQHandler /* Ethernet */ + .word ETH_WKUP_IRQHandler /* Ethernet Wakeup through EXTI line */ + .word FDCAN_CAL_IRQHandler /* FDCAN calibration unit interrupt*/ + .word 0 /* Reserved */ + .word 0 /* Reserved */ + .word 0 /* Reserved */ + .word 0 /* Reserved */ + .word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */ + .word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */ + .word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */ + .word USART6_IRQHandler /* USART6 */ + .word I2C3_EV_IRQHandler /* I2C3 event */ + .word I2C3_ER_IRQHandler /* I2C3 error */ + .word OTG_HS_EP1_OUT_IRQHandler /* USB OTG HS End Point 1 Out */ + .word OTG_HS_EP1_IN_IRQHandler /* USB OTG HS End Point 1 In */ + .word OTG_HS_WKUP_IRQHandler /* USB OTG HS Wakeup through EXTI */ + .word OTG_HS_IRQHandler /* USB OTG HS */ + .word DCMI_IRQHandler /* DCMI */ + .word 0 /* Reserved */ + .word RNG_IRQHandler /* Rng */ + .word FPU_IRQHandler /* FPU */ + .word UART7_IRQHandler /* UART7 */ + .word UART8_IRQHandler /* UART8 */ + .word SPI4_IRQHandler /* SPI4 */ + .word SPI5_IRQHandler /* SPI5 */ + .word SPI6_IRQHandler /* SPI6 */ + .word SAI1_IRQHandler /* SAI1 */ + .word LTDC_IRQHandler /* LTDC */ + .word LTDC_ER_IRQHandler /* LTDC error */ + .word DMA2D_IRQHandler /* DMA2D */ + .word SAI2_IRQHandler /* SAI2 */ + .word QUADSPI_IRQHandler /* QUADSPI */ + .word LPTIM1_IRQHandler /* LPTIM1 */ + .word CEC_IRQHandler /* HDMI_CEC */ + .word I2C4_EV_IRQHandler /* I2C4 Event */ + .word I2C4_ER_IRQHandler /* I2C4 Error */ + .word SPDIF_RX_IRQHandler /* SPDIF_RX */ + .word OTG_FS_EP1_OUT_IRQHandler /* USB OTG FS End Point 1 Out */ + .word OTG_FS_EP1_IN_IRQHandler /* USB OTG FS End Point 1 In */ + .word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI */ + .word OTG_FS_IRQHandler /* USB OTG FS */ + .word DMAMUX1_OVR_IRQHandler /* DMAMUX1 Overrun interrupt */ + .word HRTIM1_Master_IRQHandler /* HRTIM Master Timer global Interrupt */ + .word HRTIM1_TIMA_IRQHandler /* HRTIM Timer A global Interrupt */ + .word HRTIM1_TIMB_IRQHandler /* HRTIM Timer B global Interrupt */ + .word HRTIM1_TIMC_IRQHandler /* HRTIM Timer C global Interrupt */ + .word HRTIM1_TIMD_IRQHandler /* HRTIM Timer D global Interrupt */ + .word HRTIM1_TIME_IRQHandler /* HRTIM Timer E global Interrupt */ + .word HRTIM1_FLT_IRQHandler /* HRTIM Fault global Interrupt */ + .word DFSDM1_FLT0_IRQHandler /* DFSDM Filter0 Interrupt */ + .word DFSDM1_FLT1_IRQHandler /* DFSDM Filter1 Interrupt */ + .word DFSDM1_FLT2_IRQHandler /* DFSDM Filter2 Interrupt */ + .word DFSDM1_FLT3_IRQHandler /* DFSDM Filter3 Interrupt */ + .word SAI3_IRQHandler /* SAI3 global Interrupt */ + .word SWPMI1_IRQHandler /* Serial Wire Interface 1 global interrupt */ + .word TIM15_IRQHandler /* TIM15 global Interrupt */ + .word TIM16_IRQHandler /* TIM16 global Interrupt */ + .word TIM17_IRQHandler /* TIM17 global Interrupt */ + .word MDIOS_WKUP_IRQHandler /* MDIOS Wakeup Interrupt */ + .word MDIOS_IRQHandler /* MDIOS global Interrupt */ + .word JPEG_IRQHandler /* JPEG global Interrupt */ + .word MDMA_IRQHandler /* MDMA global Interrupt */ + .word 0 /* Reserved */ + .word SDMMC2_IRQHandler /* SDMMC2 global Interrupt */ + .word HSEM1_IRQHandler /* HSEM1 global Interrupt */ + .word 0 /* Reserved */ + .word ADC3_IRQHandler /* ADC3 global Interrupt */ + .word DMAMUX2_OVR_IRQHandler /* DMAMUX Overrun interrupt */ + .word BDMA_Channel0_IRQHandler /* BDMA Channel 0 global Interrupt */ + .word BDMA_Channel1_IRQHandler /* BDMA Channel 1 global Interrupt */ + .word BDMA_Channel2_IRQHandler /* BDMA Channel 2 global Interrupt */ + .word BDMA_Channel3_IRQHandler /* BDMA Channel 3 global Interrupt */ + .word BDMA_Channel4_IRQHandler /* BDMA Channel 4 global Interrupt */ + .word BDMA_Channel5_IRQHandler /* BDMA Channel 5 global Interrupt */ + .word BDMA_Channel6_IRQHandler /* BDMA Channel 6 global Interrupt */ + .word BDMA_Channel7_IRQHandler /* BDMA Channel 7 global Interrupt */ + .word COMP1_IRQHandler /* COMP1 global Interrupt */ + .word LPTIM2_IRQHandler /* LP TIM2 global interrupt */ + .word LPTIM3_IRQHandler /* LP TIM3 global interrupt */ + .word LPTIM4_IRQHandler /* LP TIM4 global interrupt */ + .word LPTIM5_IRQHandler /* LP TIM5 global interrupt */ + .word LPUART1_IRQHandler /* LP UART1 interrupt */ + .word 0 /* Reserved */ + .word CRS_IRQHandler /* Clock Recovery Global Interrupt */ + .word ECC_IRQHandler /* ECC diagnostic Global Interrupt */ + .word SAI4_IRQHandler /* SAI4 global interrupt */ + .word 0 /* Reserved */ + .word 0 /* Reserved */ + .word WAKEUP_PIN_IRQHandler /* Interrupt for all 6 wake-up pins */ + + .size g_pfnVectors, .-g_pfnVectors + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_AVD_IRQHandler + .thumb_set PVD_AVD_IRQHandler,Default_Handler + + .weak TAMP_STAMP_IRQHandler + .thumb_set TAMP_STAMP_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Stream0_IRQHandler + .thumb_set DMA1_Stream0_IRQHandler,Default_Handler + + .weak DMA1_Stream1_IRQHandler + .thumb_set DMA1_Stream1_IRQHandler,Default_Handler + + .weak DMA1_Stream2_IRQHandler + .thumb_set DMA1_Stream2_IRQHandler,Default_Handler + + .weak DMA1_Stream3_IRQHandler + .thumb_set DMA1_Stream3_IRQHandler,Default_Handler + + .weak DMA1_Stream4_IRQHandler + .thumb_set DMA1_Stream4_IRQHandler,Default_Handler + + .weak DMA1_Stream5_IRQHandler + .thumb_set DMA1_Stream5_IRQHandler,Default_Handler + + .weak DMA1_Stream6_IRQHandler + .thumb_set DMA1_Stream6_IRQHandler,Default_Handler + + .weak ADC_IRQHandler + .thumb_set ADC_IRQHandler,Default_Handler + + .weak FDCAN1_IT0_IRQHandler + .thumb_set FDCAN1_IT0_IRQHandler,Default_Handler + + .weak FDCAN2_IT0_IRQHandler + .thumb_set FDCAN2_IT0_IRQHandler,Default_Handler + + .weak FDCAN1_IT1_IRQHandler + .thumb_set FDCAN1_IT1_IRQHandler,Default_Handler + + .weak FDCAN2_IT1_IRQHandler + .thumb_set FDCAN2_IT1_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak TIM1_BRK_IRQHandler + .thumb_set TIM1_BRK_IRQHandler,Default_Handler + + .weak TIM1_UP_IRQHandler + .thumb_set TIM1_UP_IRQHandler,Default_Handler + + .weak TIM1_TRG_COM_IRQHandler + .thumb_set TIM1_TRG_COM_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak TIM8_BRK_TIM12_IRQHandler + .thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler + + .weak TIM8_UP_TIM13_IRQHandler + .thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler + + .weak TIM8_TRG_COM_TIM14_IRQHandler + .thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler + + .weak TIM8_CC_IRQHandler + .thumb_set TIM8_CC_IRQHandler,Default_Handler + + .weak DMA1_Stream7_IRQHandler + .thumb_set DMA1_Stream7_IRQHandler,Default_Handler + + .weak FMC_IRQHandler + .thumb_set FMC_IRQHandler,Default_Handler + + .weak SDMMC1_IRQHandler + .thumb_set SDMMC1_IRQHandler,Default_Handler + + .weak TIM5_IRQHandler + .thumb_set TIM5_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak UART4_IRQHandler + .thumb_set UART4_IRQHandler,Default_Handler + + .weak UART5_IRQHandler + .thumb_set UART5_IRQHandler,Default_Handler + + .weak TIM6_DAC_IRQHandler + .thumb_set TIM6_DAC_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak DMA2_Stream0_IRQHandler + .thumb_set DMA2_Stream0_IRQHandler,Default_Handler + + .weak DMA2_Stream1_IRQHandler + .thumb_set DMA2_Stream1_IRQHandler,Default_Handler + + .weak DMA2_Stream2_IRQHandler + .thumb_set DMA2_Stream2_IRQHandler,Default_Handler + + .weak DMA2_Stream3_IRQHandler + .thumb_set DMA2_Stream3_IRQHandler,Default_Handler + + .weak DMA2_Stream4_IRQHandler + .thumb_set DMA2_Stream4_IRQHandler,Default_Handler + + .weak ETH_IRQHandler + .thumb_set ETH_IRQHandler,Default_Handler + + .weak ETH_WKUP_IRQHandler + .thumb_set ETH_WKUP_IRQHandler,Default_Handler + + .weak FDCAN_CAL_IRQHandler + .thumb_set FDCAN_CAL_IRQHandler,Default_Handler + + .weak DMA2_Stream5_IRQHandler + .thumb_set DMA2_Stream5_IRQHandler,Default_Handler + + .weak DMA2_Stream6_IRQHandler + .thumb_set DMA2_Stream6_IRQHandler,Default_Handler + + .weak DMA2_Stream7_IRQHandler + .thumb_set DMA2_Stream7_IRQHandler,Default_Handler + + .weak USART6_IRQHandler + .thumb_set USART6_IRQHandler,Default_Handler + + .weak I2C3_EV_IRQHandler + .thumb_set I2C3_EV_IRQHandler,Default_Handler + + .weak I2C3_ER_IRQHandler + .thumb_set I2C3_ER_IRQHandler,Default_Handler + + .weak OTG_HS_EP1_OUT_IRQHandler + .thumb_set OTG_HS_EP1_OUT_IRQHandler,Default_Handler + + .weak OTG_HS_EP1_IN_IRQHandler + .thumb_set OTG_HS_EP1_IN_IRQHandler,Default_Handler + + .weak OTG_HS_WKUP_IRQHandler + .thumb_set OTG_HS_WKUP_IRQHandler,Default_Handler + + .weak OTG_HS_IRQHandler + .thumb_set OTG_HS_IRQHandler,Default_Handler + + .weak DCMI_IRQHandler + .thumb_set DCMI_IRQHandler,Default_Handler + + .weak RNG_IRQHandler + .thumb_set RNG_IRQHandler,Default_Handler + + .weak FPU_IRQHandler + .thumb_set FPU_IRQHandler,Default_Handler + + .weak UART7_IRQHandler + .thumb_set UART7_IRQHandler,Default_Handler + + .weak UART8_IRQHandler + .thumb_set UART8_IRQHandler,Default_Handler + + .weak SPI4_IRQHandler + .thumb_set SPI4_IRQHandler,Default_Handler + + .weak SPI5_IRQHandler + .thumb_set SPI5_IRQHandler,Default_Handler + + .weak SPI6_IRQHandler + .thumb_set SPI6_IRQHandler,Default_Handler + + .weak SAI1_IRQHandler + .thumb_set SAI1_IRQHandler,Default_Handler + + .weak LTDC_IRQHandler + .thumb_set LTDC_IRQHandler,Default_Handler + + .weak LTDC_ER_IRQHandler + .thumb_set LTDC_ER_IRQHandler,Default_Handler + + .weak DMA2D_IRQHandler + .thumb_set DMA2D_IRQHandler,Default_Handler + + .weak SAI2_IRQHandler + .thumb_set SAI2_IRQHandler,Default_Handler + + .weak QUADSPI_IRQHandler + .thumb_set QUADSPI_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak CEC_IRQHandler + .thumb_set CEC_IRQHandler,Default_Handler + + .weak I2C4_EV_IRQHandler + .thumb_set I2C4_EV_IRQHandler,Default_Handler + + .weak I2C4_ER_IRQHandler + .thumb_set I2C4_ER_IRQHandler,Default_Handler + + .weak SPDIF_RX_IRQHandler + .thumb_set SPDIF_RX_IRQHandler,Default_Handler + + .weak OTG_FS_EP1_OUT_IRQHandler + .thumb_set OTG_FS_EP1_OUT_IRQHandler,Default_Handler + + .weak OTG_FS_EP1_IN_IRQHandler + .thumb_set OTG_FS_EP1_IN_IRQHandler,Default_Handler + + .weak OTG_FS_WKUP_IRQHandler + .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler + + .weak OTG_FS_IRQHandler + .thumb_set OTG_FS_IRQHandler,Default_Handler + + .weak DMAMUX1_OVR_IRQHandler + .thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler + + .weak HRTIM1_Master_IRQHandler + .thumb_set HRTIM1_Master_IRQHandler,Default_Handler + + .weak HRTIM1_TIMA_IRQHandler + .thumb_set HRTIM1_TIMA_IRQHandler,Default_Handler + + .weak HRTIM1_TIMB_IRQHandler + .thumb_set HRTIM1_TIMB_IRQHandler,Default_Handler + + .weak HRTIM1_TIMC_IRQHandler + .thumb_set HRTIM1_TIMC_IRQHandler,Default_Handler + + .weak HRTIM1_TIMD_IRQHandler + .thumb_set HRTIM1_TIMD_IRQHandler,Default_Handler + + .weak HRTIM1_TIME_IRQHandler + .thumb_set HRTIM1_TIME_IRQHandler,Default_Handler + + .weak HRTIM1_FLT_IRQHandler + .thumb_set HRTIM1_FLT_IRQHandler,Default_Handler + + .weak DFSDM1_FLT0_IRQHandler + .thumb_set DFSDM1_FLT0_IRQHandler,Default_Handler + + .weak DFSDM1_FLT1_IRQHandler + .thumb_set DFSDM1_FLT1_IRQHandler,Default_Handler + + .weak DFSDM1_FLT2_IRQHandler + .thumb_set DFSDM1_FLT2_IRQHandler,Default_Handler + + .weak DFSDM1_FLT3_IRQHandler + .thumb_set DFSDM1_FLT3_IRQHandler,Default_Handler + + .weak SAI3_IRQHandler + .thumb_set SAI3_IRQHandler,Default_Handler + + .weak SWPMI1_IRQHandler + .thumb_set SWPMI1_IRQHandler,Default_Handler + + .weak TIM15_IRQHandler + .thumb_set TIM15_IRQHandler,Default_Handler + + .weak TIM16_IRQHandler + .thumb_set TIM16_IRQHandler,Default_Handler + + .weak TIM17_IRQHandler + .thumb_set TIM17_IRQHandler,Default_Handler + + .weak MDIOS_WKUP_IRQHandler + .thumb_set MDIOS_WKUP_IRQHandler,Default_Handler + + .weak MDIOS_IRQHandler + .thumb_set MDIOS_IRQHandler,Default_Handler + + .weak JPEG_IRQHandler + .thumb_set JPEG_IRQHandler,Default_Handler + + .weak MDMA_IRQHandler + .thumb_set MDMA_IRQHandler,Default_Handler + + .weak SDMMC2_IRQHandler + .thumb_set SDMMC2_IRQHandler,Default_Handler + + .weak HSEM1_IRQHandler + .thumb_set HSEM1_IRQHandler,Default_Handler + + .weak ADC3_IRQHandler + .thumb_set ADC3_IRQHandler,Default_Handler + + .weak DMAMUX2_OVR_IRQHandler + .thumb_set DMAMUX2_OVR_IRQHandler,Default_Handler + + .weak BDMA_Channel0_IRQHandler + .thumb_set BDMA_Channel0_IRQHandler,Default_Handler + + .weak BDMA_Channel1_IRQHandler + .thumb_set BDMA_Channel1_IRQHandler,Default_Handler + + .weak BDMA_Channel2_IRQHandler + .thumb_set BDMA_Channel2_IRQHandler,Default_Handler + + .weak BDMA_Channel3_IRQHandler + .thumb_set BDMA_Channel3_IRQHandler,Default_Handler + + .weak BDMA_Channel4_IRQHandler + .thumb_set BDMA_Channel4_IRQHandler,Default_Handler + + .weak BDMA_Channel5_IRQHandler + .thumb_set BDMA_Channel5_IRQHandler,Default_Handler + + .weak BDMA_Channel6_IRQHandler + .thumb_set BDMA_Channel6_IRQHandler,Default_Handler + + .weak BDMA_Channel7_IRQHandler + .thumb_set BDMA_Channel7_IRQHandler,Default_Handler + + .weak COMP1_IRQHandler + .thumb_set COMP1_IRQHandler,Default_Handler + + .weak LPTIM2_IRQHandler + .thumb_set LPTIM2_IRQHandler,Default_Handler + + .weak LPTIM3_IRQHandler + .thumb_set LPTIM3_IRQHandler,Default_Handler + + .weak LPTIM4_IRQHandler + .thumb_set LPTIM4_IRQHandler,Default_Handler + + .weak LPTIM5_IRQHandler + .thumb_set LPTIM5_IRQHandler,Default_Handler + + .weak LPUART1_IRQHandler + .thumb_set LPUART1_IRQHandler,Default_Handler + + .weak CRS_IRQHandler + .thumb_set CRS_IRQHandler,Default_Handler + + .weak ECC_IRQHandler + .thumb_set ECC_IRQHandler,Default_Handler + + .weak SAI4_IRQHandler + .thumb_set SAI4_IRQHandler,Default_Handler + + .weak WAKEUP_PIN_IRQHandler + .thumb_set WAKEUP_PIN_IRQHandler,Default_Handler + + diff --git a/include/dcc/bidi/dyn.hpp b/include/dcc/bidi/dyn.hpp index f6b626e..e508ad3 100644 --- a/include/dcc/bidi/dyn.hpp +++ b/include/dcc/bidi/dyn.hpp @@ -21,8 +21,8 @@ struct Dyn { constexpr operator value_type&() { return d; } constexpr operator value_type const&() const { return d; } - value_type d; ///< DV (dynamic CV) - uint8_t x; ///< Subindex + value_type d{}; ///< DV (dynamic CV) + uint8_t x{}; ///< Subindex }; } // namespace dcc::bidi \ No newline at end of file diff --git a/include/dcc/bidi/speed.hpp b/include/dcc/bidi/kmh.hpp similarity index 76% rename from include/dcc/bidi/speed.hpp rename to include/dcc/bidi/kmh.hpp index b66bcfa..25fd738 100644 --- a/include/dcc/bidi/speed.hpp +++ b/include/dcc/bidi/kmh.hpp @@ -2,9 +2,9 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. -/// BiDi dyn speed +/// BiDi dyn kmh /// -/// \file dcc/bidi/speed.hpp +/// \file dcc/bidi/kmh.hpp /// \author Vincent Hamp /// \date 15/06/2023 @@ -14,6 +14,6 @@ namespace dcc::bidi { -struct Speed : Dyn {}; +struct Kmh : Dyn {}; } // namespace dcc::bidi \ No newline at end of file diff --git a/include/dcc/direction.hpp b/include/dcc/direction.hpp new file mode 100644 index 0000000..9f8108a --- /dev/null +++ b/include/dcc/direction.hpp @@ -0,0 +1,22 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at https://mozilla.org/MPL/2.0/. + +/// Direction +/// +/// \file dcc/direction.hpp +/// \author Vincent Hamp +/// \date 06/06/2024 + +#pragma once + +namespace dcc { + +enum Direction : bool { + Forward = true, + Backward = false, + East = true, + West = false, +}; + +} // namespace dcc \ No newline at end of file diff --git a/include/dcc/rx/bidi/crtp_base.hpp b/include/dcc/rx/bidi/crtp_base.hpp index d933e2e..9ffcd2e 100644 --- a/include/dcc/rx/bidi/crtp_base.hpp +++ b/include/dcc/rx/bidi/crtp_base.hpp @@ -18,7 +18,7 @@ #include "../../bidi/datagram.hpp" #include "../../bidi/direction_status_byte.hpp" #include "../../bidi/dyn.hpp" -#include "../../bidi/speed.hpp" +#include "../../bidi/kmh.hpp" #include "../../bidi/temperature.hpp" #include "../../bidi/track_voltage.hpp" #include "../../zimo_id.hpp" @@ -38,6 +38,24 @@ template struct CrtpBase { friend T; + /// Add dyn (ID7) datagrams to deque + /// + /// \tparam Dyns... Types of dyn datagrams + /// \param dyns... Datagrams + template... Dyns> + void datagram(Dyns&&... dyns) { + // Block full and release empty deque to avoid getting the same datagrams + // send over and over again... + if (full(_dyn_deque)) _block_dyn_deque = true; + else if (empty(_dyn_deque)) { + _block_dyn_deque = false; + dyn(_qos, 7u); + } + + // Only allow pushing datagrams if not blocked + if (!_block_dyn_deque) (dyn(std::forward(dyns)), ...); + } + /// Start channel1 (12 bit payload) void cutoutChannel1() { // Only send in channel1 if last valid address was broadcast, short or long @@ -54,11 +72,11 @@ struct CrtpBase { // Only send in channel2 if last valid address was own if ((_addrs.received == _addrs.primary && !_logon_assigned) || (_addrs.received == _addrs.logon && _logon_assigned)) - empty(_pom_deque) ? appExtDynSubId() : appPom(); + empty(_pom_deque) ? appDyn() : appPom(); // or consist else if (_addrs.received == _addrs.consist && !_logon_assigned && _ch2_consist_enabled) - appExtDynSubId(); + appDyn(); // or automatic logon else if (_addrs.received.type == Address::AutomaticLogon) appLogon(2u); // or broadcast @@ -71,21 +89,8 @@ struct CrtpBase { Decoder auto const& impl() const { return static_cast(*this); } /// Execute adds adr (ID1/2) and dyn (ID7) datagrams to deque in thread mode - /// - /// \tparam Dyns... Types of dyn datagrams - /// \param dyns... Messages - template... Dyns> - void executeThreadMode(Dyns&&... dyns) - requires((sizeof...(Dyns) < - DCC_RX_BIDI_DEQUE_SIZE)) // TODO remove double braces, currently - // fucks with VSCode highlighting - { - if (_ch1_addr_enabled && empty(_adr_deque)) adr(); - if (_ch2_enabled && (sizeof...(Dyns) > 0uz) && - (DCC_RX_BIDI_DEQUE_SIZE - size(_dyn_deque) >= sizeof...(Dyns) + 1uz)) { - (dyn(std::forward(dyns)), ...); - dyn(_qos, 7u); - } + void executeThreadMode() { + adr(); logonStore(); updateTimepoints(); } @@ -100,7 +105,8 @@ struct CrtpBase { _ch2_enabled = enabled && (cv28 & ztl::make_mask(1u)); _logon_enabled = enabled && (cv28 & ztl::make_mask(7u)); _ch2_consist_enabled = enabled && ch2_consist_enabled; - if constexpr (HighCurrent) impl().highCurrent(cv28 & ztl::make_mask(6u)); + if constexpr (HighCurrent) + impl().highCurrentBiDi(cv28 & ztl::make_mask(6u)); _did = {impl().readCv(250u - 1u), impl().readCv(251u - 1u), impl().readCv(252u - 1u), @@ -232,8 +238,9 @@ struct CrtpBase { private: /// Addr adr datagrams void adr() { + if (!_ch1_addr_enabled || !empty(_adr_deque)) return; // Active address is primary - if (!_addrs.consist) { + else if (!_addrs.consist) { _adr_deque.push_back(adrHigh(_addrs.primary)); _adr_deque.push_back(adrLow(_addrs.primary)); } @@ -253,12 +260,12 @@ struct CrtpBase { /// \param d Generic dyn datagram void dyn(Dyn d) { dyn(d.d, d.x); } - /// Add speed dyn datagram + /// Add kmh dyn datagram /// - /// \param speed Speed dyn datagram - void dyn(Speed speed) { - auto const tmp{speed < 512 ? (speed < 256 ? speed : speed - 256) : 255}; - dyn(static_cast(tmp), speed < 256 ? 0u : 1u); + /// \param kmh Kmh dyn datagram + void dyn(Kmh kmh) { + auto const tmp{kmh < 512 ? (kmh < 256 ? kmh : kmh - 256) : 255}; + dyn(static_cast(tmp), kmh < 256 ? 0u : 1u); } /// Add temperature dyn datagram @@ -272,7 +279,9 @@ struct CrtpBase { /// Add direction status dyn datagram /// /// \param dir_stat Direction status byte dyn datagram - void dyn(DirectionStatusByte dir_stat) { dyn(dir_stat, 27u); } + void dyn(DirectionStatusByte dir_stat) { + dyn(static_cast(dir_stat), 27u); + } /// Add track voltage dyn datagram /// @@ -283,11 +292,12 @@ struct CrtpBase { dyn(static_cast(track_voltage_with_dc_component / 100), 46u); } - /// Handle app:dyn datagrams + /// Add app:dyn datagrams /// /// \param d DV (dynamic CV) /// \param x Subindex void dyn(uint8_t d, uint8_t x) { + if (!_ch2_enabled || full(_dyn_deque)) return; _dyn_deque.push_back(encode_datagram( make_datagram(7u, static_cast(d << 6u | x)))); } @@ -309,8 +319,8 @@ struct CrtpBase { _pom_deque.pop_front(); } - /// Handle app:ext, app:dyn and app:subID datagrams - void appExtDynSubId() { + /// Handle app:dyn datagrams + void appDyn() { if (empty(_dyn_deque)) return; auto first{begin(_ch2)}; auto const last{cend(_ch2)}; @@ -401,20 +411,28 @@ struct CrtpBase { _last_packet_tp = packet_tp; } + // Timepoints std::chrono::time_point _last_packet_tp{}; std::chrono::time_point _tos_tp{}; + std::array _did{}; + + // Buffers Channel1 _ch1{}; Channel2 _ch2{}; + + // Deques ztl::inplace_deque>, DCC_RX_BIDI_DEQUE_SIZE> _dyn_deque{}; - ztl::inplace_deque _adr_deque{}; ztl::inplace_deque _pom_deque{}; + ztl::inplace_deque _adr_deque{}; ztl::inplace_deque _tos_deque{}; ztl::inplace_deque _logon_deque{}; + Backoff _logon_backoff{}; Backoff _tos_backoff{}; + uint16_t _cid{}; ///< Central ID uint8_t _session_id{}; ///< Session ID uint8_t _qos{}; ///< Quality of service @@ -428,6 +446,7 @@ struct CrtpBase { bool _ch1_addr_enabled : 1 {}; bool _ch2_enabled : 1 {}; + bool _block_dyn_deque : 1 {}; }; } // namespace dcc::rx::bidi \ No newline at end of file diff --git a/include/dcc/rx/bidi/high_current.hpp b/include/dcc/rx/bidi/high_current.hpp index f38c6b9..3e068a1 100644 --- a/include/dcc/rx/bidi/high_current.hpp +++ b/include/dcc/rx/bidi/high_current.hpp @@ -16,7 +16,7 @@ namespace dcc::rx::bidi { template concept HighCurrent = requires(T t, bool high_current) { - { t.highCurrent(high_current) } -> std::same_as; + { t.highCurrentBiDi(high_current) } -> std::same_as; }; } // namespace dcc::rx::bidi diff --git a/include/dcc/rx/crtp_base.hpp b/include/dcc/rx/crtp_base.hpp index 6f94fe6..6c89d00 100644 --- a/include/dcc/rx/crtp_base.hpp +++ b/include/dcc/rx/crtp_base.hpp @@ -14,14 +14,16 @@ #include #include "../addresses.hpp" #include "../crc8.hpp" +#include "../direction.hpp" #include "../instruction.hpp" #include "../packet.hpp" +#include "../speed.hpp" #include "../utility.hpp" #include "async_readable.hpp" #include "async_writable.hpp" #include "bidi/crtp_base.hpp" #include "decoder.hpp" -#include "east_west_man.hpp" +#include "east_west.hpp" #include "timing.hpp" namespace dcc::rx { @@ -113,18 +115,10 @@ struct CrtpBase : bidi::CrtpBase { /// Execute received commands /// - /// - /// \tparam Dyns... Types of dyn messages - /// \param dyns... Messages - /// \retval true Command to own address - /// \retval false Command to other address - template... Dyns> - bool execute(Dyns&&... dyns) - requires((sizeof...(Dyns) < - DCC_RX_BIDI_DEQUE_SIZE)) // TODO remove double braces, currently - // fucks with VSCode highlighting - { - BiDi::executeThreadMode(std::forward(dyns)...); + /// \retval true Command to own address + /// \retval false Command to other address + bool execute() { + BiDi::executeThreadMode(); return executeThreadMode(); } @@ -411,11 +405,11 @@ struct CrtpBase : bidi::CrtpBase { // 126 speed steps (plus 0) case 0b0011'1111u: { - auto const dir{bytes[1uz] & ztl::make_mask(7u) ? 1 : -1}; - // Halt - if (!(bytes[1uz] & 0b0111'1111u)) directionSpeed(addr, dir, 0); + auto const dir{static_cast(bytes[1uz] & ztl::make_mask(7u))}; + // Stop + if (!(bytes[1uz] & 0b0111'1111u)) directionSpeed(addr, dir, Stop); // Emergency stop - else if (!(bytes[1uz] & 0b0111'1110u)) impl().emergencyStop(addr); + else if (!(bytes[1uz] & 0b0111'1110u)) impl().speed(addr, EStop); else { auto const speed{scale_speed<126>((bytes[1uz] & 0b0111'1111) - 1)}; directionSpeed(addr, dir, speed); @@ -423,15 +417,16 @@ struct CrtpBase : bidi::CrtpBase { break; } - // MAN + // Special operating modes case 0b0011'1110u: - if constexpr (EastWestMan) { - _man = bytes[1uz] & ztl::make_mask(7u); - if (auto const dir{bytes[1uz] & ztl::make_mask(6u) ? 1 // East - : bytes[1uz] & ztl::make_mask(5u) ? -1 // West - : 0}) - impl().eastWestMan(addr, dir); - else impl().eastWestMan(addr, {}); + _man = bytes[1uz] & ztl::make_mask(7u); + if constexpr (EastWest) { + if (bytes[1uz] & ztl::make_mask(6u)) // East + impl().eastWestDirection(addr, East); + else if (ztl::make_mask(5u)) // West + impl().eastWestDirection(addr, West); + else // Neither + impl().eastWestDirection(addr, std::nullopt); } break; @@ -447,13 +442,13 @@ struct CrtpBase : bidi::CrtpBase { /// \param addr Address /// \param bytes Raw bytes void speedAndDirection(uint32_t addr, std::span bytes) { - auto const dir{bytes[0uz] & ztl::make_mask(5u) ? 1 : -1}; + auto const dir{static_cast(bytes[0uz] & ztl::make_mask(5u))}; int32_t speed{}; - // Halt - if (!(bytes[0uz] & 0b0000'1111u)) speed = 0; + // Stop + if (!(bytes[0uz] & 0b0000'1111u)) speed = Stop; // Emergency stop - else if (!(bytes[0uz] & 0b0000'1110u)) return impl().emergencyStop(addr); + else if (!(bytes[0uz] & 0b0000'1110u)) return impl().speed(addr, EStop); else speed = static_cast(bytes[0uz] & 0b0000'1111u) - 1; // 14 speed steps and F0 @@ -770,10 +765,10 @@ struct CrtpBase : bidi::CrtpBase { /// \param addr Address /// \param dir Direction /// \param speed Speed - void directionSpeed(uint32_t addr, int32_t dir, int32_t speed) { + void directionSpeed(uint32_t addr, bool dir, int32_t speed) { auto const reversed{addr == _addrs.primary ? _addrs.primary.reversed : _addrs.consist.reversed}; - impl().direction(addr, reversed ? dir * -1 : dir); + impl().direction(addr, reversed ? !dir : dir); impl().speed(addr, speed); } diff --git a/include/dcc/rx/decoder.hpp b/include/dcc/rx/decoder.hpp index 69b6c9d..1460fbe 100644 --- a/include/dcc/rx/decoder.hpp +++ b/include/dcc/rx/decoder.hpp @@ -19,7 +19,7 @@ template concept Decoder = Readable && Writable && requires(T t, uint32_t addr, - int32_t dir, + bool dir, int32_t speed, uint32_t mask, uint32_t state, @@ -27,7 +27,6 @@ concept Decoder = Readable && Writable && std::span bytes) { { t.direction(addr, dir) } -> std::same_as; { t.speed(addr, speed) } -> std::same_as; - { t.emergencyStop(addr) } -> std::same_as; { t.function(addr, mask, state) } -> std::same_as; { t.serviceModeHook(service_mode) } -> std::same_as; { t.serviceAck() } -> std::same_as; diff --git a/include/dcc/rx/east_west_man.hpp b/include/dcc/rx/east_west.hpp similarity index 58% rename from include/dcc/rx/east_west_man.hpp rename to include/dcc/rx/east_west.hpp index 6cad8c1..d91ad45 100644 --- a/include/dcc/rx/east_west_man.hpp +++ b/include/dcc/rx/east_west.hpp @@ -2,24 +2,22 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. -/// East-west MAN +/// East-west /// -/// \file dcc/rx/east_west_man.hpp +/// \file dcc/rx/east_west.hpp /// \author Vincent Hamp /// \date 29/11/2022 #pragma once #include -#include #include namespace dcc::rx { template -concept EastWestMan = - requires(T t, uint32_t addr, std::optional opt_dir) { - { t.eastWestMan(addr, opt_dir) } -> std::same_as; - }; +concept EastWest = requires(T t, uint32_t addr, std::optional opt_dir) { + { t.eastWestDirection(addr, opt_dir) } -> std::same_as; +}; } // namespace dcc::rx \ No newline at end of file diff --git a/include/dcc/rx/timing.hpp b/include/dcc/rx/timing.hpp index 60e6d7c..30a18fe 100644 --- a/include/dcc/rx/timing.hpp +++ b/include/dcc/rx/timing.hpp @@ -16,12 +16,12 @@ namespace dcc::rx { enum Timing { - Bit1Min = 52u, ///< Minimal timing for half a 1-bit - Bit1 = 58u, ///< Standard timing for half a 1-bit - Bit1Max = 64u, ///< Maximal timing for half a 1-bit - Bit0Min = 90u, ///< Minimal timing for half a 0-bit - Bit0 = 100u, ///< Standard timing for half a 0-bit - Bit0Max = 119u, ///< Maximal timing for half a 0-bit + Bit1Min = DCC_RX_MIN_BIT_1_TIMING, ///< Minimal timing for half a 1-bit + Bit1 = 58u, ///< Standard timing for half a 1-bit + Bit1Max = DCC_RX_MAX_BIT_1_TIMING, ///< Maximal timing for half a 1-bit + Bit0Min = DCC_RX_MIN_BIT_0_TIMING, ///< Minimal timing for half a 0-bit + Bit0 = 100u, ///< Standard timing for half a 0-bit + Bit0Max = DCC_RX_MAX_BIT_0_TIMING, ///< Maximal timing for half a 0-bit Bit0MaxAnalog = 10000u ///< Maximal timing for half a 0-bit analog }; diff --git a/include/dcc/speed.hpp b/include/dcc/speed.hpp new file mode 100644 index 0000000..204299b --- /dev/null +++ b/include/dcc/speed.hpp @@ -0,0 +1,22 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at https://mozilla.org/MPL/2.0/. + +/// Speed +/// +/// \file dcc/speed.hpp +/// \author Vincent Hamp +/// \date 06/06/2024 + +#pragma once + +#include + +namespace dcc { + +enum Speed : int32_t { + EStop = -1, + Stop = 0, +}; + +} // namespace dcc \ No newline at end of file diff --git a/include/dcc/tx/command_station.hpp b/include/dcc/tx/command_station.hpp index 10b1c31..3f9edeb 100644 --- a/include/dcc/tx/command_station.hpp +++ b/include/dcc/tx/command_station.hpp @@ -15,8 +15,8 @@ namespace dcc::tx { template -concept CommandStation = requires(T t, bool left, bool right) { - { t.setTrackOutputs(left, right) } -> std::same_as; +concept CommandStation = requires(T t, bool N, bool P) { + { t.trackOutputs(N, P) } -> std::same_as; { t.biDiStart() } -> std::same_as; { t.biDiChannel1() } -> std::same_as; { t.biDiChannel2() } -> std::same_as; diff --git a/include/dcc/tx/config.hpp b/include/dcc/tx/config.hpp index 634907b..592e794 100644 --- a/include/dcc/tx/config.hpp +++ b/include/dcc/tx/config.hpp @@ -16,7 +16,7 @@ namespace dcc::tx { struct Config { /// Number of preamble bits [17-30] - uint8_t preamble_bits{DCC_TX_MIN_PREAMBLE_BITS}; + uint8_t num_preamble{DCC_TX_MIN_PREAMBLE_BITS}; /// Duration of 1 bit [52-64] uint8_t bit1_duration{Bit1}; @@ -24,8 +24,17 @@ struct Config { /// Duration of 0 bit [90-119] uint8_t bit0_duration{Bit0}; - /// Enable BiDi - bool bidi{true}; + struct { + /// Invert phase + /// + /// By default the phase is "positive", so P > N for the first half bit. + /// Setting this flag inverts the phase so that it's "negative" and P < N + /// for the first half bit. See RCN-210 for further details. + bool invert{}; + + /// Enable BiDi + bool bidi{true}; + } flags{}; }; } // namespace dcc::tx \ No newline at end of file diff --git a/include/dcc/tx/crtp_base.hpp b/include/dcc/tx/crtp_base.hpp index 9a82d27..e657563 100644 --- a/include/dcc/tx/crtp_base.hpp +++ b/include/dcc/tx/crtp_base.hpp @@ -32,8 +32,8 @@ struct CrtpBase { /// /// \param cfg Configuration void init(Config cfg) { - assert(cfg.preamble_bits >= DCC_TX_MIN_PREAMBLE_BITS && // - cfg.preamble_bits <= DCC_TX_MAX_PREAMBLE_BITS && // + assert(cfg.num_preamble >= DCC_TX_MIN_PREAMBLE_BITS && // + cfg.num_preamble <= DCC_TX_MAX_PREAMBLE_BITS && // cfg.bit1_duration >= Bit1Min && cfg.bit1_duration <= Bit1Max && // cfg.bit0_duration >= Bit0Min && cfg.bit0_duration <= Bit0Max); // _cfg = cfg; @@ -62,7 +62,7 @@ struct CrtpBase { // As long as there are packet timings if (_packet_count < _packet->size()) return packetTiming(); // or BiDi timings - else if (_cfg.bidi && _bidi_count <= 4uz) return bidiTiming(); + else if (_cfg.flags.bidi && _bidi_count <= 4uz) return bidiTiming(); // TODO theoretically deque could be popped here safely? // we'd just need to check whether packet doesn't point to idle_packet and @@ -96,8 +96,12 @@ struct CrtpBase { Timings::value_type packetTiming() { auto const retval{ (*_packet)[static_cast(_packet_count)]}; - if (_packet_count++ % 2uz) impl().setTrackOutputs(false, true); - else impl().setTrackOutputs(true, false); + // First half bit + if (!(_packet_count++ % 2uz)) + impl().trackOutputs(false ^ _cfg.flags.invert, true ^ _cfg.flags.invert); + // Second half bit + else + impl().trackOutputs(true ^ _cfg.flags.invert, false ^ _cfg.flags.invert); return retval; } @@ -108,12 +112,13 @@ struct CrtpBase { switch (_bidi_count++) { // Send half a 1 bit case 0uz: - impl().setTrackOutputs(true, false); + impl().trackOutputs(false ^ _cfg.flags.invert, + true ^ _cfg.flags.invert); return static_cast(bidi::Timing::TCS); // Cutout start case 1uz: - impl().setTrackOutputs(false, false); + impl().trackOutputs(false, false); impl().biDiStart(); return static_cast(bidi::Timing::TTS1 - bidi::Timing::TCS); diff --git a/include/dcc/tx/timing.hpp b/include/dcc/tx/timing.hpp index d47bd0a..1468aee 100644 --- a/include/dcc/tx/timing.hpp +++ b/include/dcc/tx/timing.hpp @@ -15,12 +15,12 @@ namespace dcc::tx { enum Timing { - Bit1Min = 56u, ///< Minimal timing for half a 1-bit - Bit1 = 58u, ///< Standard timing for half a 1-bit - Bit1Max = 60u, ///< Maximal timing for half a 1-bit - Bit0Min = 97u, ///< Minimal timing for half a 0-bit - Bit0 = 100u, ///< Standard timing for half a 0-bit - Bit0Max = 114u, ///< Maximal timing for half a 0-bit + Bit1Min = DCC_TX_MIN_BIT_1_TIMING, ///< Minimal timing for half a 1-bit + Bit1 = 58u, ///< Standard timing for half a 1-bit + Bit1Max = DCC_TX_MAX_BIT_1_TIMING, ///< Maximal timing for half a 1-bit + Bit0Min = DCC_TX_MIN_BIT_0_TIMING, ///< Minimal timing for half a 0-bit + Bit0 = 100u, ///< Standard timing for half a 0-bit + Bit0Max = DCC_TX_MAX_BIT_0_TIMING, ///< Maximal timing for half a 0-bit Bit0MaxAnalog = 9898u ///< Maximal timing for half a 0-bit analog }; diff --git a/include/dcc/tx/timings.hpp b/include/dcc/tx/timings.hpp index 7c0800e..901fbb3 100644 --- a/include/dcc/tx/timings.hpp +++ b/include/dcc/tx/timings.hpp @@ -38,7 +38,7 @@ constexpr Timings bytes2timings(std::span bytes, auto first{begin(timings)}; // Preamble - auto const preamble_count{cfg.preamble_bits * 2uz}; + auto const preamble_count{cfg.num_preamble * 2uz}; first = std::ranges::fill_n(first, static_cast(preamble_count), diff --git a/include/dcc/utility.hpp b/include/dcc/utility.hpp index 43902f3..c2a591a 100644 --- a/include/dcc/utility.hpp +++ b/include/dcc/utility.hpp @@ -95,21 +95,17 @@ consteval auto make_reset_packet() { return Packet{0x00u, 0x00u, 0x00u}; } /// Make an advanced operations speed packet /// -/// \param addr Address -/// \param dir Direction -/// \param speed Speed (0-126) +/// \param addr Address +/// \param rggggggg Direction and speed byte /// \return Advanced operations speed packet constexpr auto make_advanced_operations_speed_packet(Address::value_type addr, - int8_t dir, - uint8_t speed) { + uint8_t rggggggg) { Packet packet{}; auto first{begin(packet)}; auto last{encode_address({addr, addr < 128u ? Address::Short : Address::Long}, first)}; *last++ = 0b0011'1111u; - auto const r{static_cast(dir > 0) << 7u}; - auto const g{speed & 0x7Fu}; - *last++ = static_cast(r | g); + *last++ = rggggggg; *last = exor({first, last}); packet.resize(static_cast(++last - first)); return packet; diff --git a/src/rmt_dcc_encoder.c b/src/rmt_dcc_encoder.c index bb46d26..37eebdf 100644 --- a/src/rmt_dcc_encoder.c +++ b/src/rmt_dcc_encoder.c @@ -380,11 +380,11 @@ esp_err_t rmt_new_dcc_encoder(dcc_encoder_config_t const* config, (!config->bidibit_duration || // (config->bidibit_duration >= 57u && // config->bidibit_duration <= 61u)) && // - config->bit1_duration >= 56u && // - config->bit1_duration <= 60u && // - config->bit0_duration >= 97u && // - config->bit0_duration <= 114u && // - config->endbit_duration <= 60u, // + config->bit1_duration >= DCC_TX_MIN_BIT_1_TIMING && // + config->bit1_duration <= DCC_TX_MAX_BIT_1_TIMING && // + config->bit0_duration >= DCC_TX_MIN_BIT_0_TIMING && // + config->bit0_duration <= DCC_TX_MAX_BIT_0_TIMING && // + config->endbit_duration <= DCC_TX_MAX_BIT_1_TIMING, // ESP_ERR_INVALID_ARG, err, TAG, diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index fd42d81..a7603b9 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -7,6 +7,8 @@ sanitize(address,undefined) target_common_warnings(DCCTests PRIVATE) +target_compile_options(DCC INTERFACE -Werror;-Wno-error=deprecated-declarations) + cpmaddpackage("gh:google/googletest#main") target_link_libraries(DCCTests PRIVATE DCC::DCC GTest::gtest_main GTest::gmock) diff --git a/tests/rx/advanced_operations.cpp b/tests/rx/advanced_operations.cpp index 54cbb75..f65e652 100644 --- a/tests/rx/advanced_operations.cpp +++ b/tests/rx/advanced_operations.cpp @@ -2,26 +2,17 @@ // 126 speed steps command forward TEST_F(RxTest, _126_speed_steps_fwd) { - Expectation dir{EXPECT_CALL(_mock, direction(3u, 1))}; - Expectation speed{EXPECT_CALL(_mock, speed(3u, _))}; - Receive(dcc::make_advanced_operations_speed_packet(3u, 1, 10u)); + Expectation dir{EXPECT_CALL(_mock, direction(3u, dcc::Forward))}; + Expectation speed{ + EXPECT_CALL(_mock, speed(3u, dcc::scale_speed<126>(10 - 1)))}; + Receive(dcc::make_advanced_operations_speed_packet(3u, 1u << 7u | 10u)); Execute(); } // 126 speed steps command backward TEST_F(RxTest, _126_speed_steps_bwd) { - { - Expectation dir{EXPECT_CALL(_mock, direction(3u, -1))}; - Expectation speed{EXPECT_CALL(_mock, speed(3u, _))}; - Receive(dcc::make_advanced_operations_speed_packet(3u, -1, 10u)); - Execute(); - } - - // dir=0 is accepted as backwards as well - { - Expectation dir{EXPECT_CALL(_mock, direction(3u, -1))}; - Expectation speed{EXPECT_CALL(_mock, speed(3u, _))}; - Receive(dcc::make_advanced_operations_speed_packet(3u, 0, 10u)); - Execute(); - } + Expectation dir{EXPECT_CALL(_mock, direction(3u, dcc::Backward))}; + Expectation speed{EXPECT_CALL(_mock, speed(3u, _))}; + Receive(dcc::make_advanced_operations_speed_packet(3u, 0u << 7u | 10u)); + Execute(); } diff --git a/tests/rx/bidi_app_adr.cpp b/tests/rx/bidi/bidi_app_adr.cpp similarity index 100% rename from tests/rx/bidi_app_adr.cpp rename to tests/rx/bidi/bidi_app_adr.cpp diff --git a/tests/rx/bidi/bidi_app_dyn.cpp b/tests/rx/bidi/bidi_app_dyn.cpp new file mode 100644 index 0000000..0aee2cf --- /dev/null +++ b/tests/rx/bidi/bidi_app_dyn.cpp @@ -0,0 +1,61 @@ +#include "bidi_test.hpp" + +TEST_F(BiDiTest, app_dyn) { + _addrs.received = _addrs.primary; + + EXPECT_LT(DCC_RX_BIDI_DEQUE_SIZE, 42uz); + + // Add more datagrams than would fit the queue + for (auto i{0u}; i < 42u; ++i) + datagram(DirectionStatusByte{static_cast(i)}); + + auto i{0u}; + + { + // First datagram after deque release is always QoS + auto first{encode_datagram(make_datagram(7u, 0u << 6u | 7u))}; + auto second{encode_datagram(make_datagram(7u, i++ << 6u | 27u))}; + std::vector datagram; + std::ranges::copy(first, std::back_inserter(datagram)); + std::ranges::copy(second, std::back_inserter(datagram)); + EXPECT_CALL(*this, transmitBiDi(DatagramMatcher(datagram))).Times(1); + cutoutChannel2(); + } + + { + auto third{encode_datagram(make_datagram(7u, i++ << 6u | 27u))}; + auto fourth{encode_datagram(make_datagram(7u, i++ << 6u | 27u))}; + std::vector datagram; + std::ranges::copy(third, std::back_inserter(datagram)); + std::ranges::copy(fourth, std::back_inserter(datagram)); + EXPECT_CALL(*this, transmitBiDi(DatagramMatcher(datagram))).Times(1); + cutoutChannel2(); + } + + { + auto fifth{encode_datagram(make_datagram(7u, i++ << 6u | 27u))}; + auto sixt{encode_datagram(make_datagram(7u, i++ << 6u | 27u))}; + std::vector datagram; + std::ranges::copy(fifth, std::back_inserter(datagram)); + std::ranges::copy(sixt, std::back_inserter(datagram)); + EXPECT_CALL(*this, transmitBiDi(DatagramMatcher(datagram))).Times(1); + cutoutChannel2(); + } + + { + // Last datagram which fit into deque + auto seventh{ + encode_datagram(make_datagram(7u, i++ << 6u | 27u))}; + EXPECT_EQ(DCC_RX_BIDI_DEQUE_SIZE, 7uz); + std::vector datagram; + std::ranges::copy(seventh, std::back_inserter(datagram)); + EXPECT_CALL(*this, transmitBiDi(DatagramMatcher(datagram))).Times(1); + cutoutChannel2(); + } + + { + // Deque is empty again at this point + EXPECT_CALL(*this, transmitBiDi(_)).Times(0); + cutoutChannel2(); + } +} diff --git a/tests/rx/bidi_app_pom.cpp b/tests/rx/bidi/bidi_app_pom.cpp similarity index 100% rename from tests/rx/bidi_app_pom.cpp rename to tests/rx/bidi/bidi_app_pom.cpp diff --git a/tests/rx/bidi_app_tos.cpp b/tests/rx/bidi/bidi_app_tos.cpp similarity index 100% rename from tests/rx/bidi_app_tos.cpp rename to tests/rx/bidi/bidi_app_tos.cpp diff --git a/tests/rx/bidi_backoff.cpp b/tests/rx/bidi/bidi_backoff.cpp similarity index 100% rename from tests/rx/bidi_backoff.cpp rename to tests/rx/bidi/bidi_backoff.cpp diff --git a/tests/rx/bidi_backoff_test.cpp b/tests/rx/bidi/bidi_backoff_test.cpp similarity index 100% rename from tests/rx/bidi_backoff_test.cpp rename to tests/rx/bidi/bidi_backoff_test.cpp diff --git a/tests/rx/bidi_backoff_test.hpp b/tests/rx/bidi/bidi_backoff_test.hpp similarity index 100% rename from tests/rx/bidi_backoff_test.hpp rename to tests/rx/bidi/bidi_backoff_test.hpp diff --git a/tests/rx/bidi_test.cpp b/tests/rx/bidi/bidi_test.cpp similarity index 100% rename from tests/rx/bidi_test.cpp rename to tests/rx/bidi/bidi_test.cpp diff --git a/tests/rx/bidi_test.hpp b/tests/rx/bidi/bidi_test.hpp similarity index 93% rename from tests/rx/bidi_test.hpp rename to tests/rx/bidi/bidi_test.hpp index 9bece24..35a1117 100644 --- a/tests/rx/bidi_test.hpp +++ b/tests/rx/bidi/bidi_test.hpp @@ -1,6 +1,6 @@ #pragma once -#include "rx_mock.hpp" +#include "../rx_mock.hpp" using namespace dcc::bidi; using namespace ::testing; diff --git a/tests/rx/logon.cpp b/tests/rx/logon.cpp index 209acc4..ee0e36d 100644 --- a/tests/rx/logon.cpp +++ b/tests/rx/logon.cpp @@ -17,8 +17,8 @@ TEST_F(RxTest, logon_with_new_cid_and_session_id) { Cutout(); // Execute commands to address 1000 - EXPECT_CALL(_mock, direction(3u, -1)); + EXPECT_CALL(_mock, direction(3u, false)); EXPECT_CALL(_mock, speed(3u, _)); - Receive(dcc::make_advanced_operations_speed_packet(1000u, -1, 10u)); + Receive(dcc::make_advanced_operations_speed_packet(1000u, 0u)); Execute(); } diff --git a/tests/rx/rx_mock.hpp b/tests/rx/rx_mock.hpp index 10f30b2..e29cc7a 100644 --- a/tests/rx/rx_mock.hpp +++ b/tests/rx/rx_mock.hpp @@ -5,7 +5,6 @@ struct RxMock : dcc::rx::CrtpBase { MOCK_METHOD(void, direction, (uint32_t, int32_t)); MOCK_METHOD(void, speed, (uint32_t, int32_t)); - MOCK_METHOD(void, emergencyStop, (uint32_t)); MOCK_METHOD(void, function, (uint32_t, uint32_t, uint32_t)); MOCK_METHOD(void, serviceModeHook, (bool)); MOCK_METHOD(void, serviceAck, ());