Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
79
pkg/common/remote_command.go
Normal file
79
pkg/common/remote_command.go
Normal file
@@ -0,0 +1,79 @@
|
||||
package common
|
||||
|
||||
import "time"
|
||||
|
||||
const (
|
||||
PositionLeftFront string = "left_front"
|
||||
PositionRightFront string = "right_front"
|
||||
PositionLeftRear string = "left_rear"
|
||||
PositionRightRear string = "right_rear"
|
||||
PositionLeftRearQuarter string = "left_rear_quarter"
|
||||
PositionRightRearQuarter string = "right_rear_quarter"
|
||||
PositionRearWindshield string = "rear_windshield"
|
||||
PositionTrunk string = "trunk"
|
||||
)
|
||||
|
||||
type RemoteCommandSource struct {
|
||||
Command string `json:"command" validate:"required,max=100"`
|
||||
Data *string `json:"data,omitempty"`
|
||||
Start *time.Time `json:"start,omitempty"`
|
||||
End *time.Time `json:"end,omitempty"`
|
||||
}
|
||||
|
||||
type RemoteReadVersionsCommandArgs struct {
|
||||
ECUName string `json:"ecu_name" validate:"required,max=100"`
|
||||
}
|
||||
|
||||
type RemoteResetDiagnosticCommandArgs struct {
|
||||
ECUName string `json:"ecu_name" validate:"required,max=100"`
|
||||
UDSKeys *ECCKeys `json:"uds_keys,omitempty"`
|
||||
}
|
||||
|
||||
type RemoteCANNetworkCommandArgs struct {
|
||||
Action string `json:"action" validate:"required,oneof=on off"`
|
||||
Timeout int32 `json:"timeout"`
|
||||
}
|
||||
|
||||
type RemoteIgnitionCommandArgs struct {
|
||||
Action string `json:"action" validate:"required,oneof=on off"`
|
||||
Timeout int32 `json:"timeout"`
|
||||
}
|
||||
|
||||
type RemoteUpdateSecOCCommandArgs struct {
|
||||
ECUs []string `json:"ecus" validate:"required"`
|
||||
UDSKeys []ECCKeys `json:"uds_keys" validate:"required"`
|
||||
KeyBase64 string `json:"key_base64" validate:"required"`
|
||||
}
|
||||
|
||||
type RemoteDiagnosticCommandRequest struct {
|
||||
VINs []string `json:"vins,omitempty" validate:"required,max=1000,dive,vin"`
|
||||
Command string `json:"command" validate:"required,oneof=remote_reset can_network remote_ignition read_ecu_versions write_secoc_key"`
|
||||
ECU string `json:"ecu_name,omitempty"`
|
||||
CANNetAction string `json:"can_net_action,omitempty"`
|
||||
IgnitionAction string `json:"ignition_action,omitempty"`
|
||||
Timeout int32 `json:"timeout"`
|
||||
}
|
||||
type RemoteCommandRequest struct {
|
||||
VIN string `json:"vin"`
|
||||
Source string `json:"source"`
|
||||
SentAt *time.Time `json:"time,omitempty"`
|
||||
WaitDuration int `json:"wait_dur"`
|
||||
RemoteCommandSource
|
||||
}
|
||||
|
||||
func (r *RemoteCommandRequest) IsExpired(commandExpiration time.Duration) bool {
|
||||
if r.SentAt == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
expiresAt := r.SentAt.Add(commandExpiration * time.Second)
|
||||
return expiresAt.Before(time.Now())
|
||||
}
|
||||
|
||||
func (r *RemoteCommandRequest) GetSentAt() *time.Time {
|
||||
return r.SentAt
|
||||
}
|
||||
|
||||
func (r *RemoteCommandRequest) SetSentAt(sentAt time.Time) {
|
||||
r.SentAt = &sentAt
|
||||
}
|
||||
Reference in New Issue
Block a user