xnl

package
v0.0.0-...-e6ee764 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2022 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// MasterStatusBroadcast returned for the init of the connection
	MasterStatusBroadcast OpCode = 0x02
	// DeviceMasterQuery starts the init of the connection
	DeviceMasterQuery OpCode = 0x03
	// DeviceAuthKeyRequest asks the master for an authkey
	DeviceAuthKeyRequest OpCode = 0x04
	// DeviceAuthKeyReply returns from the master with the authkey
	DeviceAuthKeyReply OpCode = 0x05
	// DeviceConnectionRequest asks for a connection with the master's encrypted authkey
	DeviceConnectionRequest OpCode = 0x06
	// DeviceConnectionReply response to a connection request
	DeviceConnectionReply OpCode = 0x07
	// DeviceSysMapBroadcast gets a list of devices seen in XNL
	DeviceSysMapBroadcast OpCode = 0x09
	// DataMessage sends XNL or XCMP data
	DataMessage OpCode = 0x0b
	// DataMessageAck acknowledges a DataMessage packet
	DataMessageAck OpCode = 0x0c

	// ProtocolXNL the packet is just XNL
	ProtocolXNL Protocol = 0
	// ProtocolXCMP the payload is in XCMP format
	ProtocolXCMP Protocol = 1
)

Variables

This section is empty.

Functions

func Encrypt

func Encrypt(data []byte) []byte

Encrypt converts the auth data from the repeater to the format to send back in the handshake

Types

type AckDataPacket

type AckDataPacket struct {
	Header Header
}

AckDataPacket a request to acknowledge a prior data packet

func NewAckDataPacketByArray

func NewAckDataPacketByArray(data []byte) AckDataPacket

NewAckDataPacketByArray create an data packet from data array

func NewAckDataPacketByParam

func NewAckDataPacketByParam(dest Address, src Address, proto Protocol, flags byte, transactionID uint16) AckDataPacket

NewAckDataPacketByParam create ack data packet from params

func (AckDataPacket) GetHeader

func (p AckDataPacket) GetHeader() Header

GetHeader returns the header for the packet

func (AckDataPacket) SetHeader

