Ошибка при получении сообщения о запуске с сервера OCPP CMS

#python #json #content-management-system

#python #json #content-management-system

Вопрос:

Я разрабатываю симулятор OCPP на основе PyPI OCPP v1.6J. Я успешно отправил уведомление о загрузке, сердцебиение и уведомление о состоянии на сервер OCPP CMS. Но при получении любого сообщения с сервера CMS я получаю ошибку в своей консоли.

Я попытался передать сообщение о запуске (сердцебиение) с сервера CMS, но моя смоделированная точка зарядки не принимает запрос. Это вызывает некоторую ошибку. Фрагмент кода прилагается ниже

 class ChargePoint(cp):

    @on(Action.TriggerMessage)
    def on_trigger_message(self, requestedMessage, conectorId, **kwargs):
        return call.TriggerMessagePayload(
            connector_id = 1,
            requested_message = "Heartbeat"
        )
        return call_result.TriggerMessagePayload(
            status = TriggerMessageStatus.accepted
            
        )
 

И сообщение об ошибке прилагается ниже

 C:Python38>python ocppclientsteve.py
Connected to SteVe CMS server.
Error while handling request '<Call - unique_id=f95390e4-a751-4bbb-8a41-abed33b29ca8, action=TriggerMessage, payload={'requestedMessage': 'Heartbeat', 'connectorId': 1}>'
Traceback (most recent call last):
  File "C:Python38libsite-packagesocppcharge_point.py", line 185, in _handle_call
    response = handler(**snake_case_payload)
  File "C:Python38libsite-packagesocpprouting.py", line 33, in inner
    return func(*args, **kwargs)
TypeError: on_trigger_message() missing 2 required positional arguments: 'requestedMessage' and 'conectorId'
Error while handling request '<Call - unique_id=d12e5c40-f155-4d49-bd68-38f9c9fd074b, action=TriggerMessage, payload={'requestedMessage': 'Heartbeat', 'connectorId': 1}>'
Traceback (most recent call last):
  File "C:Python38libsite-packagesocppcharge_point.py", line 185, in _handle_call
    response = handler(**snake_case_payload)
  File "C:Python38libsite-packagesocpprouting.py", line 33, in inner
    return func(*args, **kwargs)
TypeError: on_trigger_message() missing 2 required positional arguments: 'requestedMessage' and 'conectorId'
 

Ответ №1:

Автор библиотеки здесь.

Библиотека использует snake_case для всех атрибутов. Вот так:

 class ChargePoint(cp):

    @on(Action.TriggerMessage)
    def on_trigger_message(self, requested_message, connector_id, **kwargs):
        return call.TriggerMessagePayload(
            connector_id = 1,
            requested_message = "Heartbeat"
        )
        return call_result.TriggerMessagePayload(
            status = TriggerMessageStatus.accepted
            
        )