def __init__(self, host = 'localhost', port = 7809, timeout = 30, logger_id = 0x001, computer_id = 0x802 ): """ this initilizer function sets up the connection arguments: host: (string) a string repesenting the ip for the connection port: (int) the port number timeout: (int) timeout value logger_id: (int) the ID of the logger computer_id:(int) the id of the computer """ self.host = host self.port = port self.timeout = timeout self.l_id = logger_id self.c_id = computer_id self.link = pakbus.open_socket(self.host, self.port , self.timeout) self.ping() self.progs = [] self.table_list = [] FileData, Response = pakbus.fileupload(self.link, self.l_id, self.c_id , '.TDF') self.tabledef = pakbus.parse_tabledef(FileData) self.fetchprogs()
def refresh_tabledef(self): """ refresh the table definition """ self.ping() FileData, Response = pakbus.fileupload(self.link, self.l_id, self.c_id , '.TDF') self.tabledef = pakbus.parse_tabledef(FileData)
def __init__(self, db, socket, my_node_id, metric_id, pakbus_id, data_callback = None, record_callback = None, #wu_object = None, security_code = 0x1111): """ db is the sqlite db to use to store the last record numbers the data_callback is called for each time series (eg for openTSDB) the record callback is called once for each row in the datalogger's table """ #self.number = number self.log = logging.getLogger(__name__) self.db = sqlite3.connect(db) self.my_node_id = my_node_id self.metric_id = metric_id self.pakbus_id = pakbus_id self.security_code = security_code self.data_callback = data_callback self.record_callback = record_callback #self.wu_object = wu_object self.log.debug("Getting serial number for {}@{}".format(metric_id, pakbus_id)) self.serno = pakbus.get_cr1000_serial(socket, self.pakbus_id, self.my_node_id, self.security_code) self.log.info("{}@{} has serial number {}".format(metric_id, pakbus_id, self.serno)) self.log.debug("Getting table defs") self.FileData, RespCode = pakbus.fileupload(socket, self.pakbus_id, self.my_node_id, FileName = '.TDF', SecurityCode = self.security_code) # todo, check resp code! self.log.debug(" -- table def RespCode was: {}".format(RespCode)) #self.log.debug("Filedata = {}".format(self.FileData)) self.tabledef = pakbus.parse_tabledef(self.FileData) self.log.debug("tabledef = {}".format(self.tabledef)) self.list_of_tables = self.getTables(socket, 3) self.last_collect = {"ts": None, "NextRecNbr": None} self.check_db()
def get_table_def (self): """ Function doc """ data, code = self.download('.TDF') if code: self.table_def = pkb.parse_tabledef(data) return code
#print '\n' i += 1 print time.time()-t print 'HERE \n' """ # number = input('How many samples do you want?: ') # FileData, RespCode = pakbus.fileupload(s, NodeId, MyNodeId, FileName = '.TDF') # tabledef = pakbus.parse_tabledef(FileData) # data = pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table') FileData, RespCode = pakbus.fileupload(s, NodeId, MyNodeId, FileName=".TDF") tabledef = pakbus.parse_tabledef(FileData) """ # get P1 amount of most recent records print pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table', CollectMode = 0x05, P1 = 10), '\n' # get everything after record number specified by P1 (inclusive), but it can do a max of 40 records (when printing) print pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table', CollectMode = 0x04, P1 = 0), '\n' # CollectMode = 0x07 : get data within timestamp range specified by P1(not inclusive) and P2 (inclusive) print pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table', CollectMode = 0x07, P1 = 770744820, P2 = 770744880), '\n' # get data from p1 record number (inclusive) to p2 record number (non inclusive of p2) print pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table', CollectMode = 0x06, P1 = 3, P2 = 8), '\n'
#print values #print '\n' i += 1 print time.time()-t print 'HERE \n' ''' #number = input('How many samples do you want?: ') #FileData, RespCode = pakbus.fileupload(s, NodeId, MyNodeId, FileName = '.TDF') #tabledef = pakbus.parse_tabledef(FileData) #data = pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table') FileData, RespCode = pakbus.fileupload(s, NodeId, MyNodeId, FileName='.TDF') tabledef = pakbus.parse_tabledef(FileData) ''' # get P1 amount of most recent records print pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table', CollectMode = 0x05, P1 = 10), '\n' # get everything after record number specified by P1 (inclusive), but it can do a max of 40 records (when printing) print pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table', CollectMode = 0x04, P1 = 0), '\n' # CollectMode = 0x07 : get data within timestamp range specified by P1(not inclusive) and P2 (inclusive) print pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table', CollectMode = 0x07, P1 = 770744820, P2 = 770744880), '\n' # get data from p1 record number (inclusive) to p2 record number (non inclusive of p2) print pakbus.collect_data(s, NodeId, MyNodeId, tabledef, 'Table', CollectMode = 0x06, P1 = 3, P2 = 8), '\n' #