Measurement Jobs

DC Jobs

class CvJob(self: zahner_link._zahner_link.meas.CvJob, start_value: SupportsFloat, first_vertex: SupportsFloat, second_vertex: SupportsFloat, end_value: SupportsFloat, scan_rate: SupportsFloat, output_data_rate: SupportsFloat, num_cycles: SupportsFloat, autorange: bool, current_range: SupportsFloat, turn_limit_check: bool, upper_turn_boundary: SupportsFloat, lower_turn_boundary: SupportsFloat, step_height: SupportsFloat, ir_drop: SupportsFloat, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Cyclic Voltammetry job

This cyclic voltammetry job can be carried out potentiostatically or galvanostatically. The description of the parameters is for the potentiostatic standard case. If the potentiostat was previously switched on galvanostatically, then the CV is also executed galvanostatically and the potential parameters become currents and the current parameters become voltages. For example, start_value becomes a current and upper_turn_boundary is a voltage.

Parameters:
  • start_value – starting potential

  • first_vertex – first reversing potential

  • second_vertex – second reversing potential

  • end_value – ending potential

  • scan_rate – magnitude of the CV scaning slew rate \(\frac{∆E}{∆t}\)

  • output_data_rate – rate at which data is output

  • num_cycles

    • number of full CV cycles (scan from 1st potential to 2nd potential and back to the 1st potential)

    • half cycles can be performed with .5

  • autorange

    • whether automatic switching should be used

    • for maximum measurement accuracy, autoranging should be switched off and current_range should be selected to match the object current

  • current_range – optional selection of the current range that matches the object as the maximum absolute current if autoranging is disabled

  • turn_limit_check – whether to perform turn limit checks

  • upper_turn_boundary – upper reversal current limit at which the scan is reversed

  • lower_turn_boundary – lower reversal current limit at which the scan is reversed

  • step_height

    • height of the steps

    • 0 uses the smallest step size

  • ir_drop

    • ohmic value for iR drop compensation

    • at 0 disabled

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "cv",
    "parameters": {
      "start_value": 0.0,
      "first_vertex": 1.0,
      "second_vertex": -1.0,
      "end_value": 0.0,
      "scan_rate": 0.1,
      "output_data_rate": 25.0,
      "num_cycles": 2.5,
      "autorange": true,
      "current_range": 0.01,
      "turn_limit_check": false,
      "upper_turn_boundary": 0.01,
      "lower_turn_boundary": -0.01,
      "step_height": 0.0,
      "ir_drop": 0.0
    }
  },
  "request_id": "cv-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.CvParametersPy

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 CvParametersPy
property autorange
property current_range
property end_value
property first_vertex
property ir_drop
property lower_turn_boundary
property num_cycles
property output_data_rate
property scan_rate
property second_vertex
property start_value
property step_height
property turn_limit_check
property upper_turn_boundary
class DpvJob(self: zahner_link._zahner_link.meas.DpvJob, start_value: SupportsFloat, step_value: SupportsFloat, pulse_value: SupportsFloat, end_value: SupportsFloat, step_time: SupportsFloat, pulse_time: SupportsFloat, invert_pulse: bool, output_data_rate: SupportsFloat, current_range: SupportsFloat, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Differential Pulse Voltammetry job

Parameters:
  • start_value – starting DC value

  • step_value – value of each step for the staircase function

  • pulse_value – absolute value of each pulse added to the staircase potential

  • end_value – maximum DC value of the last step and pulse

  • step_time

    • duration of each step of the staircase

    • should be at least twice as long as pulse duration

  • pulse_time – duration of each pulse

  • invert_pulse – invert pulse direction

  • output_data_rate – rate at which data is output

  • current_range – selection of the current range that matches the object as the maximum absolute current

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "dpv",
    "parameters": {
      "start_value": 0.0,
      "step_value": 0.01,
      "pulse_value": 0.05,
      "end_value": 1.5,
      "step_time": 0.5,
      "pulse_time": 0.1,
      "invert_pulse": false,
      "output_data_rate": 200.0,
      "current_range": 0.1
    }
  },
  "request_id": "dpv-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.DpvParametersPy

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 DpvParametersPy
property current_range
property end_value
property invert_pulse
property output_data_rate
property pulse_time
property pulse_value
property start_value
property step_time
property step_value
class NpvJob(self: zahner_link._zahner_link.meas.NpvJob, start_value: SupportsFloat, step_value: SupportsFloat, end_value: SupportsFloat, step_time: SupportsFloat, pulse_time: SupportsFloat, output_data_rate: SupportsFloat, current_range: SupportsFloat, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Normal Pulse Voltammetry job

Parameters:
  • start_value – starting DC value

  • step_value – value of each step for the rising pulse function

  • end_value – maximum DC value of the last step and pulse

  • step_time

    • duration of each step of the staircase

    • should be at least twice as long as pulse duration

  • pulse_time – duration of each pulse

  • output_data_rate – rate at which data is output

  • current_range – selection of the current range that matches the object as the maximum absolute current

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "npv",
    "parameters": {
      "start_value": 0.0,
      "step_value": 0.1,
      "end_value": 1.5,
      "step_time": 1.0,
      "pulse_time": 0.1,
      "output_data_rate": 200.0,
      "current_range": 0.1
    }
  },
  "request_id": "npv-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.NpvParametersPy

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 NpvParametersPy
property current_range
property end_value
property output_data_rate
property pulse_time
property start_value
property step_time
property step_value
class OcvJob(self: zahner_link._zahner_link.meas.OcvJob, duration: SupportsFloat, output_data_rate: SupportsFloat, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Open Circuit Voltage job

Also referred to as Open Circuit Potential.

Parameters:
  • duration – maximum runtime

  • output_data_rate – rate at which data is output

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "ocv",
    "parameters": {
      "duration": 10.0,
      "output_data_rate": 10.0
    }
  },
  "request_id": "ocv-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.OcvParametersPy

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 OcvParametersPy
property duration
property output_data_rate
class PogaJob(self: zahner_link._zahner_link.meas.PogaJob, bias: SupportsFloat, duration: SupportsFloat, output_data_rate: SupportsFloat, autorange: bool, current_range: SupportsFloat, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Poga Potentiostatic Galvanostatic Polarization job

Can be potentiostatic or galvanostatic. Also referred to as Chronopotentiometry, Chronoamperometry, Chronocoulometry.

Parameters:
  • bias – start value

  • duration – maximum runtime

  • output_data_rate – rate at which data is output

  • autorange

    • whether automatic switching should be used

    • for maximum measurement accuracy, autoranging should be switched off and current_range should be selected to match the object

  • current_range – optional selection of the current range that matches the object as the maximum absolute current if autoranging is disabled

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "poga",
    "parameters": {
      "bias": 1.0,
      "duration": 5.0,
      "output_data_rate": 25.0,
      "autorange": true,
      "current_range": 0.1
    }
  },
  "request_id": "poga-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.PogaParametersPy

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 PogaParametersPy
property autorange
property bias
property current_range
property duration
property output_data_rate
class RampJob(self: zahner_link._zahner_link.meas.RampJob, start_value: SupportsFloat, end_value: SupportsFloat, scan_rate: SupportsFloat, step_height: SupportsFloat, output_data_rate: SupportsFloat, autorange: bool, current_range: SupportsFloat, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Ramp job

Can be potentiostatic or galvanostatic. Also referred to as:

  • Linear Sweep Voltammetry (LSV)

  • Linear Sweep Galvanostatic

  • Staircase Voltammetry/Galvanostatic

  • Current Voltage Characteristic/Curves

Parameters:
  • start_value – start value of the ramp

  • end_value – end value of the ramp

  • scan_rate – scan rate from start_value to end_value

  • step_height

    • height of the steps

    • 0 uses the smallest step size

  • output_data_rate – rate at which data is output

  • autorange

    • whether automatic switching should be used

    • for maximum measurement accuracy, autoranging should be switched off and current_range should be selected to match the object

  • current_range – optional selection of the current range that matches the object as the maximum absolute current if autoranging is disabled

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "ramp",
    "parameters": {
      "start_value": 0.0,
      "end_value": 1.0,
      "scan_rate": 0.1,
      "step_height": 0.0,
      "output_data_rate": 10.0,
      "autorange": true,
      "current_range": 0.1,
    }
  },
  "request_id": "ramp-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.RampParametersPy

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 RampParametersPy
property autorange
property current_range
property end_value
property output_data_rate
property scan_rate
property start_value
property step_height
class SteadyStairsJob(self: zahner_link._zahner_link.meas.SteadyStairsJob, start_value: SupportsFloat, end_value: SupportsFloat, step_time: SupportsFloat, step_height: SupportsFloat, hold_time: SupportsFloat, stability_tolerance: SupportsFloat, output_data_rate: SupportsFloat, autorange: bool, current_range: SupportsFloat, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Steady Stairs Current Voltage Characteristic/Curves job

Can be potentiostatic or galvanostatic.

This primitive can be used to output slower steps, whereby each step has a termination criterion based on a change tolerance. For example, voltage steps can be terminated if the current change falls below a certain value.

Also referred to as:

  • Current Voltage Characteristic/Curves

  • Steady State Staircase Voltammetry/Galvanostatic

  • IE

Parameters:
  • start_value – start value of the ramp

  • end_value – end value of the ramp

  • step_time – maximum duration of a step

  • step_height – height of the steps

  • hold_time – time after that the stability tolerance is checked

  • stability_tolerance – absolute tolerance value for a change in dimension per second below which the job stops

  • output_data_rate – rate at which data is output

  • autorange

    • whether automatic switching should be used

    • for maximum measurement accuracy, autoranging should be switched off and current_range should be selected to match the object

  • current_range – optional selection of the current range that matches the object as the maximum absolute current if autoranging is disabled

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "steady_stairs",
    "parameters": {
      "start_value": 0.0,
      "end_value": 1.0,
      "step_time": 2.0,
      "step_height": 0.01,
      "hold_time": 1.0,
      "stability_tolerance": 0.01,
      "output_data_rate": 10.0,
      "autorange": true,
      "current_range": 0.1,
      "ir_drop": 0.0
    }
  },
  "request_id": "steady-stairs-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.SteadyStairsParametersPy

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 SteadyStairsParametersPy
property autorange
property current_range
property end_value
property hold_time
property output_data_rate
property stability_tolerance
property start_value
property step_height
property step_time
class SwvJob(self: zahner_link._zahner_link.meas.SwvJob, start_value: SupportsFloat, step_value: SupportsFloat, amplitude: SupportsFloat, end_value: SupportsFloat, period: SupportsFloat, output_data_rate: SupportsFloat, current_range: SupportsFloat, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Square Wave Voltammetry job

Parameters:
  • start_value – starting DC value

  • step_value – value of each step for the staircase function

  • amplitude – rectangle amplitude of the differential pulse added to the staircase potential

  • end_value – maximum DC potential of the last step and pulse

  • period

    • duration of each differential pulse period

    • each pulse is half of the period time

  • output_data_rate – rate at which data is output

  • current_range – selection of the current range that matches the object as the maximum absolute current

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "swv",
    "parameters": {
      "start_value": 0.0,
      "step_value": 0.01,
      "amplitude": 0.05,
      "end_value": 1.5,
      "period": 0.4,
      "output_data_rate": 200.0,
      "current_range": 0.1
    }
  },
  "request_id": "swv-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.SwvParametersPy

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 SwvParametersPy
property amplitude
property current_range
property end_value
property output_data_rate
property period
property start_value
property step_value
class WaveJob(self: zahner_link._zahner_link.meas.WaveJob, output_data_rate: SupportsFloat, value_rate: SupportsFloat, current_range: SupportsFloat, values: collections.abc.Sequence[SupportsFloat], meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

Wave job

Can be potentiostatic or galvanostatic. The wave job can be used to output arbitrary values of current or voltage which are faster. Current and voltage cannot be mixed. For slow processes, ramp and poga should be used instead of wave.

Parameters:
  • output_data_rate – rate at which data is output which was measured (internal oversampled)

  • value_rate – rate at which current or voltage values are output

  • current_range – selection of the current range that matches the object as the maximum absolute current

  • values – current or voltage values list which are output with value_rate frequency

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "wave",
    "parameters": {
      "output_data_rate": 1000.0,
      "value_rate": 100.0,
      "current_range": 0.01,
      "values": [0.0, 0.5, 1.0, 0.5, 0.0, -0.5, -1.0, -0.5, 0.0]
    }
  },
  "request_id": "wave-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.WaveParametersPy

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 WaveParametersPy
property current_range
property output_data_rate
property value_rate
property values
class WaveFileJob(self: zahner_link._zahner_link.meas.WaveFileJob, output_data_rate: SupportsFloat, value_rate: SupportsFloat, current_range: SupportsFloat, resource_id: str, meta_data: dict = {}, stop_conditions: collections.abc.Sequence[AbstractStopCondition] = [])

