Commit 140f41ca authored by Matthieu Cattin's avatar Matthieu Cattin

cp210x_eeprom: Add exception class and comments.

parent 91217b36
......@@ -18,8 +18,24 @@ from ptsexcept import *
from cp210x import usb, valuefile, cp210x
from cp210x.eeprom import EEPROM
"""
cp210x_eeprom: Access to USB-UART bridge CP2103 EEPROM
Note: The EEPROM is used to store calibration data (reference voltage output for
the three ranges). The data are stores as a string in the "Product String".
Format: "4.09551500 0.40967800 0.04096060"
"""
CALIBR_RANGES = ['10V', '1V', '100mV']
class CP210xEepromOperationError(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return ("CP210x EEPROM: %s" %(self.msg))
class CCP210x_Eeprom:
......@@ -37,6 +53,8 @@ class CCP210x_Eeprom:
self.dev.open()
try:
eeprom = EEPROM(self.dev)
except:
raise CP210xEepromOperationError('Cannot open device.')
finally:
self.dev.close()
eeprom_value = eeprom.get_values()
......@@ -44,15 +62,14 @@ class CCP210x_Eeprom:
#print "Product string: \"%s\"" % product_string
calibr_string_list = product_string.split(' ')
if len(calibr_string_list) != 3:
raise Exception('Product string has the wrong format.')
raise CP210xEepromOperationError('Product string has the wrong format.')
calibr_data = {}
for i in range(len(calibr_string_list)):
pattern = r'\b[0-9]\.[0-9]{8}\b'
if re.search(pattern, calibr_string_list[i]):
calibr_data[CALIBR_RANGES[i]] = calibr_string_list[i]
else:
raise Exception('Product string has the wrong format.')
raise CP210xEepromOperationError('Product string has the wrong format.')
return calibr_data
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment