device

package
v0.6.3 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2023 License: AGPL-3.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DEFAULT_DB_PATH string = "./rulex.db"
)

Variables

Functions

func LoadDt

func LoadDt()

* * 加载系统内支持的设备类型 *

func NewAISDeviceMaster added in v0.6.3

func NewAISDeviceMaster(e typex.RuleX) typex.XDevice

* * AIS 数据解析服务器 *

func NewCustomProtocolDevice

func NewCustomProtocolDevice(e typex.RuleX) typex.XDevice

func NewGenericBacnetIpDevice added in v0.6.1

func NewGenericBacnetIpDevice(e typex.RuleX) typex.XDevice

func NewGenericModbusDevice

func NewGenericModbusDevice(e typex.RuleX) typex.XDevice

* * 温湿度传感器 *

func NewGenericModbusExcelDevice added in v0.6.1

func NewGenericModbusExcelDevice(e typex.RuleX) typex.XDevice

* * 温湿度传感器 *

func NewGenericOpcuaDevice

func NewGenericOpcuaDevice(e typex.RuleX) typex.XDevice

func NewGenericSnmpDevice

func NewGenericSnmpDevice(e typex.RuleX) typex.XDevice

Example: 0x02 0x92 0xFF 0x98

* * 温湿度传感器 *

func NewGenericUartDevice

func NewGenericUartDevice(e typex.RuleX) typex.XDevice

* * 通用串口透传 *

func NewIRDevice added in v0.6.3

func NewIRDevice(e typex.RuleX) typex.XDevice

func NewIcmpSender

func NewIcmpSender(e typex.RuleX) typex.XDevice

Example: 0x02 0x92 0xFF 0x98

* * 温湿度传感器 *

func NewRtu485Ther

func NewRtu485Ther(e typex.RuleX) typex.XDevice

Example: 0x02 0x92 0xFF 0x98

* * 温湿度传感器 *

func NewS1200plc

func NewS1200plc(e typex.RuleX) typex.XDevice

* * 西门子 S1200 系列 PLC *

func NewTS200Sensor

func NewTS200Sensor(e typex.RuleX) typex.XDevice

* * TSS200环境传感器 *

func NewUsrG776DTU

func NewUsrG776DTU(e typex.RuleX) typex.XDevice

* * 有人4G DTU *

func NewVideoCamera

func NewVideoCamera(e typex.RuleX) typex.XDevice

func NewYK8Controller

func NewYK8Controller(e typex.RuleX) typex.XDevice

* * 8路继电器 *

Types

type AISDeviceMaster added in v0.6.3

type AISDeviceMaster struct {
	typex.XStatus

	RuleEngine typex.RuleX

	// session
	DevicesSessionMap map[string]*AISDeviceSession
	// contains filtered or unexported fields
}

func (*AISDeviceMaster) Details added in v0.6.3

func (aism *AISDeviceMaster) Details() *typex.Device

真实设备

func (*AISDeviceMaster) Driver added in v0.6.3

func (aism *AISDeviceMaster) Driver() typex.XExternalDriver

驱动

func (*AISDeviceMaster) Init added in v0.6.3

func (aism *AISDeviceMaster) Init(devId string, configMap map[string]interface{}) error

 初始化

func (*AISDeviceMaster) OnCtrl added in v0.6.3

func (aism *AISDeviceMaster) OnCtrl(cmd []byte, args []byte) ([]byte, error)

* * OnCtrl 接口可以用来向外广播数据 *

func (*AISDeviceMaster) OnDCACall added in v0.6.3

func (aism *AISDeviceMaster) OnDCACall(UUID string, Command string, Args interface{}) typex.DCAResult

func (*AISDeviceMaster) OnRead added in v0.6.3

func (aism *AISDeviceMaster) OnRead(cmd []byte, data []byte) (int, error)

从设备里面读数据出来

func (*AISDeviceMaster) OnWrite added in v0.6.3

func (aism *AISDeviceMaster) OnWrite(cmd []byte, _ []byte) (int, error)

把数据写入设备

func (*AISDeviceMaster) Property added in v0.6.3

func (aism *AISDeviceMaster) Property() []typex.DeviceProperty

设备属性,是一系列属性描述

func (*AISDeviceMaster) SetState added in v0.6.3

func (aism *AISDeviceMaster) SetState(status typex.DeviceState)

状态

func (*AISDeviceMaster) Start added in v0.6.3

func (aism *AISDeviceMaster) Start(cctx typex.CCTX) error

启动

func (*AISDeviceMaster) Status added in v0.6.3

func (aism *AISDeviceMaster) Status() typex.DeviceState

设备当前状态

