80 lines
2.5 KiB
Go
80 lines
2.5 KiB
Go
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
|
|
}
|