Skip to content

Commit

Permalink
[pre-commit.ci] auto fixes from pre-commit.com hooks
Browse files Browse the repository at this point in the history
for more information, see https://pre-commit.ci
  • Loading branch information
pre-commit-ci[bot] committed Dec 13, 2024
1 parent beaf0a5 commit 1aa8501
Show file tree
Hide file tree
Showing 24 changed files with 1,449 additions and 962 deletions.
93 changes: 64 additions & 29 deletions deapi/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
DataType,
PropertyCollection,
VirtualMask,

)


Expand All @@ -58,15 +57,18 @@
log.info("CommandVer: " + str(commandVersion))
log.info("logLevel : " + str(logging.getLevelName(logLevel)))


def write_only(func):
def wrapper(*args, **kwargs):
if args[0].read_only:
log.error("Client is read-only. Cannot set property.")
return
else:
return func(*args, **kwargs)

return wrapper


def disable_scan(func):
def wrapper(*args, **kwargs):
print("Disabling scan")
Expand All @@ -75,8 +77,10 @@ def wrapper(*args, **kwargs):
ans = func(*args, **kwargs)
args[0].set_property("Scan - Enable", initial_scan)
return ans

return wrapper


class Client:
"""A class for connecting to the DE-Server
Expand All @@ -99,7 +103,6 @@ def set_log_level(self, level):
def __str__(self):
return f"Client(host={self.host}, port={self.port}, camera={self.get_current_camera()})"


def _ipython_key_completions_(self):
return self.list_properties()

Expand Down Expand Up @@ -210,7 +213,6 @@ def connect(self, host: str = "127.0.0.1", port: int = 13240, read_only=False):
version = [int(part) for part in serverVersion[:4]]
temp = version[2] + version[1] * 1000 + version[0] * 1000000


if cVersion >= 12:
self.set_client_read_only(read_only)

Expand Down Expand Up @@ -447,18 +449,17 @@ def get_server_version(self):
"""
Get the server software version
"""
server_version = self.GetProperty("Server Software Version");
server_version = re.findall(r'\d+', server_version)
server_version = self.GetProperty("Server Software Version")
server_version = re.findall(r"\d+", server_version)

ver = [int(part) for part in server_version[:4]]
res = ver[2] + ver[1] * 1000 + ver[0] * 1000000
return res


def get_properties(self, names=None):
if names is None:
names = self.list_properties()
return [self.get_property(p) for p in names]
if names is None:
names = self.list_properties()
return [self.get_property(p) for p in names]

@property
def acquiring(self):
Expand Down Expand Up @@ -551,9 +552,7 @@ def set_engineering_mode(self, enable, password):
"""
ret = False

command = self._addSingleCommand(self.SET_ENG_MODE,
None,
[enable, password])
command = self._addSingleCommand(self.SET_ENG_MODE, None, [enable, password])
response = self._sendCommand(command)
if response != False:
ret = response.acknowledge[0].error != True
Expand All @@ -565,7 +564,9 @@ def setEngModeAndGetChangedProperties(self, enable, password, changedProperties)

ret = False

command = self.__addSingleCommand(self.SET_ENG_MODE_GET_CHANGED_PROPERTIES, None, [enable, password])
command = self.__addSingleCommand(
self.SET_ENG_MODE_GET_CHANGED_PROPERTIES, None, [enable, password]
)
response = self.__sendCommand(command)
if response != False:
ret = response.acknowledge[0].error != True
Expand Down Expand Up @@ -628,7 +629,12 @@ def SetScanSize(self, sizeX, sizeY):
self.refreshProperties = True

if logLevel == logging.DEBUG:
log.debug("SetScanSize: (%i,%i) , completed in %.1f ms", sizeX, sizeY, (self.GetTime() - t0) * 1000)
log.debug(
"SetScanSize: (%i,%i) , completed in %.1f ms",
sizeX,
sizeY,
(self.GetTime() - t0) * 1000,
)

return ret

Expand All @@ -637,7 +643,9 @@ def SetScanSizeAndGetChangedProperties(self, sizeX, sizeY, changedProperties):
t0 = self.GetTime()
ret = False

command = self.__addSingleCommand(self.SET_SCAN_SIZE_AND_GET_CHANGED_PROPERTIES, None, [sizeX, sizeY])
command = self.__addSingleCommand(
self.SET_SCAN_SIZE_AND_GET_CHANGED_PROPERTIES, None, [sizeX, sizeY]
)
response = self.__sendCommand(command)
if response != False:
ret = response.acknowledge[0].error != True
Expand All @@ -647,7 +655,12 @@ def SetScanSizeAndGetChangedProperties(self, sizeX, sizeY, changedProperties):
ret = self.ParseChangedProperties(changedProperties, response)

