/** * Creates {@code NumberedTransactionId} or {@code UUIDTransactionId} by inspecting the provided transactionId String. * @param transactionNumber the String to create into a TransactionId * @param chargingStationId the chargingstation id * @param protocol the protocol identifier * @return a {@code TransactionId} * @throws NullPointerException in case transactionNumber is null. * @throws IllegalArgumentException in case no {@code TransactionId} could be created. */ public static TransactionId createTransactionId(String transactionNumber, ChargingStationId chargingStationId, String protocol) { return Ints.tryParse(checkNotNull(transactionNumber)) != null ? new NumberedTransactionId(chargingStationId, protocol, Ints.tryParse(transactionNumber)) : new UuidTransactionId(UUID.fromString(transactionNumber)); } }
@Override public StopTransactionResponse stopTransaction(StopTransactionRequest request, String chargeBoxIdentity) { ChargingStationId chargingStationId = new ChargingStationId(chargeBoxIdentity); NumberedTransactionId transactionId = new NumberedTransactionId(chargingStationId, PROTOCOL_IDENTIFIER, request.getTransactionId()); IdentifyingToken identifyingToken = new TextualToken(request.getIdTag()); //OCPP 1.2 does not include the meter values in a stop transaction message List<MeterValue> meterValues = new ArrayList<>(); domainService.stopTransaction(chargingStationId, transactionId, identifyingToken, request.getMeterStop(), request.getTimestamp(), meterValues, addOnIdentity); return new StopTransactionResponse(); }
/** * {@inheritDoc} */ @Override public void handle(String chargingStationId, JsonObject commandObject, IdentityContext identityContext) throws UserIdentityUnauthorizedException { ChargingStationId csId = new ChargingStationId(chargingStationId); if (!commandAuthorizationService.isAuthorized(csId, identityContext.getUserIdentity(), RequestStopTransactionCommand.class)) { throw new UserIdentityUnauthorizedException(chargingStationId, identityContext.getUserIdentity(), RequestStopTransactionCommand.class); } try { RequestStopTransactionApiCommand command = gson.fromJson(commandObject, RequestStopTransactionApiCommand.class); ChargingStation chargingStation = repository.findOne(chargingStationId); if (chargingStation != null && chargingStation.communicationAllowed()) { TransactionId transactionId = new NumberedTransactionId(csId, chargingStation.getProtocol(), command.getId()); commandGateway.send(new RequestStopTransactionCommand(csId, transactionId, identityContext), new CorrelationToken()); } } catch (JsonSyntaxException ex) { throw new IllegalArgumentException("Configure command not able to parse the payload, is your json correctly formatted?", ex); } } }
TransactionId transactionId = new NumberedTransactionId(chargingStationId, "OCPP15", sessionInfo.getTransactionId()); Object command = new RequestStopTransactionCommand(chargingStationId, transactionId, identityContext);
@Override public void handleRequest(ChargingStationId chargingStationId, String callId, String payload, WebSocketWrapper webSocketWrapper) { Metervalues request = gson.fromJson(payload, Metervalues.class); List<MeterValue> meterValues = new ArrayList<>(); for (Value meterValue : request.getValues()) { for (Value_ value : meterValue.getValues()) { ReadingContext readingContext = new ReadingContextTranslator(value.getContext()).translate(); ValueFormat valueFormat = new ValueFormatTranslator(value.getFormat()).translate(); Location location = new LocationTranslator(value.getLocation()).translate(); Measurand measurand = new MeasurandTranslator(value.getMeasurand()).translate(); UnitOfMeasure unitOfMeasure = new UnitOfMeasureTranslator(value.getUnit()).translate(); meterValues.add(new MeterValue(meterValue.getTimestamp(), value.getValue(), readingContext, valueFormat, measurand, location, unitOfMeasure)); } } TransactionId transactionId = null; Integer requestTransactionId = request.getTransactionId(); if (requestTransactionId != null && requestTransactionId > 0) { transactionId = new NumberedTransactionId(chargingStationId, protocolIdentifier, requestTransactionId); } domainService.meterValues(chargingStationId, transactionId, new EvseId(request.getConnectorId()), meterValues, addOnIdentity); writeResponse(webSocketWrapper, new MetervaluesResponse(), callId, MessageProcUri.METERVALUES); }
@Override public void handleRequest(ChargingStationId chargingStationId, String callId, String payload, WebSocketWrapper webSocketWrapper) { Stoptransaction request = gson.fromJson(payload, Stoptransaction.class); List<MeterValue> meterValues = new ArrayList<>(); for (TransactionDatum data : request.getTransactionData()) { for (Value__ meterValue : data.getValues()) { for (Value___ value : meterValue.getValues()) { ReadingContext readingContext = new ReadingContextTranslator(value.getContext()).translate(); ValueFormat valueFormat = new ValueFormatTranslator(value.getFormat()).translate(); Location location = new LocationTranslator(value.getLocation()).translate(); Measurand measurand = new MeasurandTranslator(value.getMeasurand()).translate(); UnitOfMeasure unitOfMeasure = new UnitOfMeasureTranslator(value.getUnit()).translate(); meterValues.add(new MeterValue(meterValue.getTimestamp(), value.getValue(), readingContext, valueFormat, measurand, location, unitOfMeasure)); } } } NumberedTransactionId transactionId = new NumberedTransactionId(chargingStationId, protocolIdentifier, request.getTransactionId()); domainService.stopTransaction(chargingStationId, transactionId, new TextualToken(request.getIdTag()), request.getMeterStop(), request.getTimestamp(), meterValues, addOnIdentity); writeResponse(webSocketWrapper, new StoptransactionResponse(), callId, MessageProcUri.STOP_TRANSACTION); }
@Override public MeterValuesResponse meterValues(MeterValuesRequest request, String chargeBoxIdentity) { ChargingStationId chargingStationId = new ChargingStationId(chargeBoxIdentity); TransactionId transactionId = request.getTransactionId() != null ? new NumberedTransactionId(chargingStationId, PROTOCOL_IDENTIFIER, request.getTransactionId()) : null; List<MeterValue> meterValues = new ArrayList<>(); for (io.motown.ocpp.v15.soap.centralsystem.schema.MeterValue mv : request.getValues()) { for (io.motown.ocpp.v15.soap.centralsystem.schema.MeterValue.Value value : mv.getValue()) { ReadingContext readingContext = new ReadingContextTranslator(value.getContext()).translate(); ValueFormat valueFormat = new ValueFormatTranslator(value.getFormat()).translate(); Measurand measurand = new MeasurandTranslator(value.getMeasurand()).translate(); Location location = new LocationTranslator(value.getLocation()).translate(); UnitOfMeasure unitOfMeasure = new UnitOfMeasureTranslator(value.getUnit()).translate(); meterValues.add(new MeterValue(mv.getTimestamp(), value.getValue(), readingContext, valueFormat, measurand, location, unitOfMeasure)); } } domainService.meterValues(chargingStationId, transactionId, new EvseId(request.getConnectorId()), meterValues, addOnIdentity); return new MeterValuesResponse(); }
NumberedTransactionId transactionId = new NumberedTransactionId(chargingStationId, protocolIdentifier, transaction.getId().intValue());
@Override public StopTransactionResponse stopTransaction(StopTransactionRequest request, String chargeBoxIdentity) { ChargingStationId chargingStationId = new ChargingStationId(chargeBoxIdentity); NumberedTransactionId transactionId = new NumberedTransactionId(chargingStationId, PROTOCOL_IDENTIFIER, request.getTransactionId()); // In case the idTag is missing we create an empty token String idTag = request.getIdTag() != null ? request.getIdTag() : ""; IdentifyingToken identifyingToken = new TextualToken(idTag); List<MeterValue> meterValues = new ArrayList<>(); List<TransactionData> transactionData = request.getTransactionData(); for (TransactionData data : transactionData) { for (io.motown.ocpp.v15.soap.centralsystem.schema.MeterValue mv : data.getValues()) { for (io.motown.ocpp.v15.soap.centralsystem.schema.MeterValue.Value value : mv.getValue()) { ReadingContext readingContext = new ReadingContextTranslator(value.getContext()).translate(); ValueFormat valueFormat = new ValueFormatTranslator(value.getFormat()).translate(); Measurand measurand = new MeasurandTranslator(value.getMeasurand()).translate(); Location location = new LocationTranslator(value.getLocation()).translate(); UnitOfMeasure unitOfMeasure = new UnitOfMeasureTranslator(value.getUnit()).translate(); meterValues.add(new MeterValue(mv.getTimestamp(), value.getValue(), readingContext, valueFormat, measurand, location, unitOfMeasure)); } } } domainService.stopTransaction(chargingStationId, transactionId, identifyingToken, request.getMeterStop(), request.getTimestamp(), meterValues, addOnIdentity); return new StopTransactionResponse(); }
NumberedTransactionId transactionId = new NumberedTransactionId(chargingStationId, protocolIdentifier, transaction.getId().intValue()); IdentifyingToken identifyingToken = resultEvent.getIdentifyingToken(); StartTransactionInfo extendedStartTransactionInfo = new StartTransactionInfo(startTransactionInfo.getEvseId(), startTransactionInfo.getMeterStart(), startTransactionInfo.getTimestamp(), identifyingToken, startTransactionInfo.getAttributes());