model

package
v0.6.5 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2023 License: AGPL-3.0 Imports: 4 Imported by: 0

Documentation

Overview

Copyright (C) 2023 wwhai

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Index

Constants

This section is empty.

Variables

View Source

Functions

This section is empty.

Types

type MAiBase

type MAiBase struct {
	RulexModel
	UUID        string `gorm:"uniqueIndex"` // 名称
	Name        string `gorm:"not null"`    // 名称
	Type        string `gorm:"not null"`    // 类型
	IsBuildIn   bool   `gorm:"not null"`    // 是否内建
	Version     string `gorm:"not null"`    // 版本号
	Filepath    string `gorm:"not null"`    // 文件路径, 是相对于main的apps目录
	Description string `gorm:"not null"`
}

* * 用户上传的AI数据[v0.5.0] *

type MApp

type MApp struct {
	RulexModel
	UUID        string `gorm:"uniqueIndex"` // 名称
	Name        string `gorm:"not null"`    // 名称
	Version     string `gorm:"not null"`    // 版本号
	AutoStart   *bool  `gorm:"not null"`    // 允许启动
	LuaSource   string `gorm:"not null"`    // LuaSource
	Description string `gorm:"not null"`    // 文件路径, 是相对于main的apps目录
}

* * LUA应用 *

type MCronResult

type MCronResult struct {
	RulexModel
	TaskUuid  string    `gorm:"not null; default:''" json:"taskUuid,omitempty"`
	Status    string    `json:"status"`             // CRON_RESULT_STATUS
	ExitCode  string    `json:"exitCode,omitempty"` // 0-success other-failed
	LogPath   string    `json:"logPath,omitempty"`
	StartTime time.Time `json:"startTime"`
	EndTime   time.Time `json:"endTime"`
}

*

  • 任务结果

type MCronTask

type MCronTask struct {
	RulexModel
	UUID      string    `gorm:"uniqueIndex,not null; default:''" json:"uuid"`
	Name      string    `gorm:"not null;" json:"name"`
	CronExpr  string    `gorm:"not null" json:"cronExpr"` // quartz cron expr
	Enable    *bool     `json:"enable"`                   // 是否启用定时任务
	TaskType  string    `json:"taskType"`                 // CRON_TASK_TYPE,目前只有LINUX_SHELL
	Command   string    `json:"command"`                  // 根据TaskType而定,TaskType=LINUX_SHELL时Command=/bin/bash
	Args      *string   `json:"args"`                     // "-param1 -param2 -param3"
	IsRoot    *bool     `json:"isRoot"`                   // 是否使用root用户运行,目前不使用,默认和rulex用户一致
	WorkDir   string    `json:"workDir"`                  // 目前不使用,默认工作路径和网关工作路径保持一致
	Env       string    `json:"env"`                      // ["A=e1", "B=e2", "C=e3"]
	Script    string    `json:"script"`                   // 脚本内容,base64编码
	UpdatedAt time.Time `json:"updatedAt"`
}

*

  • 定时任务

type MDataSchema

type MDataSchema struct {
	RulexModel
	UUID   string `gorm:"not null"`
	Name   string `gorm:"not null"` // 名称
	Type   string `gorm:"not null"` // 类型, LINE,PINE,BAR,TXT
	Schema string `gorm:"not null"` // 数据规范
}

* * Type: SIMPLE_LINE(简单一线),COMPLEX_LINE(复杂多线) *

type MDevice

type MDevice struct {
	RulexModel
	UUID        string `gorm:"uniqueIndex"`
	Name        string `gorm:"not null"`
	Type        string `gorm:"not null"`
	Config      string
	BindRules   StringList `json:"bindRules"` // 与之关联的规则表["A","B","C"]
	Description string
}

设备元数据

func (MDevice) GetConfig

func (md MDevice) GetConfig() map[string]interface{}

type MGenericGroup

type MGenericGroup struct {
	RulexModel
	UUID   string `gorm:"uniqueIndex"`
	Name   string `gorm:"not null"` // 名称
	Type   string `gorm:"not null"` // 组的类型, DEVICE: 设备分组
	Parent string `gorm:"not null"` // 上级, 如果是0表示根节点
}

* * 通用分组 *

type MGenericGroupRelation

type MGenericGroupRelation struct {
	RulexModel
	UUID string `gorm:"uniqueIndex"`
	Gid  string `gorm:"not null"` // 分组ID
	Rid  string `gorm:"not null"` // 被绑定方
}

