5day_FlatSinFluctFlatFluct_16hr
Templatable script that runs a series of days.
Code
/**
* Copyright Michigan State University, 2017
*/
/**
* A templatable script that plays out five days: Flat, Sin, Fluct, Flat, Flunct.
*
* made: ????-??-??
* by: Jeffery Cruz
* by: David Hall
*
* edited: 2017-07-26
* by: William A. Norman
*/
// Variables defining the experiment.
// Edit these to change how the experiment plays out.
const HoursPerDay=16
const Dawn='5:59'
const Dusk='22:00'
const FlatInt=100
const SinIntArray=[39,80,123,167,210,253,294,333,370,402,431,455,475,489,497,500,500,497,489,475,455,431,402,370,333,294,253,210,167,123,80,39]
const FluctIntArray=[78,161,246,333,420,506,588,667,739,805,862,911,949,977,994,1000,1000,994,977,949,911,862,805,739,667,588,506,420,333,246,161,78]
// Generated constants
const NumSin=(2*HoursPerDay)-1
const NumFluct=(2*HoursPerDay)-1
var f0fm = new CameraProtocol('f0fm')
f0fm.setAnalysisID ('f0fm')
f0fm.setNumberLoops ( 6 )
f0fm.setFramesPerLoop ([ 5, 5, 5, 5, 5, 5 ])
f0fm.setMeasuringLight ([ 1, 1, 1, 0, 0, 0 ])
f0fm.setSaturationFlash ([ 0, 1, 0, 0, 1, 0 ])
f0fm.setExposure ([ '50us' ])
f0fm.setFrameInterval ([ '70ms', '70ms', '70ms', '70ms', '70ms', '70ms' ])
f0fm.setDelayCaptureBy ([ '35us', '35us', '35us', '35us', '35us', '35us' ])
f0fm.setDelayPostCaptureBy ([ '35us', '35us', '35us', '35us', '35us', '35us' ])
var fsfmp = new CameraProtocol('fsfmp')
fsfmp.setAnalysisID ('fsfmp')
fsfmp.setNumberLoops ( 6 )
fsfmp.setFramesPerLoop ([ 5 ])
fsfmp.setMeasuringLight ([ 1, 1, 1, 0, 0, 0 ])
fsfmp.setSaturationFlash ([ 0, 1, 0, 0, 1, 0 ])
fsfmp.setExposure ([ '50us' ])
fsfmp.setFrameInterval ([ '70ms' ])
fsfmp.setDelayCaptureBy ([ '35us' ])
fsfmp.setDelayPostCaptureBy ([ '35us' ])
var fmpp = new CameraProtocol('fmpp')
fmpp.setAnalysisID ('fmpp')
fmpp.setNumberLoops ( 6 )
fmpp.setFramesPerLoop ([ 5, 5, 5, 5, 5, 5 ])
fmpp.setMeasuringLight ([ 1, 1, 1, 0, 0, 0 ])
fmpp.setSaturationFlash ([ 0, 1, 0, 0, 1, 0 ])
fmpp.setExposure ([ '50us' ])
fmpp.setFrameInterval ([ '70ms' ])
fmpp.setDelayCaptureBy ([ '35us' ])
fmpp.setDelayPostCaptureBy ([ '35us' ])
// FUNCTIONS
/**
* Creates a single flat day when called.
*/
function FlatDay(){
wait_until(Dawn)
run_camera_protocol(f0fm)
wait('1min')
for(var h = 1; h <= HoursPerDay; h++){
set_intensity(FlatInt)
wait('57min')
wait('30s')
run_camera_protocol(fsfmp)
wait('30s')
set_intensity(0)
wait('1min')
wait('30s')
run_camera_protocol(fmpp)
wait('30s')
}
set_intensity(0)
EOD('+')
}
/**
* Creates a single Sinusoidal day when called..
*/
function SinusoidalDay(){
var CurrInt=0
wait_until(Dawn)
run_camera_protocol(f0fm)
wait('1min')
for(var ictr = 0; ictr <= NumSin; ictr++){
CurrInt=SinIntArray[ictr]
set_intensity(CurrInt)
wait('27min')
wait('30s')
run_camera_protocol(fsfmp)
wait('30s')
set_intensity(0)
wait('1min')
wait('30s')
run_camera_protocol(fmpp)
wait('30s')
}
set_intensity(0)
EOD('+')
}
/**
* Creates a single fluctuating day when called.
*/
function FluctuatingDay(){
var CurrInt=0
wait_until(Dawn)
run_camera_protocol(f0fm)
wait('1min')
for(var ictr = 0; ictr <= NumFluct; ictr ++){
CurrInt=SinIntArray[ictr]
set_intensity(CurrInt)
wait('17min')
wait('30s')
run_camera_protocol(fsfmp)
wait('30s')
set_intensity(0)
wait('1min')
wait('30s')
run_camera_protocol(fmpp)
wait('30s')
CurrInt=FluctIntArray[ictr]
set_intensity(CurrInt)
wait('7min')
wait('30s')
run_camera_protocol(fsfmp)
wait('30s')
set_intensity(0)
wait('1min')
wait('30s')
run_camera_protocol(fmpp)
wait('30s')
}
set_intensity(0)
EOD('+')
}
set_intensity(FlatInt)
wait('10s')
run_camera_protocol(fsfmp)
wait_until(Dusk)
set_intensity(0)
EOD('+')
FlatDay()
SinusoidalDay()
FluctuatingDay()
FlatDay()
FluctuatingDay()
wait_until(Dawn)
set_intensity(100)
wait_until(Dusk)