fm1200

package
v0.0.0-...-c6ca42b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2024 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TIO_DigitalInput1        IOProperty = 1
	TIO_DigitalInput2                   = 2
	TIO_DigitalInput3                   = 3
	TIO_AnalogInput                     = 9
	TIO_OdometerValue                   = 16
	TIO_GSMSignal                       = 21
	TIO_Speed                           = 24
	TIO_RPM                             = 36
	TIO_AmbientTemperature              = 53
	TIO_ExternalVoltage                 = 66
	TIO_BatteryVoltage                  = 67
	TIO_BatteryCurrent                  = 68
	TIO_GPSPower                        = 69
	TIO_PCBTemperature                  = 70
	TIO_DallasTemperature               = 72
	TIO_IButtonID                       = 78
	TIO_WorkingMode                     = 80
	TIO_Speed_CAN                       = 81
	TIO_FuelConsumed_CAN                = 83
	TIO_FuelLevelLtr_CAN                = 84
	TIO_RPM_CAN                         = 85
	TIO_TotalMileage_CAN                = 87
	TIO_FuelLevelPercent_CAN            = 89
	TIO_Geozone1                        = 155
	TIO_Geozone2                        = 156
	TIO_Geozone3                        = 157
	TIO_Geozone4                        = 158
	TIO_Geozone5                        = 159
	TIO_AutoGeofence                    = 175
	TIO_DigitalOutput1                  = 179
	TIO_DigitalOutput2                  = 180
	TIO_GPSPDOP                         = 181
	TIO_GPSHDOP                         = 182
	TIO_TripOdometerValue               = 199
	TIO_SleepMode                       = 200
	TIO_CellID                          = 205
	TIO_AreaCode                        = 206
	TIO_RFID                            = 207
	TIO_Ignition                        = 239
	TIO_MovementSensor                  = 240
	TIO_GSMOperator                     = 241
	TIO_Towing                          = 246
	TIO_CrashDetection                  = 247
	TIO_TripMode                        = 250
	TIO_ExcessiveIdling                 = 251
	TIO_Unplug                          = 252
	TIO_GreenDrivingStatus              = 253
	TIO_GreenDrivingValue               = 254
	TIO_Overspeeding                    = 255
	TIO_VIN                             = 256
	TIO_CrashTraceData                  = 257
	TIO_VIN_CAN                         = 325
	TIO_OdmTotalMileage                 = 389
	TIO_FuelLevel                       = 390
)

Variables

This section is empty.

Functions

func ConvertDecimalToHexAndReverse

func ConvertDecimalToHexAndReverse(decimalValue uint64) string

ConvertDecimalToHexAndReverse convert decimal to hex and then reverse the hex string

Types

type AvlDataPacket

type AvlDataPacket struct {
	CodecID      uint8       `json:"codec_id"`
	NumberOfData uint8       `json:"number_of_data"`
	Data         []AvlRecord `json:"data"`
	CRC          uint32      `json:"crc"`
}

type AvlRecord

type AvlRecord struct {
	Timestamp  uint64     `json:"timestamp"`
	Priority   uint8      `json:"priority"`
	GPSElement GpsElement `json:"gps_element"`
	IOElement  IOElement  `json:"io_element"`
}

type CodecID

type CodecID uint
const (
	Codec8  CodecID = 0x08
	Codec8E CodecID = 0x8E
)

type DeviceResponse

type DeviceResponse struct {
	CodecID           byte   // Codec ID (always 0x0C for Codec12)
	ResponseQuantity1 byte   // Response Quantity 1
	Type              byte   // Response Type (0x06 for response)
	ResponseSize      uint32 // Response Size in bytes
	ResponseData      []byte // Actual response data (in bytes)
	ResponseQuantity2 byte   // Response Quantity 2 (should match Response Quantity 1)
	CRC               uint32 // CRC-16 checksum
}

type FM1200Protocol

type FM1200Protocol struct {
	Imei       string
	DeviceType types.DeviceType
}

func (*FM1200Protocol) ConsumeStream

func (t *FM1200Protocol) ConsumeStream(reader *bufio.Reader, responseWriter io.Writer, dataStore store.Store) error

func (*FM1200Protocol) GetDeviceID

func (t *FM1200Protocol) GetDeviceID() string

func (*FM1200Protocol) GetDeviceType

func (p *FM1200Protocol) GetDeviceType() types.DeviceType

func (*FM1200Protocol) GetProtocolType

func (p *FM1200Protocol) GetProtocolType() types.DeviceProtocolType

func (*FM1200Protocol) Login

func (t *FM1200Protocol) Login(reader *bufio.Reader) (ack []byte, bytesToSkip int, e error)

func (*FM1200Protocol) ParseDeviceResponse

func (t *FM1200Protocol) ParseDeviceResponse(dataReader *bufio.Reader, dataLen uint32) (*DeviceResponse, error)

func (*FM1200Protocol) SendCommandToDevice

func (t *FM1200Protocol) SendCommandToDevice(writer io.Writer, command string) error

func (*FM1200Protocol) SetDeviceType

func (p *FM1200Protocol) SetDeviceType(t types.DeviceType)

func (*FM1200Protocol) ValidateCrc

func (t *FM1200Protocol) ValidateCrc(data []byte, expectedCrc uint32) bool

type GpsElement

type GpsElement struct {
	Longitude  float32 `json:"longitude"`
	Latitude   float32 `json:"latitude"`
	Altitude   uint16  `json:"altitude"`
	Angle      uint16  `json:"angle"`
	Satellites uint8   `json:"satellites"`
	Speed      uint16  `json:"speed"`
}

type IOElement

type IOElement struct {
	EventID       uint16 `json:"event_id"`
	NumProperties uint16 `json:"num_properties"`

	Properties1B  map[IOProperty]uint8  `json:"properties_1b"`
	Properties2B  map[IOProperty]uint16 `json:"properties_2b"`
	Properties4B  map[IOProperty]uint32 `json:"properties_4b"`
	Properties8B  map[IOProperty]uint64 `json:"properties_8b"`
	PropertiesNXB map[IOProperty][]byte `json:"properties_xb"`
}

type IOProperty

type IOProperty int

type Record

type Record struct {
	IMEI   string    `json:"imei"`
	Record AvlRecord `json:"record"`
}

func (*Record) ToProtobufDeviceStatus

func (r *Record) ToProtobufDeviceStatus() *types.DeviceStatus

type Response

type Response struct {
	IMEI  string
	Reply []byte
}

func (*Response) ToProtobufDeviceResponse

func (r *Response) ToProtobufDeviceResponse() *types.DeviceResponse

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL