Files
camserver_sf/configuration/user_scripts/spectral_brightness_test.py
2024-03-21 15:34:45 +01:00

50 lines
1.2 KiB
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)
try:
intensity = data[params["intensity"]]
except BaseException as e:
print("bad intensity channel")
logging.info("no intensity channel")
try:
FWHM = data[params["FWHM"]]
except BaseException as e:
print("bad FWHM channel")
logging.info("no FWHM channel")
spectral_brightness = intensity/FWHM
output = {}
output["Intensity"] = data[params["intensity"]]
output["FWHM"] = data[params["FWHM"]]
output["spectral_brightness"] = spectral_brightness
# try update pv
try:
output_pv = epics.PV(params["out_PV"])
output_pv.put(str(spectral_brightness))
return output