Returns the specified serial-out channel number status.
Gx3756SerialOutGetStatus (nHandle, nChannel, pnChStatus, pnStatus)
Name |
Type |
Comments |
nHandle |
SHORT |
Handle to a GX3756 board. |
nChannel |
SHORT |
Channel to get, channels are 0-3 board based (channels 0-3 in group 0):0. GX3756_SERIAL_CH0: Channel 0.1. GX3756_SERIAL_CH1: Channel 1.2. GX3756_SERIAL_CH2: Channel 2.3. GX3756_SERIAL_CH3: Channel 3. |
pnChStatus |
PSHORT |
Returns the specified serial-out channel number status:Bit 0: Arm state, when high the serial transmission is armed and waiting for a trigger (software or external).Bit 1: Software Trigger state.Bit 2: Serial Transmission in progress state, 0=Idle, 1= Serial Transmission in progress.Bit 3: Transmission Sent. Read Only. 1=serial word was sent, resets when Arm is OFF. |
pnStatus |
PSHORT |
Returned status: 0 on success, negative number on failure. |
The function may be used to check the status of the specified channel Serial Transmission in progress state, in order to detect when the hannel can trasmit the next data.
Channels 0-3 (Group 0) can be programmed to operate as serial-out transmitter or as static I/O, see Gx3756SerialOutSetMode() API for more details. When any of Channels 0-3 (Group 0) are set to Serial Out, all 4 channels direction is set to output.
Channels 3-7 (Group 1) can be programmed as an external trigger source to channels 0-3 (Group 0), when they are set to serial-out operation mode. See Gx3756SerialOutSetMode(), and Gx3756SerialOutGetTriggerSource() APIs for more details.
The following example sets all channel 0 settings, and transmit 64-bit data:
SHORT nHandle, nStatus;
Short nChStatus, nChStatus;
DWORD dwMostSigWord, dwLeastSigWord;
// Reset serial-out channel 0
Gx3756SerialOutReset(nHandle, GX3756_SERIAL_CH0, &nStatus);
// Set the serial-out MS Data to 0x12345678, LS Data = 0xABCDEF12
Gx3756SerialOutSetData(nHandle, GX3756_SERIAL_CH0, 0x12345678, 0xABCDEF12, &nStatus);
// Resd back the serial-out data settings
Gx3756SerialOutGetData(nHandle, GX3756_SERIAL_CH0, &dwMostSigWord, &dwLeastSigWord, &nStatus);
printf("Channels 0 Most Sig Word=&i, Least Sig Word=%i", dwMostSigWord, dwLeastSigWord);
// Set serial-out channel 0 mode to Serial Out
Gx3756SerialOutSetMode(nHandle, GX3756_SERIAL_CH0, GX3756_SERIAL_MODE_TRANSMIT_DATA, &nStatus);
// Set serial-out Trigger Source to software
Gx3756SerialOutSetTriggerSource(nChannel, GX3756_SERIAL_TRIGGER_SOURCE_SOFTWARE, &nStatus);
// Set serial-out Shift Mode MSB shift left
Gx3756SerialOutSetShiftMode(nChannel, GX3756_SERIAL_SHIFT_MODE_LEFT_MSB_FIRST, &nStatus);
// Set serial-out Nummber Of Data Bits to 64
Gx3756SerialOutSetNumOfDataBits(nHandle, GX3756_SERIAL_CH0, 64, &nStatus);
// Set serial-out Trigger Delay to 0uSec
Gx3756SerialOutSetTriggerDelay(nHandle, 0, &nStatus);
// Set serial-out Bit Rate to 1000uSec/sec
Gx3756SerialOutSetBitRate(nHandle, 1000, &nStatus);
// Set serial-out Data Bits Pulse Width logic high=640uSec, Logic low=320uSec
Gx3756SerialOutSetDataBitsPulseWidth(nHandle, 640, 320, &nStatus);
// Set serial-out Arm to ON
Gx3756SerialOutGetArmState(nHandle, GX3756_SERIAL_CH0, GX3756_SERIAL_ARM_STATE_ON, &nStatus);
// Issue a software trigger
Gx3756SerialOutTrig(nHandle, GX3756_SERIAL_CH0, &nStatus);
// Check when transmittion is done
while(1)
{ Gx3756SerialOutGetStatus (nHandle, GX3756_SERIAL_CH0, &nChStatus, &nStatus);
if ((nChStatus&0x4)==0)
break;
}
Gx3756SerialOutReset, Gx3756SerialOutSetArmState, Gx3756SerialOutSetBitRate, Gx3756SerialOutSetData, Gx3756SerialOutSetDataBitsPulseWidth, Gx3756SerialOutSetTriggerSource, Gx3756SerialOutSetMode,
Gx3756SerialOutSetNumOfDataBits, Gx3756SerialOutSetShiftMode, Gx3756SerialOutSetTriggerDelay, Gx3756SerialOutSetTriggerSource, Gx3756SerialOutTrig, GxFpgaGetErrorString