func (*AISDeviceMaster) Stop added in v0.6.3

func (aism *AISDeviceMaster) Stop()

停止设备

type AISDeviceSession added in v0.6.3

type AISDeviceSession struct {
	SN        string   // 注册包里的序列号, 必须是:SN-$AA-$BB-$CC-$DD
	Ip        string   // 注册包里的序列号
	Transport net.Conn // TCP连接
}

* * 等待认证: 传感器发送的第一个包必须为ID, 最大不能超过64字节 * 注意:Auth只针对AIS主机,来自AIS的数据只解析不做验证 *

type AuthType

type AuthType string

Auth 认证模式 枚举

const (
	AUTH_ANONYMOUS AuthType = "Anonymous"
	AUTH_USERNAME  AuthType = "UserName"
)

type BacnetIpConfig added in v0.6.1

type BacnetIpConfig struct {
	CommonConfig bacnetIpCommonConfig `json:"commonConfig"`
	NodeConfig   []bacnetIpNodeConfig `json:"nodeConfig"`
}

type CustomProtocolDevice

type CustomProtocolDevice struct {
	typex.XStatus

	RuleEngine typex.RuleX
	// contains filtered or unexported fields
}

func (*CustomProtocolDevice) Details

func (mdev *CustomProtocolDevice) Details() *typex.Device

真实设备

func (*CustomProtocolDevice) Driver

驱动

func (*CustomProtocolDevice) Init

func (mdev *CustomProtocolDevice) Init(devId string, configMap map[string]interface{}) error

初始化

func (*CustomProtocolDevice) OnCtrl

func (mdev *CustomProtocolDevice) OnCtrl(cmd []byte, _ []byte) ([]byte, error)

* * 外部指令交互, 常用来实现自定义协议等 *

func (*CustomProtocolDevice) OnDCACall

func (mdev *CustomProtocolDevice) OnDCACall(_ string, Command string,
	Args interface{}) typex.DCAResult

* * 设备服务调用 *

func (*CustomProtocolDevice) OnRead

func (mdev *CustomProtocolDevice) OnRead(cmd []byte, data []byte) (int, error)

* * 数据读出来,对数据结构有要求, 其中Key必须是个数字或者数字字符串, 例如 1 or "1" *

func (*CustomProtocolDevice) OnWrite

func (mdev *CustomProtocolDevice) OnWrite(cmd []byte, data []byte) (int, error)

把数据写入设备

func (*CustomProtocolDevice) Property

func (mdev *CustomProtocolDevice) Property() []typex.DeviceProperty

设备属性,是一系列属性描述

func (*CustomProtocolDevice) SetState

func (mdev *CustomProtocolDevice) SetState(status typex.DeviceState)

状态

func (*CustomProtocolDevice) Start

func (mdev *CustomProtocolDevice) Start(cctx typex.CCTX) error

启动

func (*CustomProtocolDevice) Status

func (mdev *CustomProtocolDevice) Status() typex.DeviceState

设备当前状态

func (*CustomProtocolDevice) Stop

func (mdev *CustomProtocolDevice) Stop()

停止设备

type GenericBacnetIpDevice added in v0.6.1

type GenericBacnetIpDevice struct {
	typex.XStatus

	RuleEngine typex.RuleX
	// contains filtered or unexported fields
}

func (*GenericBacnetIpDevice) Details added in v0.6.1

func (dev *GenericBacnetIpDevice) Details() *typex.Device

func (*GenericBacnetIpDevice) Driver added in v0.6.1

func (*GenericBacnetIpDevice) Init added in v0.6.1

func (dev *GenericBacnetIpDevice) Init(devId string, configMap map[string]interface{}) error

func (*GenericBacnetIpDevice) OnCtrl added in v0.6.1

func (dev *GenericBacnetIpDevice) OnCtrl(cmd []byte, args []byte) ([]byte, error)

func (*GenericBacnetIpDevice) OnDCACall added in v0.6.1

func (dev *GenericBacnetIpDevice) OnDCACall(UUID string, Command string, Args interface{}) typex.DCAResult

func (*GenericBacnetIpDevice) OnRead added in v0.6.1

func (dev *GenericBacnetIpDevice) OnRead(cmd []byte, data []byte) (int, error)

func (*GenericBacnetIpDevice) OnWrite added in v0.6.1

func (dev *GenericBacnetIpDevice) OnWrite(cmd []byte, data []byte) (int, error)

func (*GenericBacnetIpDevice) Property added in v0.6.1

func (dev *GenericBacnetIpDevice) Property() []typex.DeviceProperty

func (*GenericBacnetIpDevice) SetState added in v0.6.1