* * 分组表的绑定关系表 *

type MGoods

type MGoods struct {
	RulexModel
	UUID        string `gorm:"uniqueIndex"`
	LocalPath   string `gorm:"not null"`
	GoodsType   string `gorm:"not null"` // LOCAL, EXTERNAL
	ExecuteType string `gorm:"not null"` // exe,elf,js,py....
	AutoStart   *bool  `gorm:"not null"`
	NetAddr     string `gorm:"not null"`
	Args        string `gorm:"not null"`
	Description string `gorm:"not null"`
}

type MHwPort

type MHwPort struct {
	RulexModel
	UUID        string `gorm:"not null"`
	Name        string `gorm:"not null"` // 接口名称
	Type        string `gorm:"not null"` // 接口类型, UART(串口),USB(USB),FD(通用文件句柄)
	Alias       string `gorm:"not null"` // 别名
	Description string `gorm:"not null"` // 额外备注
	Config      string `gorm:"not null"` // 配置, 串口配置、或者网卡、USB等
}

func (MHwPort) GetConfig

func (md MHwPort) GetConfig() map[string]interface{}

type MInEnd

type MInEnd struct {
	RulexModel
	// UUID for origin source ID
	UUID      string     `gorm:"uniqueIndex"`
	Type      string     `gorm:"not null"`
	Name      string     `gorm:"not null"`
	BindRules StringList `json:"bindRules"` // 与之关联的规则表["A","B","C"]

	Description string
	Config      string
	XDataModels string
}

func (MInEnd) GetConfig

func (md MInEnd) GetConfig() map[string]interface{}

type MInternalNotify

type MInternalNotify struct {
	RulexModel
	UUID    string `gorm:"not null"` // UUID
	Type    string `gorm:"not null"` // INFO | ERROR | WARNING
	Status  int    `gorm:"not null"` // 1 未读 2 已读
	Event   string `gorm:"not null"` // 字符串
	Ts      uint64 `gorm:"not null"` // 时间戳
	Summary string `gorm:"not null"` // 概览,为了节省流量,在消息列表只显示这个字段,Info值为“”
	Info    string `gorm:"not null"` // 消息内容,是个文本,详情显示
}

* * 内部通知 *

type MIpRoute

type MIpRoute struct {
	RulexModel
	UUID        string `gorm:"not null"`
	Iface       string `gorm:"not null"` // 用来做子网的那个网卡的网卡名
	Ip          string `gorm:"not null"` // 用来做子网的那个网卡的IP地址
	Gateway     string `gorm:"not null"` // 用来做子网的那个网卡的网关
	Network     string `gorm:"not null"` // 用来做子网的那个网卡的网段
	Netmask     string `gorm:"not null"` // 用来做子网的那个网卡子网掩码
	IpPoolBegin string `gorm:"not null"` // DHCP IP地址池起始
	IpPoolEnd   string `gorm:"not null"` // DHCP IP地址池结束
	//------------------------------------
	// IP 路由方向, 默认 ETH1 透传到 4G
	//------------------------------------
	IfaceFrom string `gorm:"not null"` // 流量入口
	IfaceTo   string `gorm:"not null"` // 流量出口
}

* * Linux默认路由,该配置主要用来处理软路由相关功能 // 每次启动的时候换成最新配置的路由, 默认是ETH1 192.168.64.0 // 这个初始化的目的是为了配合软路由使用, 和isc-dhcp-server、dnsmasq 两个DHCP服务有关

type MModbusDataPoint

type MModbusDataPoint struct {
	RulexModel `json:"-"`
	UUID       string  `gorm:"not null" json:"uuid"`
	DeviceUuid string  `gorm:"not null" json:"device_uuid"`
	Tag        string  `gorm:"not null" json:"tag"`
	Alias      string  `gorm:"not null" json:"alias"`
	Function   *int    `gorm:"not null" json:"function"`
	SlaverId   *byte   `gorm:"not null" json:"slaverId"`
	Address    *uint16 `gorm:"not null" json:"address"`
	Frequency  *int64  `gorm:"not null" json:"frequency"`
	Quantity   *uint16 `gorm:"not null" json:"quantity"`
}

modbus数据点位表

type MNetworkConfig

type MNetworkConfig struct {
	RulexModel
	Type        string     `gorm:"not null"` // 类型: ubuntu16, ubuntu18
	Interface   string     `gorm:"not null"` // eth1 eth0
	Address     string     `gorm:"not null"`
	Netmask     string     `gorm:"not null"`
	Gateway     string     `gorm:"not null"`
	DNS         StringList `gorm:"not null"`
	DHCPEnabled *bool      `gorm:"not null"`
}

