internal

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2025 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CRC16

func CRC16(bs []byte) uint16

CRC16 Calculate Cyclical Redundancy Checking.

func Startup

func Startup() error

Types

type Action added in v0.3.2

type Action struct {
	Name      string      `json:"name,omitempty"`
	Label     string      `json:"label,omitempty"`
	Operators []*Operator `json:"operators,omitempty"`
}

type Device

type Device struct {
	Id        string `json:"id,omitempty" xorm:"pk"`
	ProductId string `json:"product_id,omitempty"`
	Slave     uint8  `json:"slave,omitempty"` //从站号
	// contains filtered or unexported fields
}

func (*Device) Action added in v0.3.2

func (d *Device) Action(name string, args map[string]any) error

func (*Device) Get

func (d *Device) Get(key string) (any, error)

func (*Device) Poll

func (d *Device) Poll() (map[string]any, error)

func (*Device) Set

func (d *Device) Set(key string, value any) error

type Manager added in v0.3.0

type Manager struct {
	// contains filtered or unexported fields
}

func (*Manager) Close added in v0.3.0

func (m *Manager) Close(link_id string) error

func (*Manager) Create added in v0.3.0

func (m *Manager) Create(linker, link_id string, options []byte, writer protocol.WriteLinkFunc) (protocol.Master, error)

func (*Manager) Get added in v0.3.0

func (m *Manager) Get(link_id string) protocol.Master

func (*Manager) Model added in v0.5.2

func (m *Manager) Model(product_id string, model *product.ProductModel)

type Mapper added in v0.1.2

type Mapper struct {
	Coils            []*protocol.PointBit  `json:"coils,omitempty"`
	DiscreteInputs   []*protocol.PointBit  `json:"discrete_inputs,omitempty"`
	HoldingRegisters []*protocol.PointWord `json:"holding_registers,omitempty"`
	InputRegisters   []*protocol.PointWord `json:"input_registers,omitempty"`
}

func (*Mapper) Lookup added in v0.1.2

func (p *Mapper) Lookup(name string) (pt protocol.Point, code uint8, address uint16, size uint16)

func (*Mapper) LookupRead added in v0.5.7

func (p *Mapper) LookupRead(name string) (pt protocol.Point, code uint8, address uint16, size uint16)

func (*Mapper) LookupWrite added in v0.5.7

func (p *Mapper) LookupWrite(name string) (pt protocol.Point, code uint8, address uint16, size uint16)

type ModbusConfig added in v0.1.3

type ModbusConfig struct {
	Timeout uint      `json:"timeout,omitempty"`
	Mapper  Mapper    `json:"mapper,omitempty"`
	Pollers []Poller  `json:"pollers,omitempty"`
	Actions []*Action `json:"actions,omitempty"` //TODO 需要从物模型中整合
}

type ModbusMaster

type ModbusMaster struct {
	*Options

	//Id         string
	Linker string
	LinkId string
	// contains filtered or unexported fields
}

ModbusMaster modbus主站

func (*ModbusMaster) Close

func (m *ModbusMaster) Close() error

func (*ModbusMaster) GetDevice

func (m *ModbusMaster) GetDevice(id string) *Device

func (*ModbusMaster) OnAction added in v0.3.2

func (m *ModbusMaster) OnAction(request *protocol.ActionRequest) (*protocol.ActionResponse, error)

func (*ModbusMaster) OnAttach added in v0.4.0

func (m *ModbusMaster) OnAttach(payload []byte)

func (*ModbusMaster) OnData added in v0.3.0

func (m *ModbusMaster) OnData(buf []byte)

func (*ModbusMaster) OnDetach added in v0.4.0

func (m *ModbusMaster) OnDetach(payload []byte)

func (*ModbusMaster) OnRead added in v0.3.2

func (m *ModbusMaster) OnRead(request *protocol.ReadRequest) (*protocol.ReadResponse, error)

func (*ModbusMaster) OnSync added in v0.3.2

func (m *ModbusMaster) OnSync(request *protocol.SyncRequest) (*protocol.SyncResponse, error)

func (*ModbusMaster) OnWrite added in v0.3.2

func (m *ModbusMaster) OnWrite(request *protocol.WriteRequest) (*protocol.WriteResponse, error)

func (*ModbusMaster) Open

func (m *ModbusMaster) Open() error

func (*ModbusMaster) Read

func (m *ModbusMaster) Read(slave, code uint8, offset uint16, length uint16) ([]byte, error)

func (*ModbusMaster) Write

func (m *ModbusMaster) Write(slave, code uint8, offset uint16, value []byte) error

type Operator added in v0.3.2

type Operator struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"` //表达式
	Delay int64  `json:"delay,omitempty"` //延时
}

type Options added in v0.1.2

type Options struct {
	Tcp             bool  `json:"tcp,omitempty"`              //TCP模式,默认RTU
	Timeout         int64 `json:"timeout,omitempty"`          //读取超时
	Polling         bool  `json:"polling,omitempty"`          //开启轮询
	PollingInterval int64 `json:"polling_interval,omitempty"` //轮询间隔(s)
}

type Poller

type Poller struct {
	Code    uint8  `json:"code"`    //功能码 1 2 3 4
	Address uint16 `json:"address"` //地址
	Length  uint16 `json:"length"`  //长度
}

func (*Poller) Parse

func (p *Poller) Parse(mappers *Mapper, buf []byte, values map[string]any) error

type Pollers

type Pollers struct {
	Crontab  string    `json:"crontab,omitempty"`  //定时读取
	Interval uint      `json:"interval,omitempty"` //轮询间隔
	Timeout  uint      `json:"timeout,omitempty"`  //读取超时
	Pollers  []*Poller `json:"pollers"`            //轮询表
}

type Station added in v0.1.2

type Station struct {
	Slave uint8 `json:"slave,omitempty"` //从站号
}

type Token

type Token struct {
	C chan struct{}
	// contains filtered or unexported fields
}

func NewToken

func NewToken() *Token

func (*Token) Close

func (t *Token) Close()

func (*Token) Put

func (t *Token) Put(data []byte, err error)

func (*Token) Wait

func (t *Token) Wait() ([]byte, error)

func (*Token) WaitBk

func (t *Token) WaitBk() ([]byte, error)

func (*Token) WaitTimeout

func (t *Token) WaitTimeout(dur time.Duration) ([]byte, error)

Jump to

Keyboard shortcuts

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