Remote execution
Two options are available to execute the API commands remotely:
socket-based server and client
UTAPI client
Socket-based client
In this mode the pytemscript socket server must run on the microscope PC (Windows). By default, it will listen for clients on port 39000.
Danger
The server provides no means of security or authorization control itself. Thus it is highly recommended to let the server only listen to internal networks or at least route it through a reverse proxy, which implements sufficient security.
To launch the server, simply run pytemscript-server command:
usage: pytemscript-server [-h] [-p PORT] [--host HOST] [--useLD] [--useTecnaiCCD] [-d]
optional arguments:
-h, --help show this help message and exit
-p, --port PORT Specify port on which the server is listening (default: 39000)
--host HOST Specify host address on which the server is listening (default: 127.0.0.1)
--useLD Connect to LowDose server on microscope PC (limited control only) (default: False)
--useTecnaiCCD Connect to TecnaiCCD plugin on microscope PC that controls Digital Micrograph (may be faster than via TIA / std scripting) (default: False)
-d, --debug Enable debug mode (default: False)
Then you can connect to the server as shown below:
from pytemscript.microscope import Microscope
microscope = Microscope(connection="socket", host="127.0.0.1", port=39000)
...
microscope.disconnect()
Diagnostic messages are saved to socket_client.log and socket_server.log as well as printed to the console. Log files are rotated weekly at midnight.
To shutdown pytemscript-server, press Ctrl+C in the server console.
UTAPI client
Warning
Under development, currently not available
TFS is actively developing new (licensed) UTAPI interface that is aimed to eventually replace both standard and
advanced scripting. It is only available for TEM server version 7.18 and newer. To verify,
you can search for utapi_server.exe in the Task Manager. The server is listening for clients on port
46699. Under the hood UTAPI utilizes gRPC (Google Remote Procedure Calls) framework that uses protocol
buffers for communication.
Pytemscript converts its API commands to UTAPI calls. The client only supports Python 3.8+ and requires a few extra dependencies to be installed:
py -m pip install pytemscript[utapi]
You can connect using UTAPI client as shown below:
from pytemscript.microscope import Microscope
microscope = Microscope(connection="utapi", host="192.168.0.1")
...
microscope.disconnect()
Diagnostic messages are saved to utapi_client.log as well as printed to the console. Log files are rotated weekly at midnight.