* * 系统配置参数, 直接以String保存,完了以后再加工成Dto结构体 *

type MOutEnd

type MOutEnd struct {
	RulexModel
	// UUID for origin source ID
	UUID        string `gorm:"uniqueIndex"`
	Type        string `gorm:"not null"`
	Name        string `gorm:"not null"`
	Description string
	Config      string
}

func (MOutEnd) GetConfig

func (md MOutEnd) GetConfig() map[string]interface{}

type MRule

type MRule struct {
	RulexModel
	UUID        string `gorm:"not null"`
	Name        string `gorm:"not null"`
	SourceId    string `gorm:"not null"`
	DeviceId    string `gorm:"not null"`
	Actions     string `gorm:"not null"`
	Success     string `gorm:"not null"`
	Failed      string `gorm:"not null"`
	Description string
}

type MSiemensDataPoint

type MSiemensDataPoint struct {
	RulexModel
	UUID       string `gorm:"not null"`
	DeviceUuid string `gorm:"not null"`
	Tag        string `gorm:"not null"`
	Alias      string `gorm:"not null"`
	Type       string `gorm:"not null"`
	Frequency  *int64 `gorm:"not null"`
	Address    *int   `gorm:"not null"`
	Start      *int   `gorm:"not null"`
	Size       *int   `gorm:"not null"`
}

西门子数据点位表

type MSiteConfig

type MSiteConfig struct {
	RulexModel
	UUID     string `gorm:"not null"`
	SiteName string `gorm:"not null"` // 浏览器title栏
	AppName  string `gorm:"not null"` // 左上角名称
}

* * 浏览器个性化配置 *

type MUser

type MUser struct {
	RulexModel
	Role        string `gorm:"not null"`
	Username    string `gorm:"not null"`
	Password    string `gorm:"not null"`
	Description string
}

type MUserLuaTemplate

type MUserLuaTemplate struct {
	RulexModel
	UUID      string
	Gid       string // 分组
	Type      string // 类型 固定为 'function'
	Label     string //快捷代码名称
	Apply     string //快捷代码
	Variables string //变量
	Detail    string
}

* * 用户自定义代码模板 *

func (MUserLuaTemplate) GenVariables

func (md MUserLuaTemplate) GenVariables(V []dto.LuaTemplateVariables) (string, error)

* * 生成字符串 *

func (MUserLuaTemplate) GetVariables

func (md MUserLuaTemplate) GetVariables() []dto.LuaTemplateVariables

* * 获取其变量表 *

type MVisual

type MVisual struct {
	RulexModel
	UUID      string `gorm:"uniqueIndex"` // 名称
	Name      string `gorm:"not null"`    // 名称
	Type      string `gorm:"not null"`    // 类型
	Status    bool   `gorm:"not null"`    // 状态, EDITING, PUBLISH
	Content   string `gorm:"not null"`    // 大屏的内容
	Thumbnail string `gorm:"not null"`    // 缩略图
}

-------------------------------------------------------------------------------------------------- 0.6.0 --------------------------------------------------------------------------------------------------

* * 大屏 *

type MWifiConfig

type MWifiConfig struct {
	RulexModel
	Interface string `gorm:"not null"`
	SSID      string `gorm:"not null"`
	Password  string `gorm:"not null"`
	Security  string `gorm:"not null"` // wpa2-psk wpa3-psk
}

* * 无线网络配置 *

type PageRequest

type PageRequest struct {
	Current     int `json:"current,omitempty"`
	Size        int `json:"size,omitempty"`
	SearchCount int `json:"searchCount,omitempty"`
}

type PageResult

type PageResult struct {
	Current int `json:"current"`
	Size    int `json:"size"`
	Total   int `json:"total"`
	Records any `json:"records"`
}

type RulexModel

type RulexModel struct {
	ID        uint      `gorm:"primaryKey" json:"id"`
	CreatedAt time.Time `json:"created_at"`
}

type StringList

type StringList []string

func (StringList) Len

func (f StringList) Len() int

func (*StringList) Scan

func (f *StringList) Scan(data interface{}) error

* * 给GORM用的 *

func (StringList) String

func (f StringList) String() string

func (StringList) Value

func (f StringList) Value() (driver.Value, error)

* * 给GORM用的 *

Jump to

Keyboard shortcuts

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