WaveFile job

Can be potentiostatic or galvanostatic. The wave job can be used to output arbitrary values of current or voltage which are faster. Current and voltage cannot be mixed. For slow processes, ramp and poga should be used instead of wave.

This job variant uses a previously uploaded file with current or voltage values, which can be used for large waveforms.

Parameters:
  • output_data_rate – rate at which data is output which was measured (internal oversampled)

  • value_rate – rate at which current or voltage values are output

  • current_range – selection of the current range that matches the object as the maximum absolute current

  • resource_id – resource id of (previously uploaded) file with current or voltage values which are output with value_rate frequency

  • meta_data – dict[str, str] with user-defined key-value pairs

  • stop_conditions – list of stop condition objects from Stop Conditions

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "wave_file",
    "parameters": {
      "output_data_rate": 1000.0,
      "value_rate": 1000.0,
      "current_range": 0.001,
      "resource_id": "triangular-wave-resource-uuid"
    }
  },
  "request_id": "wave-file-job-uuid-example"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.WaveFileParametersPy

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 WaveFileParametersPy
property current_range
property output_data_rate
property resource_id
property value_rate

DC Stop Conditions

AC Jobs

class EisFrequencyTableJob(*args, **kwargs)

Overloaded function.

  1. __init__(self: zahner_link._zahner_link.meas.EisFrequencyTableJob, bias: typing.SupportsFloat, spectrum: collections.abc.Sequence[zahner_link._zahner_link.meas.EisParametersFrequencyTableEntry], meta_data: dict = {}) -> None

    Electrochemical Impedance Spectroscopy job with self-specified frequency points.

    With this EIS, you can determine the frequencies, amplitude and duration of the measurement. This allows the object to be better characterized at relevant points than with an automatically generated spectrum, where the support points cannot be precisely defined.

    param bias:

    DC bias for defining the operating point of the object

    param spectrum:

    spectrum measurement settings

    WebSocket JSON Example
    {
      "do": "/job/start",
      "job": {
        "type": "eis_table",
        "parameters": {
          "bias": 0.0,
          "frequency_range": {
            "type": "table",
            "spectrum": [
              {
                "frequency": 100.0,
                "amplitude": 0.01,
                "pre_duration": 0.1,
                "pre_waves": 1,
                "meas_duration": 1.0,
                "meas_waves": 5
              },
              {
                "frequency": 200.0,
                "amplitude": 0.01,
                "pre_duration": 0.1,
                "pre_waves": 1,
                "meas_duration": 1.0,
                "meas_waves": 5
              },
              {
                "frequency": 500.0,
                "amplitude": 0.01,
                "pre_duration": 0.1,
                "pre_waves": 1,
                "meas_duration": 1.0,
                "meas_waves": 5
              }
            ]
          }
        }
      },
      "request_id": "00936e81-a128-4526-8a9e-5d5bdbf82fb9"
    }
    
  2. __init__(self: zahner_link._zahner_link.meas.EisFrequencyTableJob, table: zahner_link._zahner_link.meas.EisParametersFrequencyTable, meta_data: dict = {}) -> None

    Electrochemical Impedance Spectroscopy job with self-specified frequency points.

    With this EIS, you can determine the frequencies, amplitude and duration of the measurement. This allows the object to be better characterized at relevant points than with an automatically generated spectrum, where the support points cannot be precisely defined.

    param table:

    spectrum measurement settings

  3. __init__(self: zahner_link._zahner_link.meas.EisFrequencyTableJob, table: dict, meta_data: dict = {}) -> None

    Electrochemical Impedance Spectroscopy job with self-specified frequency points.

    With this EIS, you can determine the frequencies, amplitude and duration of the measurement. This allows the object to be better characterized at relevant points than with an automatically generated spectrum, where the support points cannot be precisely defined.

    param table:

    a dictionary with values like the following example

    job = EisFrequencyTableJob(
        {
            "bias": 0.0,
            "spectrum": [
                {
                    "frequency": 10,
                    "amplitude": 0.01,
                    "pre_duration": 0.1,
                    "pre_waves": 1,
                    "meas_duration": 1,
                    "meas_waves": 3,
                },
                {
                    "frequency": 100,
                    "amplitude": 0.01,
                    "pre_duration": 0.1,
                    "pre_waves": 1,
                    "meas_duration": 1,
                    "meas_waves": 3,
                },
                {
                    "frequency": 1000,
                    "amplitude": 0.01,
                    "pre_duration": 0.1,
                    "pre_waves": 1,
                    "meas_duration": 1,
                    "meas_waves": 3,
                },
            ],
        }
    )
    

    Or a simplified, shorter notation if, for example, only the frequency in the list needs to be adjusted.

    freqs_to_measure = [10, 100, 1000]
    job = EisFrequencyTableJob(
        {
            "bias": 0.0,
            "spectrum": [
                {
                    "frequency": freq,
                    "amplitude": 0.01,
                    "pre_duration": 0.1,
                    "pre_waves": 1,
                    "meas_duration": 1,
                    "meas_waves": 3,
                }
                for freq in freqs_to_measure
            ],
        }
    )
    
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.EisParametersFrequencyTablePy

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 EisParametersFrequencyTable(self: zahner_link._zahner_link.meas.EisParametersFrequencyTable, bias: SupportsFloat, spectrum: collections.abc.Sequence[zahner_link._zahner_link.meas.EisParametersFrequencyTableEntry])