func (p AckDataPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (AckDataPacket) ToArray

func (p AckDataPacket) ToArray() []byte

ToArray converts a packet to a byte array

type Address

type Address uint16

Address An XNL Address

type Client

type Client struct {
	PacketsIn chan Packet
	// contains filtered or unexported fields
}

Client descripes a XNL Client

func NewClient

func NewClient(client *mototrbo.Client, id mototrbo.RadioID, addr *net.UDPAddr) *Client

NewClient creates a new Client instance

func (*Client) GetAuthKey

func (c *Client) GetAuthKey()

GetAuthKey authenticates with XNL on the radio and creates an XCMP connection

func (*Client) GetRadioAddress

func (c *Client) GetRadioAddress() *net.UDPAddr

GetRadioAddress gets the IP address of the remote radio

func (*Client) GetRadioXNLID

func (c *Client) GetRadioXNLID() Address

GetRadioXNLID gets the XNL ID of the remote radio

func (*Client) RegisterHandler

func (c *Client) RegisterHandler(opCode OpCode, handlerFunc PacketHandler)

RegisterHandler registers a function to be called anytime a certain packet type is recieved

func (*Client) SendPacket

func (c *Client) SendPacket(pkt Packet)

SendPacket sends an XNL protocol packet to the radio

type DataPacket

type DataPacket struct {
	Header  Header
	Payload Payload
}

DataPacket a request to initialize a XNL connection

func NewDataPacket

func NewDataPacket(dest Address, src Address, proto Protocol, payload Payload) DataPacket

NewDataPacket create data packet from params

func NewDataPacketByArray

func NewDataPacketByArray(data []byte) DataPacket

NewDataPacketByArray create an data packet from data array

func (DataPacket) GetHeader

func (p DataPacket) GetHeader() Header

GetHeader returns the header for the packet

func (DataPacket) SetHeader

func (p DataPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (DataPacket) ToArray

func (p DataPacket) ToArray() []byte

ToArray converts a packet to a byte array

type DevAuthKeyRequestPacket

type DevAuthKeyRequestPacket struct {
	Header Header
}

DevAuthKeyRequestPacket a request to initialize a XNL connection

func NewDevAuthKeyRequestPacket

func NewDevAuthKeyRequestPacket(dest Address) DevAuthKeyRequestPacket

NewDevAuthKeyRequestPacket create deregistration packet from params

func NewDevAuthKeyRequestPacketByArray

func NewDevAuthKeyRequestPacketByArray(data []byte) DevAuthKeyRequestPacket

NewDevAuthKeyRequestPacketByArray create an deregistration packet from data array

func (DevAuthKeyRequestPacket) GetHeader

func (p DevAuthKeyRequestPacket) GetHeader() Header

GetHeader returns the header for the packet

func (DevAuthKeyRequestPacket) SetHeader

func (p DevAuthKeyRequestPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (DevAuthKeyRequestPacket) ToArray

func (p DevAuthKeyRequestPacket) ToArray() []byte

ToArray converts a packet to a byte array

type DevConnectionReplyPacket

type DevConnectionReplyPacket struct {
	Header     Header
	AssignedID Address
	AuthInfo   []byte
}

DevConnectionReplyPacket a request to initialize a XNL connection

func NewDevConnectionReplyPacketByArray

func NewDevConnectionReplyPacketByArray(data []byte) DevConnectionReplyPacket

NewDevConnectionReplyPacketByArray create an deregistration packet from data array

func NewDevConnectionReplyPacketByParam

func NewDevConnectionReplyPacketByParam(dest Address, src Address, assignedID Address, authInfo []byte) DevConnectionReplyPacket

NewDevConnectionReplyPacketByParam create deregistration packet from params

func (DevConnectionReplyPacket) GetHeader

func (p DevConnectionReplyPacket) GetHeader() Header

GetHeader returns the header for the packet

func (DevConnectionReplyPacket) SetHeader

func (p DevConnectionReplyPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (DevConnectionReplyPacket) ToArray

func (p DevConnectionReplyPacket) ToArray() []byte

ToArray converts a packet to a byte array

type DevConnectionRequestPacket

type DevConnectionRequestPacket struct {
	Header Header
	// contains filtered or unexported fields
}

DevConnectionRequestPacket a request to initialize a XNL connection

func NewDevConnectionRequestPacket

func NewDevConnectionRequestPacket(dest Address, src Address, connectionAddr Address, connectionType byte, connectionIndex byte, key []byte) DevConnectionRequestPacket

NewDevConnectionRequestPacket create deregistration packet from params

func NewDevConnectionRequestPacketByArray

func NewDevConnectionRequestPacketByArray(data []byte) DevConnectionRequestPacket

NewDevConnectionRequestPacketByArray create an deregistration packet from data array

func (DevConnectionRequestPacket) GetHeader

func (p DevConnectionRequestPacket) GetHeader() Header

GetHeader returns the header for the packet

func (DevConnectionRequestPacket) SetHeader

func (p DevConnectionRequestPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (DevConnectionRequestPacket) ToArray

func (p DevConnectionRequestPacket) ToArray() []byte

ToArray converts a packet to a byte array

type DevKeyAuthReplyPacket

type DevKeyAuthReplyPacket struct {
	Header  Header
	TempID  uint16
	AuthKey []byte
}

DevKeyAuthReplyPacket a request to initialize a XNL connection

func NewDevKeyAuthReplyPacketByArray

func NewDevKeyAuthReplyPacketByArray(data []byte) DevKeyAuthReplyPacket

NewDevKeyAuthReplyPacketByArray create an data packet from data array

func NewDevKeyAuthReplyPacketByParam

func NewDevKeyAuthReplyPacketByParam(dest Address, src Address, tempID uint16, authKey []byte) DevKeyAuthReplyPacket

NewDevKeyAuthReplyPacketByParam create data packet from params

func (DevKeyAuthReplyPacket) GetHeader

func (p DevKeyAuthReplyPacket) GetHeader() Header

GetHeader returns the header for the packet

func (DevKeyAuthReplyPacket) SetHeader

func (p DevKeyAuthReplyPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (DevKeyAuthReplyPacket) ToArray

func (p DevKeyAuthReplyPacket) ToArray() []byte

ToArray converts a packet to a byte array

type DeviceSysmapBroadcastPacket

type DeviceSysmapBroadcastPacket struct {
	Header  Header
	Payload Payload
	Sysmaps []Sysmap
}

DeviceSysmapBroadcastPacket a request to initialize a XNL connection

func NewDeviceSysmapBroadcastPacket

func NewDeviceSysmapBroadcastPacket(src Address, maps []Sysmap) DeviceSysmapBroadcastPacket

NewDeviceSysmapBroadcastPacket create device sysmap packet from params

func NewDeviceSysmapBroadcastPacketByArray

func NewDeviceSysmapBroadcastPacketByArray(data []byte) DeviceSysmapBroadcastPacket

NewDeviceSysmapBroadcastPacketByArray create an data packet from data array

func (DeviceSysmapBroadcastPacket) GetHeader

func (p DeviceSysmapBroadcastPacket) GetHeader() Header

GetHeader returns the header for the packet

func (DeviceSysmapBroadcastPacket) SetHeader

func (p DeviceSysmapBroadcastPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (DeviceSysmapBroadcastPacket) ToArray

func (p DeviceSysmapBroadcastPacket) ToArray() []byte

ToArray converts a packet to a byte array

type GenericPayload

type GenericPayload struct {
	Payload []byte
}

GenericPayload a generic payload struct

func (GenericPayload) ToArray

func (g GenericPayload) ToArray() []byte

ToArray converts a generic payload to an array

type Header struct {
	OpCode        OpCode
	Protocol      Protocol
	Flags         byte
	Dest          Address
	Src           Address
	TransactionID uint16
}

Header for the Packet

func (*Header) FromArray

func (h *Header) FromArray(data []byte)

FromArray converts an array to an XNL header

func (*Header) ToArray

func (h *Header) ToArray(payload []byte) []byte

ToArray converts an XNL header to an array

type InitPacket

type InitPacket struct {
	Header Header
}

InitPacket a request to initialize a XNL connection

func NewInitPacket

func NewInitPacket() InitPacket

NewInitPacket create deregistration packet from params

func NewInitPacketByArray

func NewInitPacketByArray(data []byte) InitPacket

NewInitPacketByArray create an deregistration packet from data array

func (InitPacket) GetHeader

func (p InitPacket) GetHeader() Header

GetHeader returns the header for the packet

func (InitPacket) SetHeader

func (p InitPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (InitPacket) ToArray

func (p InitPacket) ToArray() []byte

ToArray converts a packet to a byte array

type MasterStatusBroadcastPacket

type MasterStatusBroadcastPacket struct {
	Header        Header
	ProtocolRev   uint16
	ProtocolMinor uint16
	DeviceType    byte
	DeviceNumber  byte
	Unknown       byte
}

MasterStatusBroadcastPacket a response from the XNL master

func NewMasterStatusBroadcastPacket

func NewMasterStatusBroadcastPacket(src Address) MasterStatusBroadcastPacket

NewMasterStatusBroadcastPacket create master status broadcast packet from params

func NewMasterStatusBroadcastPacketByArray

func NewMasterStatusBroadcastPacketByArray(data []byte) MasterStatusBroadcastPacket

NewMasterStatusBroadcastPacketByArray create an master status broadcast packet from data array

func (MasterStatusBroadcastPacket) GetHeader

func (p MasterStatusBroadcastPacket) GetHeader() Header

GetHeader returns the header for the packet

func (MasterStatusBroadcastPacket) SetHeader

func (p MasterStatusBroadcastPacket) SetHeader(h Header)

SetHeader returns the header for the packet

func (MasterStatusBroadcastPacket) ToArray

func (p MasterStatusBroadcastPacket) ToArray() []byte

ToArray converts a packet to a byte array

type OpCode

type OpCode uint16

OpCode An XNL OpCode

type Packet

type Packet interface {
	ToArray() []byte
	GetHeader() Header
}

Packet represents an XNL packet

func CreatePacketFromArray

func CreatePacketFromArray(array []byte) Packet

CreatePacketFromArray creates a XNL packet from an array

type PacketHandler

type PacketHandler func(Packet) bool

PacketHandler is a function to handle a particular type of packet

type Payload

type Payload interface {
	ToArray() []byte
}

Payload an Xnl Packet Payload

type Protocol

type Protocol byte

Protocol XCMP or XNL

type Sysmap

type Sysmap struct {
	DeviceType   byte
	DeviceNumber byte
	Address      Address
	AuthIndex    byte
}

Sysmap is an entry in the sysmap for a device

func SysmapFromArray

func SysmapFromArray(data []byte) Sysmap

SysmapFromArray creates a Sysmap from an array

func (Sysmap) ToArray

func (s Sysmap) ToArray() []byte

ToArray converts a sysmap to an array

type UnknownPacket

type UnknownPacket struct {
	Header  Header
	Payload []byte
}

UnknownPacket an unknown packet

func NewUnkownPacketByArray

func NewUnkownPacketByArray(data []byte) UnknownPacket

NewUnkownPacketByArray create an data packet from data array

func (UnknownPacket) GetHeader

func (p UnknownPacket) GetHeader() Header

GetHeader returns the header for the packet

func (UnknownPacket) SetHeader

func (p UnknownPacket) SetHeader(h Header)

SetHeader sets the header for the packet

func (UnknownPacket) ToArray

func (p UnknownPacket) ToArray() []byte

ToArray converts a packet to a byte array

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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