|
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() |
1.8.17