42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
from time import sleep
|
|
from tqdm import trange
|
|
import h5py
|
|
|
|
from cam_server_client import PipelineClient
|
|
from cam_server_client.utils import get_host_port_from_stream_address
|
|
from bsread import source, SUB
|
|
|
|
|
|
from slic.core.acquisition.acquisition import Acquisition
|
|
class CamAcquisition(Acquisition):
|
|
|
|
def getConnection(self,cam):
|
|
pipeline_client = PipelineClient()
|
|
cam_instance_name = str(cam) + "_sp1"
|
|
stream_address = pipeline_client.get_instance_stream(cam_instance_name)
|
|
self.host, self.port = get_host_port_from_stream_address(stream_address)
|
|
print(self.host,self.port)
|
|
|
|
def _acquire(self, filename, channels=None, data_base_dir=None, scan_info=None, n_pulses=100, **kwargs):
|
|
print("my routine")
|
|
print("extra kwargs:", kwargs)
|
|
args = (filename, n_pulses, channels)
|
|
args = ", ".join(repr(i) for i in args)
|
|
print("acquire({})".format(args))
|
|
print(f"dummy acquire to {filename}:")
|
|
|
|
# stream_host,stream_port = getPipeLine(channels[0])
|
|
# time.wait(1)
|
|
data= []
|
|
with source(host=self.host, port=self.port, mode=SUB) as input_stream:
|
|
input_stream.connect()
|
|
for i in range(n_pulses):
|
|
print('Camera Images', i)
|
|
message = input_stream.receive()
|
|
data.append(message.data.data)
|
|
hid = h5py.File(filename,'w')
|
|
gid = hid.create_group(channels[0])
|
|
for key in data[0].keys():
|
|
gid.create_dataset(key, data = [rec[key].value for rec in data])
|
|
hid.close()
|