Source code for implib2.imp_eeprom

# encoding: utf-8

import io
import re
import struct


[docs]class EEPROM(object): """This Class represents a simple data structure to hold an EEPROM image. It can be used with :func:`Module.write_eeprom` to update the EEPROM image of the probe. """ def __init__(self, filename): self._data = io.BytesIO() self._page = 250 self._regx = re.compile('^; (.*?) = (.*?)$') with open(filename) as epr: for line in epr: if line.startswith(';'): self._readmeta(line) else: self._readdata(line) self._data.seek(0) def __iter__(self): while True: data = self._data.read(self._page) if not data: break yield data def _readdata(self, line): byte = struct.pack('>B', int(line.strip())) self._data.write(byte) def _readmeta(self, line): match = self._regx.match(line) if match: key, value = match.group(1, 2) setattr(self, key.replace(' ', '_').strip(), value.strip())