Files
dmxconnect/hardware/interfaces.go

31 lines
1.4 KiB
Go
Raw Normal View History

2024-12-15 13:45:46 +01:00
package hardware
import "context"
// Peripheral represents the methods used to manage a peripheral (input or output hardware)
type Peripheral interface {
Connect() error // Connect the peripheral
Disconnect() error // Disconnect the peripheral
Activate() error // Activate the peripheral
Deactivate() error // Deactivate the peripheral
SetDeviceProperty(uint32, uint32, byte) error // Update a device property
GetInfo() PeripheralInfo // Get the peripheral information
}
// PeripheralInfo represents a peripheral information
type PeripheralInfo struct {
2024-12-20 17:18:57 +01:00
Name string `yaml:"name"` // Name of the peripheral
SerialNumber string `yaml:"sn"` // S/N of the peripheral
ProtocolName string `yaml:"protocol"` // Protocol name of the peripheral
Settings []interface{} `yaml:"settings"` // Number of DMX universes handled by the peripheral
2024-12-15 13:45:46 +01:00
}
// PeripheralFinder represents how compatible peripheral finders are implemented
type PeripheralFinder interface {
2024-12-20 17:18:57 +01:00
Initialize() error // Initializes the protocol
GetName() string // Get the name of the finder
GetPeripheral(string) (Peripheral, bool) // Get the peripheral
Scan(context.Context) error // Scan for peripherals
2024-12-15 13:45:46 +01:00
}