mbus

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: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ExampleHook

type ExampleHook struct {
	mqtt.HookBase
	// contains filtered or unexported fields
}

func (*ExampleHook) ID

func (h *ExampleHook) ID() string

func (*ExampleHook) Init

func (h *ExampleHook) Init(config any) error

func (*ExampleHook) OnConnect

func (h *ExampleHook) OnConnect(cl *mqtt.Client, pk packets.Packet) error

func (*ExampleHook) OnDisconnect

func (h *ExampleHook) OnDisconnect(cl *mqtt.Client, err error, expire bool)

func (*ExampleHook) OnPublish

func (h *ExampleHook) OnPublish(cl *mqtt.Client, pk packets.Packet) (packets.Packet, error)

func (*ExampleHook) OnPublished

func (h *ExampleHook) OnPublished(cl *mqtt.Client, pk packets.Packet)

func (*ExampleHook) OnSubscribed

func (h *ExampleHook) OnSubscribed(cl *mqtt.Client, pk packets.Packet, reasonCodes []byte)

func (*ExampleHook) OnUnsubscribed

func (h *ExampleHook) OnUnsubscribed(cl *mqtt.Client, pk packets.Packet)

func (*ExampleHook) Provides

func (h *ExampleHook) Provides(b byte) bool

type ExampleHookOptions

type ExampleHookOptions struct {
	Server *mqtt.Server
}

Options contains configuration settings for the hook.

type InstanceConfig

type InstanceConfig struct {
	IsSerial bool
	Timeout  time.Duration // Timeout 是单次请求超时(例如 "1s") Timeout is per-request timeout (e.g. "1s").
	Channel  models.Channel
	Serial   models.Serial

	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"`

	// 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 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