class StdDaq(DeviceBase): def __init__(self, name, url, simulated=False): DeviceBase.__init__(self, name) self.url=url self.req_id = None if simulated: self.setSimulated() self.simulated_id=1 self.simulated_config = { "detector_name": "eg", "detector_type": "eiger", "n_modules": 2, "bit_depth": 32, "image_pixel_height": 514, "image_pixel_width": 1030, "start_udp_port": 50000 } def doInitialize(self): pass def start(n_images, output_file): self.state.assertIs(State.Ready) if not self.simulated: data = {"sources":"eiger", "n_images":10, "output_file":"/tmp/test.h5"} headers = {'Content-type': 'application/json'} r = requests.post(url = self.url + "/write_async", json=data, headers=headers) self.req_id = str(r.json()["request_id"]) else: self.req_id = self.simulated_id self.simulated_id=self.simulated_id+1 self.setCache(self.req_id, None) self.setState(State.Busy) def stop(self): self.state.assertIs(State.Busy) if not self.simulated: data = {"request_id":self.req_id} headers = {'Content-type': 'application/json'} r = requests.post(url = self.url + "/write_kill", json=data, headers=headers) self.setCache(None, None) self.setState(State.Ready) def get_config(self): if self.simulated: return self.simulated_config def set_config(self, config): if type(config) == dict or isinstance(config, java.util.Map) : if self.simulated: self.simulated_config=config def doClose(self): pass