Ocpp: reject unwanted local sessions (#14861)
This commit is contained in:
parent
5c9d63f0d9
commit
e8b526feae
3 changed files with 25 additions and 8 deletions
|
|
@ -133,6 +133,7 @@ func NewOCPP(id string, connector int, idtag string,
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
conn.AllowStart(autoStart)
|
||||
|
||||
c := &OCPP{
|
||||
log: log,
|
||||
|
|
@ -376,6 +377,11 @@ func (c *OCPP) enableRemote(enable bool) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if enable {
|
||||
c.conn.AllowStart(true)
|
||||
defer c.conn.AllowStart(false)
|
||||
}
|
||||
|
||||
rc := make(chan error, 1)
|
||||
if enable {
|
||||
if txn > 0 {
|
||||
|
|
|
|||
|
|
@ -22,8 +22,9 @@ type Connector struct {
|
|||
cp *CP
|
||||
id int
|
||||
|
||||
status *core.StatusNotificationRequest
|
||||
statusC chan struct{}
|
||||
allowStart bool
|
||||
status *core.StatusNotificationRequest
|
||||
statusC chan struct{}
|
||||
|
||||
meterUpdated time.Time
|
||||
measurements map[types.Measurand]types.SampledValue
|
||||
|
|
@ -68,6 +69,12 @@ func (conn *Connector) IdTag() string {
|
|||
return conn.idTag
|
||||
}
|
||||
|
||||
func (conn *Connector) AllowStart(allow bool) {
|
||||
conn.mu.Lock()
|
||||
defer conn.mu.Unlock()
|
||||
conn.allowStart = allow
|
||||
}
|
||||
|
||||
func (conn *Connector) TriggerMessageRequest(feature remotetrigger.MessageTrigger, f ...func(request *remotetrigger.TriggerMessageRequest)) {
|
||||
Instance().TriggerMessageRequest(conn.cp.ID(), feature, func(request *remotetrigger.TriggerMessageRequest) {
|
||||
request.ConnectorId = &conn.id
|
||||
|
|
|
|||
|
|
@ -86,15 +86,19 @@ func (conn *Connector) StartTransaction(request *core.StartTransactionRequest) (
|
|||
return res, nil
|
||||
}
|
||||
|
||||
conn.txnCount++
|
||||
conn.txnId = conn.txnCount
|
||||
conn.idTag = request.IdTag
|
||||
|
||||
res := &core.StartTransactionConfirmation{
|
||||
IdTagInfo: &types.IdTagInfo{
|
||||
Status: types.AuthorizationStatusAccepted,
|
||||
Status: types.AuthorizationStatusBlocked,
|
||||
},
|
||||
TransactionId: conn.txnId,
|
||||
}
|
||||
|
||||
if conn.allowStart {
|
||||
conn.txnCount++
|
||||
conn.txnId = conn.txnCount
|
||||
conn.idTag = request.IdTag
|
||||
|
||||
res.IdTagInfo.Status = types.AuthorizationStatusAccepted
|
||||
res.TransactionId = conn.txnId
|
||||
}
|
||||
|
||||
return res, nil
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue