mqtt

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MessageHandler

func MessageHandler(Topic string, Payload []byte) error

Types

type InstanceConfig

type InstanceConfig struct {
	Model models.MQTT

	URL string `mapstructure:"url"`

	// UnitID 是从站地址(0~247),为 0 时使用库默认值(一般是 1)
	// UnitID is the slave/unit ID (0~247). 0 means "leave library default" (often 1).
	UnitID uint8 `mapstructure:"unit_id"`

	// Timeout 是单次请求超时(例如 "1s")
	// Timeout is per-request timeout (e.g. "1s").
	Timeout time.Duration `mapstructure:"timeout"`

	// StartAddr 是起始寄存器地址
	// StartAddr is the starting register address.
	StartAddr uint16 `mapstructure:"start_addr"`

	// Quantity 是读取的寄存器数量
	// Quantity is the number of registers to read.
	Quantity uint16 `mapstructure:"quantity"`

	// RegType 寄存器类型:
	//   - "holding" => modbus.HOLDING_REGISTER
	//   - "input"   => modbus.INPUT_REGISTER
	//
	// RegType indicates which register type to read:
	//   - "holding" => modbus.HOLDING_REGISTER
	//   - "input"   => modbus.INPUT_REGISTER
	RegType string `mapstructure:"reg_type"`
}

ModbusConfig:单个 modbus 实例的配置 ModbusConfig: configuration for a single modbus instance.

type Message

type Message struct {
	T    string         `json:"t"`
	Data map[string]any `json:"data"`
}

type ModbusFactory

type ModbusFactory struct{}

ModbusFactory:实现 Factory 接口 ModbusFactory: implements pluginapi.Factory.

func (*ModbusFactory) New

New:根据配置创建实例(真正启动在 Init 中完成) New: create an instance from config (real start happens in Init).

func (*ModbusFactory) Type

func (f *ModbusFactory) Type() string

type ModbusInstance

type ModbusInstance struct {
	Status models.InstanceStatus
	// contains filtered or unexported fields
}

ModbusInstance:具体插件实例,实现 pluginapi.Instance ModbusInstance: concrete plugin instance implementing pluginapi.Instance.

func (*ModbusInstance) Close

func (m *ModbusInstance) Close() error

Close:停止轮询、关闭 client Close: stop poller and close client.

func (*ModbusInstance) Get

func (m *ModbusInstance) Get() any

func (*ModbusInstance) ID

func (m *ModbusInstance) ID() string

func (*ModbusInstance) Init

func (m *ModbusInstance) Init(parent context.Context, env *pluginapi.HostEnv) error

Init:用 parent ctx + HostEnv 初始化实例并启动轮询协程 Init: initialize instance with parent ctx + HostEnv and start poller goroutine.

func (*ModbusInstance) Type

func (m *ModbusInstance) Type() string

func (*ModbusInstance) UpdateConfig

func (m *ModbusInstance) UpdateConfig(raw pluginapi.InstanceConfig) error

UpdateConfig:支持运行时配置更新(包括 URL、端口等),必要时重启 Modbus 客户端 UpdateConfig: support runtime config updates (including URL/port), restarting client if needed.

Jump to

Keyboard shortcuts

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