Electrochemical Impedance Spectroscopy job with self-specified frequency points.

With this EIS, you can determine the frequencies, amplitude and duration of the measurement. This allows the object to be better characterized at relevant points than with an automatically generated spectrum, where the support points cannot be precisely defined.

Parameters:
  • bias – DC bias for defining the operating point of the object

  • spectrum – spectrum measurement settings

property bias

DC bias for defining the operating point of the object

property spectrum

spectrum measurement settings

class EisParametersFrequencyTableEntry(self: zahner_link._zahner_link.meas.EisParametersFrequencyTableEntry, frequency: SupportsFloat, amplitude: SupportsFloat, pre_duration: SupportsFloat, pre_waves: SupportsInt, meas_duration: SupportsFloat, meas_waves: SupportsInt)

Settings for a frequency point

Each frequency point can be measured with an individual duration and amplitude in order to measure the object as accurately as possible.

In order to make optimum use of the measuring time per frequency point, you can specify the minimum number of periods to be measured with meas_waves and a time meas_duration. At least meas_waves are always measured, but if meas_duration has not been reached after meas_waves periods, measurements are continued until this time is reached. Especially in the low frequency range, meas_waves will always exceed meas_duration.

Parameters:
  • frequency – corresponding AC frequency

  • amplitude – corresponding AC peak amplitude

  • pre_duration

    • minimum pre-conditioning time for each frequency step

    • allow longer pre-conditioning at higher frequencies

  • pre_waves

    • number of pre-conditioning sine waves before each frequency step

    • more waves for better pre-conditioning

  • meas_duration

    • minimum recording time for each frequency step

    • allow more averages at higher frequencies

  • meas_waves

    • minimum number of sine waves for each frequency step

    • more averages for higher SNR

