def read(self): data_def = self.E2PROM.read(E2PROM_START_ADDRESS, E2PROM_OFFSET) if data_def is None: self.logger.warning("read: data_def is None, returning None") return None fixed_data = util.parse_data_def(data_def) if fixed_data is None: self.logger.warning("read: wrong fixed data, length: %d, [0]: %x [1]: %x, returning None", len(data_def), data_def[0], data_def[1]) return None if ((fixed_data['state']['current_pos'] > E2PROM_END_ADDRESS) or (fixed_data['state']['current_pos'] < E2PROM_START_VARIABLE) or (fixed_data['state']['current_pos'] % E2PROM_CHUNK_HALF != 0)): self.logger.warning("read: wrong cursor value %d, returning None", fixed_data['state']['current_pos']) self.logger.warning("read: previous cursor value %d", self.fixedPar['state']['current_pos']) return None if self.fixedPar['state']['current_pos'] != fixed_data['state']['current_pos']: old_pos = self.fixedPar['state']['current_pos'] self.dataDef = data_def self.fixedPar = fixed_data if ((fixed_data['state']['current_pos'] - old_pos > E2PROM_CHUNK_HALF) or (fixed_data['state']['current_pos'] == E2PROM_START_VARIABLE and old_pos != E2PROM_END_ADDRESS - E2PROM_CHUNK_HALF)): self.logger.warning('New pos (%d) distance not correct, previous pos (%d)', fixed_data['state']['current_pos'], self.fixedPar['state']['current_pos']) return None cursor = self.fixedPar['state']['current_pos'] if cursor < (E2PROM_END_ADDRESS - E2PROM_CHUNK_HALF): buf1, buf2 = self._get(cursor) if buf1 is None or buf2 is None: self.logger.warning("read: _get (1) returned None, cursor: %d, returning None", cursor) return None rec = util.parse_ws_record(buf1) else: cursor -= E2PROM_CHUNK_HALF self.logger.info('get_current_record: buffer end (%d)', cursor) buf1, buf2 = self._get(cursor) if buf1 is None or buf2 is None: self.logger.warning("read: _get (2) returned None, cursor: %d, returning None", cursor) return None rec = util.parse_ws_record(buf2) ts = datetime.now() rec['time_str'] = ts.isoformat() rec['time'] = util.msecs(ts) rec['cursor'] = cursor return rec
def __init__(self): self.logger = logging.getLogger('WS1080.WS') self.logger.debug('init') self.E2PROM = E2PROM() self.dataDef = self.E2PROM.read(E2PROM_START_ADDRESS, E2PROM_OFFSET) if self.dataDef is None: self.logger.warning("WS init: dataDef is None, terminating...") sys.exit(1) self.fixedPar = util.parse_data_def(self.dataDef) if self.fixedPar is None: self.logger.warning("WS init: fixedPar is None, Length: %d, [0]: %x [1]: %x, terminating...", len(self.dataDef), self.dataDef[0], self.dataDef[1]) sys.exit(1)
def __init__(self): self.logger = logging.getLogger('WS1080.WS') self.logger.debug('init') self.E2PROM = E2PROM() self.dataDef = self.E2PROM.read(E2PROM_START_ADDRESS, E2PROM_OFFSET) if self.dataDef is None: self.logger.warning("WS init: dataDef is None, terminating...") sys.exit(1) self.fixedPar = util.parse_data_def(self.dataDef) if self.fixedPar is None: self.logger.warning( "WS init: fixedPar is None, Length: %d, [0]: %x [1]: %x, terminating...", len(self.dataDef), self.dataDef[0], self.dataDef[1]) sys.exit(1)
def read(self): data_def = self.E2PROM.read(E2PROM_START_ADDRESS, E2PROM_OFFSET) if data_def is None: self.logger.warning("read: data_def is None, returning None") return None fixed_data = util.parse_data_def(data_def) if fixed_data is None: self.logger.warning( "read: wrong fixed data, length: %d, [0]: %x [1]: %x, returning None", len(data_def), data_def[0], data_def[1]) return None if ((fixed_data['state']['current_pos'] > E2PROM_END_ADDRESS) or (fixed_data['state']['current_pos'] < E2PROM_START_VARIABLE) or (fixed_data['state']['current_pos'] % E2PROM_CHUNK_HALF != 0)): self.logger.warning("read: wrong cursor value %d, returning None", fixed_data['state']['current_pos']) self.logger.warning("read: previous cursor value %d", self.fixedPar['state']['current_pos']) return None if self.fixedPar['state']['current_pos'] != fixed_data['state'][ 'current_pos']: old_pos = self.fixedPar['state']['current_pos'] self.dataDef = data_def self.fixedPar = fixed_data if ((fixed_data['state']['current_pos'] - old_pos > E2PROM_CHUNK_HALF) or (fixed_data['state']['current_pos'] == E2PROM_START_VARIABLE and old_pos != E2PROM_END_ADDRESS - E2PROM_CHUNK_HALF)): self.logger.warning( 'New pos (%d) distance not correct, previous pos (%d)', fixed_data['state']['current_pos'], self.fixedPar['state']['current_pos']) return None cursor = self.fixedPar['state']['current_pos'] if cursor < (E2PROM_END_ADDRESS - E2PROM_CHUNK_HALF): buf1, buf2 = self._get(cursor) if buf1 is None or buf2 is None: self.logger.warning( "read: _get (1) returned None, cursor: %d, returning None", cursor) return None rec = util.parse_ws_record(buf1) else: cursor -= E2PROM_CHUNK_HALF self.logger.info('get_current_record: buffer end (%d)', cursor) buf1, buf2 = self._get(cursor) if buf1 is None or buf2 is None: self.logger.warning( "read: _get (2) returned None, cursor: %d, returning None", cursor) return None rec = util.parse_ws_record(buf2) ts = datetime.now() rec['time_str'] = ts.isoformat() rec['time'] = util.msecs(ts) rec['cursor'] = cursor return rec