tag模块

Navigation:  Python > Tag类管理 >

tag模块

Previous pageReturn to chapter overviewNext page

 

tag模块(tag.py)

 

类:

CommonTag

 

Tag继承于CommTag

 

方法:

批量保存多个点的内存快照列表

 

根据tagID和对应的类型列表,获取对应的内存快照列表

 

根据插值模式、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))