Fundamentals

Class which manages the connection to the IM7

This class provides methods for communicating with an IM7 device and executing jobs.

Parameters:
  • hostname – IP address of the IM7

  • port – port of the IM7

  • flags – optional flags of type zahner_link.ZahnerLinkConnectionFlags for the connection can be combined with bitwise OR operation

  • http_user – user name from the settings

  • http_password – password from the settings

append_to_resource(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource, data: collections.abc.Buffer) ErrorObject

Append data to a resource

Parameters:
  • resource – Resource object

  • data – Data as bytearray

Returns:

zahner_link.ErrorObject (falsy on success)

check_job_parameters(self: zahner_link._zahner_link.ZahnerLink, job: AbstractMeasurementJob) ErrorObject

Check job parameters before execution

Parameters:

job – job object

Returns:

zahner_link.ErrorObject (falsy if parameters are valid)

clear_flag(self: zahner_link._zahner_link.ZahnerLink, flag: SupportsInt) None

Clear a connection flag.

Parameters:

flag – flag to clear (e.g. from zahner_link.ZahnerLinkConnectionFlags)

connect(self: zahner_link._zahner_link.ZahnerLink) ErrorObject

Connect to a running IM7

Returns:

zahner_link.ErrorObject (falsy on success)

create_resource(self: zahner_link._zahner_link.ZahnerLink, type: ResourceTypeEnum, resource_name: str) zahner_link._zahner_link.Resource | ErrorObject

Create a resource

Parameters:
Returns:

zahner_link.Resource on success, zahner_link.ErrorObject on failure

create_resource_from_file(self: zahner_link._zahner_link.ZahnerLink, type: ResourceTypeEnum, file_name_and_path: os.PathLike | str | bytes, resource_name: str = '') zahner_link._zahner_link.Resource | ErrorObject

Create a resource from a file

Parameters:
Returns:

zahner_link.Resource on success, zahner_link.ErrorObject on failure

delete_resource(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource) ErrorObject

Delete a resource

Parameters:

resourcezahner_link.Resource object

Returns:

zahner_link.ErrorObject (falsy on success)

disconnect(self: zahner_link._zahner_link.ZahnerLink) None

Disconnect from the device

Jobs can no longer be executed after disconnect has been called. However, data that is available in the job objects after the job has been executed remains valid and can still be used.

do_job(self: zahner_link._zahner_link.ZahnerLink, job: AbstractMeasurementJob) ErrorObject

Perform a job

Parameters:

job – job object

Returns:

zahner_link.ErrorObject (falsy if the job was successful)

do_measurement(self: zahner_link._zahner_link.ZahnerLink, job: AbstractMeasurementJob) DataSet

Execute a measurement job and return the resulting dataset.

Parameters:

job – measurement job object

Returns:

zahner_link.EisDataset or zahner_link.DcDataset object with the result data as the base class zahner_link.DataSet

download_resource_to_file(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource, file_name_and_path: os.PathLike | str | bytes) ErrorObject

Download resource to file

Parameters:
Returns:

zahner_link.ErrorObject (falsy on success)

get_available_resources(self: zahner_link._zahner_link.ZahnerLink, type: ResourceTypeEnum) list[zahner_link._zahner_link.Resource] | ErrorObject

Get available resources of a type

Parameters:

typezahner_link.ResourceTypeEnum

Returns:

List of zahner_link.Resource objects on success, zahner_link.ErrorObject on failure

get_connection_status(self: zahner_link._zahner_link.ZahnerLink) ZahnerLinkConnectionStatusEnum

Get the connection state

Returns:

enum with the connection state

get_job_info_list(self: zahner_link._zahner_link.ZahnerLink, exclude_finished_jobs: bool = False) list[JobInfo] | ErrorObject

Get job info list

Parameters:

exclude_finished_jobs – If True, finished jobs are excluded

Returns:

list with zahner_link.JobInfo objects on success, zahner_link.ErrorObject on failure

get_job_result_data(self: zahner_link._zahner_link.ZahnerLink, job: AbstractMeasurementJob) DataSet

Get the result data from a job

This must be used for jobs that return measurement data and online data that have a longer duration. For example EIS with zahner_link.meas.EisGenerateJob or zahner_link.meas.CvJob.

Parameters:

job – job object

Returns:

EisDataset or DcDataset object with the result data as the base class DataSet

static get_library_revision() str

Get the revision of the C++ ZahnerLink library

get_settings(self: zahner_link._zahner_link.ZahnerLink) SettingsSet | ErrorObject

Get the current device settings

Returns:

zahner_link.SettingsSet on success, zahner_link.ErrorObject on failure

static get_supported_protocol_version() int

Get the protocol version of the C++ ZahnerLink library

get_updated_resource_info(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource) ErrorObject

Update resource info

Parameters:

resourcezahner_link.Resource object

Returns:

zahner_link.ErrorObject (falsy on success)

get_workstation_info(self: zahner_link._zahner_link.ZahnerLink) zahner_link._zahner_link.WorkstationInfo | ErrorObject

Get device information

Returns:

zahner_link.WorkstationInfo on success, zahner_link.ErrorObject on failure

get_workstation_status(self: zahner_link._zahner_link.ZahnerLink) zahner_link._zahner_link.WorkstationStatus | ErrorObject

Get device status

Returns:

zahner_link.WorkstationStatus on success, zahner_link.ErrorObject on failure

id(self: zahner_link._zahner_link.ZahnerLink, timeout: datetime.timedelta = datetime.timedelta(0)) zahner_link._zahner_link.WorkstationInfo | ErrorObject

Query device identification without a persistent connection

Parameters:

timeout – timeout for the request

Returns:

zahner_link.WorkstationInfo on success, zahner_link.ErrorObject on failure

is_connected(self: zahner_link._zahner_link.ZahnerLink) bool

Check if it is connected to IM7

Returns:

True if it is connected

retrieve_resource(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource, limit: SupportsInt = 0, offset: SupportsInt = 0) bytes | ErrorObject

Retrieve resource data

Parameters:
  • resourcezahner_link.Resource object

  • limit – Max bytes to retrieve (0 = max)

  • offset – Offset in resource

Returns:

Data as bytes on success, zahner_link.ErrorObject on failure

send_stop(self: zahner_link._zahner_link.ZahnerLink, queue_stop_mode: QueueStopModeEnum) None

Stop the device

Parameters:

queue_stop_mode – enum how to stop the job

set_destination_host(self: zahner_link._zahner_link.ZahnerLink, hostname: str, port: str) None

Set the destination host and port.

Parameters:
  • hostname – IP address or hostname of the IM7

  • port – port of the IM7

set_flag(self: zahner_link._zahner_link.ZahnerLink, flag: SupportsInt) None

Set a connection flag.

Parameters:

flag – flag to set (e.g. from zahner_link.ZahnerLinkConnectionFlags)

set_http_authentication_info(self: zahner_link._zahner_link.ZahnerLink, http_user: str, http_password: str) None

Set HTTP authentication information.

Parameters:
  • http_user – user name

  • http_password – password

set_request_timeout(self: zahner_link._zahner_link.ZahnerLink, arg0: SupportsFloat) None

Set the request timeout

Parameters:

timeout – timeout value in seconds

ssl_get_last_verification_result(self: zahner_link._zahner_link.ZahnerLink) zahner_link._zahner_link.TlsVerificationResult

Get the result of the last TLS verification.

Returns:

zahner_link.TlsVerificationResult object

ssl_set_trusted_ca_file_list(self: zahner_link._zahner_link.ZahnerLink, trusted_ca_file_list: collections.abc.Sequence[str]) None

Set the list of trusted CA files.

Parameters:

trusted_ca_file_list – List of paths to trusted CA files

ssl_set_trusted_cert_fingerprint_list(self: zahner_link._zahner_link.ZahnerLink, trusted_certs_fingerprints: collections.abc.Sequence[str]) None

Set the list of trusted certificate fingerprints.

Parameters:

trusted_certs_fingerprints – List of SHA256 fingerprints

test_flag(self: zahner_link._zahner_link.ZahnerLink, flag: SupportsInt) bool

Test if a connection flag is set.

Parameters:

flag – flag to test (e.g. from zahner_link.ZahnerLinkConnectionFlags)

Returns:

True if the flag is set

update_settings(self: zahner_link._zahner_link.ZahnerLink, settings: SettingsSet) None

Update device settings

Parameters:

settings – List of settings to update

class ZahnerLinkExc(self: zahner_link._zahner_link.ZahnerLinkExc, hostname: str, port: str = '1994', flags: SupportsInt = 0, http_user: str = '', http_password: str = '')

Class which manages the connection to the IM7

This class provides methods for communicating with an IM7 device and executing jobs. Variant of ZahnerLink which raises zahner_link.ZahnerLinkException on errors for all methods.

All methods raise zahner_link.ZahnerLinkException when the underlying operation fails.

Parameters:
  • hostname – IP address of the IM7

  • port – port of the IM7

  • flags – optional flags of type zahner_link.ZahnerLinkConnectionFlags for the connection can be combined with bitwise OR operation

  • http_user – user name from the settings

  • http_password – password from the settings

append_to_resource(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource, data: collections.abc.Buffer) ErrorObject

Append data to a resource

Parameters:
  • resource – Resource object

  • data – Data as bytearray

Returns:

zahner_link.ErrorObject (falsy on success)

check_job_parameters(self: zahner_link._zahner_link.ZahnerLinkExc, job: AbstractMeasurementJob) ErrorObject