property amplitude

corresponding AC peak amplitude

property frequency

corresponding AC frequency

property meas_duration
  • minimum recording time for each frequency step

  • allow more averages at higher frequencies

property meas_waves
  • minimum number of sine waves for each frequency step

  • more averages for higher SNR

property pre_duration
  • minimum pre-conditioning time for each frequency step

  • allow longer pre-conditioning at higher frequencies

property pre_waves
  • number of pre-conditioning sine waves before each frequency step

  • more waves for better pre-conditioning

class EisParametersFrequencyTablePy
property bias
property spectrum
class EisGenerateJob(self: zahner_link._zahner_link.meas.EisGenerateJob, bias: SupportsFloat, min_frequency: SupportsFloat, max_frequency: SupportsFloat, start_frequency: SupportsFloat, points_per_decade_upper: SupportsInt, points_per_decade_lower: SupportsInt, pre_duration: SupportsFloat, pre_waves: SupportsInt, meas_duration: SupportsFloat, meas_waves: SupportsInt, amplitude: SupportsFloat, meta_data: dict = {})

Electrochemical Impedance Spectroscopy job

The sequence is from start_frequency to max_frequency back down to min_frequency. The following applies: min_frequency < start_frequency < max_frequency.

At 66 Hz, the density of the spectrum can be changed. Above 66 Hz, measurements are made with points_per_decade_upper steps per decade. Below 66 Hz, the support point density is changed linearly from points_per_decade_upper to points_per_decade_lower at max_frequency down to min_frequency.

