SOAP Library Reference

NAME

Pickering::Lxi::Picoms

DESCRIPTION

This module gets fundamental information about a LXI device. All is done by Picoms object which provides these methods:

SoapSettings ($endpoint, $timeout)

The method specifies endpoint of the SOAP service, which is a URL address of the SOAP service Picoms. timeout parameter is optional and specifies timeout for calling a method. Default value is 10s.

First result returns return code. Second one is version of the Server Bridge which is running in the LXI device.

First result returns return code. Second one is version of the Client Bridge which is running in the LXI device.

First result returns return code. Second one returns information about the LXI device. Information is reference to hash. The entries of the hash are:


Represents number of clients (int type) which are connected to the LXI device.
Represents port number (int type) on which ServerBridge listen on incoming commands. This is not important information for web service programming.
Represents number of cards (int type) which are inside the LXI device.
Represent IP address of the LXI device (string type).
Information string about type of the LXI device, echo port, name of the LXI device, LXI class, serial number, firmware version and short description of the LXI device.
Represent number of card which are opened now (int type).

Returns number of card (int type) by type of the card. Pickering Interfaces offers various types of the cards which can be used in LXI device. There is short enumeration which represents card types. User can find out number of the cards by their type (int type). Please use hash %CardTypeEnum that helps using the function.

ErrorCodeToMessage($errorCode)

Translates error code (int type) to error message, so that the error message mode describes error.

ENUMERATORS

Module offers only one enumerator %CardTypeEnum which contains definitions of type of cards. The entries are:

Represents all switch cards, battery simulators, attenuators, resistor cards. You can use value 0 instead it.

Represents Power Sequencer card. You can use value 1 instead it.

USING

This section shows usual programming steps that uses Picoms package.

use Pickering::Lxi::Picoms;

  1. Create object

$service = new Pickering::Lxi::Picoms;

  1. Set object