Check job parameters before execution.

Parameters:

job – job object

Returns:

zahner_link.ErrorObject (falsy if parameters are valid)

clear_flag(self: zahner_link._zahner_link.ZahnerLink, flag: SupportsInt) None

Clear a connection flag.

Parameters:

flag – flag to clear (e.g. from zahner_link.ZahnerLinkConnectionFlags)

connect(self: zahner_link._zahner_link.ZahnerLink) ErrorObject

Connect to a running IM7

Returns:

zahner_link.ErrorObject (falsy on success)

create_resource(self: zahner_link._zahner_link.ZahnerLink, type: ResourceTypeEnum, resource_name: str) zahner_link._zahner_link.Resource | ErrorObject

Create a resource

Parameters:
Returns:

zahner_link.Resource on success, zahner_link.ErrorObject on failure

create_resource_from_file(self: zahner_link._zahner_link.ZahnerLink, type: ResourceTypeEnum, file_name_and_path: os.PathLike | str | bytes, resource_name: str = '') zahner_link._zahner_link.Resource | ErrorObject

Create a resource from a file

Parameters:
Returns:

zahner_link.Resource on success, zahner_link.ErrorObject on failure

delete_resource(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource) ErrorObject

Delete a resource

Parameters:

resourcezahner_link.Resource object

Returns:

zahner_link.ErrorObject (falsy on success)

disconnect(self: zahner_link._zahner_link.ZahnerLink) None

Disconnect from the device

Jobs can no longer be executed after disconnect has been called. However, data that is available in the job objects after the job has been executed remains valid and can still be used.

do_job(self: zahner_link._zahner_link.ZahnerLinkExc, job: AbstractMeasurementJob) ErrorObject

Perform a job.

Parameters:

job – job object

Returns:

zahner_link.ErrorObject (falsy if the job was successful)

Raises:

ZahnerLinkException – if the job failed

do_measurement(self: zahner_link._zahner_link.ZahnerLinkExc, job: AbstractMeasurementJob) DataSet

Execute a measurement job and directly return the resulting dataset.

Parameters:

job – measurement job object

Returns:

Dataset object with measurement data

Raises:

ZahnerLinkException – if execution failed

download_resource_to_file(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource, file_name_and_path: os.PathLike | str | bytes) ErrorObject

Download resource to file

Parameters:
Returns:

zahner_link.ErrorObject (falsy on success)

get_available_resources(self: zahner_link._zahner_link.ZahnerLink, type: ResourceTypeEnum) list[zahner_link._zahner_link.Resource] | ErrorObject

Get available resources of a type

Parameters:

typezahner_link.ResourceTypeEnum

Returns:

List of zahner_link.Resource objects on success, zahner_link.ErrorObject on failure

get_connection_status(self: zahner_link._zahner_link.ZahnerLink) ZahnerLinkConnectionStatusEnum

Get the connection state

Returns:

enum with the connection state

get_job_info_list(self: zahner_link._zahner_link.ZahnerLink, exclude_finished_jobs: bool = False) list[JobInfo] | ErrorObject

Get job info list

Parameters:

exclude_finished_jobs – If True, finished jobs are excluded

Returns:

list with zahner_link.JobInfo objects on success, zahner_link.ErrorObject on failure

get_job_result_data(self: zahner_link._zahner_link.ZahnerLinkExc, job: AbstractMeasurementJob) DataSet

Get the result data from a previously executed job.

Parameters:

job – job object

Returns:

Dataset object (EisDataset, DcDataset, …) derived from DataSet

Raises:

ZahnerLinkException – if retrieval failed or job did not finish successfully

static get_library_revision() str

Get the revision of the C++ ZahnerLink library

get_settings(self: zahner_link._zahner_link.ZahnerLink) SettingsSet | ErrorObject

Get the current device settings

Returns:

zahner_link.SettingsSet on success, zahner_link.ErrorObject on failure

static get_supported_protocol_version() int

Get the protocol version of the C++ ZahnerLink library

get_updated_resource_info(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource) ErrorObject

Update resource info

Parameters:

resourcezahner_link.Resource object

Returns:

zahner_link.ErrorObject (falsy on success)

get_workstation_info(self: zahner_link._zahner_link.ZahnerLink) zahner_link._zahner_link.WorkstationInfo | ErrorObject

Get device information

Returns:

zahner_link.WorkstationInfo on success, zahner_link.ErrorObject on failure

get_workstation_status(self: zahner_link._zahner_link.ZahnerLink) zahner_link._zahner_link.WorkstationStatus | ErrorObject

Get device status

Returns:

zahner_link.WorkstationStatus on success, zahner_link.ErrorObject on failure

id(self: zahner_link._zahner_link.ZahnerLink, timeout: datetime.timedelta = datetime.timedelta(0)) zahner_link._zahner_link.WorkstationInfo | ErrorObject

Query device identification without a persistent connection

Parameters:

timeout – timeout for the request

Returns:

zahner_link.WorkstationInfo on success, zahner_link.ErrorObject on failure

is_connected(self: zahner_link._zahner_link.ZahnerLink) bool

Check if it is connected to IM7

Returns:

True if it is connected

retrieve_resource(self: zahner_link._zahner_link.ZahnerLink, resource: zahner_link._zahner_link.Resource, limit: SupportsInt = 0, offset: SupportsInt = 0) bytes | ErrorObject

Retrieve resource data

Parameters:
  • resourcezahner_link.Resource object

  • limit – Max bytes to retrieve (0 = max)

  • offset – Offset in resource

Returns:

Data as bytes on success, zahner_link.ErrorObject on failure

send_stop(self: zahner_link._zahner_link.ZahnerLink, queue_stop_mode: QueueStopModeEnum) None

Stop the device

Parameters:

queue_stop_mode – enum how to stop the job

set_destination_host(self: zahner_link._zahner_link.ZahnerLink, hostname: str, port: str) None

Set the destination host and port.

Parameters:
  • hostname – IP address or hostname of the IM7

  • port – port of the IM7

set_flag(self: zahner_link._zahner_link.ZahnerLink, flag: SupportsInt) None

Set a connection flag.

Parameters:

flag – flag to set (e.g. from zahner_link.ZahnerLinkConnectionFlags)

set_http_authentication_info(self: zahner_link._zahner_link.ZahnerLink, http_user: str, http_password: str) None

Set HTTP authentication information.

Parameters:
  • http_user – user name

  • http_password – password

set_request_timeout(self: zahner_link._zahner_link.ZahnerLink, arg0: SupportsFloat) None

Set the request timeout

Parameters:

timeout – timeout value in seconds

ssl_get_last_verification_result(self: zahner_link._zahner_link.ZahnerLink) zahner_link._zahner_link.TlsVerificationResult

Get the result of the last TLS verification.

Returns:

zahner_link.TlsVerificationResult object

ssl_set_trusted_ca_file_list(self: zahner_link._zahner_link.ZahnerLink, trusted_ca_file_list: collections.abc.Sequence[str]) None

Set the list of trusted CA files.

Parameters:

trusted_ca_file_list – List of paths to trusted CA files

ssl_set_trusted_cert_fingerprint_list(self: zahner_link._zahner_link.ZahnerLink, trusted_certs_fingerprints: collections.abc.Sequence[str]) None

Set the list of trusted certificate fingerprints.

Parameters:

trusted_certs_fingerprints – List of SHA256 fingerprints

test_flag(self: zahner_link._zahner_link.ZahnerLink, flag: SupportsInt) bool

Test if a connection flag is set.

Parameters:

flag – flag to test (e.g. from zahner_link.ZahnerLinkConnectionFlags)

Returns:

True if the flag is set

update_settings(self: zahner_link._zahner_link.ZahnerLink, settings: SettingsSet) None

Update device settings

Parameters:

settings – List of settings to update

class AbstractDataset
finished_successfully(self: zahner_link._zahner_link.AbstractDataset) bool
get_job_info(self: zahner_link._zahner_link.AbstractDataset) JobInfo

Get info to the job

Returns:

object with the job info

get_row_count(self: zahner_link._zahner_link.AbstractDataset) int
class AbstractMeasurementJob

Abstract base class from which all jobs are derived.

Each job is an instantiation of a C++ template derived from this class.

get_last_job_error_message(self: zahner_link._zahner_link.AbstractMeasurementJob) str

Get the last job error message when failing.

The job must have been previously executed using methods such as zahner_link.ZahnerLink.do_job() or zahner_link.ZahnerLink.do_measurement().

Returns:

string containing the error message or empty string

get_last_job_info(self: zahner_link._zahner_link.AbstractMeasurementJob) zahner_link._zahner_link.JobInfo

Get the info of the last job.

The job must have been previously executed using methods such as zahner_link.ZahnerLink.do_job() or zahner_link.ZahnerLink.do_measurement().

Returns:

object with the job info

get_last_job_status(self: zahner_link._zahner_link.AbstractMeasurementJob) zahner_link._zahner_link.JobStatusEnum

Get status of the last job.

The job must have been previously executed using methods such as zahner_link.ZahnerLink.do_job() or zahner_link.ZahnerLink.do_measurement().

Returns:

object with the job status

was_successful(self: zahner_link._zahner_link.AbstractMeasurementJob) bool

Get status if the last job was successful.

The job must have been previously executed using methods such as zahner_link.ZahnerLink.do_job() or zahner_link.ZahnerLink.do_measurement().

Returns:

True if job was successful

class BandwidthRange
property index

index of the bandwidth

enum CalibrationDataTypeEnum(value)

