Skip to content

Setting up v1.6 OCPP J server

Thomas Volden edited this page May 8, 2017 · 2 revisions

Setting up v1.6 OCPP J server

For version 1.6 OCPP-J (JSON) server.

Instantiating a server

    // The core profile is mandatory
    core = new ServerCoreProfile(new ServerCoreEventHandler() {
        @Override
        public AuthorizeConfirmation handleAuthorizeRequest(UUID sessionIndex, AuthorizeRequest request) {

            System.out.println(request);
            // ... handle event

            return new AuthorizeConfirmation();
        }

        @Override
        public BootNotificationConfirmation handleBootNotificationRequest(UUID sessionIndex, BootNotificationRequest request) {

            System.out.println(request);
            // ... handle event

            return null; // returning null means unsupported feature
        }

        @Override
        public DataTransferConfirmation handleDataTransferRequest(UUID sessionIndex, DataTransferRequest request) {

            System.out.println(request);
            // ... handle event

            return null; // returning null means unsupported feature
        }

        @Override
        public HeartbeatConfirmation handleHeartbeatRequest(UUID sessionIndex, HeartbeatRequest request) {

            System.out.println(request);
            // ... handle event

            return null; // returning null means unsupported feature
        }

        @Override
        public MeterValuesConfirmation handleMeterValuesRequest(UUID sessionIndex, MeterValuesRequest request) {

            System.out.println(request);
            // ... handle event

            return null; // returning null means unsupported feature
        }

        @Override
        public StartTransactionConfirmation handleStartTransactionRequest(UUID sessionIndex, StartTransactionRequest request) {

            System.out.println(request);
            // ... handle event

            return null; // returning null means unsupported feature
        }

        @Override
        public StatusNotificationConfirmation handleStatusNotificationRequest(UUID sessionIndex, StatusNotificationRequest request) {

            System.out.println(request);
            // ... handle event

            return null; // returning null means unsupported feature
        }

        @Override
        public StopTransactionConfirmation handleStopTransactionRequest(UUID sessionIndex, StopTransactionRequest request) {

            System.out.println(request);
            // ... handle event

            return null; // returning null means unsupported feature
        }
    });

    server = new JSONServer(core);
    server.open("localhost", 8887, new ServerEvents() {

        @Override
        public void newSession(UUID sessionIndex, String identifier) {

            // sessionIndex is used to send messages.
            System.out.println("New session " + sessionIndex + ": " + identifier);
        }

        @Override
        public void lostSession(UUID sessionIndex) {

            System.out.println("Session " + sessionIndex + " lost connection");
        }
    });

Sending request

    // Use the feature profile to help create event
    ClearCacheRequest request = core.createClearCacheRequest();

    UUID sessionIndex = null;
    // Server returns a promise which will be filled once it receives a confirmation.
    // Select the distination client with the sessionIndex integer.
    server.send(sessionIndex, request).whenComplete((confirmation, throwable) -> System.out.println(confirmation));