goldengo

package module
v1.0.2301 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

README

goldengo

庚顿实时数据库GO驱动

更新日志

版本 更新日期 更新内容
V1.0.2301 2023-01-03 1. [BUG修复]解决断开废弃连接时没有同步释放庚顿端连接资源的问题
V1.0.2203 2022-11-04 1. [BUG修复]解决获取到的数据长度与实际数据长度不一致的问题
V1.0.2202 2022-07-01 1. [BUG修复]修正读取历史数据时对下补齐的缺陷
V1.0.2201 2022-02-17 1. [优化]将对庚顿的CRUD添加到连接池,可以通过连接池直接操作数据库
V1.0.2102 2021-09-08 1. [优化]连接池中增加需要重连接的错误码类型。
v1.0.2101 2021-04-14 连接池增加超时机制,占用超时的连接自动释放

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FormatErrMsg

func FormatErrMsg(ecode uintptr) error

****************************************************************************** -功能:格式化错误码 -参数: [ecode] 错误码,为0时无错误 -返回: [error] 错误信息;ecode为0时返回nil ******************************************************************************

func GbkToUtf8

func GbkToUtf8(s []byte) []byte

*************************************************** 功能:字符串转码,将bgk码转换为utf8码 输入:[s] 原始字符串 输出:转码后的字符串 说明: 时间:2020年6月11日 编辑:wang_jp ***************************************************

func GetProjectAbsPath

func GetProjectAbsPath() (projectAbsPath string)

获取程序的绝对路径

func IsExistItem

func IsExistItem(obj interface{}, target interface{}) bool

*************************************************** 功能:判断元素在数组、Map中是否存在 输入:元素、数组或者Map、Slice 输出:存在输出true,不存在输出false 说明:对于数组、Slice,判断的是值是否存在,对于Map,判断的是Key是否存在 时间:2019年12月15日 编辑:wang_jp ***************************************************

func Utf8ToGbk

func Utf8ToGbk(s []byte) []byte

*************************************************** 功能:字符串转码,将utf8码转换为gbk码 输入:[s] 原始字符串 输出:转码后的字符串 说明: 时间:2020年6月11日 编辑:wang_jp ***************************************************

Types

type GoldenBasePoint

type GoldenBasePoint struct {
	Id             int     //全库唯一标识
	Tag            string  //用于在表中唯一标识一个标签点,最长79
	DataType       int     //标签点的数值类型,0:BOOL,1:UINT8,2:INT8,3:CHAR,4:UINT16,5:INT16,6:UINT32,7:INT32,8:INT64,9:FLOAT16,10:FLOAT32,11:FLOAT64
	TableId        int     //标签点所属表ID
	Desc           string  //有关标签点的描述性文字,最长99
	Unit           string  //工程单位,最长19
	IsArchive      bool    //是否存档
	Digits         int     //数值位数,>=-20、<=10,默认-5;如果为0或正数,表示数值的小数位数,如果为负数,表示数值的有效位数
	IsShutDown     bool    //停机状态字,定义该点在停机状态下是否补写停机状态值.1 表示补写;0 表示不补写
	LowLimit       float64 //量程下限,缺省0
	HighLimit      float64 //量程上限,缺省100
	IsStep         bool    //是否阶跃.
	Typical        float64 //典型值
	IsCompress     bool    //是否压缩,缺省true
	CompDev        float64 //压缩偏差,单位:标签工程单位,缺省:1
	CompDevPercent float64 //压缩偏差百分比
	CompTimeMax    int     //最大压缩间隔,单位:秒,缺省值:28800
	CompTimeMin    int     //最短压缩间隔,单位:秒,缺省值:0
	ExcDev         float64 //例外偏差,单位:标签工程单位.缺省0.5
	ExcDevPercent  float64 //例外偏差百分比
	ExcTimeMax     int     //最大例外间隔,单位:秒,缺省值600
	ExcTimeMin     int     //最短例外间隔,单位:秒,缺省值0
	ClassOf        uint    //标签点类别,基本点(0)、采集点(1)、计算点(2)、采集计算点(3) 、报警点(4)等

	Mirror      int //镜像收发控制:0:关闭;1:既接收,又发送;2:只接受,不发送;3:只发送,不接收
	MilliSecond int //时间戳精度,默认值:0,秒;1:毫秒;创建后不可更改

	TableDotTag string //标签点全名
	IsSummary   bool   //统计加速开关,默认0;用于设定是否生成标签点统计信息,从而加速历史数据统计过程
	NamedTypeId uint   //
	Padding     []byte //基本标签点备用字节(5字节)
	Err         string //错误信息
	// contains filtered or unexported fields
}

基本标签点属性集

type GoldenCalcPoint

type GoldenCalcPoint struct {
	Id       int
	Equation string //方程式,长度不超过2047字节
	Trigger  int    //计算触发机制
	TimeCopy int    //计算结果时间戳:0: 表示采用计算时间作为计算结果时间戳; 1: 表示采用输入标签点中的最晚时间作为计算结果时间戳;2: 表示采用输入标签点中的最早时间作为计算结果时间戳。
	Period   int    //计算周期,对周期触发的计算点有效,单位:秒
}

计算点扩展属性集

type GoldenConnect added in v1.0.2201

type GoldenConnect struct {
	RTDBService
}

庚顿数据库结构

func CreateGolden

func CreateGolden(hostname, username, password string, port ...int) *GoldenConnect

******************************************************************************

  • 功能:创建庚顿实时数据库对象
  • 参数: [hostname] 字符串,输入,GOLDEN 数据平台服务器的网络地址或机器名 [user] 用户名,字符串,缺省值 sa [password] 密码,字符串,缺省值 golden [port] 端口号,整型,缺省值 6327
  • 输出: [*Golden] 实时数据库对象
  • 备注:在调用所有的接口函数之前,必须先调用本函数建立Golden对象。

******************************************************************************

func (*GoldenConnect) DisConnect added in v1.0.2201

func (g *GoldenConnect) DisConnect(p *GoldenPool)

****************************************************************************** - 功能:断开连接 - 参数:[p *GoldenPool] 庚顿连接池指针 - 输出:无 - 备注: - 时间: 2020年6月27日 ******************************************************************************

func (*GoldenConnect) GetConnect added in v1.0.2201

func (g *GoldenConnect) GetConnect(p *GoldenPool, tenant ...string) error

******************************************************************************

  • 功能:请求一个庚顿连接句柄
  • 参数:无
  • 输出: [error] 错误信息
  • 备注:
  • 时间: 2020年6月27日

******************************************************************************

func (*GoldenConnect) GetHisIntervalByName added in v1.0.2201

func (g *GoldenConnect) GetHisIntervalByName(count int, bgtime, endtime int64, tagfullnames ...string) (map[string][]RealTimeSeriesData, error)