Enum which indicates the data type of the calibration data.

Valid values are as follows:

UNDEFINED = <CalibrationDataTypeEnum.UNDEFINED: 0>
FLOAT = <CalibrationDataTypeEnum.FLOAT: 1>
FLOAT_VECTOR = <CalibrationDataTypeEnum.FLOAT_VECTOR: 2>
SPECTRA = <CalibrationDataTypeEnum.SPECTRA: 3>
STRING = <CalibrationDataTypeEnum.STRING: 4>
class zahner_link.CalibrationTypesEnum

Enum which indicates the type of the calibration.

DC = 2

perform full DC calibration

class CardInfo
property firmware

firmware version of the card

property hardware

hardware revision of the card

property name

name of the card

property serialnumber

serial number of the card

property symbol

symbol of the card

class Channel(self: zahner_link._zahner_link.Channel, uri: str, dimension: str, unit: str, polynomial: zahner_link._zahner_link.UserPolynomial)

Class which contains the settings of a channel.

Parameters:
  • uri – identifier of the channel as URI

  • dimension – dimension of the channel

  • unit – unit of the channel

  • polynomial

    • polynomial used to calculate the DC value of this channel

    • it is also included in the impedance calculation

property dimension

dimension of the channel

property polynomial
  • polynomial used to calculate the DC value of this channel

  • it is also included in the impedance calculation

property unit

unit of the channel

property uri

identifier of the channel as URI

class ColumnHeader
get_dimension(self: zahner_link._zahner_link.ColumnHeader) str

Get the dimension name of the column.

Returns:

dimension name

get_unit(self: zahner_link._zahner_link.ColumnHeader) str

Get the unit of the column.

Returns:

unit name

get_urn(self: zahner_link._zahner_link.ColumnHeader) str

Get the urn of the column.

Returns:

urn

class ComplianceRange
property compliance

maximum compliance voltage

property index

index of the range

class CurrentRange
property current

maximum current

property index

index of the range

property resistance

nominal shunt resistance

class PathDataHeader
get_columns(self: zahner_link._zahner_link.PathDataHeader) list[zahner_link._zahner_link.ColumnHeader]

Get the paths headers

These are the extracted headers from the live data header object.

Returns:

object with the headers

get_polynomial(self: zahner_link._zahner_link.PathDataHeader) UserPolynomial
get_uri(self: zahner_link._zahner_link.PathDataHeader) str
get_wave_size(self: zahner_link._zahner_link.PathDataHeader) int
class DataSet
finished_successfully(self: zahner_link._zahner_link.AbstractDataset) bool
get_job_info(self: zahner_link._zahner_link.DataSet) JobInfo

Get info to the job

Returns:

object with the job info

get_row_count(self: zahner_link._zahner_link.AbstractDataset) int
class DatasetInfo(self: zahner_link._zahner_link.DatasetInfo)
property first_time_value

first timestamp in the dataset

property jobInfo

information about the job that created this dataset

property job_type

dataset type name

property job_type_short

shortened dataset type name

property num_rows

number of rows in the dataset

property type

dataset type identifier

class DcDataset(self: zahner_link._zahner_link.DcDataset)

Class which contains DC data.

EMPTY_TRACK = []
append(self: zahner_link._zahner_link.DcDataset, to_append: zahner_link._zahner_link.DcDataset, time_offset: SupportsFloat = 0.0) bool

Append a dataset by another.

Parameters:
  • to_append – dataset to be appended to the data

  • time_offset – additional offset for the time track

Returns:

true if append was successful

finished_successfully(self: zahner_link._zahner_link.AbstractDataset) bool
get_dc_dimensions(self: zahner_link._zahner_link.DcDataset) list[str]

Get a list of all track dimension names

Returns:

list with the names

get_dc_track(self: zahner_link._zahner_link.DcDataset, dimension: str) list[float]

Get the data track by a dimension name

Parameters:

dimension – name of the dimension to search in columns

Returns:

list of data points for the track DcDataset.EMPTY_TRACK if the dimension does not exist

get_dc_tracks(self: zahner_link._zahner_link.DcDataset) dict[str, list[float]]

Get a dictionary with all tracks

Keys are a dimension and values are the data as a list of floats.

Returns:

dictionary with the data

get_header(self: zahner_link._zahner_link.DcDataset) zahner_link._zahner_link.LiveDataHeader

Get the header object

Returns:

header object

get_included_datasets(self: zahner_link._zahner_link.DcDataset) list[zahner_link._zahner_link.DatasetInfo]

Get included datasets

Returns:

list with pairs. First item type and second item number of rows.

get_job_info(self: zahner_link._zahner_link.DataSet) JobInfo

Get info to the job

Returns:

object with the job info

get_row_count(self: zahner_link._zahner_link.DcDataset) int

Get number of measured points

Returns:

number of points

get_tracks(self: zahner_link._zahner_link.DcDataset) list[list[float]]

Get all data tracks

Returns:

list of lists containing the data points for the tracks

index_of(self: zahner_link._zahner_link.DcDataset, column_header: zahner_link._zahner_link.ColumnHeader) int

Get the index of the column by a header object

Parameters:

column_header – name of the header to search

Returns:

index or -1 if not found

index_of_dimension(self: zahner_link._zahner_link.DcDataset, dimension_name: str) int

Get the index of the column by a dimension name

Parameters:

dimension_name – name of the dimension to search in columns

Returns:

index or -1 if not found

index_of_urn(self: zahner_link._zahner_link.DcDataset, urn: str) int

Get the index of the column by a urn

Parameters:

urn – urn to search in columns

Returns:

index or -1 if not found

class EisDataset(self: zahner_link._zahner_link.EisDataset)

Class which contains EIS data.

EMPTY_COMPLEX_TRACK = []
EMPTY_SPECTRA = []
EMPTY_TRACK = []
EMPTY_TRACKWAVE = []
INVALID_IMPEDANCE_DATA = <zahner_link._zahner_link.ImpedanceData object>
INVALID_PATH = <zahner_link._zahner_link.PathData object>
INVALID_POTENTIOSTAT = <zahner_link._zahner_link.PotentiostatData object>
append(self: zahner_link._zahner_link.EisDataset, to_append: zahner_link._zahner_link.EisDataset, time_offset: SupportsFloat = 0.0) bool

Append a dataset by another

AFTER THAT OPERATION ALL HELPER OBJECTS ARE INVALID

Parameters:
  • to_append – dataset to be appended to the data

  • time_offset – additional offset for the time track

Returns:

true if append was successful

finished_successfully(self: zahner_link._zahner_link.AbstractDataset) bool
get_frequencies(self: zahner_link._zahner_link.EisDataset) list[float]

Get measured impedance points

Returns:

list with frequencies

get_impedance_data(*args, **kwargs)

Overloaded function.

  1. get_impedance_data(self: zahner_link._zahner_link.EisDataset, numerator_dimension: str, denominator_dimension: str) -> zahner_link._zahner_link.ImpedanceData

    Get a zahner_link.ImpedanceData object which uses the passed dimension for numerator and denominator

    param numerator_dimension:

    dimension of the numerator

    param denominator_dimension:

    dimension of the denominator

    returns:

    zahner_link.ImpedanceData object or EisDataset.INVALID_IMPEDANCE_DATA if it does not exist

  2. get_impedance_data(self: zahner_link._zahner_link.EisDataset, dimension: str) -> zahner_link._zahner_link.ImpedanceData

    Get a zahner_link.ImpedanceData object which uses the passed dimension

    param dimension:

    dimension for which zahner_link.ImpedanceData objects are searched for

    returns:

    zahner_link.ImpedanceData object or EisDataset.INVALID_IMPEDANCE_DATA if it does not exist

  3. get_impedance_data(self: zahner_link._zahner_link.EisDataset) -> zahner_link._zahner_link.ImpedanceData

    Get the first zahner_link.ImpedanceData object

    returns:

    zahner_link.ImpedanceData object or EisDataset.INVALID_IMPEDANCE_DATA if it does not exist

get_impedances_data(self: zahner_link._zahner_link.EisDataset) dict[tuple[str, str], zahner_link._zahner_link.ImpedanceData]

Get a dictionary with all zahner_link.ImpedanceData objects

Keys are a pair of numerator and denominator dimension and values ar the zahner_link.ImpedanceData objects.

Returns:

dictionary with the data

get_impedances_dimensions(self: zahner_link._zahner_link.EisDataset) list[tuple[str, str]]

Get a list with numerator and denominator dimensions of the impedances

Returns:

list with the dimensions

get_job_info(self: zahner_link._zahner_link.DataSet) JobInfo

Get info to the job

Returns:

object with the job info

get_path_data(self: zahner_link._zahner_link.EisDataset, identifier: str) zahner_link._zahner_link.PathData

Get a PathData object by identifier

Parameters:

identifier – name of the potentiostat

Returns:

PathData object

get_paths_data(self: zahner_link._zahner_link.EisDataset) dict[str, zahner_link._zahner_link.PathData]

Get a dictionary with all PathData objects

Keys are a dimension names and values the objects.

Returns:

dictionary with the data

get_paths_dimensions(self: zahner_link._zahner_link.EisDataset) list[str]

Get a list with all available dimensions

Returns:

list with the dimensions

get_periods(self: zahner_link._zahner_link.EisDataset) list[float]

Get number of measured periods per impedance point

Returns:

list with periods

get_potentiostat_data(*args, **kwargs)

