serial

package
v1.2.5 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2025 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const ProtocolName = "serial"

Variables

This section is empty.

Functions

This section is empty.

Types

type Command

type Command struct {
	Mode        plugin.EncodeMode             // (必填)模式
	UUId        string                        //(必填)指令唯一标识
	OutputFrame string                        // (必填)输出帧
	Callback    func(inputFrame []byte) error //(必填)串口响应回调
}

type ConnectionConfig

type ConnectionConfig struct {
	plugin.BaseConnection
	Address     string `json:"address"`     // 地址:例如:127.0.0.1:502
	BaudRate    uint   `json:"baudRate"`    // 波特率(仅串口模式)
	DataBits    uint   `json:"dataBits"`    // 数据位(仅串口模式)
	StopBits    uint   `json:"stopBits"`    // 停止位(仅串口模式)
	Parity      string `json:"parity"`      // 奇偶性校验(仅串口模式)
	MinInterval uint16 `json:"minInterval"` // 最小读取间隔
	Timeout     uint16 `json:"timeout"`     // 请求超时
	Retry       int    `json:"retry"`       // 重试次数
}

type Connector

type Connector struct {
	Config *ConnectionConfig
	Plugin *Plugin

	Client serialPort
	// contains filtered or unexported fields
}

Connector 连接器

func (*Connector) Close

func (c *Connector) Close()

func (*Connector) Decode

func (c *Connector) Decode(raw interface{}) (res []plugin.DeviceData, err error)

Decode 解码数据

func (*Connector) Encode

func (c *Connector) Encode(deviceId string, mode plugin.EncodeMode, values ...plugin.PointData) (res interface{}, err error)

Encode 编码数据

func (*Connector) Release

func (c *Connector) Release() (err error)

Release 释放资源

func (*Connector) Send

func (c *Connector) Send(data interface{}) error

Send 发送数据

type Error

type Error string
const (
	ErrRequestTimedOut Error = "request timed out"
)

func (Error) Error

func (me Error) Error() (s string)

Error implements the error interface.

type Plugin

type Plugin struct {
	Config config.Config
	// contains filtered or unexported fields
}

Plugin 驱动插件

func NewPlugin

func NewPlugin(adapter ProtocolAdapter) *Plugin

func (*Plugin) Connector

func (p *Plugin) Connector(deviceId string) (conn plugin.Connector, err error)

Connector 连接器

func (*Plugin) Destroy

func (p *Plugin) Destroy() error

Destroy 销毁驱动插件

func (*Plugin) Initialize

func (p *Plugin) Initialize(logger *zap.Logger, c config.Config, ls *lua.LState)

Initialize 插件初始化

type ProtocolAdapter

type ProtocolAdapter interface {
	//初始化采集任务组
	InitTimerGroup(connector *Connector) []TimerGroup
	//执行采集任务
	ExecuteTimerGroup(group *TimerGroup) error

	SendCommand(cmd Command) error

	DriverBoxEncode(deviceId string, mode plugin.EncodeMode, values ...plugin.PointData) (res []Command, err error)
}

type TimerGroup

type TimerGroup struct {
	//采集组唯一ID
	UUID       string
	LatestTime time.Time
	//记录最近连续超时次数
	TimeOutCount int
	//采集间隔
	Duration time.Duration
	//关联设备ID
	Devices []string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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