forked from lorenzodonini/ocpp-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathavailability_handler.go
30 lines (27 loc) · 1.27 KB
/
availability_handler.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main
import (
"fmt"
"github.com/lorenzodonini/ocpp-go/ocpp2.0.1/availability"
"github.com/lorenzodonini/ocpp-go/ocpp2.0.1/types"
"time"
)
func (c *CSMSHandler) OnHeartbeat(chargingStationID string, request *availability.HeartbeatRequest) (response *availability.HeartbeatResponse, err error) {
logDefault(chargingStationID, request.GetFeatureName()).Infof("heartbeat handled")
response = availability.NewHeartbeatResponse(types.DateTime{Time: time.Now()})
return
}
func (c *CSMSHandler) OnStatusNotification(chargingStationID string, request *availability.StatusNotificationRequest) (response *availability.StatusNotificationResponse, err error) {
info, ok := c.chargingStations[chargingStationID]
if !ok {
return nil, fmt.Errorf("unknown charging station %v", chargingStationID)
}
if request.ConnectorID > 0 {
connectorInfo := info.getConnector(request.ConnectorID)
connectorInfo.status = request.ConnectorStatus
logDefault(chargingStationID, request.GetFeatureName()).Infof("connector %v updated status to %v", request.ConnectorID, request.ConnectorStatus)
} else {
logDefault(chargingStationID, request.GetFeatureName()).Infof("couldn't update status for invalid connector %v", request.ConnectorID)
}
response = availability.NewStatusNotificationResponse()
return
}