Compare commits
1
Commits
master
...
feature/1876
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
177cf3dc38
|
@@ -15,7 +15,7 @@ import java.util.UUID;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class BootService {
|
public class BootService {
|
||||||
private final static int PASSWD = 1;
|
private final static int PASSWD = 1;
|
||||||
private final static int INTERVAL_SEC = 10;
|
public final static int INTERVAL_SEC = 10;
|
||||||
|
|
||||||
private final SessionService sessionService;
|
private final SessionService sessionService;
|
||||||
private final TriggerService triggerService;
|
private final TriggerService triggerService;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.yablochkov.ocppstub;
|
|||||||
|
|
||||||
import eu.chargetime.ocpp.feature.profile.ServerCoreProfile;
|
import eu.chargetime.ocpp.feature.profile.ServerCoreProfile;
|
||||||
import eu.chargetime.ocpp.model.core.*;
|
import eu.chargetime.ocpp.model.core.*;
|
||||||
|
import java.util.concurrent.CompletionStage;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
@@ -18,13 +19,14 @@ public class ConfigService {
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Autowired private ServerCoreProfile coreProfile;
|
@Autowired private ServerCoreProfile coreProfile;
|
||||||
|
|
||||||
public void sengConfig(UUID sessionIndex) {
|
public boolean sengConfig(UUID sessionIndex) {
|
||||||
log.info("Sending configuration");
|
log.info("Sending configuration");
|
||||||
ChangeConfigurationRequest configurationRequest = coreProfile
|
ChangeConfigurationRequest configurationRequest = coreProfile
|
||||||
.createChangeConfigurationRequest("AuthorizationKey", DEFAULT_KEY);
|
.createChangeConfigurationRequest("AuthorizationKey", DEFAULT_KEY);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
server.send(sessionIndex, configurationRequest)
|
var feature = server.send(sessionIndex,
|
||||||
|
configurationRequest)
|
||||||
.thenApply(confirmation -> {
|
.thenApply(confirmation -> {
|
||||||
log.debug("Get confirmation");
|
log.debug("Get confirmation");
|
||||||
if (confirmation instanceof ChangeConfigurationConfirmation) {
|
if (confirmation instanceof ChangeConfigurationConfirmation) {
|
||||||
@@ -32,18 +34,21 @@ public class ConfigService {
|
|||||||
ConfigurationStatus status = ((ChangeConfigurationConfirmation) confirmation).getStatus();
|
ConfigurationStatus status = ((ChangeConfigurationConfirmation) confirmation).getStatus();
|
||||||
if (status == ConfigurationStatus.Accepted) {
|
if (status == ConfigurationStatus.Accepted) {
|
||||||
log.debug("Confirmation status is accepted");
|
log.debug("Confirmation status is accepted");
|
||||||
return Void.TYPE;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.error("Charge point don't confirm password change");
|
log.error("Charge point don't confirm password change");
|
||||||
throw new RuntimeException("CP don't confirm pass change");
|
throw new RuntimeException("CP don't confirm pass change");
|
||||||
})
|
})
|
||||||
.thenRunAsync(() -> {
|
.thenApply((state) -> {
|
||||||
log.info("Closing session {}", sessionIndex);
|
log.info("Closing session {}", sessionIndex);
|
||||||
server.closeSession(sessionIndex);
|
server.closeSession(sessionIndex);
|
||||||
|
return state;
|
||||||
});
|
});
|
||||||
|
return feature.toCompletableFuture().get();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Exception on ChangeConfiguration", e);
|
log.error("Exception on ChangeConfiguration", e);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.yablochkov.ocppstub;
|
package com.yablochkov.ocppstub;
|
||||||
|
|
||||||
|
import static com.yablochkov.ocppstub.BootService.INTERVAL_SEC;
|
||||||
|
|
||||||
import eu.chargetime.ocpp.ServerEvents;
|
import eu.chargetime.ocpp.ServerEvents;
|
||||||
import eu.chargetime.ocpp.feature.profile.ServerCoreEventHandler;
|
import eu.chargetime.ocpp.feature.profile.ServerCoreEventHandler;
|
||||||
import eu.chargetime.ocpp.model.SessionInformation;
|
import eu.chargetime.ocpp.model.SessionInformation;
|
||||||
import eu.chargetime.ocpp.model.core.*;
|
import eu.chargetime.ocpp.model.core.*;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -32,7 +35,11 @@ public class EventHandler implements ServerCoreEventHandler, ServerEvents {
|
|||||||
public BootNotificationConfirmation handleBootNotificationRequest(UUID sessionIndex, BootNotificationRequest request) {
|
public BootNotificationConfirmation handleBootNotificationRequest(UUID sessionIndex, BootNotificationRequest request) {
|
||||||
BootNotificationConfirmation response = bootService.handle(sessionIndex, request);
|
BootNotificationConfirmation response = bootService.handle(sessionIndex, request);
|
||||||
if (response.getStatus() == RegistrationStatus.Pending) {
|
if (response.getStatus() == RegistrationStatus.Pending) {
|
||||||
configService.sengConfig(sessionIndex);
|
boolean isConfigSet = configService.sengConfig(sessionIndex);
|
||||||
|
if (!isConfigSet) {
|
||||||
|
log.error("Config not set, skip this step");
|
||||||
|
return new BootNotificationConfirmation(ZonedDateTime.now(), INTERVAL_SEC, RegistrationStatus.Accepted);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user