39 lines
946 B
Python
39 lines
946 B
Python
import time
|
|
from collections import defaultdict, deque
|
|
from functools import partial
|
|
from logging import getLogger
|
|
from threading import Thread
|
|
|
|
import epics
|
|
import numpy as np
|
|
from cam_server.utils import create_thread_pvs, epics_lock
|
|
|
|
_logger = getLogger(__name__)
|
|
|
|
initialized = False
|
|
output_pv = None
|
|
sent_pid = -1
|
|
|
|
|
|
def initialize(params):
|
|
global initialized
|
|
global output_pvname
|
|
epics.ca.clear_cache()
|
|
output_pvname = params["out_PV"]
|
|
initialized = True
|
|
|
|
|
|
|
|
def process(data, pulse_id, timestamp, params):
|
|
if not initialized:
|
|
initialize(params)
|
|
spectral_brightness = data[params["intensity"]]/data[params["FWHM"]]
|
|
output = {}
|
|
output["Intensity"] = data[params["intensity"]]
|
|
output["FWHM"] = data[params["FWHM"]]
|
|
output["spectral_brightness"] = spectral_brightness
|
|
# try update pv
|
|
output_pv = epics.PV(params["out_PV"])
|
|
output_pv.put(str(spectral_brightness))
|
|
return output
|