Contain the analog output initialisation and read/write functions.
More...
Functions
- int MSXExxxx__AnalogOutputGetNumberOfChannels (xsd__unsignedLong ulOption1, struct MSXExxxx__unsignedLongResponse *Response)
- Return the number of analog output channels.
- int MSXExxxx__AnalogOutputWrite1Value (xsd__unsignedLong ulChannel, xsd__unsignedLong ulOutputType, xsd__unsignedLong ulPolarity, xsd__unsignedLong ulTriggerMask, xsd__unsignedLong ulTriggerEdgeSelection, xsd__unsignedLong ulTriggerCount, xsd__unsignedLong ulValue, xsd__unsignedLong ulOption01, xsd__unsignedLong ulOption02, xsd__unsignedLong ulOption03, struct MSXExxxx__Response *Response)
- Set the value of an analog output.
- int MSXExxxx__AnalogOutputGetChannelValue (xsd__unsignedLong ulChannel, xsd__unsignedLong ulOption1, struct MSXExxxx__unsignedLongResponse *Response)
- Return the current value of the selected channel.
- int MSXExxxx__AnalogOutputTriggerOutputs (xsd__unsignedLong ulOption01, struct MSXExxxx__Response *Response)
- Trigger the analog outputs.
Detailed Description
Conversion of a digital value into an analog value
The functions MSXExxxx__AnalogOutputWrite1Value and MSXExxxx__AnalogOutputGetChannelValue both take or return a digital value.
You will probably want to use Volts or Amperes, so you will have to convert that digital value into a real Volt (or ampere) value.
In bipolar mode, the digital range is from 0 to 0xffff (16bits), and corresponds to the range -10V to +10V.
In unipolar mode, the digital range is from 0 to 0x7fff (8bits), and corresponds to the range 0V to +10V.
From digital to analog
In bipolar mode: anavalue = (( digvalue - 32767.0 ) / 32767.0) * 10.0
In unipolar mode: anavalue = (digvalue * 10.0) / 32767.0
From analog to digital
In bipolar mode: digvalue = (32767.0 * anavalue / 10.0) + 32768.0;
In bipolar mode: digvalue = 32767.0 * anavalue / 10.0;