In order to make optimum use of the measuring time per frequency point, you can specify the minimum number of periods to be measured with meas_waves and a time meas_duration. At least meas_waves are always measured, but if meas_duration has not been reached after meas_waves periods, measurements are continued until this time is reached. Especially in the low frequency range, meas_waves will always exceed meas_duration.

Parameters:
  • bias – DC bias for defining the operating point of the object

  • min_frequency – lower frequency limit of the impedance spectrum

  • max_frequency – upper frequency limit of the impedance spectrum

  • start_frequency – starting frequency of the impedance spectrum

  • points_per_decade_upper

    • number of frequency steps per decade between 66 Hz and max_frequency

    • frequency steps are logarithmic equidistant

  • points_per_decade_lower

    • number of frequency steps per decade at min_frequency

    • logarithmic linear density from min_frequency to 66 Hz

  • pre_duration

    • minimum pre-conditioning time for each frequency step

    • allow longer pre-conditioning at higher frequencies

  • pre_waves

    • number of pre-conditioning sine waves before each frequency step

    • more waves for better pre-conditioning

  • meas_duration

    • minimum recording time for each frequency step

    • allow more averages at higher frequencies

  • meas_waves

    • minimum number of sine waves for each frequency step

    • more averages for higher SNR

  • amplitude – corresponding AC peak amplitude

  • meta_data – dict[str, str] with user-defined key-value pairs

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "eis",
    "parameters": {
      "bias": 0.0,
      "frequency_range": {
        "type": "generate",
        "min_frequency": 100.0,
        "max_frequency": 1000000.0,
        "start_frequency": 10000.0,
        "points_per_decade_upper": 20,
        "points_per_decade_lower": 5,
        "pre_duration": 0.1,
        "pre_waves": 1,
        "meas_duration": 1.0,
        "meas_waves": 5,
        "amplitude": 0.01
      }
    }
  },
  "request_id": "e813643e-4dde-4b5c-bb0e-7e1cfdf0646c"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.EisParametersGeneratePy

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 EisParametersGeneratePy
property amplitude
property bias
property max_frequency
property meas_duration
property meas_waves
property min_frequency
property points_per_decade_lower
property points_per_decade_upper
property pre_duration
property pre_waves
property start_frequency
class GeisVaFrequencyTableJob(*args, **kwargs)

