import scheduler
from stardice import configfiles
from glob import glob
import logging
logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG)
import numpy as np
from notification import notify
import os

outdir = '../data/spectro_bench/linearity'
if not os.path.exists(outdir):
    os.mkdir(outdir)
    
config = configfiles.Config('spectro_bench.cfg')

sched = scheduler.Scheduler(config)


d = sched.get_default()

leds = np.load('../drivers/ardice/led16_1.npy')

#d['sbig'] = False
d['zwo'] = True
#d['xy.x'] = int(zwo_pos)

d['ar.led'] = 5
d['ar.iled'] = 100
d['mono.grating'] = 3
d['mono.wavelength'] = 0
d['mono.slits'] = 3000
d['phd.range'] = 2e-6
d['phd.nsamples'] = 10
workpoint = [1500, 1000, 340, 313, 431, 387, 1000, 1000, 900, 900,
             1000, 1000, 1000, 2000, 2000, 2000]

sched.ar.led(5, 5000)
sched.ar.open()
sched.dkd.set_range('2e-9')
xs = np.arange(139000, 145700, 100)
res = []
for x in xs:
    sched.xy.move(x=int(x), y=0)
    r = sched.dkd.server.read(10)[0]
    res.append([x, np.mean(r), np.std(r)])
    
res = np.array(res)
np.save('dkd_scan.npy', res)
    


