Skip to content

Set up departure time handling#1201

Closed
Abby-Wheelis wants to merge 198 commits intoEVerest:mainfrom
Abby-Wheelis:departure-time-signed
Closed

Set up departure time handling#1201
Abby-Wheelis wants to merge 198 commits intoEVerest:mainfrom
Abby-Wheelis:departure-time-signed

Conversation

@Abby-Wheelis
Copy link
Contributor

Describe your changes

Departure Time and Energy Amount have defaults specified in the EvManager manifest.yaml file, which will be used unless other values are passed in as part of the iso_start_v2g_session command

-1 can be passed into the iso_start_v2g_session command in order to enforce use of the defaults

Issue ticket number and link

Issue #220

Checklist before requesting a review

  • I have performed a self-review of my code
  • I have made corresponding changes to the documentation
  • I read the contribution documentation and made sure that my changes meet its requirements

This replaces #1017

@Abby-Wheelis Abby-Wheelis mentioned this pull request May 30, 2025
3 tasks
Departure Time and Energy Amount have defaults specified in the EvManager manifest.yaml file, which will be used unless other values are passed in as part of the iso_start_v2g_session command

-1 can be passed into the iso_start_v2g_session command in order to enforce use of the defaults

Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
@Abby-Wheelis Abby-Wheelis force-pushed the departure-time-signed branch from 8ab4e91 to 525f5a4 Compare May 30, 2025 19:53
@SebaLukas SebaLukas self-assigned this Jun 2, 2025
Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
Copy link
Member

@SebaLukas SebaLukas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please have look into my comments.

@SebaLukas
Copy link
Member

Before merging this PR, the Josev PR should be also merged and dependencies.yaml updated

Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
@Abby-Wheelis
Copy link
Contributor Author

I have addressed the review comments and this is ready for further review

Copy link
Member

@SebaLukas SebaLukas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking very good!
I just have to review the Josev PR properly, then we can merge the two PRs.

Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
@Abby-Wheelis Abby-Wheelis force-pushed the departure-time-signed branch from 4168ac2 to 89b4595 Compare June 26, 2025 14:49
Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
james-ctc and others added 22 commits October 29, 2025 11:37
Addresses issue EVerest#1379

Signed-off-by: James Chapman <james.chapman@pionix.de>
…EVerest#1377)

* EvseManager: refactoring set_max_current() method

Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com>

* EvseManager: fix limits variable does not take PP values into account

This issue was observed while checking the maximum current limit in the
RpcApi and the Api module. Detailed description can be found in issue EVerest#1075.

Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com>

* EvseManager: add comments to improve clarity of max_current handling

Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com>

---------

Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com>
Adding sdbus-c++ dependecy in cmake for module Linux_Systemd_Rauc (uncomment)



* Reboot and mark-good

* removed mark good script. Cleanup.

mark good is handled in init() via Systemd



* Extension of API for OTA update



