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 { Name string // Name of the peripheral SerialNumber string // S/N of the peripheral ProtocolName string // Protocol name of the peripheral UniversesNumber int // Number of DMX universes handled by the peripheral } // PeripheralFinder represents how compatible peripheral finders are implemented type PeripheralFinder interface { Initialize() error // Initializes the protocol GetName() string // Get the name of the finder Scan(context.Context) error // Scan for peripherals }