acnode

package
v0.0.0-...-1eee0f7 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2022 License: BSD-3-Clause Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NodeTypeTool    = iota
	NodeTypeDoor    = iota
	NodeTypePrinter = iota
)

Variables

View Source
var NodeNotFound = errors.New("node not found")

Functions

func NodeTypeIsTool

func NodeTypeIsTool(t int) bool

func NodeTypeToString

func NodeTypeToString(t int) string

Types

type ACNode

type ACNode interface {
	GetId() int
	SetId(id int)
	GetType() int
	GetInService() bool
	SetInService(inService bool)
	GetName() string
	SetName(name string)
	GetMqttName() string
	SetType(t int)
	SetMemoryStats(free int, used int)
	SetVersion(ver string)
	GetLastSeen() time.Time
	GetLastSeenAPI() time.Time
	SetLastSeenAPI(t time.Time)
	GetLastSeenMQTT() time.Time
	SetLastSeenMQTT(t time.Time)
	GetLastStarted() time.Time
	SetLastStarted(t time.Time)
	SetStatusMessage(m string)
	GetAPIRecord() apitypes.ACNode
	SetSettingsVersion(ver int)
	SetEepromSettingsVersion(ver int)
	SetResetCause(rstc string)
	GetPrinterStatus() *PrinterStatus
	GetIsTransient() bool
	SetIsTransient(transient bool)
	GetInUse() bool
	SetInUse(inuse bool)
}

type ACNodeHandler

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

func CreateACNodeHandler

func CreateACNodeHandler(persistence NodePersistence) ACNodeHandler

func (*ACNodeHandler) AddListener

func (h *ACNodeHandler) AddListener(l *HandlerListener)

func (*ACNodeHandler) AddNode

func (h *ACNodeHandler) AddNode(node ACNodeRec)

func (*ACNodeHandler) GetNodeByMqttName

func (h *ACNodeHandler) GetNodeByMqttName(name string) ACNode

func (*ACNodeHandler) GetNodes

func (h *ACNodeHandler) GetNodes() []ACNode

func (*ACNodeHandler) OnNodeUpdate

func (h *ACNodeHandler) OnNodeUpdate(node ACNode)

func (*ACNodeHandler) RemoveListener

func (h *ACNodeHandler) RemoveListener(l *HandlerListener)

type ACNodeRec

type ACNodeRec struct {
	Id        int
	Name      string
	MqttName  string
	NodeType  int
	InService bool
	InUse     bool

	// last known status
	LastSeen     time.Time // old LastSeen field
	LastSeenMQTT time.Time
	LastSeenAPI  time.Time

	LastStarted   time.Time
	MemFree       int
	MemUsed       int
	StatusMessage string
	Version       string

	SettingsVersion       int
	EEPROMSettingsVersion int
	ResetCause            string

	Transient bool

	PrinterStatus *PrinterStatus
	// contains filtered or unexported fields
}

func (*ACNodeRec) GetAPIRecord

func (node *ACNodeRec) GetAPIRecord() apitypes.ACNode

func (*ACNodeRec) GetId

func (node *ACNodeRec) GetId() int

func (*ACNodeRec) GetInService

func (node *ACNodeRec) GetInService() bool

func (*ACNodeRec) GetInUse

func (node *ACNodeRec) GetInUse() bool

func (*ACNodeRec) GetIsTransient

func (node *ACNodeRec) GetIsTransient() bool

func (*ACNodeRec) GetLastSeen

func (node *ACNodeRec) GetLastSeen() time.Time

func (*ACNodeRec) GetLastSeenAPI

func (node *ACNodeRec) GetLastSeenAPI() time.Time

func (*ACNodeRec) GetLastSeenMQTT

func (node *ACNodeRec) GetLastSeenMQTT() time.Time

func (*ACNodeRec) GetLastStarted

func (node *ACNodeRec) GetLastStarted() time.Time

func (*ACNodeRec) GetMqttName

func (node *ACNodeRec) GetMqttName() string

func (*ACNodeRec) GetName

func (node *ACNodeRec) GetName() string

func (*ACNodeRec) GetPrinterStatus

func (node *ACNodeRec) GetPrinterStatus() *PrinterStatus

func (*ACNodeRec) GetType

func (node *ACNodeRec) GetType() int

func (*ACNodeRec) SetEepromSettingsVersion

func (node *ACNodeRec) SetEepromSettingsVersion(ver int)

func (*ACNodeRec) SetId

func (node *ACNodeRec) SetId(id int)

func (*ACNodeRec) SetInService

func (node *ACNodeRec) SetInService(inService bool)

func (*ACNodeRec) SetInUse

func (node *ACNodeRec) SetInUse(inuse bool)

func (*ACNodeRec) SetIsTransient

func (node *ACNodeRec) SetIsTransient(transient bool)

func (*ACNodeRec) SetLastSeenAPI

func (node *ACNodeRec) SetLastSeenAPI(t time.Time)

func (*ACNodeRec) SetLastSeenMQTT