Overloaded function.

  1. get_potentiostat_data(self: zahner_link._zahner_link.EisDataset) -> zahner_link._zahner_link.PotentiostatData

    Get the first PotentiostatData object

    returns:

    PotentiostatData object or EisDataset.INVALID_POTENTIOSTAT if the potentiostat does not exist

  2. get_potentiostat_data(self: zahner_link._zahner_link.EisDataset, identifier: str) -> zahner_link._zahner_link.PotentiostatData

    Get a PotentiostatData by a potentiostat name

    param identifier:

    name of the potentiostat

    returns:

    PotentiostatData object or EisDataset.INVALID_POTENTIOSTAT if the potentiostat does not exist

get_potentiostats_data(self: zahner_link._zahner_link.EisDataset) dict[str, zahner_link._zahner_link.PotentiostatData]

Get a dictionary with all PotentiostatData objects

Keys are a potentiostats names and values the objects.

Returns:

dictionary with the data

get_potentiostats_identifiers(self: zahner_link._zahner_link.EisDataset) list[str]

Get a list with all available potentiostat names

Returns:

list with the names

get_row_count(self: zahner_link._zahner_link.EisDataset) int

Get number of measured impedance points

Returns:

number points

get_times(self: zahner_link._zahner_link.EisDataset) list[float]

Get relative start time per impedance point

Returns:

list with times

class FilterRange
property enabled

is enabled

property frequency

maximum impedance frequnecy

property index

index of the range

class GainRange
property enabled

is enabled

property index

index of the range

property nominal_gain

nominal gain factor

class HardwareInfo
property cards

list of zahner_link.CardInfo objects

constains_url(self: zahner_link._zahner_link.HardwareInfo, url: str) bool

Verify that the object contains the url.

The zahner_link.DeviceTree must first be retrieved from the device in order to use this method.

Parameters:

url – urn to check for

Returns:

True if the url exists

constains_urn(self: zahner_link._zahner_link.HardwareInfo, urn: str) bool

Verify that the object contains the urn.

Parameters:

urn – urn to check for

Returns:

True if the urn exists

convert_url_to_urn(self: zahner_link._zahner_link.HardwareInfo, url: str) str

Convert an url to a urn with the device tree.

Parameters:

url – url to convert

Returns:

urn or an empty string

convert_urn_to_url(self: zahner_link._zahner_link.HardwareInfo, urn: str) str

Convert an urn to a url with the device tree.

Parameters:

urn – urn to convert

Returns:

url or an empty string

property paths

list of zahner_link.PathInfo objects

property potentiostats

list of zahner_link.PotentiostatInfo objects

property workstation

zahner_link.WorkstationInfo object

class HardwareSettings

Class which contains the settings adopted by the IM7.

The channels were sorted by the IM7 according to parallel_channels and sequential_channels.

property async_channels
  • channels which are sampled sequentially after the synchronous channels

  • async_channels can only be measured sequentially, which slows down the internal oversampling

property impedance_configurations

configuration of the channels to be divided for impedance measurements

property output_potentiostats

output potentiostats to which the measurement methods are to be output

property sync_channels

channels which are sampled synchronous

class HardwareSettingsHelper
CHANNELS = 'channels'
IMPEDANCE_CONFIGURATIONS = 'impedance_configurations'
MAIN_POT = 'MAIN:1:POT'
MAIN_POT_I_PAD_I = 'MAIN:1:POT:I~PAD:1:PAD_I'
MAIN_POT_U_PAD_U = 'MAIN:1:POT:U~PAD:1:PAD_U'
OUTPUT_POTENTIOSTATS = 'output_potentiostats'
PAD_I = 'PAD:1:PAD_I'
PAD_U = 'PAD:1:PAD_U'
SEPARATOR = '~'
static get_config_for_main_potentiostat() zahner_link._zahner_link.UserHardwareSettings

Get the default configuration

U and I channel on the main potentiostat are measured and the impedance is calculated from the two channels.

Returns:

object with the settings

static get_config_for_main_with_sync_channel_impedance(connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4ImpedanceConfiguration]) zahner_link._zahner_link.UserHardwareSettings

Get the default configuration for the main potentiostat with impedance between PAD4 channels.

U and I channel on the main potentiostat are measured and the impedance is calculated from the two channels. In addition, an impedance is calculated between two PAD4 channels.

Parameters:

connections – list with with objects of type Pad4ImpedanceConfiguration which specify the numerator and denominator as Pad4Connection with card index and connector number

Returns:

object with the settings

static get_config_for_main_with_sync_current_channel(connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4Connection]) zahner_link._zahner_link.UserHardwareSettings

Get the default configuration for the main potentiostat with PAD4 channels.

U and I channel on the main potentiostat are measured and the impedance is calculated from the two channels. In addition, an impedance is calculated between the PAD4 channel as current and the voltage channel of the main potentiostat.

Parameters:

connections – list with PAD4 connections with card index and connector number

Returns:

object with the settings

static get_config_for_main_with_sync_voltage_channel(connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4Connection]) zahner_link._zahner_link.UserHardwareSettings

Get the default configuration for the main potentiostat with PAD4 channels.

U and I channel on the main potentiostat are measured and the impedance is calculated from the two channels. In addition, an impedance is calculated between the PAD4 channel and the current of the main potentiostat.

Parameters:

connections – list with PAD4 connections with card index and connector number

Returns:

object with the settings

static get_config_for_potentiostat(*args, **kwargs)

Overloaded function.

  1. get_config_for_potentiostat(pot_serial_number: str) -> zahner_link._zahner_link.UserHardwareSettings

    Get the default configuration for a potentiostat with a specific serialnumber.

    U and I channel are measured on the potentiostat with the serial number pot_serial_number and the impedance is calculated from the two channels.

    param pot_serial_number:

    serialnumber of the potentiostat as a string

    returns:

    object with the settings

  2. get_config_for_potentiostat(pot_connection: zahner_link._zahner_link.PotConnection) -> zahner_link._zahner_link.UserHardwareSettings

    Get the default configuration for a potentiostat at a specific EPC slot.

    The U and I channels are measured at the potentiostat with the specified slot on the EPC card, and the impedance is calculated from the two channels.

    param pot_connection:

    slot of the potentiostat on the EPC card with card index and slot number

    returns:

    object with the settings

static get_config_for_potentiostat_with_sync_channel_impedance(*args, **kwargs)

Overloaded function.

  1. get_config_for_potentiostat_with_sync_channel_impedance(pot_serial_number: str, connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4ImpedanceConfiguration]) -> zahner_link._zahner_link.UserHardwareSettings

    Get the default configuration for the main potentiostat with impedance between PAD4 channels.

    U and I channel are measured on the potentiostat with the serial number pot_serial_number and the impedance is calculated from the two channels. In addition, an impedance is calculated between two PAD4 channels.

    param pot_serial_number:

    serialnumber of the potentiostat as a string

    param connections:

    list with with objects of type Pad4ImpedanceConfiguration which specify the numerator and denominator as Pad4Connection with card index and connector number

    returns:

    object with the settings

  2. get_config_for_potentiostat_with_sync_channel_impedance(pot_connection: zahner_link._zahner_link.PotConnection, connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4ImpedanceConfiguration]) -> zahner_link._zahner_link.UserHardwareSettings

    Get the default configuration for the main potentiostat with impedance between PAD4 channels.

    U and I channel are measured on the potentiostat with the connections pot_connection and the impedance is calculated from the two channels. In addition, an impedance is calculated between two PAD4 channels.

    param pot_connection:

    slot of the potentiostat on the EPC card with card index and slot number

    param connections:

    list with with objects of type Pad4ImpedanceConfiguration which specify the numerator and denominator as Pad4Connection with card index and connector number

    returns:

    object with the settings

static get_config_for_potentiostat_with_sync_current_channel(*args, **kwargs)

Overloaded function.

  1. get_config_for_potentiostat_with_sync_current_channel(pot_serial_number: str, connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4Connection]) -> zahner_link._zahner_link.UserHardwareSettings

    Get the default configuration for a potentiostat with a specific serialnumber and PAD4 channels.

    U and I channel are measured on the potentiostat with the serial number pot_serial_number and the impedance is calculated from the two channels. In addition, an impedance is calculated between the PAD4 channel as current and the voltage channel of the potentiostat which has the pot_serial_number.

    param pot_serial_number:

    serialnumber of the potentiostat as a string

    param connections:

    list with PAD4 connections with card index and connector number

    returns:

    object with the settings

  2. get_config_for_potentiostat_with_sync_current_channel(pot_connection: zahner_link._zahner_link.PotConnection, connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4Connection]) -> zahner_link._zahner_link.UserHardwareSettings

    Get the default configuration for a potentiostat with a specific serialnumber and PAD4 channels.

    U and I channel are measured on the potentiostat with the connections pot_connection and the impedance is calculated from the two channels. In addition, an impedance is calculated between the PAD4channel as current and the voltage channel of the potentiostat which has the connections pot_connection.

    param pot_connection:

    slot of the potentiostat on the EPC card with card index and slot number

    param connections:

    list with PAD4 connections with card index and connector number

    returns:

    object with the settings

static get_config_for_potentiostat_with_sync_voltage_channel(*args, **kwargs)

