xunlangmag

package module
v0.0.0-...-881c74a Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2021 License: MIT Imports: 5 Imported by: 0

README

xunlangmag

Go语言实现的迅朗NB车检器的SDK。

使用方法:

import "gitee.com/xiaochengtech/xunlangmag"

pkt := xunlangmag.NewPacket(content)
if pkt.IsHeartbeat() {
    data, e := pkt.ParseHeartBeat()
    // ...
    reply := xunlangmag.HeartbeatReply()
    // ...
} else if pkt.IsParking() {
    data, e := pkt.ParseParking()
    // ...
}

Documentation

Index

Constants

View Source
const (
	// 车辆状态
	CarStatusEnter = byte(1) // 车辆到达
	CarStatusExit  = byte(0) // 车辆离开
)
View Source
const CmdTypeHeartbeat = byte(0xA9)

车检器心跳数据命令

View Source
const CmdTypeParking = byte(0xA8)

停车数据命令

Variables

This section is empty.

Functions

func HeartbeatReply

func HeartbeatReply() []byte

生成心跳回复包

Types

type EventParamsData

type EventParamsData struct {
	Content byte
}

事件参数

func (EventParamsData) EventParamCount

func (e EventParamsData) EventParamCount() uint8

停车或离开时间的调整参数,取值0-63,每单位的时间调整量为0.5秒

func (EventParamsData) SendCount

func (e EventParamsData) SendCount() uint8

发射次数,取值0-3

type HeartBeatData

type HeartBeatData struct {
	RSRP    byte        // 需换算成10进制数,加上负号,即为信号强度值,单位是dbm,如-86dbm
	CSQ     byte        // 需换算成10进制数,即为综合信号强度,有信号的话取值0-31,99为无信号
	SINR    byte        // 换算成10进制数即为信噪比,单位为db,如4db,其余与原来一样不变
	Status  StatusData  // 状态及车检器版本
	Voltage VoltageData // 车检器电池和电容电压
}

type Packet

type Packet struct {
	// contains filtered or unexported fields
}

数据包

func NewPacket

func NewPacket(content []byte) (p Packet, err error)

新建数据包对象

func (Packet) IsHeartbeat

func (c Packet) IsHeartbeat() bool

func (Packet) IsParking

func (c Packet) IsParking() bool

func (Packet) ParseHeartbeat

func (c Packet) ParseHeartbeat() (data HeartBeatData, err error)

func (Packet) ParseParking

func (c Packet) ParseParking() (data ParkingData, err error)

type PacketFrame

type PacketFrame struct {
	Start   [2]byte // 数据包起始标志,0xFFFF
	Mac     [4]byte // 车检器MAC
	CmdType byte    // 命令符号
	CmdData []byte  // 命令数据
	Crc     byte    // 校验值
	End     [1]byte // 数据包结束标志,0xFF
}

数据帧格式

type ParkingData

type ParkingData struct {
	Year            byte            // 年的值,例0x0E = 14,则表示2014年
	Month           byte            // 月份,如收到0x01,则表示为1月
	Count           byte            // 车检器个数,恒定为1
	Status          StatusData      // 状态及车检器版本
	TriggerTime     TimeData        // 停车或离开时间
	EventParams     EventParamsData // 事件参数
	LastTriggerTime TimeData        // 上次状态变化时间
	Voltage         VoltageData     // 车检器电池和电容电压
	CSQ             byte            // 信号强度
	MatchCode       byte            // 匹配码
	AppendLength    byte            // 进出场附加数据长度,恒定为0
}

func (ParkingData) LastTriggerTimeUnix

func (p ParkingData) LastTriggerTimeUnix() (u int64, err error)

上次状态变化时间,Unix时间戳

func (ParkingData) TriggerTimeUnix

func (p ParkingData) TriggerTimeUnix() (u int64, err error)

停车或离开时间,Unix时间戳

type StatusData

type StatusData struct {
	Content byte
}

状态及车检器版本

func (StatusData) CarStatus

func (s StatusData) CarStatus() bool

车辆状态(综合结果)

func (StatusData) CarStatusGroundMag

func (s StatusData) CarStatusGroundMag() bool

专用位(地磁)

func (StatusData) CarStatusRadar

func (s StatusData) CarStatusRadar() bool

专用位(雷达)

func (StatusData) CarStatusSound

func (s StatusData) CarStatusSound() bool

专用位(声音)

func (StatusData) CarStatusVisibleLight

func (s StatusData) CarStatusVisibleLight() bool

专用位(可见光)

func (StatusData) Version

func (s StatusData) Version() uint8

版本号

type TimeData

type TimeData struct {
	Content [3]byte
}

时间类型

func (TimeData) Day

func (t TimeData) Day() uint8

func (TimeData) Hour

func (t TimeData) Hour() uint8

func (TimeData) Minute

func (t TimeData) Minute() uint8

func (TimeData) Second

func (t TimeData) Second() uint8

type VoltageData

type VoltageData struct {
	Content [2]byte
}

车检器电池和电容电压

func (VoltageData) BatteryVoltage

func (v VoltageData) BatteryVoltage() float64

电池电压

func (VoltageData) ElectricCapacityVoltage

func (v VoltageData) ElectricCapacityVoltage() float64

电容电压

Jump to

Keyboard shortcuts

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