func (dev *GenericBacnetIpDevice) SetState(state typex.DeviceState)

func (*GenericBacnetIpDevice) Start added in v0.6.1

func (dev *GenericBacnetIpDevice) Start(cctx typex.CCTX) error

func (*GenericBacnetIpDevice) Status added in v0.6.1

func (dev *GenericBacnetIpDevice) Status() typex.DeviceState

func (*GenericBacnetIpDevice) Stop added in v0.6.1

func (dev *GenericBacnetIpDevice) Stop()

type IR added in v0.6.3

type IR struct {
	typex.XStatus

	// irFd       syscall.Handle windows
	RuleEngine typex.RuleX
	// contains filtered or unexported fields
}

* * 红外线接收模块 $ ir-keytable Found /sys/class/rc/rc0/ (/dev/input/event1) with:

Name: sunxi-ir
Driver: sunxi-ir, table: rc-empty
lirc device: /dev/lirc0
Supported protocols: other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
Enabled protocols: lirc nec
bus: 25, vendor/product: 0001:0001, version: 0x0100
Repeat delay = 500 ms, repeat period = 125 ms

func (*IR) Details added in v0.6.3

func (ird *IR) Details() *typex.Device

真实设备

func (*IR) Driver added in v0.6.3

func (ird *IR) Driver() typex.XExternalDriver

驱动

func (*IR) Init added in v0.6.3

func (ird *IR) Init(devId string, configMap map[string]interface{}) error

 初始化

func (*IR) OnCtrl added in v0.6.3

func (ird *IR) OnCtrl(cmd []byte, args []byte) ([]byte, error)

func (*IR) OnDCACall added in v0.6.3

func (ird *IR) OnDCACall(UUID string, Command string, Args interface{}) typex.DCAResult

func (*IR) OnRead added in v0.6.3

func (ird *IR) OnRead(cmd []byte, data []byte) (int, error)

* * 不支持读, 仅仅是个数据透传 *

func (*IR) OnWrite added in v0.6.3

func (ird *IR) OnWrite(cmd []byte, b []byte) (int, error)

func (*IR) Property added in v0.6.3

func (ird *IR) Property() []typex.DeviceProperty

设备属性,是一系列属性描述

func (*IR) SetState added in v0.6.3

func (ird *IR) SetState(status typex.DeviceState)

状态

func (*IR) Start added in v0.6.3

func (ird *IR) Start(cctx typex.CCTX) error

启动

func (*IR) Status added in v0.6.3

func (ird *IR) Status() typex.DeviceState

设备当前状态

func (*IR) Stop added in v0.6.3

func (ird *IR) Stop()

停止设备

type IcmpSender

type IcmpSender struct {
	typex.XStatus

	RuleEngine typex.RuleX
	// contains filtered or unexported fields
}

func (*IcmpSender) Details

func (sender *IcmpSender) Details() *typex.Device

真实设备

func (*IcmpSender) Driver

func (sender *IcmpSender) Driver() typex.XExternalDriver

驱动

func (*IcmpSender) Init

func (sender *IcmpSender) Init(devId string, configMap map[string]interface{}) error

 初始化

func (*IcmpSender) OnCtrl

func (sender *IcmpSender) OnCtrl(cmd []byte, args []byte) ([]byte, error)

func (*IcmpSender) OnDCACall

func (sender *IcmpSender) OnDCACall(UUID string, Command string, Args interface{}) typex.DCAResult

func (*IcmpSender) OnRead

func (sender *IcmpSender) OnRead(cmd []byte, data []byte) (int, error)

从设备里面读数据出来

func (*IcmpSender) OnWrite

func (sender *IcmpSender) OnWrite(cmd []byte, _ []byte) (int, error)

把数据写入设备

func (*IcmpSender) Property

func (sender *IcmpSender) Property() []typex.DeviceProperty

设备属性,是一系列属性描述

func (*IcmpSender) SetState

func (sender *IcmpSender) SetState(status typex.DeviceState)

状态

func (*IcmpSender) Start

func (sender *IcmpSender) Start(cctx typex.CCTX) error

启动

func (*IcmpSender) Status

func (sender *IcmpSender) Status() typex.DeviceState

设备当前状态

func (*IcmpSender) Stop

func (sender *IcmpSender) Stop()

停止设备

type OpcuaNode

type OpcuaNode struct {
	Tag         string `json:"tag" validate:"required" title:"数据Tag" info:""`
	Description string `json:"description" validate:"required"`
	NodeID      string `json:"nodeId" validate:"required" title:"NodeID" example:"ns=1;s=Test"`
	DataType    string `json:"dataType" title:"数据类型" tag:"String" info:""`
	Value       string `json:"value" title:"值" info:"从OPCUA获取的值"` //不需要配置
}