Overloaded function.

  1. get_config_for_potentiostat_with_sync_voltage_channel(pot_serial_number: str, connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4Connection]) -> zahner_link._zahner_link.UserHardwareSettings

    Get the default configuration for a potentiostat with a specific serialnumber and PAD4 channels.

    U and I channel are measured on the potentiostat with the serial number pot_serial_number and the impedance is calculated from the two channels. In addition, an impedance is calculated between the PAD4 channel and the current channel of the potentiostat which has the pot_serial_number.

    param pot_serial_number:

    serialnumber of the potentiostat as a string

    param connections:

    list with PAD4 connections with card index and connector number

    returns:

    object with the settings

  2. get_config_for_potentiostat_with_sync_voltage_channel(pot_connection: zahner_link._zahner_link.PotConnection, connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4Connection]) -> zahner_link._zahner_link.UserHardwareSettings

    Get the default configuration for a potentiostat with a specific serialnumber and PAD4 channels.

    U and I channel are measured on the potentiostat with the connections pot_connection and the impedance is calculated from the two channels. In addition, an impedance is calculated between the PAD4 channel and the current channel of the potentiostat which has the connections pot_connection.

    param pot_connection:

    slot of the potentiostat on the EPC card with card index and slot number

    param connections:

    list with PAD4 connections with card index and connector number

    returns:

    object with the settings

class ImpedanceConfiguration(self: zahner_link._zahner_link.ImpedanceConfiguration, numerator: str, denominator: str)

Class that contains the impedance configuration for a pair of channels.

Numerator and denominator can be any parallel signal paths in the system. For example, the numerator does not necessarily have to be U. For each impedance configuration, the numerator is simply returned divided by the denominator as a complex number, which even if impedance is in the name, special cases such as admittance spectra can be measured directly.

Parameters:
  • numerator – numerator for the impedance calculation

  • denominator – denominator for the impedance calculation

property denominator

denominator for the impedance calculation

property numerator

numerator for the impedance calculation

class ImpedanceData
get_calculated_complex_impedance_track(self: zahner_link._zahner_link.ImpedanceData) list[complex]

Get the impedance as a list of complex numbers

Calculates the impedance as complex number from the phase and absolute value.

Returns:

list with the complex numbers

get_calculated_spectra(self: zahner_link._zahner_link.ImpedanceData) dict[float, complex]

Get the spectra as a dictionary with the frequency as key and the complex number as value

Calculates the impedance as complex number from the phase and absolute value.

Returns:

dictionary with the frequency as key and the complex number as value

get_denominator_dimension(self: zahner_link._zahner_link.ImpedanceData) str

Get the name of the denominator dimension of the path

Returns:

dimension name

get_numerator_dimension(self: zahner_link._zahner_link.ImpedanceData) str

Get the name of the numerator dimension of the path

Returns:

dimension name

get_track(self: zahner_link._zahner_link.ImpedanceData, track_name: str) list[float]

Get a track by a track name

Parameters:

track_name – name of the track

Returns:

list with the track data or EisDataset.EMPTY_TRACK if the track name does not exist

get_track_names(self: zahner_link._zahner_link.ImpedanceData) list[str]

Get a list with all available track names

Returns:

list with the track names

get_tracks(self: zahner_link._zahner_link.ImpedanceData) dict[str, list[float]]

Get a dictionary with all tracks

Keys are a dimension and values are the data as a list of floats.

Returns:

dictionary with the data

class ImpedanceDataHeader
get_columns(self: zahner_link._zahner_link.ImpedanceDataHeader) list[zahner_link._zahner_link.ColumnHeader]
get_denominator_path(self: zahner_link._zahner_link.ImpedanceDataHeader) str
get_numerator_path(self: zahner_link._zahner_link.ImpedanceDataHeader) str
class JobInfo

Class which contains information about the job.

get_creation_date(self: zahner_link._zahner_link.JobInfo) str

Get the creation date.

Returns:

string with the date

get_end_date(self: zahner_link._zahner_link.JobInfo) str

Get the end date.

Returns:

string with the date

get_error(self: zahner_link._zahner_link.JobInfo) zahner_link._zahner_link.ErrorObject

Get the error object of the job

Returns:

object with the error details

get_error_message(self: zahner_link._zahner_link.JobInfo) str

Get the error message of the job

Returns:

string containing the error message or empty string

get_job_id(self: zahner_link._zahner_link.JobInfo) str

Get the ID of the job that was assigned by the IM7.

Returns:

string with the id

get_start_date(self: zahner_link._zahner_link.JobInfo) str

Get the start date.

Returns:

string with the date

get_status(self: zahner_link._zahner_link.JobInfo) zahner_link._zahner_link.JobStatusEnum

Get the status of the job.

Returns:

status object

get_status_detail(self: zahner_link._zahner_link.JobInfo) zahner_link._zahner_link.JobStatusDetailEnum

Get the detailed status of the job.

Returns:

reason object

get_status_detail_string(self: zahner_link._zahner_link.JobInfo) str

Get the detailed status of the job as string.

Returns:

string with the reason

get_status_string(self: zahner_link._zahner_link.JobInfo) str

Get the status of the job as string.

Returns:

string with the status

get_user_metadata(self: zahner_link._zahner_link.JobInfo) dict[str, str]

Get the meta data.

Returns:

dict with the data

enum JobStatusDetailEnum(value)

An enum that explains the status in more detail.

Valid values are as follows:

NOT_FINISHED = <JobStatusDetailEnum.NOT_FINISHED: 0>
RUN_TO_COMPLETION = <JobStatusDetailEnum.RUN_TO_COMPLETION: 1>
NOT_CONNECTED = <JobStatusDetailEnum.NOT_CONNECTED: 2>
FAILED_TO_CREATE = <JobStatusDetailEnum.FAILED_TO_CREATE: 3>
CANCELLED_BEFORE_RUN = <JobStatusDetailEnum.CANCELLED_BEFORE_RUN: 4>
STOPPED_BY_USER = <JobStatusDetailEnum.STOPPED_BY_USER: 5>
FUNCTIONAL_LIMIT_OCCURRED = <JobStatusDetailEnum.FUNCTIONAL_LIMIT_OCCURRED: 6>
SAFETY_LIMIT_OCCURRED = <JobStatusDetailEnum.SAFETY_LIMIT_OCCURRED: 7>
CONNECTION_LOSS = <JobStatusDetailEnum.CONNECTION_LOSS: 8>
RUNTIME_ERROR = <JobStatusDetailEnum.RUNTIME_ERROR: 9>
enum JobStatusEnum(value)

Enum which indicates the status of the job.

Valid values are as follows:

UNKNOWN = <JobStatusEnum.UNKNOWN: 0>
PENDING = <JobStatusEnum.PENDING: 1>
RUNNING = <JobStatusEnum.RUNNING: 2>
FINISHED = <JobStatusEnum.FINISHED: 3>
FAILED = <JobStatusEnum.FAILED: 4>
DELETED = <JobStatusEnum.DELETED: 5>
class LiveDataHeader
get_columns(self: zahner_link._zahner_link.LiveDataHeader) list[ColumnHeader]

Get the zahner_link.ColumnHeader list of the job.

The list with zahner_link.ColumnHeader objects describe the tracks that were measured in the job.

Returns:

list with the headers of the job

get_number_of_columns(self: zahner_link._zahner_link.LiveDataHeader) int
get_short_type(self: zahner_link._zahner_link.LiveDataHeader) str
get_type(self: zahner_link._zahner_link.LiveDataHeader) str
class LiveDataHeaderEis
get_async_paths_data_headers(self: zahner_link._zahner_link.LiveDataHeaderEis) list[zahner_link._zahner_link.PathDataHeader]

Get the async headers

Returns:

object with the headers

get_columns(self: zahner_link._zahner_link.LiveDataHeader) list[ColumnHeader]

Get the zahner_link.ColumnHeader list of the job.

The list with zahner_link.ColumnHeader objects describe the tracks that were measured in the job.

Returns:

list with the headers of the job

get_impedances_headers(self: zahner_link._zahner_link.LiveDataHeaderEis) list[zahner_link._zahner_link.ImpedanceDataHeader]

Get the impedance headers

These are the extracted headers from the live data header object.

Returns:

object with the headers

get_meta_data_header(self: zahner_link._zahner_link.LiveDataHeaderEis) list[zahner_link._zahner_link.ColumnHeader]

Get the meta data headers

These are the extracted headers from the live data header object.

Returns:

object with the headers

get_number_of_columns(self: zahner_link._zahner_link.LiveDataHeader) int
get_paths_data_headers(self: zahner_link._zahner_link.LiveDataHeaderEis) list[zahner_link._zahner_link.PathDataHeader]

Get the paths data headers

These are the extracted headers from the live data header object.

Returns:

object with the headers

get_potentiostats_data_headers(self: zahner_link._zahner_link.LiveDataHeaderEis) list[PotentiostatDataHeader]

Get the potentiostats data headers

These are the extracted headers from the live data header object.

Returns:

object with the headers

get_short_type(self: zahner_link._zahner_link.LiveDataHeader) str
get_type(self: zahner_link._zahner_link.LiveDataHeader) str
class Pad4Connection(self: zahner_link._zahner_link.Pad4Connection, card_index: typing.SupportsInt, connector_index: typing.SupportsInt, polynomial: zahner_link._zahner_link.UserPolynomial = <zahner_link._zahner_link.UserPolynomial object at 0x739c5550f730>, dimension: str = '', unit: str = '')

Class which contains the settings of a PAD4 channel.

Parameters:
  • card_index – index of the PAD4 card

  • connector_index – index of the connector on the PAD4 card

  • polynomial

    • polynomial used to calculate the DC value of this channel

    • it is also included in the impedance calculation

  • dimension – dimension of the channel

  • unit – unit of the channel

