BFLinux
|
Enumerations | |
enum | kCIPollEventEnums { kCIPEintHW = 1, kCIPEintTRIG = 1 << 1, kCIPEintSERIAL = 1 << 2, kCIPEintQUAD = 1 << 3, kCIPEintDTR = 1 << 3, kCIPEintCTAB = 1 << 4, kCIPEintEOF = 1 << 5, kCIPEintOVSTEP = 1 << 6, kCIPEdrvrErr = 1 << 7, kCIPEnoFirmware = 1 << 8, kCIPEintCXP = 1 << 9, kCIPEintGn2 = 1 << 10, kCIPEintPollAll, kCIPEintError } |
enum | tCIinterruptCounterEnums { kCIintCountHW = 0, kCIintCountTRIG, kCIintCountSERIAL, kCIintCountQUAD, kCIintCountCTAB, kCIintCountEOF, kCIintCountOVSTEP, kCIintCountCXP, kCIintCountTOTAL, kCIintBitsCXP, kCIintBitsGn2, kCINinterruptCounters, kCIintCountENCA = kCIintCountCTAB, kCIintCountENCB = kCIintCountCTAB, kCIintCountDTR = kCIintCountQUAD } |
Functions | |
short int | CiPollConfigure (tCIU32 desired) |
Return events field of pollfd. More... | |
tCIU32 | CiPollResult (short int revents) |
Return mask of kCIPollEventEnums. More... | |
tCIRC | CiPollClear (tCIp cip, tCIU32 mask) |
Clear all pending poll() events. More... | |
tCIRC | CiTrigInterruptEnable (tCIp cip) |
Enable TRIG interrupts. More... | |
tCIRC | CiTrigInterruptDisable (tCIp cip) |
Disable TRIG interrupts. More... | |
tCIRC | CiEncInterruptEnable (tCIp cip, tCIU32 zAelseB) |
Enable ENCA/B interrupts. More... | |
tCIRC | CiEncInterruptDisable (tCIp cip, tCIU32 zAelseB) |
Disable ENCA/B interrupts. More... | |
tCIRC | CiGetIntCounts (tCIp cip, tCIU32 *ic) |
Interrupts since last AqStart. More... | |
enum kCIPollEventEnums |
NOTE: TRIG interrupts enabled by CiTrigInterruptEnable(), disabled by CiTrigInterruptDisable().
NOTE: SERIAL interrupts enabled by CiCLinit(), disabled by CiCLterm().
NOTE: EncA/B interrupts enabled by CiEncInterruptEnable(), disabled by CiEncInterruptDisable(). EncA/B interrupts reported as 'CTAB'. EncA/B and DOWN_TRIG_RCVD only available on Cyton-class.
All other interrupts are managed by this library.
Enumerator | |
---|---|
kCIintCountHW | Array index for interrupt counter access. The counters are reset at each CiAqStart() |
kCIintCountTRIG | TRIG ints not reset at AqStart. |
kCIintCountSERIAL | |
kCIintCountQUAD | CXP: QUAD is DOWN_TRIG_RCVD. |
kCIintCountCTAB | |
kCIintCountEOF | |
kCIintCountOVSTEP | |
kCIintCountCXP | |
kCIintCountTOTAL | |
kCIintBitsCXP | bitmask, not counter |
kCIintBitsGn2 | bitmask, not counter |
kCINinterruptCounters | size of storage array This many tCIU32 interrupt counters. |
kCIintCountENCA | |
kCIintCountENCB | |
kCIintCountDTR |
Disable ENCA/B interrupts.
cip | this frame grabber |
zAelseB | 0 ENCA, nonZero ENCB |
Enable ENCA/B interrupts.
cip | this frame grabber |
zAelseB | 0 ENCA, nonZero ENCB |
Interrupts since last AqStart.
cip | this frame grabber |
ic | kCINinterruptCounters tCIU32 |
Clear all pending poll() events.
This call only affects the pending events for this CiVFGopen() access.
Any pending events of other processes/paths are not affected.
cip | this frame grabber |
mask | one or more kCIPollEventEnums |
short int CiPollConfigure | ( | tCIU32 | desired | ) |
Return events field of pollfd.
desired | one or more kCPPollEventEnums |
tCIU32 CiPollResult | ( | short int | revents | ) |
Return mask of kCIPollEventEnums.
After a call to poll() a POLLERR return indicates the frame grabber does not yet have the firmware loaded.
This call is only needed if CiPollConfigure() asked for multiple events.
NOTE: The poll() system call can return w/o timeout and w/o any enabled interrupt. This will happen if a the process/thread is signaled or if some other process/thread terminates acquisition before the desired poll() interrupt is delivered. If a signal occurs then poll() will return EINTR. Termination of acquisition can be identified by calling CiAqGetStatus() and testing for the kCIAQSaqAbort flag in the CiAqGetStatus() result.
revents | returned by poll() |