Linux_systemd_rauc: Add compatibility with sdbus-c++ 2.x API (EVerest#186)



feat: added new interface rauc_status that provides percentage (EVerest#246)

completion during a RAUC install
fix: added sdbus-c++ to build



Cc 13 react to new req system restart messages new (EVerest#267)

* refactor: extract mechanism for safely calling system commands into companion lib
* Add C++ interface to safe_system mechanism
* Use safe_system mechanism to implement different types of reset
* Address minor issues from PR discussion
* Made errno->string conversion thread-safe again.
* Use safer mechanism to call external executable in Rauc module
* Improve interfaces of companion functions for safe calling of system functions
* Make safe_system_c an internal function
* Add function to print commands for logging
* Handle timeout in safe_system commands and add verbose return type
* Fix clang-format
* Fix namespace formatting



feat: add event queue so that modules can request actions from

feat: RAUC updates now via event queue

fix: SIGCHILD handler not correctly configured
fix: updated reboot command

OCPP OTA uses the RAUC primary to determine when an OTA was
successfully booted - in testing this was not always reliable.
The boot slot is more reliable and if it changes after a reboot
then that is a good indication that the OTA worked.

The updates mean that the OCPP OTA could have a different
approach if needed. This implementation supports a migration
from using primary slot to using boot slot.

feat: save boot and promary slot for OTA checking
fix: fixes during testing

The System module has code that performs OTA via RAUC's dbus interface.
The code has been updated so that a base class performs most operations
and the EVerest module specific requirements are now in a derived class.

fix: libev now working with sdbus-c++ for RAUC
feat: building code + tests with updated companion library

feat: factor out common dbus functions
feat: implement systemd dbus capability
feat: updated sdbus-c++ to support Aync calls for version 1.6 and 2.1.0



Move into modules/Misc/Linux_Systemd_Rauc

Added system lib to lib/everest

Linking Linux_Systemd_Rauc against everest::system

Removed provides of rauc interface

Removed rauc status types dependency and changed to system types. ADjusted signal_firwmare_update_status signal

Added VerifyUpdateScriptPath config parameter and James Chapman as module author

Using VerifyUpdateScriptPath config param to decide if an update can be marked as good

fixed typo and updated documentation about sdbus version



Install sdbus-c++ v2.1.0 from source in EDM mode

Run apt update before installing libsystemd-dev dependency

Fix linkage to sdbus-c++

Use run_application() wrapper for boost process

This fixes build on opensuse

Include N01.FR.20 fix in Linux_Systemd_Rauc module

Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de>
Co-authored-by: Cornelius Claussen <cc@pionix.de>
For yocto builds certain files need to be available (installed)
when everest-core is built.

A recent change to ev-project-bootstrap.cmake means that
config-tmux-run-script.cmake is now required to be available.

This commit fixes this.

Signed-off-by: James Chapman <james.chapman@pionix.de>
… compiler (EVerest#1396)

* Fix build issue in fusion_charger_lib/goose-lib unit tests with newer compiler

Signed-off-by: Sebastian Lukas <sebastian.lukas@pionix.de>

* inlcude -> include

Signed-off-by: Sebastian Lukas <sebastian.lukas@pionix.de>

---------

Signed-off-by: Sebastian Lukas <sebastian.lukas@pionix.de>
This requires a small change in the BUDisplayMessage module
overriding the new OnRender method instead of the old Render method

Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de>
…_SuccessfulNegotiation (EVerest#1410)

The ISO 15118-2 supportedAppProtocolRes response code was recently changed
from OK_SuccessfulNegotiation to OK_SuccessfulNegotiationWithMinorDeviation,
but even when there was no deviation.

This was done to satisfy ISO 15118-4 test cases
TC_SECC_CMN_VTB_SupportedAppProtocol_*, which accept either, but mandate
OK_SuccessfulNegotiationWithMinorDeviation for a deviation.

Fix this to actually check the EV's supported minor version, and issue
OK_SuccessfulNegotiationWithMinorDeviation only when there is a deviation.

While at it, also introduce the same logic for DIN 70121, which has the same
requirements.

Fixes EVerest#1409

Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com>
fix: PIC code for sdbus-c++
fix: make header location available for header-only library everest_util
fix: adapt for multilib build (previously a yocto patch)

Signed-off-by: James Chapman <james.chapman@pionix.de>
Update everest-framework to 0.23.1

Update libocpp to 0.30.2

Update libevse-security to 0.9.9

Update libcurl to 8.16.0

Bump version to 2025.9.0

Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de>
Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de>
…list (EVerest#1405)

This cipher isn't supported by OpenSSL anymore anyway, so we can also just drop it from the cipher lists

Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de>
This is a safer default value

Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de>
…d() (EVerest#1407)

Since this relys on /dev/urandom this should result in a random session id with higher entropy than multiple calls ro rand()

Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de>
* API modules
* async api definitions
* unit test for EVerest interface/type changes

Signed-off-by: Jan Christoph Habig <jan.habig@pionix.de>
Signed-off-by: Christoph Burandt <christoph.burandt@pionix.de>
The output after "Firmware:" was empty and the most of the firmware
version was printed after "Build date:".

Signed-off-by: Stefan Wahren <stefan.wahren@chargebyte.com>
Move the error framework examples one directory higher since there are also
Python error examples included.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
* Allow defining Rust modules in different CMake scopes

While attempting to build an out-of-tree Rust module with CMake I noticed
that the `RUST_WORKSPACE_DIR` variable wasn't set for my module, which
broke the `rust_symlink_module_*` targets. I believe this happens because
CMake variables aren't consider in scope after calls to functions like
`add_subdirectory()`.

This commit ensures the variable is always in scope by storing it as a
target property, which is later retrieved whenever required. I went with
a target property instead of a cache variable to avoid potential naming
conflicts, seeing how those are not namespaced.

Signed-off-by: Ivar Scholten <ivar.scholten@protonmail.com>

* Allow cross compiling Rust modules with CMake

The Rust integration for CMake runs Cargo (the Rust build system) under
the hood, but it previously didn't pass any information regarding the
target platform along. This resulted in Cargo always performing a build
for the host platform, which is incorrect in cross-compilation
environments.

This commit fixes that by the appropriate target to Cargo.

Signed-off-by: Ivar Scholten <ivar.scholten@protonmail.com>

* Consistently use generator expressions in CMake's Rust support

This makes it possible to use the multi-config generators when building
Rust modules.

Signed-off-by: Ivar Scholten <ivar.scholten@protonmail.com>

---------

Signed-off-by: Ivar Scholten <ivar.scholten@protonmail.com>
)

* MCU<>Everest protobuf extension/rework
    * Config structure for a charging port has changed -> more info under its own bullet point below
    * motor locking states locking/unlocking added, not only endstates (but not really usable at the moment as motor lock interface definition does not have lock state vars where we could communicate state to other modules)
    * KeepAlive packet has added configuration_done flag that signals everest the MCU has successfully been configured, booted and is in normal run mode
    * added error flags for PP fault, coil/relay feedback divergence from target state, heartbeat timeout

* Config extension
    * coil/relay feedback active high/low and pull directions can be configured
    * motor lock type defaults to no motor lock (as is the case for DC charging or AC charging without socket/detachable charging cable)
    * has_socket defines if we have a socketed charging port (with detachable cable)
    * if configuring a port for AC charging with a socket, critical errors will be thrown on everest/MCU side when not specifying motor lock type
    * Motor lock type only enforced on socketed AC ports
    * possible to completely disable charging port to do one charging port configs only
    * phyverso_cli parameters via json mirror whole everest module parameter set now
    * renamed cli_config_*.json files for more clarity where they could be used (phyverso_cli use only, no real-world application)

* Error handling
    * Bidirectional serial communication timeouts will be reported and throw respective errors / will get cleared after normal communcation resumes
    * new errors thrown on everest side that will also have already lead to an emergency stop on MCU side
        * PP fault
        * coil/relay feedback diverges from target
        * heartbeat timeout (connection to/from Everest lost)
        * diode fault

* Misc.
    * PP state logging fixed, was constantly spamming EVLOG with info messages when receiving periodic updates from MCU
    * sometimes serial communication gets completely mangled, leading to Everest not receiving config request packets -> MCU will not get config packets and will hang in boot loop
        * BSP will wait for MCU reporting that it is properly configured -> otherwise reset MCU / serial after some time and wait for new config request packet until MCU reports properly configured MCU, boot mode exit and normal operation
    * increased hard-reset nRST low time
    * added small delay in phyverso_cli input polling loop to not use 100% CPU

Signed-off-by: Jonas Rockstroh <jonas.rockstroh@pionix.de>
…EVerest#1394)

Signed-off-by: Sebastian Lukas <sebastian.lukas@pionix.de>
Some comments in v2g_server doesn't properly describe the behavior
of v2g_incoming_v2gtp. So make it consistent.

Signed-off-by: Stefan Wahren <stefan.wahren@chargebyte.com>
Add dt parameters in config-sil-ac-d20
Add commit hash to dependencies.yaml

Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
…is/everest-core into departure-time-signed

Signed-off-by: Abby Wheelis <Abigail.Wheelis@nrel.gov>
@Abby-Wheelis Abby-Wheelis mentioned this pull request Oct 29, 2025
3 tasks
…by-Wheelis/everest-core into departure-time-signed"

This reverts commit a00e7ec, reversing
changes made to 9a285d7.
@Abby-Wheelis
Copy link
Contributor Author

There were too many merges to upstream in order to squash, superseded by #1468

@SebaLukas
Copy link
Member

Honestly I dont know where is the problem and why you produce so many commits.
With e.g. git rebase -i HEAD~30 it is quite easy to squash the first 30 commits together: https://git-scm.com/docs/git-rebase#_interactive_mode
You can always work locally with your repo, check whether the squash worked, and don't have to force push your changes to the remote branch right away.

@Abby-Wheelis
Copy link
Contributor Author

With e.g. git rebase -i HEAD~30 it is quite easy to squash the first 30 commits together: https://git-scm.com/docs/git-rebase#_interactive_mode

This is exactly what I tried, several different times with no success. My difficulty is with the way commits are represented that I have merged into my branch from the main branch. I was trying not to alter those commits, but they had to be reapplied to the branch one by one during the squash, which resulted in merge conflicts and other issues. I'm happy to try again, I will report back if I have any luck.

@Abby-Wheelis
Copy link
Contributor Author

I think the issue stems from the merges to main. I think for today using #1468 is the best approach. In the future, if you would like the commits squashed, should I hold off on syncing my branch to main until the last minute? I think that would keep me from resolving potential merge conflicts ahead of review, but would allow for the clean commit history.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.