Overloaded function.

  1. __init__(self: zahner_link._zahner_link.meas.GeisVaFrequencyTableJob, bias: typing.SupportsFloat, minimum_current_amplitude: typing.SupportsFloat, maximum_current_amplitude: typing.SupportsFloat, spectrum: collections.abc.Sequence[zahner_link._zahner_link.meas.EisParametersFrequencyTableEntry], meta_data: dict = {}) -> None

    Electrochemical Impedance Spectroscopy job with self-specified frequency points.

    With this EIS, you can determine the frequencies, amplitude and duration of the measurement. This allows the object to be better characterized at relevant points than with an automatically generated spectrum, where the support points cannot be precisely defined.

    param bias:

    DC current bias for defining the operating point of the object

    param minimum_current_amplitude:

    minimum current amplitude that will be used for the measurement

    param maximum_current_amplitude:

    maximum current amplitude that will be used for the measurement

    param spectrum:

    spectrum measurement settings

    param meta_data:

    dict[str, str] with user-defined key-value pairs

    WebSocket JSON Example
    {
      "do": "/job/start",
      "job": {
        "type": "geis_va_table",
        "parameters": {
          "bias": 0.0,
          "minimum_current_amplitude": 0.001,
          "maximum_current_amplitude": 1.0,
          "frequency_range": {
            "type": "table",
            "spectrum": [
              {
                "frequency": 100.0,
                "amplitude": 0.01,
                "pre_duration": 0.1,
                "pre_waves": 1,
                "meas_duration": 1.0,
                "meas_waves": 5
              },
              {
                "frequency": 200.0,
                "amplitude": 0.01,
                "pre_duration": 0.1,
                "pre_waves": 1,
                "meas_duration": 1.0,
                "meas_waves": 5
              },
              {
                "frequency": 500.0,
                "amplitude": 0.01,
                "pre_duration": 0.1,
                "pre_waves": 1,
                "meas_duration": 1.0,
                "meas_waves": 5
              }
            ]
          }
        }
      },
      "request_id": "00936e81-a128-4526-8a9e-5d5bdbf82fb9"
    }
    
  2. __init__(self: zahner_link._zahner_link.meas.GeisVaFrequencyTableJob, table: zahner_link.meas.GeisVaParametersFrequencyTablePy, meta_data: dict = {}) -> None

    Electrochemical Impedance Spectroscopy job with self-specified frequency points.

    With this EIS, you can determine the frequencies, amplitude and duration of the measurement. This allows the object to be better characterized at relevant points than with an automatically generated spectrum, where the support points cannot be precisely defined.

    param table:

    spectrum measurement settings

    param meta_data:

    dict[str, str] with user-defined key-value pairs

  3. __init__(self: zahner_link._zahner_link.meas.GeisVaFrequencyTableJob, table: dict, meta_data: dict = {}) -> None

    Electrochemical Impedance Spectroscopy job with self-specified frequency points.

    With this EIS, you can determine the frequencies, amplitude and duration of the measurement. This allows the object to be better characterized at relevant points than with an automatically generated spectrum, where the support points cannot be precisely defined.

    param table:

    a dictionary with values like the following example

    param meta_data:

    dict[str, str] with user-defined key-value pairs

    job = GeisVaFrequencyTableJob(
        {
            "bias": 0.0,
            "minimum_current_amplitude": 0.001,
            "maximum_current_amplitude": 1,
            "spectrum": [
                {
                    "frequency": 10,
                    "amplitude": 0.01,
                    "pre_duration": 0.1,
                    "pre_waves": 1,
                    "meas_duration": 1,
                    "meas_waves": 3,
                },
                {
                    "frequency": 100,
                    "amplitude": 0.01,
                    "pre_duration": 0.1,
                    "pre_waves": 1,
                    "meas_duration": 1,
                    "meas_waves": 3,
                },
                {
                    "frequency": 1000,
                    "amplitude": 0.01,
                    "pre_duration": 0.1,
                    "pre_waves": 1,
                    "meas_duration": 1,
                    "meas_waves": 3,
                },
            ],
        }
    )
    

    Or a simplified, shorter notation if, for example, only the frequency in the list needs to be adjusted.

    freqs_to_measure = [10, 100, 1000]
    job = GeisVaFrequencyTableJob(
        {
            "bias": 0.0,
            "minimum_current_amplitude": 0.001,
            "maximum_current_amplitude": 1,
            "spectrum": [
                {
                    "frequency": freq,
                    "amplitude": 0.01,
                    "pre_duration": 0.1,
                    "pre_waves": 1,
                    "meas_duration": 1,
                    "meas_waves": 3,
                }
                for freq in freqs_to_measure
            ],
        }
    )
    
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.GeisVaParametersFrequencyTablePy

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 GeisVaGenerateJob(self: zahner_link._zahner_link.meas.GeisVaGenerateJob, bias: SupportsFloat, min_frequency: SupportsFloat, max_frequency: SupportsFloat, start_frequency: SupportsFloat, points_per_decade_upper: SupportsInt, points_per_decade_lower: SupportsInt, pre_duration: SupportsFloat, pre_waves: SupportsInt, meas_duration: SupportsFloat, meas_waves: SupportsInt, amplitude: SupportsFloat, minimum_current_amplitude: SupportsFloat, maximum_current_amplitude: SupportsFloat, meta_data: dict = {})