if logLevel == logging.DEBUG:
log.debug("SetScanSize: (%i,%i) , completed in %.1f ms", sizeX, sizeY, (self.GetTime() - t0) * 1000)
log.debug(
"SetScanSize: (%i,%i) , completed in %.1f ms",
sizeX,
sizeY,
(self.GetTime() - t0) * 1000,
)

return ret

Expand All @@ -657,15 +670,23 @@ def SetScanROI(self, enable, offsetX, offsetY, sizeX, sizeY):
t0 = self.GetTime()
ret = False

command = self.__addSingleCommand(self.SET_SCAN_SIZE, None, [enable, offsetX, offsetY, sizeX, sizeY])
command = self.__addSingleCommand(
self.SET_SCAN_SIZE, None, [enable, offsetX, offsetY, sizeX, sizeY]
)
response = self.__sendCommand(command)
if response != False:
ret = response.acknowledge[0].error != True
self.refreshProperties = True

if logLevel == logging.DEBUG:
log.debug("SetScanROI: (%i,%i,%i,%i) , completed in %.1f ms", offsetX, offsetY, sizeX, sizeY,
(self.GetTime() - t0) * 1000)
log.debug(
"SetScanROI: (%i,%i,%i,%i) , completed in %.1f ms",
offsetX,
offsetY,
sizeX,
sizeY,
(self.GetTime() - t0) * 1000,
)

return ret

Expand All @@ -674,8 +695,11 @@ def SetScanROI(self, enable, offsetX, offsetY, sizeX, sizeY, changedProperties):
t0 = self.GetTime()
ret = False

command = self.__addSingleCommand(self.SET_SCAN_ROI__AND_GET_CHANGED_PROPERTIES, None,
[enable, offsetX, offsetY, sizeX, sizeY])
command = self.__addSingleCommand(
self.SET_SCAN_ROI__AND_GET_CHANGED_PROPERTIES,
None,
[enable, offsetX, offsetY, sizeX, sizeY],
)
response = self.__sendCommand(command)
if response != False:
ret = response.acknowledge[0].error != True
Expand All @@ -685,8 +709,14 @@ def SetScanROI(self, enable, offsetX, offsetY, sizeX, sizeY, changedProperties):
ret = self.ParseChangedProperties(changedProperties, response)

if logLevel == logging.DEBUG:
log.debug("SetScanROI: (%i,%i,%i,%i) , completed in %.1f ms", offsetX, offsetY, sizeX, sizeY,
(self.GetTime() - t0) * 1000)
log.debug(
"SetScanROI: (%i,%i,%i,%i) , completed in %.1f ms",
offsetX,
offsetY,
sizeX,
sizeY,
(self.GetTime() - t0) * 1000,
)

return ret

