●tag模块(tag.py)
类:
CommonTag
Tag继承于CommTag
方法:
❖ 根据插值模式、tagID列表,tagType列表,时间戳列表,获取对应的批量插值记录
❖ 根据开始和结束时间形成的时间范围,查询归档的原始值的迭代器,通过该迭代器防止在大数据量的情况下对服务端查询造成性能压力
❖ 以线性插值或者前向插值的模式获取指定时刻列表的插值记录列表
❖ 根据开始和结束时间形成的时间范围,查询时间范围内的归档原始值的总数
❖ 保存乱序数据到一个tag点的内存快照,即把时间戳小于内存快照的数据插入到实时数据库系统中
●举例
import unittest
from server import *
from tagmgr import *
from tag import *
from record import *
from datetime import time
class TagTestCase(unittest.TestCase):
def setUp(self):
self.server = Server('168.2.237.97', 5678)
#self.server = Server('127.0.0.1', 5678)
self.server.connect(2)
self.server.login('admin', 'admin')
def tearDown(self):
self.server.disconnect()
def test_getRawRecords(self):
tag1 = self.tag_mgr.get_tag('hdsys_cpu')
dt = datetime.now()
endTime = hyperdb.HDTime()
endTime.nSec = c_int32(int(time.mktime(dt.timetuple()))-100)
endTime.nMsec = c_int16(dt.microsecond/1000)
startTime = hyperdb.HDTime()
startTime.nSec = endTime.nSec - 1000000
startTime.nMsec = endTime.nMsec
iterate=tag1.get_rawRecords_Iterate_ByTimeScope(startTime,endTime)
record = iterate.get_next_record()
count = 0
while(record):
count += 1
record = iterate.get_next_record()
if((count- (count/1000)*1000) == 0 ):
print 'count is ' + str(count) + ' value is '+ record.value
print count
unittest.TestCase.assertEqual(self,True, (count>0))
def test_getInterRecords(self):
tag1 = self.tag_mgr.get_tag('hdsys_cpu')
dt = datetime.now()
queryTime = hyperdb.HDTime()
queryTime.nSec = c_int32(int(time.mktime(dt.timetuple()))-10)
queryTime.nMsec = c_int16(dt.microsecond/1000)
ret=tag1.get_inter_record_by_mode(0,queryTime)
print 'line inerp value is '+ret.value
ret=tag1.get_inter_record_by_mode(1,queryTime)
print 'prev inerp value is '+ret.value
unittest.TestCase.assertEqual(self,True, (ret != None))