Skip to content

Commit

Permalink
Revert commits
Browse files Browse the repository at this point in the history
This reverts commit 993b6a7.

Revert "add comments"

This reverts commit 69ad29b.

Revert "fix debug message"

This reverts commit f92a088.

Revert "add TODO comment on strange condition"

This reverts commit 44cd09f.

Revert "remove dead code"

This reverts commit 31d7d78.
  • Loading branch information
premultiply committed Sep 7, 2024
1 parent eb8d308 commit 9a0d650
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 22 deletions.
5 changes: 3 additions & 2 deletions charger/ocpp/connector.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ type Connector struct {
meterUpdated time.Time
measurements map[types.Measurand]types.SampledValue

txnId int
idTag string
txnCount int // change initial value to the last known global transaction. Needs persistence
txnId int
idTag string

remoteIdTag string
}
Expand Down
17 changes: 14 additions & 3 deletions charger/ocpp/connector_core.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func (conn *Connector) MeterValues(request *core.MeterValuesRequest) (*core.Mete
(conn.status.Status == core.ChargePointStatusCharging ||
conn.status.Status == core.ChargePointStatusSuspendedEV ||
conn.status.Status == core.ChargePointStatusSuspendedEVSE) {
conn.log.DEBUG.Printf("recovered existing transaction: %d", *request.TransactionId)
conn.log.DEBUG.Printf("hijacking transaction: %d", *request.TransactionId)
conn.txnId = *request.TransactionId
}

Expand Down Expand Up @@ -92,7 +92,6 @@ func (conn *Connector) StartTransaction(request *core.StartTransactionRequest) (
defer conn.mu.Unlock()

// expired request
// TODO: check if this is the correct way to handle expired requests. AuthorirzationStatusExpired is related to the idTag, not the request itself
if request.Timestamp != nil && conn.clock.Since(request.Timestamp.Time) > Timeout {
res := &core.StartTransactionConfirmation{
IdTagInfo: &types.IdTagInfo{
Expand All @@ -103,7 +102,8 @@ func (conn *Connector) StartTransaction(request *core.StartTransactionRequest) (
return res, nil
}

conn.txnId = instance.NewTransactionID()
conn.txnCount++
conn.txnId = conn.txnCount
conn.idTag = request.IdTag

res := &core.StartTransactionConfirmation{
Expand Down Expand Up @@ -140,6 +140,17 @@ func (conn *Connector) StopTransaction(request *core.StopTransactionRequest) (*c
conn.mu.Lock()
defer conn.mu.Unlock()

// expired request
if request.Timestamp != nil && conn.clock.Since(request.Timestamp.Time) > Timeout {
res := &core.StopTransactionConfirmation{
IdTagInfo: &types.IdTagInfo{
Status: types.AuthorizationStatusExpired, // reject
},
}

return res, nil
}

conn.txnId = 0
conn.idTag = ""

Expand Down
18 changes: 1 addition & 17 deletions charger/ocpp/cs.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"errors"
"fmt"
"sync"
"time"

"github.com/evcc-io/evcc/util"
ocpp16 "github.com/lorenzodonini/ocpp-go/ocpp1.6"
Expand All @@ -14,8 +13,7 @@ type CS struct {
mu sync.Mutex
log *util.Logger
ocpp16.CentralSystem
cps map[string]*CP
txnId int
cps map[string]*CP
}

// Register registers a charge point with the central system.
Expand Down Expand Up @@ -108,17 +106,3 @@ func (cs *CS) ChargePointDisconnected(chargePoint ocpp16.ChargePointConnection)
cp.connect(false)
}
}

// NewTransactionID returns a globally unique transaction id
func (cs *CS) NewTransactionID() int {
cs.mu.Lock()
defer cs.mu.Unlock()

// initialize new transactionId epoch
if cs.txnId == 0 {
cs.txnId = int(time.Now().UTC().Unix())
}

cs.txnId++
return cs.txnId
}

0 comments on commit 9a0d650

Please sign in to comment.