Electrochemical Impedance Spectroscopy job

The sequence is from start_frequency to max_frequency back down to min_frequency. The following applies: min_frequency < start_frequency < max_frequency.

At 66 Hz, the density of the spectrum can be changed. Above 66 Hz, measurements are made with points_per_decade_upper steps per decade. Below 66 Hz, the support point density is changed linearly from points_per_decade_upper to points_per_decade_lower at max_frequency down to min_frequency.

In order to make optimum use of the measuring time per frequency point, you can specify the minimum number of periods to be measured with meas_waves and a time meas_duration. At least meas_waves are always measured, but if meas_duration has not been reached after meas_waves periods, measurements are continued until this time is reached. Especially in the low frequency range, meas_waves will always exceed meas_duration.

Parameters:
  • bias – DC current bias for defining the operating point of the object

  • min_frequency – lower frequency limit of the impedance spectrum

  • max_frequency – upper frequency limit of the impedance spectrum

  • start_frequency – starting frequency of the impedance spectrum

  • points_per_decade_upper

    • number of frequency steps per decade between 66 Hz and max_frequency

    • frequency steps are logarithmic equidistant

  • points_per_decade_lower

    • number of frequency steps per decade at min_frequency

    • logarithmic linear density from min_frequency to 66 Hz

  • pre_duration

    • minimum pre-conditioning time for each frequency step

    • allow longer pre-conditioning at higher frequencies

  • pre_waves

    • number of pre-conditioning sine waves before each frequency step

    • more waves for better pre-conditioning

  • meas_duration

    • minimum recording time for each frequency step

    • allow more averages at higher frequencies

  • meas_waves

    • minimum number of sine waves for each frequency step

    • more averages for higher SNR

  • amplitude – corresponding AC voltage peak amplitude

  • minimum_current_amplitude – minimum current amplitude that will be used for the measurement

  • maximum_current_amplitude – maximum current amplitude that will be used for the measurement

  • meta_data – dict[str, str] with user-defined key-value pairs

