"""
Example showing how to set and get exposure times
"""

import datetime as dt
from slsdet import Detector
from slsdet.utils import element_if_equal

d = Detector()

# The simplest way is to set the exposure time in 
# seconds by using the exptime property
# This sets the exposure time for all modules
d.exptime = 0.5

# exptime also accepts a python datetime.timedelta
# which can be used to set the time in almost any unit
t = dt.timedelta(milliseconds = 2.3)
d.exptime = t

# or combination of units
t = dt.timedelta(minutes = 3, seconds = 1.23)
d.exptime = t

#exptime however always returns the time in seconds
# >>> d.exptime
# 181.23 

# To get back the exposure time for each module 
# it's possible to use getExptime, this also returns
# the values as datetime.timedelta

# >>> d.getExptime()
# [datetime.timedelta(seconds=181, microseconds=230000), datetime.timedelta(seconds=181, microseconds=230000)]

# In case the values are the same it's possible to use the
# element_if_equal function to reduce the values to a single 
# value

# >>> t = d.getExptime()
# >>> element_if_equal(t)
# datetime.timedelta(seconds=1)