Class: Ocpp::Rails::Actions::MeterValuesHandler
- Inherits:
-
Object
- Object
- Ocpp::Rails::Actions::MeterValuesHandler
- Defined in:
- app/services/ocpp/rails/actions/meter_values_handler.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(charge_point, message_id, payload) ⇒ MeterValuesHandler
constructor
A new instance of MeterValuesHandler.
Constructor Details
#initialize(charge_point, message_id, payload) ⇒ MeterValuesHandler
Returns a new instance of MeterValuesHandler.
5 6 7 8 9 |
# File 'app/services/ocpp/rails/actions/meter_values_handler.rb', line 5 def initialize(charge_point, , payload) @charge_point = charge_point @message_id = @payload = payload end |
Instance Method Details
#call ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/services/ocpp/rails/actions/meter_values_handler.rb', line 11 def call connector_id = @payload["connectorId"] transaction_id = @payload["transactionId"] # Find active session if transaction ID provided session = if transaction_id @charge_point.charging_sessions.find_by(transaction_id: transaction_id) else @charge_point.charging_sessions.active.find_by(connector_id: connector_id) end # Process each meter value set meter_value_sets = @payload["meterValue"] || [] meter_value_sets.each do |meter_value_set| = TimestampParser.parse(meter_value_set["timestamp"]) sampled_values = meter_value_set["sampledValue"] || [] sampled_values.each do |sampled_value| meter_value = create_meter_value(session, connector_id, , sampled_value) broadcast_meter_value(meter_value) if meter_value end end ::Rails.logger.debug("[OCPP] MeterValues from #{@charge_point.identifier}: Connector #{connector_id}, #{meter_value_sets.size} value sets") # Return empty response (MeterValues doesn't require data in response) {} end |