[[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 1 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picoms.html#item_soapsettings|$service->SoapSettings(' http://192.168.10.91/bin/picoms',20 );]]

  1. Use object

[[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 1 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picoms.html#item_sbversion|@res = $service->SbVersion();]]

This returns array when first item is return code and second one is return value which is version of the Server Bridge.

NOTES

Note 1

With a successful call the return code will be 0. Any other value represents an error. Use [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 1 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picoms.html#item_errorcodetomessage|ErrorCodeToMessage]] function for better description of the error code or documentation for picmlx library.

Note 2

Communication with a web services is complicated. If any error appears that means the object produced an exception. Description of the exception is in variable '$@'.

Pickering::Lxi::Picards

Tomas Wiszczor ([email protected]), Pickering Interfaces Ltd.

(c) Pickering Interfaces Ltd., 2007.

This module provides fundamental functions to control the Pickering LXI device with Pickering Series 40 cards. Some Series 41 cards are also available, check the compatibility list posted on the Pickering web site.

The method specifies endpoint of the SOAP service, which is a URL address of the SOAP service Picoms. timeout parameter is optional and specifies timeout for calling a method. Default value is 10s.

Sets actual location which says what card is actual. Location is done by combination of bus/slot. Parameters are type of int.

Translates error code (int type) to error message, so that the error message mode describes error.

Obtains the identification string of the specified card. The returned string contains these elements: <type code>,<serial number>,<revision code>.

Obtains the maximum number (int type) of switches that may be activated simultaneously in the specified sub-unit. A single-channel multiplexer (MUX type) allows only one channel to be closed at any time. In some other models such as high-density matrix types a limit is imposed to prevent overheating; although it is possible to disable the limit for these types (see SetMode), doing so is not recommended. The function returns limit.

Obtains the number (int type) of installed cards that are operable by the Pilpxi driver but are not currently opened by it. The function returns number of free cards (series 40!).

Obtains the diagnostic string of the specified card, giving expanded information on any fault conditons indicated by the [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_status|Status]] value.

Obtains the numbers (int type) of input and output sub-units implemented on the specified card. The function returns number of input sub-units and number of output sub-units

Obtains the logical bus and slot locations (array of int) of installed cards that are operable by the Pilpxi driver and are currently unopened. The function returns array of busses and slots of cards which are free. The array is in the form: bus, slot, bus, slot, ...

Obtains a sub-unit's settling time (the period taken for its switches to stabilise). By default, Pilpxi driver functions retain control during this period so that switches are guaranteed to have stabilised on completion. This mode of operation can be overridden if required - see SetMode. Note that this function is not supported by SOAP.

Obtains the current status (int type) flags for the specified card. Returns int code of the status.

Obtains the value of a sub-unit attribute (int type). These values facilitate operation using [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opswitch|OpSwitch]]. Parameter $ttrCodecan be obtained from %AttrCodeEnum. All input parameters are type of int.

Obtains a description of a sub-unit, as numeric values. The functions returns type code and number of rows and columns (int type). The input parameter is type of int.

Obtains the current status flags for the specified output sub-unit. Status bits associated with significant card-level conditions are also returned. The input parameter is type of int.

Obtains a description of a sub-unit, as a text string. The input parameter is type of int.

Obtains the driver version code (int type). The driver version code, multiplied by 100 (i.e. a value of 100 represents version 1.00)

Clears (de-energises or sets to logic '0') all outputs of all sub-units of every open Pickering card.

Clears (de-energises or sets to logic '0') all outputs of all sub-units of the specified Pickering card.

Clears (de-energises or sets to logic '0') all outputs of a sub-unit. The parameter $outSub is type of int. The input parameter is type of int.

Operate a single output channel or bit. Note that in the case of a single-channel multiplexer (MUX type) any existing channel closure will be cleared automatically prior to selecting the new channel. Note that [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opcrosspoint|OpCrosspoint]] allows more straightforward use of row/column co-ordinates with matrix sub-units. All input parameters are type of int. $action parameters can be '0' as 'false' and '1' as 'true'.

Obtains the state of an individual output (int type). '0' represents 'false' and '1' true. The input parameter is type of int.

Obtains the state of all outputs of a sub-unit (array of int). The result fills the number of least significant bits corresponding to the size of the sub-unit. State of bits in return variable represents bits ('1' or '0'). The input parameter is type of int.

Sets all outputs of a sub-unit to the supplied bit-pattern. The number of least significant bits corresponding to the size of the sub-unit are written. The input parameter $outSub is type of int; next paramater @datais array of int.

Obtains the state of an individual input (int type). All input parameters are type of int.

Obtains the current state of all inputs (array of int) of a sub-unit. The input parameter is type of int.

Operate a single matrix crosspoint. All input parameters are type of int. $action parameter can be '0' as 'false' or '1' as 'true'.

Obtains the state (int type) of an individual matrix crosspoint. The input parameter is type of int.

This function obtains, and optionally sets, the state of a switch. It allows explicit access to the individual switches making up a sub-unit, in types where their operation is normally handled automatically by the driver. The main purpose of this is in implementing fault diagnostic programs for such types; it can also be used where normal automated behaviour does not suit an application.

All input parameters are type of int. As parameters can be used directly constants or item of hashe. For parameter $switchFuncuse hash %SwFuncEnum, for $subSwitch use hash %AttrCodeEnum, for $switchAction use hash %SwActEnum.

Mask or unmask a single matrix crosspoint. Masking disables the corresponding switch for the [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opbit|OpBit]], [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opcrosspoint|OpCrosspoint]], [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_writesub|WriteSub]] functions. This facility can be used to guard against programming errors that could otherwise result in damage to matrix switches or external circuits. All input parameters are type of int. $action parameter can be '0' as 'false' or '1' as 'true'.

Obtains the state (int type) of an individual matrix crosspoint's mask. All input parameters are type of int.

Mask or unmask a single output bit. Masking disables the corresponding switch for the [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opbit|OpBit]], [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opcrosspoint|OpCrosspoint]], [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_writesub|WriteSub]] functions. This facility is particularly useful for matrix sub-units, where it can be used to guard against programming errors that could otherwise result in damage to matrix switches or external circuits. Note that [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_maskcrosspoint|MaskCrosspoint]] allows more straightforward use of row/column co-ordinates with matrices.