type PolicyFlag

type PolicyFlag string
const (
	POLICY_NONE           PolicyFlag = "None"
	POLICY_BASIC128RSA15  PolicyFlag = "Basic128Rsa15"
	POLICY_BASIC256       PolicyFlag = "Basic256"
	POLICY_BASIC256SHA256 PolicyFlag = "Basic256Sha256"
)

type SecurityMode

type SecurityMode string
const (
	MODE_NONE             SecurityMode = "None"
	MODE_SIGN             SecurityMode = "Sign"
	MODE_SIGN_AND_ENCRYPT SecurityMode = "SignAndEncrypt"
)

type UsrG776DTU

type UsrG776DTU struct {
	typex.XStatus

	RuleEngine typex.RuleX
	// contains filtered or unexported fields
}

这是有人G776型号的4G DTU模块,主要用来TCP远程透传数据, 实际上就是个很普通的串口读写程序 详细文档: https://www.usr.cn/Download/806.html

func (*UsrG776DTU) Details

func (uart *UsrG776DTU) Details() *typex.Device

真实设备

func (*UsrG776DTU) Driver

func (uart *UsrG776DTU) Driver() typex.XExternalDriver

驱动

func (*UsrG776DTU) Init

func (uart *UsrG776DTU) Init(devId string, configMap map[string]interface{}) error

 初始化

func (*UsrG776DTU) OnCtrl

func (uart *UsrG776DTU) OnCtrl(cmd []byte, args []byte) ([]byte, error)

func (*UsrG776DTU) OnDCACall

func (uart *UsrG776DTU) OnDCACall(UUID string, Command string, Args interface{}) typex.DCAResult

func (*UsrG776DTU) OnRead

func (uart *UsrG776DTU) OnRead(cmd []byte, data []byte) (int, error)

* * 不支持读, 仅仅是个数据透传DTU *

func (*UsrG776DTU) OnWrite

func (uart *UsrG776DTU) OnWrite(cmd []byte, b []byte) (int, error)

* * 有人G776-DTU写入串口的数据会被不加修改的透传到上层 * rulexlib:DataToUsrG776DTU("uuid", "DATA", "data-....") *

func (*UsrG776DTU) Property

func (uart *UsrG776DTU) Property() []typex.DeviceProperty

设备属性,是一系列属性描述

func (*UsrG776DTU) SetState

func (uart *UsrG776DTU) SetState(status typex.DeviceState)

状态

func (*UsrG776DTU) Start

func (uart *UsrG776DTU) Start(cctx typex.CCTX) error

启动

func (*UsrG776DTU) Status

func (uart *UsrG776DTU) Status() typex.DeviceState

设备当前状态

func (*UsrG776DTU) Stop

func (uart *UsrG776DTU) Stop()

停止设备

type YK8Controller

type YK8Controller struct {
	typex.XStatus

	RuleEngine typex.RuleX
	// contains filtered or unexported fields
}

func (*YK8Controller) Details

func (yk8 *YK8Controller) Details() *typex.Device

真实设备

func (*YK8Controller) Driver

func (yk8 *YK8Controller) Driver() typex.XExternalDriver

驱动

func (*YK8Controller) Init

func (yk8 *YK8Controller) Init(devId string, configMap map[string]interface{}) error

 初始化

func (*YK8Controller) OnCtrl

func (yk8 *YK8Controller) OnCtrl(cmd []byte, args []byte) ([]byte, error)

func (*YK8Controller) OnDCACall

func (yk8 *YK8Controller) OnDCACall(UUID string, Command string, Args interface{}) typex.DCAResult

func (*YK8Controller) OnRead

func (yk8 *YK8Controller) OnRead(cmd []byte, data []byte) (int, error)

从设备里面读数据出来

func (*YK8Controller) OnWrite

func (yk8 *YK8Controller) OnWrite(cmd []byte, b []byte) (int, error)

把数据写入设备

func (*YK8Controller) Property

func (yk8 *YK8Controller) Property() []typex.DeviceProperty

设备属性,是一系列属性描述

func (*YK8Controller) SetState

func (yk8 *YK8Controller) SetState(status typex.DeviceState)

状态

func (*YK8Controller) Start

func (yk8 *YK8Controller) Start(cctx typex.CCTX) error

启动

func (*YK8Controller) Status

func (yk8 *YK8Controller) Status() typex.DeviceState

设备当前状态

func (*YK8Controller) Stop

func (yk8 *YK8Controller) Stop()

停止设备

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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