BioImager  3.9.1
A .NET microscopy imaging library. Supports various microscopes by using imported libraries & GUI automation. Supported libraries include PriorĀ® & ZeissĀ® & all devices supported by Micromanager 2.0 and python-microscope.
Loading...
Searching...
No Matches
microscope.testsuite.mock_devices.SerialMock Class Reference
Inheritance diagram for microscope.testsuite.mock_devices.SerialMock:
microscope.testsuite.mock_devices.CoboltLaserMock microscope.testsuite.mock_devices.CoherentSapphireLaserMock microscope.testsuite.mock_devices.OmicronDeepstarLaserMock

Public Member Functions

def __init__ (self, *args, **kwargs)
 
def open (self)
 
def close (self)
 
def handle (self, command)
 
def write (self, data)
 
def read (self, size=1)
 
def readline (self, size=-1)
 
def reset_input_buffer (self)
 
def reset_output_buffer (self)
 

Public Attributes

 in_buffer
 
 out_buffer
 
 out_pending_bytes
 
 out_parsed_bytes
 
 in_read_bytes
 

Detailed Description

Base class to mock devices controlled via serial.

It has two :class:`io.BytesIO` buffers.  One :func:`write`s the
output buffer and the other :func:`read`s the input buffer.  After
a write, the output buffer is analysed for a command.  If there is
a command, stuff gets done.  This usually means adding to the
input buffer and changing state of the device.

Definition at line 38 of file mock_devices.py.

Constructor & Destructor Documentation

◆ __init__()

def microscope.testsuite.mock_devices.SerialMock.__init__ (   self,
args,
**  kwargs 
)

Definition at line 49 of file mock_devices.py.

49 def __init__(self, *args, **kwargs):
50 super().__init__(*args, **kwargs)
51 self.in_buffer = io.BytesIO()
52 self.out_buffer = io.BytesIO()
53
54 # Number of bytes in out buffer pending 'interpretation'. A
55 # command is only interpreted and handled when EOL is seen.
56 self.out_pending_bytes = 0
57 self.out_parsed_bytes = 0
58
59 # Number of bytes in the input buffer that have been read
60 self.in_read_bytes = 0
61

Member Function Documentation

◆ close()

def microscope.testsuite.mock_devices.SerialMock.close (   self)

Definition at line 65 of file mock_devices.py.

65 def close(self):
66 self.in_buffer.close()
67 self.out_buffer.close()
68

◆ handle()

◆ open()

def microscope.testsuite.mock_devices.SerialMock.open (   self)

Definition at line 62 of file mock_devices.py.

62 def open(self):
63 pass
64

◆ read()

def microscope.testsuite.mock_devices.SerialMock.read (   self,
  size = 1 
)

Definition at line 93 of file mock_devices.py.

93 def read(self, size=1):
94 return self._readx_wrapper(self.in_buffer.read, size)
95

◆ readline()

def microscope.testsuite.mock_devices.SerialMock.readline (   self,
  size = -1 
)

Definition at line 96 of file mock_devices.py.

96 def readline(self, size=-1):
97 return self._readx_wrapper(self.in_buffer.readline, size)
98

Referenced by microscope.controllers.prior._ProScanIIIConnection.get_command(), microscope.stages.ludl._LudlController.get_command(), and microscope.stages.ludl._LudlController.readline().

◆ reset_input_buffer()

def microscope.testsuite.mock_devices.SerialMock.reset_input_buffer (   self)

Definition at line 99 of file mock_devices.py.

99 def reset_input_buffer(self):
100 self.in_read_bytes = self.in_buffer.getbuffer().nbytes
101 self.in_buffer.seek(0, 2)
102

◆ reset_output_buffer()

def microscope.testsuite.mock_devices.SerialMock.reset_output_buffer (   self)

Definition at line 103 of file mock_devices.py.

103 def reset_output_buffer(self):
104 pass
105
106

◆ write()

def microscope.testsuite.mock_devices.SerialMock.write (   self,
  data 
)

Definition at line 72 of file mock_devices.py.

72 def write(self, data):
73 self.out_buffer.write(data)
74 self.out_pending_bytes += len(data)
75
76 if self.out_pending_bytes > len(data):
77 # we need to retrieve data from a previous write
78 self.out_buffer.seek(-self.out_pending_bytes, 2)
79 data = self.out_buffer.read(self.out_pending_bytes)
80
81 for msg in data.split(self.eol)[:-1]:
82 self.handle(msg)
83 self.out_pending_bytes -= len(msg) + len(self.eol)
84 return len(data)
85

Member Data Documentation

◆ in_buffer

microscope.testsuite.mock_devices.SerialMock.in_buffer

Definition at line 51 of file mock_devices.py.

◆ in_read_bytes

microscope.testsuite.mock_devices.SerialMock.in_read_bytes

Definition at line 60 of file mock_devices.py.

◆ out_buffer

microscope.testsuite.mock_devices.SerialMock.out_buffer

Definition at line 52 of file mock_devices.py.

◆ out_parsed_bytes

microscope.testsuite.mock_devices.SerialMock.out_parsed_bytes

Definition at line 57 of file mock_devices.py.

◆ out_pending_bytes

microscope.testsuite.mock_devices.SerialMock.out_pending_bytes

Definition at line 56 of file mock_devices.py.


The documentation for this class was generated from the following file: