:Revision=3
:html
<<
128.120
Digital output - DOut-Object|DOut
--
The IP-Object <!RW>DOut addresses the digital output cards of the universal measurement system.
>>
<<
128.120.1
Functions of the DOut-Object|Functions
--
>>
<<
128.120.1.1
DOut.Get|Get
--
<!DEF>
function <!TW>DOut.Get (aCard : address) : real;
<!TXT>
Returns the existing output status of <!PW>aCard as 32 bit value.

<!REM>
Only for experimental purposes; do not use it yet!
The syntax will probably be modified.
>>
<<
128.120.2
Procedures of the DOut-Object|Procedures
--
>>
<<
128.120.2.1
DO      ut.Bits|Bits
--
<!DEF>
procedure <!TW>DOut.Bits (aDOutAdr : address; rOperation, rSendIt : real);
<!TXT>
The bits indicated in the address <!PW>aDOutAdr (an address on a DOut5450-card) are combined, as specified in <!PW>rOperation, to the current status of the bits on the card. If <!PW>rSendIt = <!RW>Send, then the data is sent to the card, otherwise it is stored internally.

 <!PW>rOperation can be : <!RW>CLR | <!RW>SET | <!RW>FLIP | <!RW>NOP or 0..3

 <!PW>rSendIt can be    : <!RW>STORE | <!RW>SEND        or 0..1
>>
<<
128.120.2.2
DOut.Word|Word
--
<!DEF>
procedure <!TW>DOut.Word (aDOutAdr : address; rSendIt : real);
<!TXT>
The bits indicated in the address <!PW>aDOutAdr (an address on a DOut5450-card) are used as the new status of the card. If <!PW>rSendIt = <!RW>Send, then the data is sent to the card, otherwise it is stored internally.
 
 <!PW>rSendIt can be    : <!RW>STORE | <!RW>SEND        or 0..1
>>
<<
128.120.2.3
DOut.BitsEx|BitsEx
--
<!DEF>
procedure <!TW>DOut.BitsEx (rGroup : real; sCommand : string);
<!TXT>
Macro command : Sets/clears bits on the DOut-cards and waits

 <!PW>rGroup selects an action group (0..9)
 <!PW>sCommand has the following form:

<!CODE>
<!SW>Address,<!SW>Action[,<!SW>Action...][;<!SW>Address,<!SW>Action[,<!SW>Action...]...]
<!TXT>

 <!SW>Address is an address constant from the address file and must belong to a DOut5450-card. Several address constants can be combined with +, if they belong to the same card.

 <!SW>Action has the following format (n is always the group number 0..9 or 'x') :

<!STBL>
<!>nS<!>Sets the bits<!>
<!>nR<!>Clears the bist<!>
<!>nDz<!>Waits z milliseconds<!>
<!ETBL>

 <!SW>n indicates the group. Only those actions are executed whose group has been selected by the <!PW>rGroup parameter. 'x' fits always!

<ul indent=12>
<li>If no action is activated with <!PW>rGroup, then nothing happens.</li>
<li>If no actions are specified, then nothing happens.</li>
<li>If sCommand is empty, then nothing happens.</li>
<li>Several address constants with actions can be specified in <!PW>sCommand (separated by ';'), the address constants are then processed consecutively.</li>
</ul>

Example
<!CODE>
DOut.BitsEx (1, 'MSpg_34_R,1r,9s,1d100,9d50');

The '1' activates group 1.

The individual elements of sCommand
'MSpg_34_R' is the address of the processed bits
'1r' if group 1 active, then reset bits
'9s' if group 9 active, then set bits 
'1d100' if group 1 active, then 100 ms pause
'9d50' if group 9 active, then 50 ms pause

Since group 1 is active, MSpg_34_R is reset and a 100 ms idle time is waited!
<!TXT>
>>
<<
128.120.2.4
DOut.Send|Send
---
<!DEF>
procedure <!TW>DOut.Send (aCard : address);
<!TXT>
Sends any internally stored data.
>>