All input parameters are type of int. $action parameter can be '0' as 'false' or '1' as 'true'.

Obtains the state of an individual output's mask. All input parameters are type of int.

Clears a sub-unit's switch mask, enabling operation of all outputs by the [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opbit|OpBit]], [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opcrosspoint|OpCrosspoint]], [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_writesub|WriteSub]] functions. The input parameter is int type.

Sets a sub-unit's switch mask to the supplied bit-pattern. he number of least significant bits corresponding to the size of the sub-unit are written into the mask. A '1' bit in the mask disables the corresponding switch for the [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opbit|OpBit]], [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_opcrosspoint|OpCrosspoint]], [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_writesub|WriteSub]] functions.
This facility is particularly useful for matrix sub-units, where it can be used to guard against programming errors that could otherwise result in damage to matrix switches or external circuits.

The input parameter $outSub is int type, @data is array of int.

Obtains the switch mask of a sub-unit. The result fills the number of least significant bits corresponding to the size of the sub-unit. The input parameter $outSub is int type. Output is array of int.

This section details the use in SOAP of functions associated with storing calibration values in a card's non-volatile memory. This facility is only available for certain sub-unit types, such as programmable resistors.

Reads a 16-bit calibration value from on-card EEPROM. The driver places no interpretation on the value obtained - an application program can utilise it in any way it wishes.

All input parameters are type of int. Output parameter returns arrray of int.

Writes a 16-bit calibration value to on-card EEPROM. The driver places no interpretation on the value written - an application program can utilise it in any way it wishes.

Input parameters $outSub and $Idx are type of int; parametre @data is array of int.

Many of the SOAP functions return a numeric error code that indicates success or failure of the function call.

Success.

No card present with specified number.

Card information unobtainable - hardware problem.

Card disabled - hardware problem.

Card has no sub-unit with specified number.

Sub-unit has no bit with specified number.

Sub-unit has no calibration data to write/read.

Array type, size or shape is incorrect.

Non-zero write data is illegal for MUX sub-unit.

Sub-unit closure limit exceeded.

One or more of the specified channels cannot be masked.

Cannot activate an output that is disabled.

Cannot open a Pickering card at the specified location.

Failed read from hardware.

Failed write to hardware.

Hardware driver failure.

Incompatible hardware driver version.

Function call incompatible with sub-unit type or capabilities.

Matrix row value out of range.

Matrix column value out of range.

Attenuation value out of range.

Voltage value out of range.

Calibration reference out of range.

Segment number out of range.

Function code value out of range.

Subswitch value out of range.

Action code out of range.

Cannot execute due to corrupt sub-unit state.

Unrecognised attribute code.

Status bits associated with significant card-level.

Represents status of the card.

Represents type of standard Pickering cards.

Represents attributes which help in getting information from the card.

Represents important attributes for a OpSwitch function.

Represents action for OpSwitch function.

This section shows usual programming steps that uses Picards package.

  1. use Pickering::Lxi::Picards;

  2. $service = new Pickering::Lxi::Picards;

  3. [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_soapsettings|$service->SoapSettings(' http://192.168.10.91/bin/picards',20 );]]

  4. [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_setcardlocation|$service->SetCardLocation(2, 9);]]

  5. [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_cardid|@res = $service->CardId();]]

This returns array when first item is return code and second one is return value which is description of the card.

With a successful call the return code will be 0. Any other value represents an error code. Use [[../../../DOCUME~1/ALAN~1.HUM/LOCALS~1/Temp/Temporary Directory 3 for PISoap_perl.zip/=CopyToHtml_Lib=/Pickering/Lxi/Picards.html#item_errorcodetomessage|ErrorCodeToMessage]] function for better description of the error code or documentation for picmlx library.

Enumerators and function parameters are very similar to function described in help for pilpxi library.

Communication with web serivices is complicated. If any error appears the object produces an exception. Description of the exception is in variable $@.

How did we do?
0 out of 0 people found this helpful.