#!/usr/bin/python
#===============================================================================
# CERN (BE-CO-HT)
# Clear CHxPCR registers on CONV-TTL-BLO
#===============================================================================
# author: Theodor Stana (t.stana@cern.ch)
#
# date of creation:
#
# version: 1.0
#
# description:
#   This script is used to clear the input channel counters on the CONV-TTL-BLO
#   board.
#
#===============================================================================
# GNU LESSER GENERAL PUBLIC LICENSE
#===============================================================================
# This source file is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by the
# Free Software Foundation; either version 2.1 of the License, or (at your
# option) any later version. This source is distributed in the hope that it
# will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU Lesser General Public License for more details. You should have
# received a copy of the GNU Lesser General Public License along with this
# source; if not, download it from http://www.gnu.org/licenses/lgpl-2.1.html
#===============================================================================
# last changes:
#===============================================================================
#  TODO: - 
#===============================================================================
import time
import sys
import time
sys.path.append("../ei2c")
from ei2c import *
import ei2cdefine


if __name__ == "__main__":
    # Get the IP, user and password for the ELMA crate from ei2cdefine.py
    ip   = ei2cdefine.HNAME
    user = ei2cdefine.USER
    pwd  = ei2cdefine.PWD
    testelma = EI2C(ip, user, pwd)
    testelma.open()

    # Ask for slot number
    while 1:
        try:
            slot = raw_input("Slot no.: ")
            slot = int(slot)
            break
        except TypeError as e:
            print("Please input a decimal slot number.")
        except SlotError as e:
            print(e.strerror)
        except KeyboardInterrupt:
            sys.exit();
        except:
            print("Unexpected error: ", sys.exc_info()[0])

    # Clear channel
    testelma.write(slot, 0x0c, 0)
    testelma.write(slot, 0x10, 0)
    testelma.write(slot, 0x14, 0)
    testelma.write(slot, 0x18, 0)
    testelma.write(slot, 0x1c, 0)
    testelma.write(slot, 0x20, 0)

    # Print channel counter values, close and exit
    print("CH1: %d" % testelma.read(slot, 0x0c))
    print("CH2: %d" % testelma.read(slot, 0x10))
    print("CH3: %d" % testelma.read(slot, 0x14))
    print("CH4: %d" % testelma.read(slot, 0x18))
    print("CH5: %d" % testelma.read(slot, 0x1c))
    print("CH6: %d" % testelma.read(slot, 0x20))
    testelma.close()

