Skip to main content

SDK for Laboratory Instrument Station Adapter

Project description

Open LISA SDK

This SDK provides an interface to interact with the Open LISA Server. The server must be integrated with the instruments of interest and running in a known IP and port (TCP connections) or you must known the serial port (SERIAL connections) for the client side in order to be able to connect via this SDK.

Installation

pip install open-lisa-sdk

Examples

You can check online examples. You can go to examples folder and run

python <example_script_name>.py

API Doc

SDK(log_level='WARNING', default_response_format='PYTHON'): Initializes the SDK with the specified log level and default response format of the methods

Args:
    log_level (str, optional): specifies the SDK log level. Defaults to "WARNING".
    default_response_format (str, optional): specifies the response format of the SDK methods supported
    types are "PYTHON" for Python native types or "JSON" for JSON strings. Defaults to "PYTHON".

Methods

connect_through_RS232(self, baudrate=921600, port=None) ‑> None: Tries to connect with Open LISA Server through RS232 protocol

Args:
    baudrate (int, optional): Specifies the baudrate, must be the same as in Open LISA Server. Defaults to 921600.
    port (str, optional): Serial port of the client side. Defaults to None and will try with all the ports listed by serial.tools.list_ports.comports(),
    this is not recommended since handshake information could be sent to unexpected serial ports.

Raises:
    CouldNotConnectToServerException: raised when connection could not be stablished

connect_through_TCP(self, host: str, port: int) ‑> None : Tries to connect with Open LISA Server through TCP protocol

Args:
    host (string): Open LISA Server IP address
    port (int): Open LISA Server port number

Raises:
    CouldNotConnectToServerException: raised when connection could not be stablished

create_directory(self, remote_path, new_directory) : Creates a folder with the name specified by new_directory in remote_path folder

Args:
    remote_path (str): folder in server side
    new_directory (str): new folder name

Raises:
    OpenLISAException: raised when there was an error in the Server

create_instrument(self, new_instrument, response_format=None) : Tries to create the new instrument with the fields specified

Args:
    new_instrument (dict): new instrument payload
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Returns:
    dict|string: server creation response

Raises:
    OpenLISAException: raised when there was an error in the Server

create_instrument_command(self, new_command, response_format=None) : Creates the command specified by new_command payload

Args:
    new_command (dict): new command payload
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Raises:
    OpenLISAException: raised when there was an error in the Server

delete_directory(self, remote_path) : Deletes the folder specified by remote_path and all its content

Args:
    remote_path (str): path in server side

Raises:
    OpenLISAException: raised when there was an error in the Server

delete_file(self, file_path) : Deletes the remote file specified by file_path

Args:
    file_path (str): file path in server

Raises:
    OpenLISAException: raised when there was an error in the Server

delete_instrument(self, instrument_id, response_format=None) : Tries to delete the instrument specified

Args:
    instrument_id (int): instrument ID
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Returns:
    dict|string: server delete response

Raises:
    OpenLISAException: raised when there was an error in the Server

delete_instrument_command(self, command_id) : Deletes the command specified by command_id

Args:
    command_id (int): command ID

Raises:
    OpenLISAException: raised when there was an error in the Server

disconnect(self) : Gracefully disconnect with Open LISA Server

execute_bash_command(self, command, capture_stdout=False, capture_stderr=False) : Executes the bash command specified by command in the server

Args:
    command (str): bash command to be executed in server side, the command is executed at sandbox folder
    capture_stdout (bool, optional): if true the stdout of the command is retrieved. Defaults to False.
    capture_stderr (bool, optional): if true the stderr of the command is retrieved. Defaults to False.

Returns:
    any: command execution result

get_detected_physical_addresses(self, response_format=None) : Get a list of the detected physical addresses in the Open LISA Server

Args:
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Returns:
    list|string: the physical addresses detected

Raises:
    OpenLISAException: raised when there was an error in the Server

get_directory_structure(self, remote_path, response_format=None) : Retrieves the directory structure in server specified in remote_path

Args:
    remote_path (str): directory path in server side
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Returns:
    dict|str: directory structure

Raises:
    OpenLISAException: raised when there was an error in the Server

get_file(self, remote_file_name, file_target_name) : Tries to retrieve the file in server specified by remote_file_name and tries to save in file_target_name in client side

Args:
    remote_file_name (str): file path in server
    file_target_name (str): file path in client

Raises:
    OpenLISAException: raised when there was an error in the Server

get_instrument(self, instrument_id, response_format=None) : Get the instrument registered in Open LISA Server that matches with the ID

Args:
    instrument_id (int): instrument ID
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Returns:
    dict|string: the instrument match
Raises:
    OpenLISAException: raised when there was an error in the Server

get_instrument_commands(self, instrument_id, response_format=None) : Get a list of the specified instrument commands

Args:
    instrument_id (int): instrument ID
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Returns:
    list|stirng: The list of the registered commands for that instrument

Raises:
    OpenLISAException: raised when there was an error in the Server

get_instruments(self, response_format=None) : Get all the instruments registered in Open LISA Server

Args:
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Returns:
    dict|string: list of registered instruments

Raises:
    OpenLISAException: raised when there was an error in the Server

is_valid_command_invocation(self, instrument_id, command_invocation) : Determines if the command invocation syntax is valid but it is not sent to the instrument

Args:
    instrument_id (int): instrument ID
    command_invocation (str): command invocation syntax

Returns:
    bool: True or False depending the validity of the command invocation syntax

send_command(self, instrument_id, command_invocation, command_result_output_file=None, response_format=None, convert_result_to=None) : Sends the command_invocation to the specified instrument by instrument_id

Args:
    instrument_id (int): instrument ID
    command_invocation (str): command invocation syntax with parameters
    command_result_output_file (str, optional): if provided the output of the command will be saved in server at the specified path and
    not returned to the client (convinient for low throughputs between client and server). Defaults to None.
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case
    convert_result_to (str, optional): converts the result to the specified type, supported types are "str", "double", "bytearray", "bytes" and "int". Defaults to None.

Raises:
    InvalidCommandException: when the command could not be executed

Returns:
    str|int|float|bytearray|bytes: the result of the command execution

send_file(self, file_path, file_target_name) : Sends the file specified by client file_path and saves it in the server at file_target_name

Args:
    file_path (str): client side file path
    file_target_name (_type_): server remote file path

Raises:
    OpenLISAException: raised when there was an error in the Server

update_instrument(self, instrument_id, updated_instrument, response_format=None) : Tries to update the instrument with the fields specified

Args:
    instrument_id (int): instrument ID
    updated_instrument (dict): new instrument fields
    response_format (str, optional): specifies response format. Defaults to None and default_response_format will be used in that case

Returns:
    dict|string: server update response

Raises:
    OpenLISAException: raised when there was an error in the Server

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Open_LISA_SDK-1.0.0.tar.gz (15.2 kB view details)

Uploaded Source

File details

Details for the file Open_LISA_SDK-1.0.0.tar.gz.

File metadata

  • Download URL: Open_LISA_SDK-1.0.0.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for Open_LISA_SDK-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d63f5df8e87ee31d392287e65acde45a3e23c8a8a08676396cc00506a8208f17
MD5 716db714a489946893948bd00a342c7d
BLAKE2b-256 643dd76629500e75f5f509c0505b2fd86197cee459bdab5025f780d55d835ae9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page