Files
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
2026-06-08 00:38:27 -04:00

34 lines
1.1 KiB
Python

from ..uftp import DsoPortfolioQueryResponse, DsoPortfolioUpdateResponse, UsefRole
from .base_client import ShapeshifterClient
class ShapeshifterCroDsoClient(ShapeshifterClient):
"""
Client that allows the CRO to connect to the DSO.
There are only two types of messages that the CRO can send to the DSO:
- DsoPortfolioUpdateResponse
- DsoPortfolioQueryResponse
Each of these comes after the DSO sends a DsoPortfolioUpdate or
DsoPortfolioQuery, respectively.
"""
sender_role = UsefRole.CRO
recipient_role = UsefRole.DSO
def send_dso_portfolio_update_response(self, message: DsoPortfolioUpdateResponse) -> None:
"""
The DSOPortfolioUpdate is used by the DSO to indicate on which
congestion points it wants to engage in flexibility trading.
"""
self._send_message(message)
def send_dso_portfolio_query_response(self, message: DsoPortfolioQueryResponse) -> None:
"""
DSOPortfolioQuery is used by DSOs to discover which AGRs represent
connections on its registered congestion point(s).
"""
self._send_message(message)