******************************************************************************

  • 功能: 通过变量全名获取等间隔历史数据值
  • 参数: [count] 整形,需要的插值个数 [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间 [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [map[string][]RealTimeSeriesData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenConnect) GetHistoryByName added in v1.0.2201

func (g *GoldenConnect) GetHistoryByName(bgtime, endtime int64, tagfullnames ...string) (map[string][]RealTimeSeriesData, error)

******************************************************************************

  • 功能: 通过变量全名获取历史数据值
  • 参数: [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间 [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [map[string][]RealTimeSeriesData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenConnect) GetHistoryDataAlignHeadAndTail added in v1.0.2201

func (g *GoldenConnect) GetHistoryDataAlignHeadAndTail(bginTime, endTime int64, Interval int, tagnames ...string) (map[string]HisData, error)

****************************************************************************** 功能:获取补全了开头和结尾时刻数据的历史数据 输入:[bginTime] 开始时间,UnixNano

[endTime] 结束时间,UnixNano
[Interval] 两个数据点之间的间隔时间,单位:秒.如果不大于0,则读取原始历史数据.如果大于零,则读取等间隔差值历史数据
			如果Interval小于0,则不对开头和结尾的数据进行补全
[tagnames] 变量名,至少要有一个,可以为多个

输出:[map[string][]RealTimeSeriesData] 数据Map,以变量名为key

[map[string]error] 变量的错误信息Map,以变量名为key
[map[string]bool] 快照数据时间大于endTime,则为true,否则为false
[error]

时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenConnect) GetHistorySingleByName added in v1.0.2201

func (g *GoldenConnect) GetHistorySingleByName(mode int, datatime int64, tagfullnames ...string) (map[string]RealTimeSeriesData, error)

******************************************************************************

  • 功能: 通过变量全名获取单个时间点的历史数据值
  • 参数: [mode] 整型,输入,取值 GOLDEN_NEXT(0)、GOLDEN_PREVIOUS(1)、GOLDEN_EXACT(2)、 GOLDEN_INTER(3) 之一: GOLDEN_NEXT(0) 寻找下一个最近的数据; GOLDEN_PREVIOUS(1) 寻找上一个最近的数据; GOLDEN_EXACT(2) 取指定时间的数据,如果没有则返回错误 GoE_DATA_NOT_FOUND; GOLDEN_INTER(3) 取指定时间的内插值数据。 [datatime] 整型,输入,时间UnixNano秒数。 [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [map[string]RealTimeSeriesData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenConnect) GetHistorySummaryByName added in v1.0.2201

func (g *GoldenConnect) GetHistorySummaryByName(bgtime, endtime int64, tagfullname string) (int64,
	int64, float64, float64, float64, float64, float64, int, error)

******************************************************************************

  • 功能: 通过变量全名获取历史数据统计信息
  • 参数: [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间 [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [max_time] 整形,最大值对应的Unix毫秒时间.如果为 0,则表示无最大值 [min_time] 整形,最小值对应的Unix毫秒时间.如果为 0,则表示无最小值 [max_value] 双精度浮点型,输出,表示统计时间段内的最大数值。 [min_value] 双精度浮点型,输出,表示统计时间段内的最小数值。 [total_value] 双精度浮点型,输出,表示统计时间段内的累计值,结果的单位为标签点的工程单位。 [calc_avg] 双精度浮点型,输出,表示统计时间段内的算术平均值。 [power_avg] 双精度浮点型,输出,表示统计时间段内的加权平均值。 [count] 整型,输出,表示统计时间段内用于计算统计值的数据个数。 [error] 错误信息
  • 备注:如果输出的最大值或最小值的时间戳秒值为 0,则表明仅有累计值和加权平均值输出有效,其余统计结果无效。 本接口对数据类型为 GOLDEN_COOR、GOLDEN_BLOB、GOLDEN_STRING 的标签点无效。
  • 时间: 2020年12月04日

******************************************************************************

func (*GoldenConnect) GetSnapShotById added in v1.0.2201

func (g *GoldenConnect) GetSnapShotById(ids, dtypes []int) (map[int]SnapData, error)

******************************************************************************

  • 功能: 通过变量id获取快照值
  • 参数: [ids] id切片,输入
  • 输出: [map[int]SnapData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenConnect) GetSnapShotByName added in v1.0.2201

func (g *GoldenConnect) GetSnapShotByName(tagfullnames ...string) (map[string]SnapData, error)

******************************************************************************

  • 功能: 通过变量全名获取快照值
  • 参数: [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [map[string]SnapData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenConnect) GetTagListInTables added in v1.0.2201

func (g *GoldenConnect) GetTagListInTables(tbnames ...string) (map[string][]GoldenPoint, error)

****************************************************************************** 功能:获取表中的标签点列表 输入:可选的表名称列表 输出:标签点表Map,Map的key为表名 说明:如果不输入表名,则读取数据库中所有表下的标签点

如果输入表名,则读取输入的每个表下的标签点
如果输入的表不存在,对应的map下的字符串切片为空

时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenConnect) GetTagNameListInTables added in v1.0.2201

func (g *GoldenConnect) GetTagNameListInTables(tbnames ...string) (map[string][]string, error)

****************************************************************************** 功能:获取表中的标签点名称列表 输入:可选的表名称列表 输出:标签点表Map,Map的key为表名 说明:如果不输入表名,则读取数据库中所有表下的标签点

如果输入表名,则读取输入的每个表下的标签点
如果输入的表不存在,对应的map下的字符串切片为空

时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenConnect) GetTagPointInfoByName added in v1.0.2201

func (g *GoldenConnect) GetTagPointInfoByName(tagnames ...string) (map[string]GoldenPoint, error)

****************************************************************************** 功能:根据标签点全名获取标签点的配置信息 输入:标签点名列表 输出:标签点Map,Map的key为标签名 说明: 时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenConnect) SetArchivedValue added in v1.0.2201

func (g *GoldenConnect) SetArchivedValue(tagname string, datavalue float64, qualitie int, datatime ...int64) error

****************************************************************************** 功能:根据标签点名写历史值 输入:[tagname] 标签点全名

[datavalue] 数值
[qualitie]  质量码
[datatime]  可选的时间,UnixNano。省略时采用当前服务器时间

输出: 说明: 时间:2020年8月14日 编辑:wang_jp ******************************************************************************

func (*GoldenConnect) SetArchivedValuesBatch added in v1.0.2201

func (g *GoldenConnect) SetArchivedValuesBatch(tagnames []string, datavalues []float64, qualities []int, datatimes []int64) error

****************************************************************************** 功能:根据标签点名批量写历史值 输入:[tagnames] 标签点全名.同一个标签点标识可以出现多次,但它们的时间戳必需是递增的

[datavalues] 数值
[qualities]  质量码
[datatimes]  时间,UnixNano

输出: 说明: 时间:2020年8月14日 编辑:wang_jp ******************************************************************************

func (*GoldenConnect) SetSnapShot added in v1.0.2201

func (g *GoldenConnect) SetSnapShot(tagname string, datavalue float64, qualitie int, datatime ...int64) error

****************************************************************************** 功能:根据标签点名写快照 输入:[tagname] 标签点全名

[datavalue] 数值
[qualitie]  质量码
[datatime]  可选的时间,UnixNano。省略时采用当前服务器时间

输出: 说明: 时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenConnect) SetSnapShotBatch added in v1.0.2201

func (g *GoldenConnect) SetSnapShotBatch(tagnames []string, datavalues []float64, qualities []int, datatimes []int64) error

****************************************************************************** 功能:批量写快照 输入:[tagnames] 标签点全名.同一个标签点标识可以出现多次,但它们的时间戳必需是递增的

[datavalues] 数值
[qualities]  质量码
[datatimes]  时间,UnixNano

输出: 说明: 时间:2020年5月16日 编辑:wang_jp ******************************************************************************

type GoldenPoint

type GoldenPoint struct {
	Base   GoldenBasePoint //基本属性
	Scan   GoldenScanPoint //采集属性
	Calc   GoldenCalcPoint //计算属性
	PlatEx PointMicPlatEx  //平台扩展属性
}

func (*GoldenPoint) GetPointProptertyById

func (p *GoldenPoint) GetPointProptertyById(handle int32) error

****************************************************************************** * 命名:gob_get_points_property * 功能:获取单个标签点的属性 * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注:需要事先在结构体中保存标签点的ID,读取到的信息保存到标签点结构体中 * 时间:2020年5月27日 ******************************************************************************

func (*GoldenPoint) InsertPoint

func (p *GoldenPoint) InsertPoint(handle int32) error

******************************************************************************

  • 命名:gob_insert_point
  • 功能:使用完整的属性集来创建单个标签点
  • 参数:[handle] 数据库访问句柄
  • 输出:[error] 错误信息
  • 备注:需设置除 id, createdate, creator, changedate, changer 字段外的其它字段 返回id字段
  • 时间:2020年5月27日

******************************************************************************

func (*GoldenPoint) RemovePointById

func (p *GoldenPoint) RemovePointById(handle int32) error

****************************************************************************** * 命名:gob_remove_point_by_id * 功能:根据 id 删除单个标签点(可回收) * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注:需设置 id * 时间:2020年5月27日 ******************************************************************************

func (*GoldenPoint) UpdatePointById

func (p *GoldenPoint) UpdatePointById(handle int32) error

****************************************************************************** * 命名:gob_update_point_property * 功能:单个更新标签的属性 * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注:标签点由 base 参数的 id 字段指定,其中 id、table、type、millisecond 字段不能修改 changedate、changer、createdate、creator 字段由系统维护,其余字段均可修改 * 时间:2020年5月26日 ******************************************************************************

type GoldenPool

type GoldenPool struct {
	Worker     chan int   //工作通道
	Req        chan int   //请求队列
	Handel     chan int32 //连接池句柄
	Tenant     sync.Map   //注册的租户map,key为Handel,value为租户字符串
	BegineTime sync.Map   //注册的租户map,key为Handel,value为起租时间

	Version string //版本号
	// contains filtered or unexported fields
}

庚顿工作池结构

func NewGoldenPool

func NewGoldenPool(hostname, username, password string, port, cap int, max_sec ...int64) (*GoldenPool, error)

******************************************************************************

  • 功能:实例化庚顿工作池
  • 参数: [hostname] 字符串,输入,GOLDEN 数据平台服务器的网络地址或机器名 [username] 用户名,字符串,缺省值 sa [password] 密码,字符串,缺省值 golden [port] 端口号,整型,缺省值 6327 [cap] 连接池大小,最小1,最大50 [max_sec] 最大租借时间(秒)
  • 输出:*GoldenPool 连接池指针 [error] 创建句柄连接池时候的错误信息
  • 备注:
  • 时间: 2020年6月27日

******************************************************************************

func (*GoldenPool) Close added in v1.0.2201

func (p *GoldenPool) Close()

func (*GoldenPool) GetApiVersion added in v1.0.2201

func (p *GoldenPool) GetApiVersion() (string, error)

************************************************** 功能:读取庚顿服务器版本号 输入:无 输出:版本号,err 时间:2020年3月19日 编辑:wang_jp **************************************************

func (*GoldenPool) GetConnect

func (p *GoldenPool) GetConnect(tenant ...string) (*GoldenConnect, error)

******************************************************************************

  • 功能:请求一个庚顿连接句柄
  • 参数:[tenant string]可选的租户名称
  • 输出: [*Golden] 庚顿数据库连接指针 [error] 错误信息
  • 备注:
  • 时间: 2020年6月27日

******************************************************************************

func (*GoldenPool) GetHisIntervalByName added in v1.0.2201

func (p *GoldenPool) GetHisIntervalByName(count int, bgtime, endtime int64, tagfullnames ...string) (map[string][]RealTimeSeriesData, error)

******************************************************************************

  • 功能: 通过变量全名获取等间隔历史数据值
  • 参数: [count] 整形,需要的插值个数 [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间 [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [map[string][]RealTimeSeriesData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenPool) GetHistoryByName added in v1.0.2201

func (p *GoldenPool) GetHistoryByName(bgtime, endtime int64, tagfullnames ...string) (map[string][]RealTimeSeriesData, error)

******************************************************************************

  • 功能: 通过变量全名获取历史数据值
  • 参数: [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间 [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [map[string][]RealTimeSeriesData] 历史Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenPool) GetHistoryDataAlignHeadAndTail added in v1.0.2201

func (p *GoldenPool) GetHistoryDataAlignHeadAndTail(bgtime, endtime int64, Interval int, tagfullnames ...string) (map[string]HisData, error)

****************************************************************************** 功能:获取补全了开头和结尾时刻数据的历史数据 输入:[bginTime] 开始时间,UnixNano

[endTime] 结束时间,UnixNano
[Interval] 两个数据点之间的间隔时间,单位:秒.如果不大于0,则读取原始历史数据.如果大于零,则读取等间隔差值历史数据
			如果Interval小于0,则不对开头和结尾的数据进行补全
[tagnames] 变量名,至少要有一个,可以为多个

输出:[map[string][]RealTimeSeriesData] 数据Map,以变量名为key

[map[string]error] 变量的错误信息Map,以变量名为key
[map[string]bool] 快照数据时间大于endTime,则为true,否则为false
[error]

时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) GetHistorySingleByName added in v1.0.2201

func (p *GoldenPool) GetHistorySingleByName(mode int, datatime int64, tagfullnames ...string) (map[string]RealTimeSeriesData, error)

******************************************************************************

  • 功能: 通过变量全名获取单个时间点的历史数据值
  • 参数: [mode] 整型,输入,取值 GOLDEN_NEXT(0)、GOLDEN_PREVIOUS(1)、GOLDEN_EXACT(2)、 GOLDEN_INTER(3) 之一: GOLDEN_NEXT(0) 寻找下一个最近的数据; GOLDEN_PREVIOUS(1) 寻找上一个最近的数据; GOLDEN_EXACT(2) 取指定时间的数据,如果没有则返回错误 GoE_DATA_NOT_FOUND; GOLDEN_INTER(3) 取指定时间的内插值数据。 [datatime] 整型,输入,时间UnixNano秒数。 [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [map[string]RealTimeSeriesData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenPool) GetHistorySummaryByName added in v1.0.2201

func (p *GoldenPool) GetHistorySummaryByName(bgtime, endtime int64, tagfullname string) (int64,
	int64, float64, float64, float64, float64, float64, int, error)

******************************************************************************

  • 功能: 通过变量全名获取历史数据统计信息
  • 参数: [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间 [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [max_time] 整形,最大值对应的Unix毫秒时间.如果为 0,则表示无最大值 [min_time] 整形,最小值对应的Unix毫秒时间.如果为 0,则表示无最小值 [max_value] 双精度浮点型,输出,表示统计时间段内的最大数值。 [min_value] 双精度浮点型,输出,表示统计时间段内的最小数值。 [total_value] 双精度浮点型,输出,表示统计时间段内的累计值,结果的单位为标签点的工程单位。 [calc_avg] 双精度浮点型,输出,表示统计时间段内的算术平均值。 [power_avg] 双精度浮点型,输出,表示统计时间段内的加权平均值。 [count] 整型,输出,表示统计时间段内用于计算统计值的数据个数。 [error] 错误信息
  • 备注:如果输出的最大值或最小值的时间戳秒值为 0,则表明仅有累计值和加权平均值输出有效,其余统计结果无效。 本接口对数据类型为 GOLDEN_COOR、GOLDEN_BLOB、GOLDEN_STRING 的标签点无效。
  • 时间: 2020年12月04日

******************************************************************************

func (*GoldenPool) GetServerTime added in v1.0.2201

func (p *GoldenPool) GetServerTime() (time.Time, error)

************************************************** 功能:读取庚顿服务器时间 输入:无 输出:时间,err 时间:2020年3月19日 编辑:wang_jp **************************************************

func (*GoldenPool) GetSnapShotById added in v1.0.2201

func (p *GoldenPool) GetSnapShotById(ids, dtypes []int) (map[int]SnapData, error)

******************************************************************************

  • 功能: 通过变量id获取快照值
  • 参数: [ids] id切片,输入
  • 输出: [map[int]SnapData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenPool) GetSnapShotByName added in v1.0.2201

func (p *GoldenPool) GetSnapShotByName(tagfullnames ...string) (map[string]SnapData, error)

******************************************************************************

  • 功能: 通过变量全名获取快照值
  • 参数: [tagfullnames] 字符串切片,输入. 变量全名格式:tablename.tagname
  • 输出: [map[string]SnapData] 快照Map,key为变量全名 [error] 错误信息
  • 备注:
  • 时间: 2020年5月15日

******************************************************************************

func (*GoldenPool) GetTagListInTables added in v1.0.2201

func (p *GoldenPool) GetTagListInTables(tbnames ...string) (map[string][]GoldenPoint, error)

****************************************************************************** 功能:获取表中的标签点列表 输入:可选的表名称列表 输出:标签点表Map,Map的key为表名 说明:如果不输入表名,则读取数据库中所有表下的标签点

如果输入表名,则读取输入的每个表下的标签点
如果输入的表不存在,对应的map下的字符串切片为空

时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) GetTagNameListInTables added in v1.0.2201

func (p *GoldenPool) GetTagNameListInTables(tbnames ...string) (map[string][]string, error)

****************************************************************************** 功能:获取表中的标签点名称列表 输入:可选的表名称列表 输出:标签点表Map,Map的key为表名 说明:如果不输入表名,则读取数据库中所有表下的标签点

如果输入表名,则读取输入的每个表下的标签点
如果输入的表不存在,对应的map下的字符串切片为空

时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) GetTagPointInfoById added in v1.0.2201

func (p *GoldenPool) GetTagPointInfoById(id int) (GoldenPoint, error)

****************************************************************************** 功能:根据标签点全名获取标签点的配置信息 输入:标签点ID 输出:标签点和错误信息 说明: 时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) GetTagPointInfoByName added in v1.0.2201

func (p *GoldenPool) GetTagPointInfoByName(tagnames ...string) (map[string]GoldenPoint, error)

****************************************************************************** 功能:根据标签点全名获取标签点的配置信息 输入:标签点名列表 输出:标签点Map,Map的key为标签名 说明: 时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) PointInsert added in v1.0.2201

func (p *GoldenPool) PointInsert(gdp *GoldenPoint) error

************************************************** 功能:新建标签点 输入:GoldenPoint 标签点属性 输出:

[error] 错误信息

说明: 时间:2020年6月18日 编辑:wang_jp **************************************************

func (*GoldenPool) PointPropterty added in v1.0.2201

func (p *GoldenPool) PointPropterty(fullname string) (gdp *GoldenPoint, err error)

************************************************** 功能:获取标签点的属性 输入:[fullname string] 标签点全名 输出:

    [gdp *GoldenPoint] 标签点属性
	[error] 错误信息

说明: 时间:2022年2月17日 编辑:wang_jp **************************************************

func (*GoldenPool) PointRemove added in v1.0.2201

func (p *GoldenPool) PointRemove(fullname string) error

************************************************** 功能:删除标签点 输入:[fullname string] 标签点全名 输出:

[error] 错误信息

说明: 时间:2022年2月17日 编辑:wang_jp **************************************************

func (*GoldenPool) PointSearch added in v1.0.2202

func (p *GoldenPool) PointSearch(tagmask, tablemask, source, unit, desc, instrument string, mode int) (tagids []int, tagnames []string, err error)

**************************************************

  • 功能:搜索符合条件的标签点,使用标签点名时支持通配符
  • 参数: [tagmask] 字符串,输入,标签点名称掩码,支持"*"和"?"通配符,缺省设置为"*", 长度不得超过GOLDEN_TAG_SIZE,支持多个搜索条件,以空格分隔。 [tablemask] 字符串,输入,标签点表名称掩码,支持"*"和"?"通配符,缺省设置为"*", 长度不得超过 GOLDEN_TAG_SIZE,支持多个搜索条件,以空格分隔。 [source] 字符串,输入,数据源集合,字符串中的每个字符均表示一个数据源,空字符串 表示不用数据源作搜索条件,缺省设置为空,长度不得超过 GOLDEN_DESC_SIZE。 [unit] 字符串,输入,标签点工程单位的子集,工程单位中包含该参数的标签点均满足条件, 空字符串表示不用工程单位作搜索条件,缺省设置为空,长度不得超GOLDEN_UNIT_SIZE。 [desc] 字符串,输入,标签点描述的子集,描述中包含该参数的标签点均满足条件, 空字符串表示不用描述作搜索条件,缺省设置为空,长度不得超过 GOLDEN_SOURCE_SIZE。 [instrument] 字符串,输入参数,标签点设备名称。缺省设置为空,长度不得超过GOLDEN_INSTRUMENT_SIZE。 [mode] 整型,GOLDEN_SORT_BY_TABLE(0)、GOLDEN_SORT_BY_TAG(1)、GOLDEN_SORT_BY_ID(2) 之一, 搜索结果的排序模式,输入,缺省值为GOLDEN_SORT_BY_TABLE
  • 返回: [[]ids] 整型数组,输出,返回搜索到的标签点标识列表 [[]tagnames] 字符串数组,标签点全名 [error] 错误信息
  • 备注:用户须保证分配给 ids 的空间与 count 相符,各参数中包含的搜索条件之间的关系为"与"的关系, 用包含通配符的标签点名称作搜索条件时,如果第一个字符不是通配符(如"ai67*"),会得到最快的搜索速度。 如果 tagmask、tablemask 为空指针,则表示使用缺省设置"*", 多个搜索条件可以通过空格分隔,比如"demo_*1 demo_*2",会将满足demo_*1或者demo_*2条件的标签点搜索出来。

**************************************************

func (*GoldenPool) PointUpdate added in v1.0.2201

func (p *GoldenPool) PointUpdate(gdp *GoldenPoint) error

************************************************** 功能:更新标签点 输入:[gdp *GoldenPoint] 标签点属性 输出:

[error] 错误信息

说明: 时间:2022年2月17日 编辑:wang_jp **************************************************

func (*GoldenPool) Points added in v1.0.2202

func (p *GoldenPool) Points() (map[int]GoldenPoint, error)

************************************************** 功能:读取庚顿服务器数据标签点 输入:无 输出:map[int]GoldenPoint,err 时间:2022年3月20日 编辑:wang_jp **************************************************

func (*GoldenPool) SetArchivedValue added in v1.0.2201

func (p *GoldenPool) SetArchivedValue(tagname string, datavalue float64, qualitie int, datatime ...int64) error

****************************************************************************** 功能:根据标签点名写历史值 输入:[tagname] 标签点全名

[datavalue] 数值
[qualitie]  质量码
[datatime]  可选的时间,UnixNano。省略时采用当前服务器时间

输出: 说明: 时间:2020年8月14日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) SetArchivedValuesBatch added in v1.0.2201

func (p *GoldenPool) SetArchivedValuesBatch(tagnames []string, datavalues []float64, qualities []int, datatimes []int64) error

****************************************************************************** 功能:根据标签点名批量写历史值 输入:[tagnames] 标签点全名.同一个标签点标识可以出现多次,但它们的时间戳必需是递增的

[datavalues] 数值
[qualities]  质量码
[datatimes]  时间,UnixNano

输出: 说明: 时间:2020年8月14日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) SetSnapShot added in v1.0.2201

func (p *GoldenPool) SetSnapShot(tagname string, datavalue float64, qualitie int, datatime ...int64) error

****************************************************************************** 功能:根据标签点名写快照 输入:[tagname] 标签点全名

[datavalue] 数值
[qualitie]  质量码
[datatime]  可选的时间,UnixNano。省略时采用当前服务器时间

输出: 说明: 时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) SetSnapShotBatch added in v1.0.2201

func (p *GoldenPool) SetSnapShotBatch(tagnames []string, datavalues []float64, qualities []int, datatimes []int64) error

****************************************************************************** 功能:批量写快照 输入:[tagnames] 标签点全名.同一个标签点标识可以出现多次,但它们的时间戳必需是递增的

[datavalues] 数值
[qualities]  质量码
[datatimes]  时间,UnixNano

输出: 说明: 时间:2020年5月16日 编辑:wang_jp ******************************************************************************

func (*GoldenPool) ShowTenant

func (p *GoldenPool) ShowTenant() interface{}

****************************************************************************** - 功能:显示租户信息 - 参数:无 - 输出:[Handel,TenantName]结构体组 - 备注: - 时间: 2020年6月27日 ******************************************************************************

func (*GoldenPool) TableGetIdByName added in v1.0.2201

func (p *GoldenPool) TableGetIdByName(tableName string) (int, error)

************************************************** 功能:通过表名获取表ID 输入:[tableName] 表名称 输出:[int] 表ID

[error] 错误信息

说明: 时间:2020年6月18日 编辑:wang_jp **************************************************

func (*GoldenPool) TableInsert added in v1.0.2201

func (p *GoldenPool) TableInsert(tableName, tableDesc string) (int, error)

************************************************** 功能:添加表 输入:[tableName] 表名称

[tableDesc]  表描述

输出:[int] 表ID

[error] 错误信息

说明: 时间:2020年6月18日 编辑:wang_jp **************************************************

func (*GoldenPool) TableInsertOrUpdate added in v1.0.2201

func (p *GoldenPool) TableInsertOrUpdate(tableName, tableDesc string) (bool, int, error)

************************************************** 功能:添加表或者更新表 输入:[tableName] 表名称

[tableDesc]  表描述

输出:[bool] 如果新建表,则为true;更新表为false

[int] 表ID
[error] 错误信息

说明:如果表名称不存在,则添加表,如果存在,则更新表的描述信息 时间:2020年6月18日 编辑:wang_jp **************************************************

func (*GoldenPool) TableReName added in v1.0.2201

func (p *GoldenPool) TableReName(oldtableName, newtableName string) error

************************************************** 功能:重命名表 输入:[oldtableName] 旧表名称

[newtableName]  新表名称

输出:[error] 错误信息 说明: 时间:2020年6月18日 编辑:wang_jp **************************************************

func (*GoldenPool) TableRemove added in v1.0.2201

func (p *GoldenPool) TableRemove(tableName string) error

************************************************** 功能:删除表 输入:[tableName] 表名称 输出:[error] 错误信息 说明: 时间:2020年6月18日 编辑:wang_jp **************************************************

func (*GoldenPool) TablesGet added in v1.0.2201

func (p *GoldenPool) TablesGet(selector ...int) (interface{}, error)

************************************************** 功能:读取庚顿服务器数据标签表 输入:[selector] 不输入或者0:读取数据表列表,反馈为数据表列表的map,以表id为key([]goldengo.Tables)

1: 读取数据表列表,反馈为数据表ID数组([]int)
2: 读取数据表列表,反馈为数据表名字符串数组([]string)
其他:同0

输出:数据接口,err 时间:2020年3月19日 编辑:wang_jp **************************************************

func (*GoldenPool) TablesPropertys added in v1.0.2201

func (p *GoldenPool) TablesPropertys(tablenames ...string) (map[string]GoldenTable, error)

************************************************** 功能:根据表名读取庚顿服务器数据标签表信息 输入:[tablenames] 零个一个或者多个数据表名,如果不输入,则返回所有表的信息 输出:map[string]goldengo.GoldenTable,以表名为Key

err,错误信息

时间:2020年3月19日 编辑:wang_jp **************************************************

type GoldenScanPoint

type GoldenScanPoint struct {
	Id         int        //
	Source     string     //数据源,缺省为空
	IsScan     bool       //是否采集
	Instrument string     //设备标签
	Locations  [5]int     //设备位置
	UserInts   [2]int     //自定义整数
	UserReals  [2]float64 //自定义浮点数
	Padding    []byte     //采集标签点备用字节(164字节)
}

采集标签点扩展属性集

type GoldenTable

type GoldenTable struct {
	Id       int    //表id
	Size     int    //标签数量
	Name     string //表名称
	Desc     string //表描述
	PointIds []int  //标签点ID列表
	Err      error  //错误信息
}

func (*GoldenTable) AppendTable

func (t *GoldenTable) AppendTable(handle int32) error

****************************************************************************** * 命名:gob_append_table * 功能:根据表 名称 新建表; * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注:需要输入表名称和描述,新建成功后,自动返回ID * 时间:2020年5月27日 ******************************************************************************

func (*GoldenTable) GetPointIds

func (t *GoldenTable) GetPointIds(handle int32, tablename ...string) ([]int, error)

******************************************************************************

  • 功能:获取表下的所有标签ID列表
  • 输入: [handle] 连接句柄 [tablename] 可选的表名切片,可以多个表名
  • 输出: [[]int] id数组 [error] 错误信息
  • 备注:
  • 时间:2020年5月14日

******************************************************************************

func (*GoldenTable) GetTablePropertyById

func (t *GoldenTable) GetTablePropertyById(handle int32) error

****************************************************************************** - 功能:通过已知的表ID取得标签点表属性(不含标签点信息) - 输入:[handle] 连接句柄 - 输出:[error] 错误信息 - 备注: - 时间:2020年6月1日 ******************************************************************************

func (*GoldenTable) GetTablePropertyByName

func (t *GoldenTable) GetTablePropertyByName(handle int32) error

****************************************************************************** - 功能:通过已知的表名称取得标签点表属性(不含标签点信息) - 输入:[handle] 连接句柄 - 输出:[error] 错误信息 - 备注: - 时间:2020年6月1日 ******************************************************************************

func (*GoldenTable) GetTableSizeById

func (t *GoldenTable) GetTableSizeById(handle int32) (int, error)

****************************************************************************** - 功能:根据表 id 获取表中包含的标签点数量 - 输入: - 输出: - 备注: - 时间:2020年5月14日 ******************************************************************************

func (*GoldenTable) RemoveTableById

func (t *GoldenTable) RemoveTableById(handle int32) error

****************************************************************************** * 命名:gob_remove_table_by_id * 功能:根据表 id 删除表及表中标签点; * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注:删除的表不可恢复,删除的标签点可以通过 gob_recover_point 接口恢复。 * 时间:2020年5月27日 ******************************************************************************

func (*GoldenTable) RemoveTableByName

func (t *GoldenTable) RemoveTableByName(handle int32) error

****************************************************************************** * 命名:gob_remove_table_by_name * 功能:根据表 名称 删除表及表中标签点; * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注:删除的表不可恢复,删除的标签点可以通过 gob_recover_point 接口恢复。 * 时间:2020年5月27日 ******************************************************************************

func (*GoldenTable) UpdateTableDescById

func (t *GoldenTable) UpdateTableDescById(handle int32) error

****************************************************************************** * 命名:gob_update_table_desc_by_id * 功能:根据表 id 修改表描述; * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注: * 时间:2020年5月27日 ******************************************************************************

func (*GoldenTable) UpdateTableDescByName

func (t *GoldenTable) UpdateTableDescByName(handle int32) error

****************************************************************************** * 命名:gob_update_table_desc_by_name * 功能:根据表 名称 修改表描述; * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注: * 时间:2020年5月27日 ******************************************************************************

func (*GoldenTable) UpdateTableNameById

func (t *GoldenTable) UpdateTableNameById(handle int32) error

****************************************************************************** * 命名:gob_update_table_name * 功能:根据表 id 修改表名称; * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注: * 时间:2020年5月27日 ******************************************************************************

func (*GoldenTable) UpdateTableNameByOldName

func (t *GoldenTable) UpdateTableNameByOldName(handle int32, newname string) error

****************************************************************************** * 功能:根据表 名称(旧) 修改表名称(新); * 参数:[handle] 数据库访问句柄 * 输出:[error] 错误信息 * 备注: * 时间:2020年6月1日 ******************************************************************************

type HisData

type HisData struct {
	HisRtsd  []RealTimeSeriesData //历史时序数据
	Err      error                //错误信息
	Continue bool                 //快照数据比历史数据的结束点更新
}

历史数据结构

type PointMicPlatEx

type PointMicPlatEx struct {
	Id  int64   //标签点在平台中的ID
	LLv float64 //低低报警值
	Lv  float64 //低报警值
	Hv  float64 //高报警值
	HHv float64 //高高报警值
}

庚顿标签点在智云平台中的扩展属性,存储在ScanPoint的Padding中

func (*PointMicPlatEx) GetFromScanPadding

func (p *PointMicPlatEx) GetFromScanPadding(padding []byte)

****************************************************************************** * 命名:GetFromScanPadding * 功能:将标签点采集扩展属性中的padding属性中存储的内容解释到智云平台扩展属性 * 参数:[padding] 标签点采集扩展属性中的padding属性 * 输出:无 * 备注:解释的数据直接存储到结构体中 * 时间:2020年5月27日 ******************************************************************************

func (*PointMicPlatEx) SetToScanPadding

func (p *PointMicPlatEx) SetToScanPadding() []byte

****************************************************************************** * 命名:SetToScanPadding * 功能:将智云平台扩展属性存储到标签点采集扩展属性中的padding属性中 * 参数:无 * 输出:[padding] 标签点采集扩展属性中的padding属性 * 备注:数据需要预先存储到结构体中 * 时间:2020年5月27日 ******************************************************************************

type RTDBService

type RTDBService struct {
	HostName    string              //主机ip或者计算机名
	Port        int                 //端口号,默认6327
	UserName    string              //用户名,默认sa
	Password    string              //密码,默认golden
	Handle      int32               //连接句柄
	Priv        int                 //整型,GOLDEN_RO, GOLDEN_DW, GOLDEN_TA, GOLDEN_SA 之一,帐户权限
	TableCounts int                 //标签点表数量
	TableIds    []int               //标签点表的ID列表
	Tables      map[int]GoldenTable //标签点表,以id为key
	Points      map[int]GoldenPoint //数据标签点,以id为key
}

庚顿实时数据库

func CreateRTDB

func CreateRTDB(hostname, username, password string, port ...int) *RTDBService

******************************************************************************

  • 功能:创建实时数据库对象
  • 参数: [hostname] 字符串,输入,GOLDEN 数据平台服务器的网络地址或机器名 [user] 用户名,字符串,缺省值 sa [password] 密码,字符串,缺省值 golden [port] 端口号,整型,缺省值 6327
  • 输出: *RTDBService 实时数据库对象
  • 备注:在调用所有的接口函数之前,必须先调用本函数建立RTDBService对象。

******************************************************************************

func (*RTDBService) ArchivedValuesCount

func (s *RTDBService) ArchivedValuesCount(id int, bgtime, endtime int64) (int, error)

******************************************************************************

  • 功能:获取单个标签点在一段时间范围内的存储值数量.
  • 输入: [id] 整型,输入,标签点标识 [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间
  • 输出: [count] 整型,输出,返回上述时间范围内的存储值数量

备注:bgtime可以大于endtime,此时前者表示结束时间,后者表示起始时间。 ******************************************************************************

func (*RTDBService) FindPoints

func (s *RTDBService) FindPoints(table_dot_tags ...string) ([]int, []int, []int, []int, error)

******************************************************************************

  • 功能:根据 "表名.标签点名" 格式批量获取标签点标识
  • 参数: [table_dot_tags] 字符串数组,输入,"表名.标签点名" 列表
  • 返回: [ids] 整型数组,输出,标签点标识列表, 返回 0 表示未找到 [types] 整型数组,输出,标签点数据类型 [classof] 整型数组,输出,标签点类别 [use_ms] 整型数组,输出,时间戳精度, 返回 1 表示时间戳精度为毫秒, 为 0 表示为秒。
  • 备注:

******************************************************************************

func (*RTDBService) FlushArchivedValues

func (s *RTDBService) FlushArchivedValues(id int) (int, error)

******************************************************************************

  • 功能:将标签点未写满的补历史缓存页写入存档文件中。
  • 输入: [id] 整型,输入,标签点标识。
  • 输出: [count] 整型,输出,缓存页中数据个数。
  • 备注:补历史缓存页写满后会自动写入存档文件中,不满的历史缓存页也会写入文件,但会有一个时间延迟, 在此期间此段数据可能查询不到,为了及时看到补历史的结果,应在结束补历史后调用本接口。 count 参数可为空指针,对应的信息将不再返回。

******************************************************************************

func (*RTDBService) GetAPIVersion

func (s *RTDBService) GetAPIVersion() (string, error)

****************************************************************************** // 获取API版本号 ******************************************************************************

func (*RTDBService) GetArchivedValues

func (s *RTDBService) GetArchivedValues(id int, bgtime int64, endtime int64) ([]int64, []float64, []int64, []int16, error)

******************************************************************************

  • 功能:读取单个标签点一段时间内的储存数据
  • 输入: [id] 整型,输入,标签点标识 [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间
  • 输出: [times] 整型数组,输出,实时数值时间列表,表示距离1970年1月1日08:00:00的毫秒数 [values] 双精度浮点数数组,输出,历史浮点型数值列表,对于数据类型为 GOLDEN_REAL16、 GOLDEN_REAL32、GOLDEN_REAL64 的标签点,存放相应的历史存储值;否则为 0 [states] 64位整数数组,输出,历史整型数值列表,对于数据类型为 GOLDEN_BOOL、 GOLDEN_UINT8、GOLDEN_INT8、GOLDEN_CHAR、GOLDEN_UINT16、 GOLDEN_INT16、GOLDEN_UINT32、GOLDEN_INT32、GOLDEN_INT64 的标签点,存 放相应的历史存储值;否则为 0 [qualities] 短整型数组,输出,历史数值品质列表,数据库预定义的品质参见枚举GOLDEN_QUALITY
  • 备注:bgtime可以大于endtime,此时前者表示结束时间,后者表示起始时间。 本接口对数据类型为 GOLDEN_COOR、GOLDEN_BLOB、GOLDEN_STRING 的标签点无效。

******************************************************************************

func (*RTDBService) GetInterpoValues

func (s *RTDBService) GetInterpoValues(id, cnt int, bgtime int64, endtime int64) ([]int64, []float64, []int64, []int16, error)

******************************************************************************

  • 功能:获取单个标签点一段时间内等间隔历史插值
  • 输入: [id] 整型,输入,标签点标识 [count] 整形,需要的插值个数 [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间
  • 输出: [times] 整型数组,输出,实时数值时间列表,表示距离1970年1月1日08:00:00的毫秒数 [values] 双精度浮点数数组,输出,历史浮点型数值列表,对于数据类型为 GOLDEN_REAL16、 GOLDEN_REAL32、GOLDEN_REAL64 的标签点,存放相应的历史存储值;否则为 0 [states] 64位整数数组,输出,历史整型数值列表,对于数据类型为 GOLDEN_BOOL、 GOLDEN_UINT8、GOLDEN_INT8、GOLDEN_CHAR、GOLDEN_UINT16、 GOLDEN_INT16、GOLDEN_UINT32、GOLDEN_INT32、GOLDEN_INT64 的标签点,存 放相应的历史存储值;否则为 0 [qualities] 短整型数组,输出,历史数值品质列表,数据库预定义的品质参见枚举GOLDEN_QUALITY
  • 备注:bgtime可以大于endtime,此时前者表示结束时间,后者表示起始时间。 本接口对数据类型为 GOLDEN_COOR、GOLDEN_BLOB、GOLDEN_STRING 的标签点无效。

******************************************************************************

func (*RTDBService) GetPlotValues

func (s *RTDBService) GetPlotValues(id, interval int, bgtime, endtime int64) ([]int64, []float64, []int64, []int16, error)

******************************************************************************

  • 功能:获取单个标签点一段时间内用于绘图的历史数据
  • 参数: [id] 整型,输入,标签点标识 [interval] 整型,输入,时间区间数量,单位为个,一般会使用绘图的横轴(时间轴)所用屏幕像素数, 该功能将起始至结束时间等分为 interval 个区间,并返回每个区间的第一个和最 后一个数值、最大和最小数值、一条异常数值;故参数 count 有可能输出五倍于 interval 的历史值个数,所以推荐输入的 count 至少是 interval 的五倍。 [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间
  • 输出: [datatimes]整型数组,输出,实时数值时间列表,表示距离1970年1月1日08:00:00的毫秒数 [values] 双精度浮点数数组,输出,浮点型历史值数值列表,对于数据类型为 GOLDEN_REAL16、 GOLDEN_REAL32、GOLDEN_REAL64 的标签点,存放相应的历史值;否则为 0 [states] 64 位整数数组,输出,整型历史值数值列表,对于数据类型为 GOLDEN_BOOL、 GOLDEN_UINT8、GOLDEN_INT8、GOLDEN_CHAR、GOLDEN_UINT16、 GOLDEN_INT16、GOLDEN_UINT32、GOLDEN_INT32、GOLDEN_INT64 的标签点,存 放相应的历史值;否则为 0 [qualities]短整型数组,输出,历史值品质列表,数据库预定义的品质参见枚举 GOLDEN_QUALITY
  • 备注:用户须保证 datetimes、ms、values、states、qualities 的长度与 count 一致,在输入时, datetimes、ms 中至少应有一个元素,用以存放起始及结束时间。 第一个元素形成的时间可以大于最后一个元素形成的时间,此时第一个元素表示结束时间, 最后一个元素表示开始时间。 本接口对数据类型为 GOLDEN_COOR、GOLDEN_BLOB、GOLDEN_STRING 的标签点无效。

******************************************************************************

func (*RTDBService) GetPointPropterty

func (s *RTDBService) GetPointPropterty(ids ...int) error

****************************************************************************** * 命名:gob_get_points_property * 功能:批量获取标签点属性 * 参数:[ids] 需要读取属性的id切片 * 输出:[error] 错误信息 * 备注:读取到的标签点信息保存到结构体数组的Point Map中 - 时间:2020年5月14日 ******************************************************************************

func (*RTDBService) GetSinglePointPropterty

func (s *RTDBService) GetSinglePointPropterty(id int) (GoldenPoint, error)

******************************************************************************

  • 命名:gob_get_points_property
  • 功能:获取单个标签点的属性
  • 参数:[ids] 需要读取属性的id切片
  • 输出:[GoldenPoint]标签点信息 [error] 错误信息
  • 备注:读取到的信息只返回,不保存
  • 时间:2020年5月14日

******************************************************************************

func (*RTDBService) GetSingleValue

func (s *RTDBService) GetSingleValue(id, mode int, datetime int64) (int64, float64, int64, int16, error)

******************************************************************************

  • 功能:读取单个标签点某个时间点的历史数据
  • 输入: [id] 整型,输入,标签点标识 [mode] 整型,输入,取值 GOLDEN_NEXT(0)、GOLDEN_PREVIOUS(1)、GOLDEN_EXACT(2)、 GOLDEN_INTER(3) 之一: GOLDEN_NEXT(0) 寻找下一个最近的数据; GOLDEN_PREVIOUS(1) 寻找上一个最近的数据; GOLDEN_EXACT(2) 取指定时间的数据,如果没有则返回错误 GoE_DATA_NOT_FOUND; GOLDEN_INTER(3) 取指定时间的内插值数据。 [datetime] 整型,输入,表示UnixNano秒数
  • 输出: [datatime] 整型,Unix毫秒数;表示实际取得的历史数值对应的时间秒数。 [value] 双精度浮点数,输出,浮点型历史数值,对于数据类型为 GOLDEN_REAL16、 GOLDEN_REAL32、GOLDEN_REAL64 的标签点,存放相应的历史值;否则为 0 [state] 64 位整数,输出,整型历史数值,对于数据类型为 GOLDEN_BOOL、GOLDEN_UINT8、 GOLDEN_INT8、GOLDEN_CHAR、GOLDEN_UINT16、GOLDEN_INT16、 GOLDEN_UINT32、GOLDEN_INT32、GOLDEN_INT64 的标签点,存放相应的历史值;否则为 0 [quality] 短整型,输出,历史值品质,数据库预定义的品质参见枚举 GOLDEN_QUALITY 备注:本接口对数据类型为 GOLDEN_COOR、GOLDEN_BLOB、GOLDEN_STRING 的标签点无效。

******************************************************************************

func (*RTDBService) GetSnapshots

func (s *RTDBService) GetSnapshots(ids []int) ([]int64, []float64, []int64, []int, []error, error)

******************************************************************************

  • 功能:批量读取开关量、模拟量快照数值
  • 参数: [ids] 整型数组,输入,标签点标识列表
  • 返回: [datetimes] 整型数组,输出,实时数值时间列表,表示距离1970年1月1日08:00:00的毫秒数 [values] 双精度浮点型数组,输出,实时浮点型数值列表,对于数据类型为 GOLDEN_REAL16、 GOLDEN_REAL32、GOLDEN_REAL64 的标签点,返回相应的快照值;否则为 0 [states] 64 位整型数组,输出,实时整型数值列表,对于数据类型为 GOLDEN_BOOL、 GOLDEN_UINT8、GOLDEN_INT8、GOLDEN_CHAR、GOLDEN_UINT16、GOLDEN_INT16、 GOLDEN_UINT32、GOLDEN_INT32、GOLDEN_INT64 的标签点,返回相应的快照值;否则为0 [qualities] 短整型数组,输出,实时数值品质列表,数据库预定义的品质参见枚举 GOLDEN_QUALITY errors 错误信息数组,输出,读取实时数据的错误返回值列表,参考golden_error.h
  • 备注:本接口对数据类型为 GOLDEN_COOR、GOLDEN_STRING、GOLDEN_BLOB 的标签点无效。

******************************************************************************

func (*RTDBService) GetTables

func (s *RTDBService) GetTables(needpointmsg ...bool) error

****************************************************************************** - 功能:取得标签点表信息 - 输入:[needpointmsg]是否需要标签点信息,0不需要,1需要;省略不需要 - 输出: [error] 错误信息 - 备注:标签表数和标签ID同时保存到结构体中 - 时间:2020年5月14日 ******************************************************************************

func (*RTDBService) GetTablesCount

func (s *RTDBService) GetTablesCount() (int, error)

******************************************************************************

  • 功能:取得标签点表总数
  • 输入:
  • 输出: [count] 整型,输出,标签点表总数。
  • 备注:

******************************************************************************

func (*RTDBService) GetTablesProperty

func (s *RTDBService) GetTablesProperty(tableid int) (GoldenTable, error)

****************************************************************************** - 功能:取得标签点表属性 - 输入: - 输出: - 备注: - 时间:2020年5月14日 ******************************************************************************

func (*RTDBService) HostTime

func (s *RTDBService) HostTime() (int64, error)

****************************************************************************** - 功能:获取 GOLDEN 服务器当前UTC时间 - 参数:无 - 返回:[hosttime] 整型,输出,Golden服务器的当前UTC时间,表示距离1970年1月1日08:00:00的秒数。 /******************************************************************************

func (*RTDBService) PutArchivedValues

func (s *RTDBService) PutArchivedValues(ids []int, datatimes []int64, values []float64, states []int64, qualities []int16) ([]error, error)

******************************************************************************

  • 功能:写入批量标签点批量历史存储数据
  • 输入: [ids] 整型数组,输入,标签点标识,同一个标签点标识可以出现多次,但它们的时间戳必需是递增的。 [datatimes] 整型数组,输入,实时数值时间列表,表示距离1970年1月1日08:00:00的纳秒数 [values] 双精度浮点数数组,输入,浮点型历史数值列表,对于数据类型为 GOLDEN_REAL16、 GOLDEN_REAL32、GOLDEN_REAL64 的标签点,表示相应的历史存储值;否则忽略 [states] 64 位整数数组,输入,整型历史数值列表,对于数据类型为 GOLDEN_BOOL、 GOLDEN_UINT8、GOLDEN_INT8、GOLDEN_CHAR、GOLDEN_UINT16、 GOLDEN_INT16、GOLDEN_UINT32、GOLDEN_INT32、GOLDEN_INT64 的标签点,表 示相应的历史存储值;否则忽略 [qualities] 短整型数组,输入,历史数值品质列表,数据库预定义的品质参见枚举GOLDEN_QUALITY
  • 输出: errors 无符号整型数组,输出,写入历史数据的返回值列表,参考golden_error.h 备注:用户须保证 ids、datetimes、ms、values、states、qualities、errors 的长度与 count 一致, 本接口对数据类型为 GOLDEN_COOR、GOLDEN_BLOB、GOLDEN_STRING 的标签点无效。 如果 datetimes、ms 标识的数据已经存在,其值将被替换。

******************************************************************************

func (*RTDBService) PutSnapshots

func (s *RTDBService) PutSnapshots(ids []int, datatimes []int64, values []float64, states []int64, qualities []int16) ([]error, error)

******************************************************************************

  • 功能:批量写入开关量、模拟量快照数值
  • 参数: [ids] 整型数组,输入,标签点标识列表,同一个标签点标识可以出现多次,但它们的时间戳必需是递增的。 [datatimes] 整型数组,输入,实时数值时间列表,表示距离1970年1月1日08:00:00的纳秒数 [values] 双精度浮点型数组,输入,实时浮点型数值列表,对于数据类型为 GOLDEN_REAL16、 GOLDEN_REAL32、GOLDEN_REAL64 的标签点,存放相应的快照值;否则忽略 [states] 64 位整型数组,输入,实时整型数值列表,对于数据类型为 GOLDEN_BOOL、 GOLDEN_UINT8、GOLDEN_INT8、GOLDEN_CHAR、GOLDEN_UINT16、GOLDEN_INT16、 GOLDEN_UINT32、GOLDEN_INT32、GOLDEN_INT64 的标签点,存放相应的快照值;否则忽略 [qualities] 短整型数组,输入,实时数值品质列表,数据库预定义的品质参见枚举 GOLDEN_QUALITY

-返回:

 [errors]    错误信息数组,输出,写入实时数据的返回值列表,参考golden_error.h
[error]    错误信息

-备注:用户须保证 ids、datatimes、ms、values、states、qualities的长度一致。

本接口对数据类型为 GOLDEN_COOR、GOLDEN_STRING、GOLDEN_BLOB 的标签点无效。

******************************************************************************

func (*RTDBService) RemovePointsById

func (s *RTDBService) RemovePointsById(ids ...int) (int, map[int]error, error)

******************************************************************************

  • 命名:gob_remove_points
  • 功能:批量删除标签点
  • 输入:需要删除的标签点ids
  • 输出: [int] 删除成功的标签点数量 [map[int]error] 各个ID再删除时的错误信息 [error] 总体的错误信息(所有标签点都无效的时候会有总体错误信息)
  • 备注:

******************************************************************************

func (*RTDBService) Search

func (s *RTDBService) Search(tagmask, tablemask, source, unit, desc, instrument string, mode int) ([]int, error)

******************************************************************************

  • 功能:搜索符合条件的标签点,使用标签点名时支持通配符
  • 参数: [tagmask] 字符串,输入,标签点名称掩码,支持"*"和"?"通配符,缺省设置为"*", 长度不得超过GOLDEN_TAG_SIZE,支持多个搜索条件,以空格分隔。 [tablemask] 字符串,输入,标签点表名称掩码,支持"*"和"?"通配符,缺省设置为"*", 长度不得超过 GOLDEN_TAG_SIZE,支持多个搜索条件,以空格分隔。 [source] 字符串,输入,数据源集合,字符串中的每个字符均表示一个数据源,空字符串 表示不用数据源作搜索条件,缺省设置为空,长度不得超过 GOLDEN_DESC_SIZE。 [unit] 字符串,输入,标签点工程单位的子集,工程单位中包含该参数的标签点均满足条件, 空字符串表示不用工程单位作搜索条件,缺省设置为空,长度不得超GOLDEN_UNIT_SIZE。 [desc] 字符串,输入,标签点描述的子集,描述中包含该参数的标签点均满足条件, 空字符串表示不用描述作搜索条件,缺省设置为空,长度不得超过 GOLDEN_SOURCE_SIZE。 [instrument] 字符串,输入参数,标签点设备名称。缺省设置为空,长度不得超过GOLDEN_INSTRUMENT_SIZE。 [mode] 整型,GOLDEN_SORT_BY_TABLE(0)、GOLDEN_SORT_BY_TAG(1)、GOLDEN_SORT_BY_ID(2) 之一, 搜索结果的排序模式,输入,缺省值为GOLDEN_SORT_BY_TABLE
  • 返回: [ids] 整型数组,输出,返回搜索到的标签点标识列表 [error] 错误信息
  • 备注:用户须保证分配给 ids 的空间与 count 相符,各参数中包含的搜索条件之间的关系为"与"的关系, 用包含通配符的标签点名称作搜索条件时,如果第一个字符不是通配符(如"ai67*"),会得到最快的搜索速度。 如果 tagmask、tablemask 为空指针,则表示使用缺省设置"*", 多个搜索条件可以通过空格分隔,比如"demo_*1 demo_*2",会将满足demo_*1或者demo_*2条件的标签点搜索出来。

******************************************************************************

func (*RTDBService) SetOption

func (s *RTDBService) SetOption(apiType int, value int)

******************************************************************************

  • 功能:配置 api 行为参数
  • 参数: [type] 整型,输入,选项类别:参见枚举 GOLDEN_API_OPTION GOLDEN_API_AUTO_RECONN(0):api 在连接中断后是否自动重连, 0 不重连;1 重连。默认为 0 不重连 GOLDEN_API_CONN_TIMEOUT(1):api 连接超时值设置(单位:秒),0 阻塞模式,无限等待,默认为0 [value] 整型,输入,选项值。
  • 备注:选项设置后在下一次调用 api 时才生效。

******************************************************************************

func (*RTDBService) SummaryEx

func (s *RTDBService) SummaryEx(id int, bgtime, endtime int64) (int64, int64, float64, float64, float64, float64, float64, int, error)

******************************************************************************

  • 功能:获取单个标签点一段时间内的统计值,以及用于计算统计值的数据个数。
  • 输入: [id] 整型,输入,标签点标识 [bgtime] 整型,输入,表示起始时间UnixNano秒数。如果为 0,表示从存档中最早时间的数据开始读取 [endtime] 整型,输入,表示结束时间UnixNano秒数。如果为 0,表示读取直至存档中数据的最后时间
  • 输出: [max_time] 整形,最大值对应的Unix毫秒时间.如果为 0,则表示无最大值 [min_time] 整形,最小值对应的Unix毫秒时间.如果为 0,则表示无最小值 [max_value] 双精度浮点型,输出,表示统计时间段内的最大数值。 [min_value] 双精度浮点型,输出,表示统计时间段内的最小数值。 [total_value] 双精度浮点型,输出,表示统计时间段内的累计值,结果的单位为标签点的工程单位。 [calc_avg] 双精度浮点型,输出,表示统计时间段内的算术平均值。 [power_avg] 双精度浮点型,输出,表示统计时间段内的加权平均值。 [count] 整型,输出,表示统计时间段内用于计算统计值的数据个数。
  • 备注:bgtime可以大于endtime,此时前者表示结束时间,后者表示起始时间。 如果输出的最大值或最小值的时间戳秒值为 0,则表明仅有累计值和加权平均值输出有效,其余统计结果无效。 本接口对数据类型为 GOLDEN_COOR、GOLDEN_BLOB、GOLDEN_STRING 的标签点无效。

******************************************************************************

type RealTimeSeriesData

type RealTimeSeriesData struct {
	Time    int64   //时间,表示距离1970年1月1日08:00:00的毫秒数
	Value   float64 //数值
	Quality int     //质量码(GOOD = 0,NODATA = 1,CREATED = 2,SHUTDOWN = 3,CALCOFF = 4,BAD = 5,DIVBYZERO = 6,REMOVED = 7,OPC = 256,USER = 512)
}

时间序列数据

type SnapData

type SnapData struct {
	Id   int                //标签点id
	Rtsd RealTimeSeriesData //时序数据
	Err  string             //错误描述,无错误时为空
}

快照数据

Directories

Path Synopsis
goldensim document
goldensim document

Jump to

Keyboard shortcuts

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