Expand Down Expand Up @@ -997,7 +1027,6 @@ def get_result(
attributes.windowWidth = self.image_sizex
attributes.windowHeight = self.image_sizey


log.debug("GetResult frameType:%s, pixelFormat:%s", frameType, pixelFormat)
start_time = self.GetTime()
step_time = self.GetTime()
Expand Down Expand Up @@ -1266,10 +1295,14 @@ def set_virtual_mask(self, id, w, h, mask):
The mask to set
"""
if id < 1 or id > 4:
log.error(" SetVirtualMask The virtual mask id must be selected between 1-4")
log.error(
" SetVirtualMask The virtual mask id must be selected between 1-4"
)
ret = False
elif w < 0 or h < 0:
log.error(" SetVirtualMask The virtual mask width and height must greater than 0")
log.error(
" SetVirtualMask The virtual mask width and height must greater than 0"
)
ret = False
else:
command = self._addSingleCommand(self.SET_VIRTUAL_MASK, None, [id, w, h])
Expand Down Expand Up @@ -1351,8 +1384,10 @@ def get_movie_buffer(
if movieBufferStatus == MovieBufferStatus.OK:
if totalBytes == 0 or movieBufferSize < totalBytes:
retval = False
log.error(f"Image received did not have the expected size."
f"expected: {totalBytes}, received: {movieBufferSize}")
log.error(
f"Image received did not have the expected size."
f"expected: {totalBytes}, received: {movieBufferSize}"
)
else:
print("reading movie buffer", totalBytes)
movieBuffer = self._recvFromSocket(self.socket, totalBytes)
Expand Down Expand Up @@ -1930,7 +1965,7 @@ def _recvFromSocket(self, sock, bytes):
buffer = b""

total_len = len(buffer)
upper_lim = 4096*4096*12 #4096 #1024*256
upper_lim = 4096 * 4096 * 12 # 4096 #1024*256
while total_len < bytes:
bytes_left = bytes - total_len
if bytes_left < upper_lim:
Expand Down
1 change: 0 additions & 1 deletion deapi/data_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import warnings



class FrameType(Enum):
"""An Enum of the different frame types that can be returned by the DE API"""

Expand Down
1 change: 1 addition & 0 deletions deapi/fake_data/base_fake_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ def __getitem__(self, item):
dp = self.fake_data.signal[labels]
return dp


class BaseFakeData:
"""
The idea of this class is to provide a base class for fake data generation.
Expand Down
55 changes: 35 additions & 20 deletions deapi/simulated_server/fake_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,10 @@ def _respond_to_command(self, command=None):
return self._fake_get_result(command)
elif command.command[0].command_id == self.LIST_CAMERAS + commandVersion * 100:
return self._fake_list_cameras(command)
elif command.command[0].command_id == self.SET_CLIENT_READ_ONLY + commandVersion * 100:
elif (
command.command[0].command_id
== self.SET_CLIENT_READ_ONLY + commandVersion * 100
):
return self._fake_set_client_read_only(command)
elif (
command.command[0].command_id
Expand All @@ -301,7 +304,7 @@ def _respond_to_command(self, command=None):

def _fake_set_client_read_only(self, command):

self.is_read_only =command.command[0].parameter[0].p_bool
self.is_read_only = command.command[0].parameter[0].p_bool
acknowledge_return = pb.DEPacket()
acknowledge_return.type = pb.DEPacket.P_ACKNOWLEDGE
ack1 = acknowledge_return.acknowledge.add()
Expand Down Expand Up @@ -501,34 +504,36 @@ def _fake_get_movie_buffer_info(self, command):
ack1.command_id = command.command[0].command_id
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = 1024 # Header bytes
int_param.p_int = 1024 # Header bytes
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = (int(self["Image Size Y (pixels)"]) *
int(self["Image Size X (pixels)"]) *
int(self["Grabbing - Frames Per Buffer"])* 2) # Image buffer bytes
int_param.p_int = (
int(self["Image Size Y (pixels)"])
* int(self["Image Size X (pixels)"])
* int(self["Grabbing - Frames Per Buffer"])
* 2
) # Image buffer bytes
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = 0 # Frame index start pos
int_param.p_int = 0 # Frame index start pos
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = int(self["Image Size X (pixels)"]) # image width
int_param.p_int = int(self["Image Size X (pixels)"]) # image width
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = 1024 # image start
int_param.p_int = 1024 # image start
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = int(self["Image Size Y (pixels)"]) # image height
int_param.p_int = int(self["Image Size Y (pixels)"]) # image height
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = int(self["Grabbing - Frames Per Buffer"]) # frames in buffer
int_param.p_int = int(self["Grabbing - Frames Per Buffer"]) # frames in buffer
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = 5 # data type (only int16 supported)
int_param.p_int = 5 # data type (only int16 supported)

return (acknowledge_return,)


def _fake_get_result(self, command):
acknowledge_return = pb.DEPacket()
acknowledge_return.type = pb.DEPacket.P_ACKNOWLEDGE
Expand Down Expand Up @@ -647,19 +652,29 @@ def _fake_get_movie_buffer(self, command):
int_param.type = pb.AnyParameter.P_INT

if np.prod(self.fake_data.navigator.shape) > self.current_movie_index:
frame_numbers = np.arange(self.current_movie_index,
self.current_movie_index + frames_per_buffer, dtype=np.int64)
frame_numbers = np.arange(
self.current_movie_index,
self.current_movie_index + frames_per_buffer,
dtype=np.int64,
)
print(f"Getting movie buffer {frame_numbers}")
data = self.fake_data.flat[self.current_movie_index: self.current_movie_index + frames_per_buffer]
data = self.fake_data.flat[
self.current_movie_index : self.current_movie_index + frames_per_buffer
]
print(f"Data shape {data.shape}")
self.current_movie_index = self.current_movie_index + frames_per_buffer
if len(frame_numbers) < 128:
frame_numbers = np.pad(frame_numbers, (0, 128 - len(frame_numbers)), mode='constant', constant_values=0)
frame_numbers = np.pad(
frame_numbers,
(0, 128 - len(frame_numbers)),
mode="constant",
constant_values=0,
)

int_param.p_int = 5 # okay
int_param.p_int = 5 # okay
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = np.prod(data.shape) * 2 + 1024 # Image total bytes
int_param.p_int = np.prod(data.shape) * 2 + 1024 # Image total bytes
# Image total bytes
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
Expand All @@ -668,7 +683,7 @@ def _fake_get_movie_buffer(self, command):
ans = (acknowledge_return,)
ans += (frame_numbers.tobytes(), data.astype(np.int16).tobytes())
else:
int_param.p_int = 4 # finished
int_param.p_int = 4 # finished
int_param = ack1.parameter.add()
int_param.type = pb.AnyParameter.P_INT
int_param.p_int = 0 # Image total bytes
Expand Down
1 change: 0 additions & 1 deletion deapi/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ def pytest_collection_modifyitems(config, items):
item.add_marker(skip_speed)



@pytest.fixture(scope="module")
def client(xprocess, request):
if request.config.getoption("--server"):
Expand Down
Loading

0 comments on commit 1aa8501

Please sign in to comment.