WebSocket JSON Example
{
  "do": "/job/start",
  "job": {
    "type": "eis",
    "parameters": {
      "bias": 0.0,
      "minimum_current_amplitude": 0.001,
      "maximum_current_amplitude": 1.0,
      "frequency_range": {
        "type": "generate",
        "min_frequency": 100.0,
        "max_frequency": 1000000.0,
        "start_frequency": 10000.0,
        "points_per_decade_upper": 20,
        "points_per_decade_lower": 5,
        "pre_duration": 0.1,
        "pre_waves": 1,
        "meas_duration": 1.0,
        "meas_waves": 5,
        "amplitude": 0.01
      }
    }
  },
  "request_id": "e813643e-4dde-4b5c-bb0e-7e1cfdf0646c"
}
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

property parameters

object with the parameters that were passed to the constructor of type zahner_link.meas.GeisVaParametersGeneratePy

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 GeisVaParametersFrequencyTablePy
property bias
property maximum_current_amplitude
property minimum_current_amplitude
property spectrum
class GeisVaParametersGeneratePy
property amplitude
property bias
property max_frequency
property maximum_current_amplitude
property meas_duration
property meas_waves
property min_frequency
property minimum_current_amplitude
property points_per_decade_lower
property points_per_decade_upper
property pre_duration
property pre_waves
property start_frequency