#!   /usr/bin/env   python
#    coding: utf8

# Copyright CERN, 2012
# Author: Matthieu Cattin <matthieu.cattin@cern.ch>
# Licence: GPL v2 or later.
# Website: http://www.ohwr.org
# Last modifications: 4/6/2012

# Import system modules
import sys
import time
import os
import re

# Add common modules and libraries location to path
sys.path.append('../../../')
sys.path.append('../../../gnurabbit/python/')
sys.path.append('../../../common/')

# Import common modules
from ptsexcept import *
import rr

# Import specific modules
from cp210x_eeprom import *
from ctypes import *
import find_usb_tty


"""
test24: Read calibration data from CP2103 EEPROM

The calibration box contains a voltage reference that has to
be calibrated for each input voltage range of the FmcAdc.
A multimeter of at least 6 digits has to be used for the
calibration. The result of the calibration is stored in the
cp2103 EEPROM.

"""


# Calibration box vendor and product IDs
BOX_USB_VENDOR_ID = 0x10c4 # Cygnal Integrated Products, Inc.
BOX_USB_PRODUCT_ID = 0xea60 # CP210x Composite Device


def main ():

    try:

        box_eeprom = CCP210x_Eeprom("%X"%BOX_USB_VENDOR_ID, "%X"%BOX_USB_PRODUCT_ID)

        print "Read calibration data from cp210x EEPROM."
        calibr_data = box_eeprom.get_calibr_data()
        for range_str, value in calibr_data.iteritems():
            print "%5s range calibration voltage is: %s V" % (range_str, value)

    except(CP210xEepromOperationError) as e:
        raise PtsError("Test failed: %s" % e)


if __name__ == '__main__' :
    main()
