uhppote

package
v0.0.0-...-3a1b8ae Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2020 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var VERSION string = "v0.5.0"

Functions

This section is empty.

Types

type Device

type Device struct {
	DeviceID uint32
	Address  *net.UDPAddr
	Rollover uint32
	Doors    []string
}

func NewDevice

func NewDevice(deviceID uint32, address *net.UDPAddr, rollover uint32) *Device

type Event

type Event struct {
	MsgType        types.MsgType      `uhppote:"value:0x20"`
	SerialNumber   types.SerialNumber `uhppote:"offset:4"`
	LastIndex      uint32             `uhppote:"offset:8"`
	EventType      byte               `uhppote:"offset:12"`
	Granted        bool               `uhppote:"offset:13"`
	Door           byte               `uhppote:"offset:14"`
	DoorOpened     bool               `uhppote:"offset:15"`
	UserID         uint32             `uhppote:"offset:16"`
	Timestamp      types.DateTime     `uhppote:"offset:20"`
	EventResult    byte               `uhppote:"offset:27"`
	Door1State     bool               `uhppote:"offset:28"`
	Door2State     bool               `uhppote:"offset:29"`
	Door3State     bool               `uhppote:"offset:30"`
	Door4State     bool               `uhppote:"offset:31"`
	Door1Button    bool               `uhppote:"offset:32"`
	Door2Button    bool               `uhppote:"offset:33"`
	Door3Button    bool               `uhppote:"offset:34"`
	Door4Button    bool               `uhppote:"offset:35"`
	SystemState    byte               `uhppote:"offset:36"`
	SystemDate     types.SystemDate   `uhppote:"offset:51"`
	SystemTime     types.SystemTime   `uhppote:"offset:37"`
	PacketNumber   uint32             `uhppote:"offset:40"` // TODO verify
	Backup         uint32             `uhppote:"offset:44"` // TODO verify
	SpecialMessage byte               `uhppote:"offset:48"` // TODO verify
	LowBattery     byte               `uhppote:"offset:49"` // TODO verify
	FireAlarm      byte               `uhppote:"offset:50"` // TODO verify
}

type GetListenerResponse

type GetListenerResponse struct {
	MsgType      types.MsgType      `uhppote:"value:0x92"`
	SerialNumber types.SerialNumber `uhppote:"offset:4"`
	Address      net.IP             `uhppote:"offset:8"`
	Port         uint16             `uhppote:"offset:12"`
}

type Listener

type Listener interface {
	OnConnected()
	OnEvent(*types.Status)
	OnError(error) bool
}

type UHPPOTE

type UHPPOTE struct {
	BindAddress      *net.UDPAddr
	BroadcastAddress *net.UDPAddr
	ListenAddress    *net.UDPAddr
	Devices          map[uint32]*Device
	Debug            bool
}

func (*UHPPOTE) Broadcast

func (u *UHPPOTE) Broadcast(request, replies interface{}) error

func (*UHPPOTE) DeleteCard

func (u *UHPPOTE) DeleteCard(serialNumber, cardNumber uint32) (*types.Result, error)

func (*UHPPOTE) DeleteCards

func (u *UHPPOTE) DeleteCards(serialNumber uint32) (*types.Result, error)

func (*UHPPOTE) DirectedBroadcast

func (u *UHPPOTE) DirectedBroadcast(serialNumber uint32, request, replies interface{}) error

Sends a UDP message to a specific device but anticipates replies from more than one device because it may fall back to the broadcast address if the device ID has no configured IP address.

func (*UHPPOTE) Execute

func (u *UHPPOTE) Execute(serialNumber uint32, request, reply interface{}) error

func (*UHPPOTE) FindDevice

func (u *UHPPOTE) FindDevice(serialNumber uint32) (*types.Device, error)

func (*UHPPOTE) FindDevices

func (u *UHPPOTE) FindDevices() ([]types.Device, error)

func (*UHPPOTE) GetCardByID

func (u *UHPPOTE) GetCardByID(serialNumber, cardNumber uint32) (*types.Card, error)

func (*UHPPOTE) GetCardByIndex

func (u *UHPPOTE) GetCardByIndex(serialNumber, index uint32) (*types.Card, error)

func (*UHPPOTE) GetCards

func (u *UHPPOTE) GetCards(serialNumber uint32) (*types.RecordCount, error)

func (*UHPPOTE) GetDoorControlState

func (u *UHPPOTE) GetDoorControlState(serialNumber uint32, door byte) (*types.DoorControlState, error)

func (*UHPPOTE) GetEvent

func (u *UHPPOTE) GetEvent(serialNumber, index uint32) (*types.Event, error)

func (*UHPPOTE) GetEventIndex

func (u *UHPPOTE) GetEventIndex(serialNumber uint32) (*types.EventIndex, error)

func (*UHPPOTE) GetListener

func (u *UHPPOTE) GetListener(serialNumber uint32) (*types.Listener, error)

func (*UHPPOTE) GetStatus

func (u *UHPPOTE) GetStatus(serialNumber uint32) (*types.Status, error)

func (*UHPPOTE) GetTime

func (u *UHPPOTE) GetTime(serialNumber uint32) (*types.Time, error)

func (*UHPPOTE) Listen

func (u *UHPPOTE) Listen(listener Listener, q chan os.Signal) error

func (*UHPPOTE) OpenDoor

func (u *UHPPOTE) OpenDoor(serialNumber uint32, door uint8) (*types.Result, error)

func (*UHPPOTE) PutCard

func (u *UHPPOTE) PutCard(serialNumber uint32, card types.Card) (*types.Result, error)

func (*UHPPOTE) Send

func (u *UHPPOTE) Send(serialNumber uint32, request interface{}) (messages.Response, error)

func (*UHPPOTE) SetAddress

func (u *UHPPOTE) SetAddress(serialNumber uint32, address, mask, gateway net.IP) (*types.Result, error)

func (*UHPPOTE) SetDoorControlState

func (u *UHPPOTE) SetDoorControlState(serialNumber uint32, door uint8, state uint8, delay uint8) (*types.DoorControlState, error)

func (*UHPPOTE) SetEventIndex

func (u *UHPPOTE) SetEventIndex(serialNumber, index uint32) (*types.EventIndexResult, error)

func (*UHPPOTE) SetListener

func (u *UHPPOTE) SetListener(serialNumber uint32, address net.UDPAddr) (*types.Result, error)

func (*UHPPOTE) SetTime

func (u *UHPPOTE) SetTime(serialNumber uint32, datetime time.Time) (*types.Time, error)

Directories

Path Synopsis
encoding
bcd

Jump to

Keyboard shortcuts

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