property card_index

index of the PAD4 card

property connector_index

index of the connector on the PAD4 card

property dimension

dimension of the channel

getPath(self: zahner_link._zahner_link.Pad4Connection) str

Get the path of the PAD4 as string.

Returns:

the path as string

property polynomial
  • polynomial used to calculate the DC value of this channel

  • it is also included in the impedance calculation

property unit

unit of the channel

class PathData
get_dc_track(self: zahner_link._zahner_link.PathData) list[float]

Get a track with the dc data

Returns:

list with the track data or EisDataset.EMPTY_TRACK if the track name does not exist

get_dimension(self: zahner_link._zahner_link.PathData) str

Get the name of the dimension of the path

Returns:

dimension name

get_impedance_data(*args, **kwargs)

Overloaded function.

  1. get_impedance_data(self: zahner_link._zahner_link.PathData, dimension: str) -> zahner_link._zahner_link.ImpedanceData

    Get a zahner_link.ImpedanceData object which uses this PathInfo and the passed dimension

    param dimension:

    dimension for which zahner_link.ImpedanceData objects are searched for

    returns:

    zahner_link.ImpedanceData object or EisDataset.INVALID_IMPEDANCE_DATA if it does not exist

  2. get_impedance_data(self: zahner_link._zahner_link.PathData) -> zahner_link._zahner_link.ImpedanceData

    Get the first zahner_link.ImpedanceData object

    returns:

    zahner_link.ImpedanceData object or EisDataset.INVALID_IMPEDANCE_DATA if it does not exist

get_impedances_data(self: zahner_link._zahner_link.PathData) dict[tuple[str, str], zahner_link._zahner_link.ImpedanceData]

Get a dictionary with all zahner_link.ImpedanceData objects which use this path

Keys are a pair of numerator and denominator dimension and values ar the zahner_link.ImpedanceData objects.

Returns:

dictionary with the data

get_track(self: zahner_link._zahner_link.PathData, track_name: str) list[float]

Get a track by a track name

Parameters:

track_name – name of the track

Returns:

list with the track data or EisDataset.EMPTY_TRACK if the track name does not exist

get_track_names(self: zahner_link._zahner_link.PathData) list[str]

Get a list with all available track names

Returns:

list with the track names

get_tracks(self: zahner_link._zahner_link.PathData) dict[str, list[float]]

Get a dictionary with all tracks

Keys are a dimension and values are the data as a list of floats.

Returns:

dictionary with the data

get_waves(self: zahner_link._zahner_link.PathData) list[list[float]]

Get the waves of the path

The first dimension of the list is the spectra. Each list contains a list with the values of the wave.

Returns:

list with the waves

class PathInfo
property filter_ranges

Filter ranges of the path.

Contains an array with the index and the maximum filter frequency used for impedance measurements. The user does not have to adjust anything on the filter.

property gain_ranges

Gain factor ranges of the path.

Contains an array with the index and the nominal Gain factor of the path. The user does not have to adjust anything on the gains.

property relevance

Hint how relevant is the channel.

  • 1.0 is the best 0 is worst

  • current, voltage and speed make a signal relevant

property sampling

Sampling type of the path:

  • simultan for parallel channels like PAD and PAD4 that are sampled at the same time

  • acq for sequential aquisition channels that are sampled after the parallel channels one after the other

  • high_precision for slow high precision 32 bit channels

property source

Description of where the signal is measured from:

  • shunt current channel of a potentiostat,

  • voltage voltage channel of a potentiostat

  • input analog input like PAD4

property url

path in url notation

property urn

path in urn notation

class PotConnection(self: zahner_link._zahner_link.PotConnection, card_index: SupportsInt, connector_index: SupportsInt)

Class which describes the connection of a potentiostat to an EPC card.

Parameters:
  • card_index – index of the card to which the potentiostat is connected

  • connector_index – index of the connector on the card to which the potentiostat is connected

property card_index

index of the card to which the potentiostat is connected

property connector_index

index of the connector on the card to which the potentiostat is connected

class PotentiostatConfiguration(self: zahner_link._zahner_link.PotentiostatConfiguration, uri: str, potentiostatic_polynomial: object = [0.0, 1.0], galvanostatic_polynomial: object = [0.0, 1.0])

Class that contains the impedance configuration for a pair of channels.

Numerator and denominator can be any parallel signal paths in the system. For example, the numerator does not necessarily have to be U. For each impedance configuration, the numerator is simply returned divided by the denominator as a complex number, which even if impedance is in the name, special cases such as admittance spectra can be measured directly.

Parameters:
  • uri – identifier of the potentiostat as URI

  • potentiostatic_polynomial – polynomial to calculate potentiostatic output for reference electrode and FRA

  • galvanostatic_polynomial – polynomial to calculate galvanostatic output for FRA

property galvanostatic_polynomial

polynomial to calculate galvanostatic output for FRA

property potentiostatic_polynomial

polynomial to calculate potentiostatic output for reference electrode and FRA

property uri

identifier of the potentiostat as uri

enum PotentiostatCoupling(value)

Enum with which you can select the feedback mode.

Valid values are as follows:

POTENTIOSTATIC = <PotentiostatCoupling.POTENTIOSTATIC: 0>

voltage feedback

GALVANOSTATIC = <PotentiostatCoupling.GALVANOSTATIC: 1>

current feedback

FRA_PROBE = <PotentiostatCoupling.FRA_PROBE: 2>

internal feedback, mode must be used in combination with an FRA probe

class PotentiostatData
get_identifier(self: zahner_link._zahner_link.PotentiostatData) str

Get the name of the potentiostat

Returns:

name of the potentiostat

get_track(self: zahner_link._zahner_link.PotentiostatData, track_name: str) list[float]

Get a track by a track name

Parameters:

track_name – name of the track

Returns:

list with the track data or EisDataset.EMPTY_TRACK if the track name does not exist

get_track_names(self: zahner_link._zahner_link.PotentiostatData) list[str]

Get a list with all available track names

Returns:

list with the track names

get_tracks(self: zahner_link._zahner_link.PotentiostatData) dict[str, list[float]]

Get a dictionary with all tracks

Keys are a dimension and values are the data as a list of floats.

Returns:

dictionary with the data

class PotentiostatInfo
property bandwidth_ranges
property compliance_ranges

Array with objects, that describe the compliance ranges.

Contain an Index for the index of the range and the maximum voltage of the range. This measurement configuration must be set by the user and is never set automatically by the device.

property current_ranges

Array with json objects, that describe the current ranges.

Contain an Index for the index of the range and the maximum current and resistor value of the range. The user could select individual current ranges via the API, but this is rarely required.

property dac_resolution

resolution of the dac that is used for output values in bits

property has_calibration_data

flag if there is calibration data, if false no measurements are possible

property identifier

unique identification of the potentiostat

property serialnumber

serial number of the potentiostat

property software

software version of the potentiostat

property url

path in url notation

property urn

path in urn notation

property voltage_ranges

Array with objects, that describe the voltage ranges.

Contain an Index for the index of the range and the maximum voltage of the range. This measurement configuration must be set by the user and is never set automatically by the device.

enum QueueStopModeEnum(value)

Enum with which you can select what should happen when the criteria is met.

Valid values are as follows:

QUEUE_STOP_MODE_FLUSH = <QueueStopModeEnum.QUEUE_STOP_MODE_FLUSH: 0>

flush all the following jobs

QUEUE_STOP_MODE_CONTINUE = <QueueStopModeEnum.QUEUE_STOP_MODE_CONTINUE: 1>

continue with the following job

class Resource(self: zahner_link._zahner_link.Resource)
DATA_CHUNK_SIZE_LIMIT = 393216
static from_id(type: ResourceTypeEnum, resource_id: str) zahner_link._zahner_link.Resource
get_creation_date(self: zahner_link._zahner_link.Resource) str
get_id(self: zahner_link._zahner_link.Resource) str
get_last_updated_date(self: zahner_link._zahner_link.Resource) str
get_name(self: zahner_link._zahner_link.Resource) str
get_size(self: zahner_link._zahner_link.Resource) int
get_type(self: zahner_link._zahner_link.Resource) ResourceTypeEnum
is_valid(self: zahner_link._zahner_link.Resource) bool
enum ResourceTypeEnum(value)

Enum which indicates the type of the resource.

Valid values are as follows:

UNDEFINED = <ResourceTypeEnum.UNDEFINED: 0>
FIRMWARE_UPDATE = <ResourceTypeEnum.FIRMWARE_UPDATE: 1>
WAVE = <ResourceTypeEnum.WAVE: 2>
CALIB_MESH = <ResourceTypeEnum.CALIB_MESH: 3>
ISC = <ResourceTypeEnum.ISC: 4>
class UserHardwareSettings(self: zahner_link._zahner_link.UserHardwareSettings, channels: collections.abc.Sequence[zahner_link._zahner_link.Channel], impedance_configurations: collections.abc.Sequence[zahner_link._zahner_link.ImpedanceConfiguration], output_potentiostats: collections.abc.Sequence[zahner_link._zahner_link.PotentiostatConfiguration])

Class which contains the information about the sampling configuration to be set

Parameters:
  • channels

    • channels to be measured during the measurement

    • asynchron and synchron channels together these are automatically split

  • impedance_configurations

    • synchron sampled channels

    • as a list of lists from which impedances are calculated

    • in the sub list, the first element (index 0) divided by the second element (index 1) is used for the impedance calculation

  • output_potentiostats – potentiostat on which the measurement is to be output

