Versions in this module Expand all Collapse all v0 v0.0.2 Dec 9, 2023 v0.0.1 Oct 9, 2023 Changes in this version + const DomainInfotainment + const DomainVCSEC + var ErrBadResponse = errors.New("invalid response") + var ErrBusy = NewError("vehicle busy or finishing wake-up", false, true) + var ErrInvalidPublicKey = authentication.ErrInvalidPublicKey + var ErrKeyNotPaired = NewError(...) + var ErrNoSession = NewError("cannot send authenticated command before establishing a vehicle session", ...) + var ErrNotConnected = NewError("vehicle not connected", false, false) + var ErrProtocolNotSupported = errors.New("vehicle does not support protocol -- use REST API") + var ErrRequiresBLE = errors.New("command can only be sent over BLE") + var ErrRequiresEncryption = errors.New(...) + var ErrRequiresKey = NewError("no private key available", false, false) + var ErrUnknown = NewError("vehicle responded with an unrecognized status code", false, false) + var ErrUnpexpectedPublicKey = errors.New("remote public key changed unexpectedly") + func GetError(u *universal.RoutableMessage) error + func IsNominalError(err error) bool + func LoadPublicKey(filename string) (*ecdh.PublicKey, error) + func MayHaveSucceeded(err error) bool + func NewError(message string, mayHaveSucceeded bool, temporary bool) error + func PublicKeyBytesFromHex(h string) (*ecdh.PublicKey, error) + func SavePrivateKey(skey ECDHPrivateKey, filename string) error + func ShouldRetry(err error) bool + func Temporary(err error) bool + type CommandError struct + Err error + PossibleSuccess bool + PossibleTemporary bool + func (e *CommandError) Error() string + func (e *CommandError) MayHaveSucceeded() bool + func (e *CommandError) Temporary() bool + func (e *CommandError) Unwrap() error + type Domain = universal.Domain + type ECDHPrivateKey authentication.ECDHPrivateKey + func LoadPrivateKey(filename string) (ECDHPrivateKey, error) + func UnmarshalECDHPrivateKey(keyBytes []byte) ECDHPrivateKey + type Error interface + MayHaveSucceeded func() bool + Temporary func() bool + type KeychainError struct + Code vcsec.WhitelistOperationInformation_E + func (e *KeychainError) Error() string + func (e *KeychainError) MayHaveSucceeded() bool + func (e *KeychainError) Temporary() bool + type NominalError struct + Details error + func (e *NominalError) Error() string + func (e *NominalError) MayHaveSucceeded() bool + func (e *NominalError) Temporary() bool + func (e *NominalError) Unwrap() error + type NominalVCSECError struct + Details *verror.NominalError + func (n *NominalVCSECError) Error() string + func (n *NominalVCSECError) MayHaveSucceeded() bool + func (n *NominalVCSECError) Temporary() bool + type Receiver interface + Close func() + Recv func() <-chan *universal.RoutableMessage + type RoutableMessageError struct + Code universal.MessageFault_E + func (v *RoutableMessageError) Error() string + func (v *RoutableMessageError) MayHaveSucceeded() bool + func (v *RoutableMessageError) Temporary() bool