func (node *ACNodeRec) SetLastSeenMQTT(t time.Time)

func (*ACNodeRec) SetLastStarted

func (node *ACNodeRec) SetLastStarted(t time.Time)

func (*ACNodeRec) SetMemoryStats

func (node *ACNodeRec) SetMemoryStats(free int, used int)

func (*ACNodeRec) SetName

func (node *ACNodeRec) SetName(name string)

func (*ACNodeRec) SetResetCause

func (node *ACNodeRec) SetResetCause(rstc string)

func (*ACNodeRec) SetSettingsVersion

func (node *ACNodeRec) SetSettingsVersion(ver int)

func (*ACNodeRec) SetStatusMessage

func (node *ACNodeRec) SetStatusMessage(m string)

func (*ACNodeRec) SetType

func (node *ACNodeRec) SetType(t int)

func (*ACNodeRec) SetVersion

func (node *ACNodeRec) SetVersion(ver string)

type Announcement

type Announcement struct {
	Type string `json:"Type"`

	// RFID message
	Card    string `json:"Card,omitempty"`
	Granted int    `json:"Granted,omitempty"`

	// EXIT,WEDGED messages
	Message string `json:"Message,omitempty"`

	// EXIT message
	DoorbellAck bool `json:"doorbellack"`
}

type Bell

type Bell struct {
	Message string `json:"Message,omitempty"`
}

type HandlerListener

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

func CreateHandlerChangeListener

func CreateHandlerChangeListener(handler *ACNodeHandler, name string) *HandlerListener

func (*HandlerListener) Disconnect

func (sub *HandlerListener) Disconnect()

func (*HandlerListener) SetOnNodeAddedHandler

func (sub *HandlerListener) SetOnNodeAddedHandler(h func(ACNode))

func (*HandlerListener) SetOnNodeChangedHandler

func (sub *HandlerListener) SetOnNodeChangedHandler(h func(ACNode))

type MemoryNodePersistence

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

func (*MemoryNodePersistence) GetAllNodes

func (np *MemoryNodePersistence) GetAllNodes() ([]ACNodeRec, error)

func (*MemoryNodePersistence) GetNodeByMqttName

func (np *MemoryNodePersistence) GetNodeByMqttName(name string) (*ACNodeRec, error)

func (*MemoryNodePersistence) StoreNode

func (np *MemoryNodePersistence) StoreNode(node *ACNodeRec) (*ACNodeRec, error)

type NodePersistence

type NodePersistence interface {
	GetNodeByMqttName(name string) (*ACNodeRec, error)
	StoreNode(node *ACNodeRec) (*ACNodeRec, error)
	GetAllNodes() ([]ACNodeRec, error)
}

func CreateMemoryNodePersistence

func CreateMemoryNodePersistence() NodePersistence

func GetRedisNodePersistence

func GetRedisNodePersistence(redis *redis.Client) NodePersistence

type PrinterStatus

type PrinterStatus struct {
	MqttConneced bool

	// each status field has a value and a timestamp - this allows us to figure out which
	// topic has the newest information on it
	OctoprintConnected          bool
	OctoprintConnectedTimestamp uint64

	PrinterStatus          string
	PrinterStatusTimestamp uint64

	FirmwareVersion          string
	FirmwareVersionTimestamp uint64

	ZHeight          float32
	ZHeightTimestamp uint64

	PiUndervoltage      bool
	PiOverheat          bool
	PiThrottleTimestamp uint64

	HotendTemperature          float32
	HotendTemperatureTimestamp uint64

	BedTemperature          float32
	BedTemperatureTimestamp uint64
}

Tracks Octoprint status

func GetDefaultPrinterStatus

func GetDefaultPrinterStatus() *PrinterStatus

type RedisNodePersistence

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

func (*RedisNodePersistence) GetAllNodes

func (np *RedisNodePersistence) GetAllNodes() ([]ACNodeRec, error)

func (*RedisNodePersistence) GetNodeByMqttName

func (np *RedisNodePersistence) GetNodeByMqttName(name string) (*ACNodeRec, error)

func (*RedisNodePersistence) StoreNode

func (np *RedisNodePersistence) StoreNode(node *ACNodeRec) (*ACNodeRec, error)

type Status

type Status struct {
	Type string `json:"Type"`

	Message string    `json:"Message,omitempty"`
	Mem     StatusMem `json:"mem,omitempty"`

	// START message
	FWVersion             string `json:"Version,omitempty"`
	GitHash               string `json:"Git,omitempty"`
	SettingsVersion       int    `json:"SettingsVersion,omitempty"`
	EEPROMSettingsVersion int    `json:"EEPROMSettingsVersion,omitempty"`
	ResetCause            string `json:"Cause,omitempty"`
}

type StatusMem

type StatusMem struct {
	HeapFree int `json:"heap_free,omitempty"`
	HeapUsed int `json:"heap_used,omitempty"`
}

Jump to

Keyboard shortcuts

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