add_sync_current_channel(self: zahner_link._zahner_link.UserHardwareSettings, connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4Connection]) None

Adding a synchronous current channel to the configuration.

With the added channels, an impedance is calculated with the main voltage channel.

Parameters:

connections – synchronous channels

add_sync_voltage_channel(self: zahner_link._zahner_link.UserHardwareSettings, connections: collections.abc.Sequence[zahner_link._zahner_link.Pad4Connection]) None

Adding a synchronous voltage channel to the configuration.

With the added channels, an impedance is calculated with the main current channel.

Parameters:

connections – synchronous channels

property channels

The channels to be measured during the measurement. asynchron and synchron channels together these are automatically split.

property impedance_configurations

Configuration of the channels to be divided, for example for impedance measurements.

property output_potentiostats

Configuration of the output potentiostats to which the measurement methods are to be output.

remove_duplicates_from_channels(self: zahner_link._zahner_link.UserHardwareSettings) None

Removal of duplicates from the channels.

class UserPolynomial(*args, **kwargs)

Overloaded function.

  1. __init__(self: zahner_link._zahner_link.UserPolynomial, coefficients: collections.abc.Sequence[typing.SupportsFloat]) -> None

    Class which contains the polynomial for the channel configuration.

    param coefficients:

    array containing the coefficients of the polynomial

  2. __init__(self: zahner_link._zahner_link.UserPolynomial, arg0: collections.abc.Sequence) -> None

property coefficients

Array containing the coefficients of the polynomial.

class VoltageRange
property index

index of the range

property voltage

maximum voltage

class WorkstationInfo
property cpu_card_uuid
property firmware_version
property mode
property model_name
property protocol_version
property serial_number
property system_mac
property system_name
class WorkstationStatus
property busy
property last_dc_calibration
property uptime
enum ZahnerLinkConnectionStatusEnum(value)

Indicates the connection status.

Valid values are as follows:

DISCONNECTED = <ZahnerLinkConnectionStatusEnum.DISCONNECTED: 0>
CONNECTED = <ZahnerLinkConnectionStatusEnum.CONNECTED: 1>
exception ZahnerLinkException

Base class for all ZahnerLink exceptions.

exception ErrorObject

Class which contains information about an error.

get_error_code_enum(self: zahner_link._zahner_link.ErrorObject) zahner_link._zahner_link.ErrorCodeEnum

Get the error code enum.

Returns:

error code

get_message_format_string(self: zahner_link._zahner_link.ErrorObject) str

Get the format string for the error message.

Returns:

format string

get_message_formatted(self: zahner_link._zahner_link.ErrorObject) str

Get the formatted error message.

Returns:

formatted error message

get_message_parameters(self: zahner_link._zahner_link.ErrorObject) list[bool | float | int | int | str]

Get the parameters for formatting the error message.

Returns:

list with the parameters

is_none(self: zahner_link._zahner_link.ErrorObject) bool

Check if the error code is NONE (no error).

Returns:

True if the error code is NONE, False otherwise

enum ErrorCodeEnum(value)

Enum which indicates error codes for various operations.

Valid values are as follows:

NONE = <ErrorCodeEnum.NONE: 0>
CONNECTION_NOT_ESTABLISHED = <ErrorCodeEnum.CONNECTION_NOT_ESTABLISHED: 4096>
ALREADY_CONNECTED = <ErrorCodeEnum.ALREADY_CONNECTED: 4097>
CONNECTION_FAILED = <ErrorCodeEnum.CONNECTION_FAILED: 4098>
CONNECTION_BROKEN = <ErrorCodeEnum.CONNECTION_BROKEN: 4099>
CONNECTION_WAS_CLOSED = <ErrorCodeEnum.CONNECTION_WAS_CLOSED: 4100>
FAILED_TO_WRITE_TO_SOCKET = <ErrorCodeEnum.FAILED_TO_WRITE_TO_SOCKET: 4101>
FAILED_TO_READ_FROM_SOCKET = <ErrorCodeEnum.FAILED_TO_READ_FROM_SOCKET: 4102>
OPERATION_TIMED_OUT = <ErrorCodeEnum.OPERATION_TIMED_OUT: 4103>
CONNECTION_DNS_ERROR = <ErrorCodeEnum.CONNECTION_DNS_ERROR: 4104>
CONNECTION_HTTP_ERROR = <ErrorCodeEnum.CONNECTION_HTTP_ERROR: 4105>
UNAUTHORIZED = <ErrorCodeEnum.UNAUTHORIZED: 4106>
FAILED_TO_ESTABLISH_WEBSOCKET_CONNECTION = <ErrorCodeEnum.FAILED_TO_ESTABLISH_WEBSOCKET_CONNECTION: 4107>
PROTOCOL_VERSION_MISMATCH = <ErrorCodeEnum.PROTOCOL_VERSION_MISMATCH: 4108>
JSON_MALFORMED = <ErrorCodeEnum.JSON_MALFORMED: 8192>
JSON_OBJECT_EXPECTED = <ErrorCodeEnum.JSON_OBJECT_EXPECTED: 8193>
ENDPOINT_NOT_FOUND = <ErrorCodeEnum.ENDPOINT_NOT_FOUND: 8194>
TYPE_NAME_UNKNOWN = <ErrorCodeEnum.TYPE_NAME_UNKNOWN: 8195>
PARAMETER_MISSING = <ErrorCodeEnum.PARAMETER_MISSING: 16384>
PARAMETER_FORMAT_INVALID = <ErrorCodeEnum.PARAMETER_FORMAT_INVALID: 16385>
PARAMETER_FORMAT_INVALID_HINT = <ErrorCodeEnum.PARAMETER_FORMAT_INVALID_HINT: 16386>
PARAMETER_IS_NOT_A_NUMBER = <ErrorCodeEnum.PARAMETER_IS_NOT_A_NUMBER: 16387>
PARAMETER_VALUE_TOO_HIGH = <ErrorCodeEnum.PARAMETER_VALUE_TOO_HIGH: 16388>
PARAMETER_VALUE_TOO_LOW = <ErrorCodeEnum.PARAMETER_VALUE_TOO_LOW: 16389>
PARAMETER_RELATIVE_CONSTRAINT_VIOLATED = <ErrorCodeEnum.PARAMETER_RELATIVE_CONSTRAINT_VIOLATED: 16390>
PARAMETER_CONSTRAINT_VIOLATED = <ErrorCodeEnum.PARAMETER_CONSTRAINT_VIOLATED: 16391>
RAMP_ODR_CONSTRAINT_VIOLATED = <ErrorCodeEnum.RAMP_ODR_CONSTRAINT_VIOLATED: 16392>
PARAMETER_COMBINATION_INVALID = <ErrorCodeEnum.PARAMETER_COMBINATION_INVALID: 16393>
PARAMETER_VALUES_TOO_CLOSE = <ErrorCodeEnum.PARAMETER_VALUES_TOO_CLOSE: 16394>
PARAMETER_STRING_LENGTH_INVALID = <ErrorCodeEnum.PARAMETER_STRING_LENGTH_INVALID: 16395>
PARAMETER_VECTOR_SIZE_INVALID = <ErrorCodeEnum.PARAMETER_VECTOR_SIZE_INVALID: 16396>
PARAMETER_SYMBOLIC_PATH_INVALID = <ErrorCodeEnum.PARAMETER_SYMBOLIC_PATH_INVALID: 16397>
PROPERTY_OBJECT_MISSING = <ErrorCodeEnum.PROPERTY_OBJECT_MISSING: 16398>
INVALID_PARAMETER = <ErrorCodeEnum.INVALID_PARAMETER: 16399>
ID_NOT_FOUND = <ErrorCodeEnum.ID_NOT_FOUND: 16400>
SETTINGS_NOT_APPLIED = <ErrorCodeEnum.SETTINGS_NOT_APPLIED: 32768>
SETTING_OK_BUT_NOT_COMMITTED = <ErrorCodeEnum.SETTING_OK_BUT_NOT_COMMITTED: 32769>
TLS_NOT_SUPPORTED_BY_LIBRARY = <ErrorCodeEnum.TLS_NOT_SUPPORTED_BY_LIBRARY: 32770>
TLS_SETUP_FAILED = <ErrorCodeEnum.TLS_SETUP_FAILED: 32771>
TLS_HANDSHAKE_FAILED = <ErrorCodeEnum.TLS_HANDSHAKE_FAILED: 32772>
TLS_CERTIFICATE_INVALID = <ErrorCodeEnum.TLS_CERTIFICATE_INVALID: 32773>
TLS_PRIVATE_KEY_INVALID = <ErrorCodeEnum.TLS_PRIVATE_KEY_INVALID: 32774>
TLS_KEY_CERTIFICATE_MISMATCH = <ErrorCodeEnum.TLS_KEY_CERTIFICATE_MISMATCH: 32775>
TLS_CERTIFICATE_EXPIRED = <ErrorCodeEnum.TLS_CERTIFICATE_EXPIRED: 32776>
STOP_CONDITION_MISCONFIGURED = <ErrorCodeEnum.STOP_CONDITION_MISCONFIGURED: 65536>
STOP_CONDITION_TRIGGERED = <ErrorCodeEnum.STOP_CONDITION_TRIGGERED: 65537>
STOPPED_MANUALLY_BEFORE_RUN = <ErrorCodeEnum.STOPPED_MANUALLY_BEFORE_RUN: 65538>
STOPPED_MANUALLY = <ErrorCodeEnum.STOPPED_MANUALLY: 65539>
RESOURCE_CREATION_FAILED = <ErrorCodeEnum.RESOURCE_CREATION_FAILED: 131072>
RESOURCE_TYPE_MISMATCH = <ErrorCodeEnum.RESOURCE_TYPE_MISMATCH: 131073>
RESOURCE_CONTENT_INVALID = <ErrorCodeEnum.RESOURCE_CONTENT_INVALID: 131074>
QUEUE_BYPASS_NOT_ALLOWED = <ErrorCodeEnum.QUEUE_BYPASS_NOT_ALLOWED: 262144>
QUEUE_FULL = <ErrorCodeEnum.QUEUE_FULL: 262145>
FILE_NOT_FOUND = <ErrorCodeEnum.FILE_NOT_FOUND: 524288>
FILE_COULD_NOT_BE_OPENED = <ErrorCodeEnum.FILE_COULD_NOT_BE_OPENED: 524289>
FILE_COULD_NOT_BE_CLOSED = <ErrorCodeEnum.FILE_COULD_NOT_BE_CLOSED: 524290>
FILE_COULD_NOT_BE_READ = <ErrorCodeEnum.FILE_COULD_NOT_BE_READ: 524291>
FILE_COULD_NOT_BE_WRITTEN = <ErrorCodeEnum.FILE_COULD_NOT_BE_WRITTEN: 524292>
FILE_IS_EMPTY = <ErrorCodeEnum.FILE_IS_EMPTY: 524293>
POT_STATUS_MISMATCH = <ErrorCodeEnum.POT_STATUS_MISMATCH: 1048576>
PSEUDO_GAL_NEEDS_GAL = <ErrorCodeEnum.PSEUDO_GAL_NEEDS_GAL: 1048577>
HARDWARE_CONFIGURATION_ISSUE = <ErrorCodeEnum.HARDWARE_CONFIGURATION_ISSUE: 1048578>
POTENTIOSTAT_SWITCH_ON_ISSUE = <ErrorCodeEnum.POTENTIOSTAT_SWITCH_ON_ISSUE: 1048579>
CALIBRATION_TYPE_UNKNOWN = <ErrorCodeEnum.CALIBRATION_TYPE_UNKNOWN: 2097152>
CALIBRATION_GAIN_CALIB_ERROR = <ErrorCodeEnum.CALIBRATION_GAIN_CALIB_ERROR: 2097153>
CALIBRATION_NO_SETTINGS = <ErrorCodeEnum.CALIBRATION_NO_SETTINGS: 2097154>
CALIBRATION_ERROR = <ErrorCodeEnum.CALIBRATION_ERROR: 2097155>
PREMATURELY_STOPPED = <ErrorCodeEnum.PREMATURELY_STOPPED: 2097156>
OUT_OF_MEMORY = <ErrorCodeEnum.OUT_OF_MEMORY: 4194304>
UNEXPECTED_EXCEPTION = <ErrorCodeEnum.UNEXPECTED_EXCEPTION: 8388608>
UNKNOWN_ERR = <ErrorCodeEnum.UNKNOWN_ERR: 195948557>
enum SettingType(value)

