#!/usr/bin/env python

import sys
from ezca import Ezca
import cdsutils as cdu
import time


Ezca().export()

numTriang = 30

############## voltage version
maxAmp   = 10 
stepSize = .01 
numSteps = int(maxAmp/stepSize)

sleeptime = .03 

# should be about 30 sec / 10 Volts


ezca['ALS-C_COMM_VCO_TUNEOFS'] = 0
ezca['ALS-C_COMM_VCO_CONTROLS_ENABLE'] = 0

# Go from middle to one edge
for ii in range(int(numSteps/2)):
    currVal = ezca['ALS-C_COMM_VCO_TUNEOFS']
    ezca['ALS-C_COMM_VCO_TUNEOFS'] = round(currVal + stepSize,3)
    time.sleep(sleeptime)

# Do triangles
for jj in range(numTriang):
    for ii in range(numSteps):
        currVal = ezca['ALS-C_COMM_VCO_TUNEOFS']
        ezca['ALS-C_COMM_VCO_TUNEOFS'] = round(currVal - stepSize,3)
        time.sleep(sleeptime)

    for ii in range(numSteps):
        currVal = ezca['ALS-C_COMM_VCO_TUNEOFS']
        ezca['ALS-C_COMM_VCO_TUNEOFS'] = round(currVal + stepSize,3)
        time.sleep(sleeptime)




################## freq offset version
# To use this, may need to lower UGF of servo on COMM VCO screen?
'''
maxAmp   = 2*56000 # 60000
stepSize = 1 # 1?

sleeptime = (10/37000.) # 10 sec per one 37kHz FSR

ezca['ALS-C_COMM_VCO_CONTROLS_ENABLE'] = 1

ezca['ALS-C_COMM_VCO_CONTROLS_SETFREQUENCYOFFSET'] = 56000

for jj in range(numTriang):
    for ii in range(numSteps):
        currVal = ezca['ALS-C_COMM_VCO_CONTROLS_SETFREQUENCYOFFSET']
        ezca['ALS-C_COMM_VCO_CONTROLS_SETFREQUENCYOFFSET'] = currVal - stepSize
        time.sleep(sleeptime)

    for ii in range(numSteps):
        currVal = ezca['ALS-C_COMM_VCO_CONTROLS_SETFREQUENCYOFFSET']
        ezca['ALS-C_COMM_VCO_CONTROLS_SETFREQUENCYOFFSET'] = currVal + stepSize
        time.sleep(sleeptime)


'''