Type enumeration for Setting values

Valid values are as follows:

UNINITIALIZED = <SettingType.UNINITIALIZED: 0>

uninitialized setting

BOOL = <SettingType.BOOL: 1>

boolean setting

INT = <SettingType.INT: 2>

integer setting

DOUBLE = <SettingType.DOUBLE: 3>

double precision floating point setting

STRING = <SettingType.STRING: 4>

string setting

class ZahnerLinkConnectionFlags

Flags for the ZahnerLink connection.

IGNORE_PROTOCOL_MISMATCH = 16
NONE = 0
SKIP_SSL_CERT_VALIDATION = 2
SKIP_SSL_HOSTNAME_MATCHING = 4
SSL_DO_NOT_USE_SYSTEM_CAS = 8
USE_SSL = 1
class TrackNames

Constants for track names used in datasets.

AMPLITUDE = 'amplitude'
BANDWITH = 'bandwith'
CURRENT = 'current'
DC = 'dc'
DRIFT = 'drift'
FILTER = 'filter'
FREQUENCY = 'frequency'
GAIN = 'gain'
IMPEDANCE_ABSOLUTE = '|impedance|'
IMPEDANCE_DRIFT = 'impedance drift'
IMPEDANCE_ERROR = 'impedance error'
PERIODS = 'periods'
PHASE = 'phase'
PHASE_DRIFT = 'phase drift'
PHASE_ERROR = 'phase error'
SHUNT = 'shunt'
THD = 'thd'
TIME = 'time'
VOLTAGE = 'voltage'
class UnitNames

Constants for unit names used in datasets.

BANDWITH = ''
CURRENT = 'A'
DRIFT = '1/period'
FILTER = ''
FILTER_HZ = 'Hz'
FREQUENCY = 'Hz'
GAIN = ''
IMPEDANCE_ABSOLUTE = 'Ω'
IMPEDANCE_DRIFT = ''
IMPEDANCE_ERROR = ''
PERIODS = ''
PHASE_DRIFT = ''
PHASE_ERROR = ''
PHASE_RAD = 'rad'
SHUNT = ''
THD = '%'
TIME = 's'
VOLTAGE = 'V'
class Setting(*args, **kwargs)

Overloaded function.

  1. __init__(self: zahner_link._zahner_link.Setting) -> None

    A setting that can hold different types of values

  2. __init__(self: zahner_link._zahner_link.Setting, value: str) -> None

    A setting that can hold different types of values

    This class represents a single configuration setting that can store boolean, integer, double or string values with automatic type management.

    param value:

    String value to store

  3. __init__(self: zahner_link._zahner_link.Setting, value: str) -> None

    A setting that can hold different types of values

    This class represents a single configuration setting that can store boolean, integer, double or string values with automatic type management.

    param value:

    C string value to store

  4. __init__(self: zahner_link._zahner_link.Setting, value: bool) -> None

    A setting that can hold different types of values

    This class represents a single configuration setting that can store boolean, integer, double or string values with automatic type management.

    param value:

    Boolean value to store

  5. __init__(self: zahner_link._zahner_link.Setting, value: typing.SupportsInt) -> None

    A setting that can hold different types of values

    This class represents a single configuration setting that can store boolean, integer, double or string values with automatic type management.

    param value:

    Integer value to store

  6. __init__(self: zahner_link._zahner_link.Setting, value: typing.SupportsFloat) -> None

    A setting that can hold different types of values

    This class represents a single configuration setting that can store boolean, integer, double or string values with automatic type management.

    param value:

    Double value to store

as_string(self: zahner_link._zahner_link.Setting) str

Convert value to string representation

Returns:

String representation of the value

assign_bool(self: zahner_link._zahner_link.Setting, value: bool) zahner_link._zahner_link.Setting

Assign boolean value

Parameters:

value – Boolean value to assign

Returns:

Reference to self

assign_double(self: zahner_link._zahner_link.Setting, value: SupportsFloat) zahner_link._zahner_link.Setting

Assign double value

Parameters:

value – Double value to assign

Returns:

Reference to self

assign_int(self: zahner_link._zahner_link.Setting, value: SupportsInt) zahner_link._zahner_link.Setting

Assign integer value

Parameters:

value – Integer value to assign

Returns:

Reference to self

assign_string(self: zahner_link._zahner_link.Setting, value: str) zahner_link._zahner_link.Setting

Assign string value

Parameters:

value – String value to assign

Returns:

Reference to self

get_bool_value(self: zahner_link._zahner_link.Setting) bool

Get boolean value

Returns:

Boolean value

get_double_value(self: zahner_link._zahner_link.Setting) float

Get double value

Returns:

Double value

get_int_value(self: zahner_link._zahner_link.Setting) int

Get integer value

Returns:

Integer value

get_string_value(self: zahner_link._zahner_link.Setting) str

Get string value

Returns:

String value

get_type(self: zahner_link._zahner_link.Setting) zahner_link._zahner_link.SettingType

Get the type of the setting

Returns:

zahner_link.SettingType enum value

get_update_failure_reason(self: zahner_link._zahner_link.Setting) zahner_link._zahner_link.ErrorObject

Get reason for update failure

Returns:

zahner_link.ErrorObject with failure reason

successfully_updated(self: zahner_link._zahner_link.Setting) bool

Check if setting was successfully updated

Returns:

True if setting was successfully updated

class SettingsSet(*args, **kwargs)

Overloaded function.

  1. __init__(self: zahner_link._zahner_link.SettingsSet) -> None

    Create an empty settings set

  2. __init__(self: zahner_link._zahner_link.SettingsSet, settings: collections.abc.Sequence[tuple[str, zahner_link._zahner_link.Setting]]) -> None

    Create settings set from vector of name and Setting pairs

    param settings:

    Vector of (key, Setting) pairs

  3. __init__(self: zahner_link._zahner_link.SettingsSet, settings: collections.abc.Sequence[tuple[str, object]]) -> None

    Create settings set from Python list of (key, value) pairs

    Automatically converts Python values to appropriate Setting types.

    param settings:

    List of (key, value) tuples where values can be bool, int, float, or str

all_successfully_updated(self: zahner_link._zahner_link.SettingsSet) bool

Check if all settings were successfully updated

Returns:

True if all settings were successfully updated

keys(self: zahner_link._zahner_link.SettingsSet) list[str]

Get list of all setting keys

Returns:

List of setting key names

size(self: zahner_link._zahner_link.SettingsSet) int

Get number of settings

Returns:

Number of settings in the set