Xenomai API  2.5.6.1
Synchronous acquisition API
Collaboration diagram for Synchronous acquisition API:

Data Structures

struct  a4l_instruction
 Structure describing the synchronous instruction. More...
struct  a4l_instruction_list
 Structure describing the list of synchronous instructions. More...

Defines

#define A4L_INSN_WAIT_MAX   100000
 Maximal wait duration.

Functions

int a4l_snd_insnlist (a4l_desc_t *dsc, a4l_insnlst_t *arg)
 Perform a list of synchronous acquisition misc operations.
int a4l_snd_insn (a4l_desc_t *dsc, a4l_insn_t *arg)
 Perform a synchronous acquisition misc operation.

Instruction type

Flags to define the type of instruction

#define A4L_INSN_READ   (0 | A4L_INSN_MASK_READ)
 Read instruction.
#define A4L_INSN_WRITE   (1 | A4L_INSN_MASK_WRITE)
 Write instruction.
#define A4L_INSN_BITS
 "Bits" instruction
#define A4L_INSN_CONFIG
 Configuration instruction.
#define A4L_INSN_GTOD
 Get time instruction.
#define A4L_INSN_WAIT
 Wait instruction.
#define A4L_INSN_INTTRIG
 Trigger instruction (to start asynchronous acquisition)

Configuration instruction type

Values to define the type of configuration instruction

#define A4L_INSN_CONFIG_DIO_INPUT   0
#define A4L_INSN_CONFIG_DIO_OUTPUT   1
#define A4L_INSN_CONFIG_DIO_OPENDRAIN   2
#define A4L_INSN_CONFIG_ANALOG_TRIG   16
#define A4L_INSN_CONFIG_ALT_SOURCE   20
#define A4L_INSN_CONFIG_DIGITAL_TRIG   21
#define A4L_INSN_CONFIG_BLOCK_SIZE   22
#define A4L_INSN_CONFIG_TIMER_1   23
#define A4L_INSN_CONFIG_FILTER   24
#define A4L_INSN_CONFIG_CHANGE_NOTIFY   25
#define A4L_INSN_CONFIG_SERIAL_CLOCK   26
#define A4L_INSN_CONFIG_BIDIRECTIONAL_DATA   27
#define A4L_INSN_CONFIG_DIO_QUERY   28
#define A4L_INSN_CONFIG_PWM_OUTPUT   29
#define A4L_INSN_CONFIG_GET_PWM_OUTPUT   30
#define A4L_INSN_CONFIG_ARM   31
#define A4L_INSN_CONFIG_DISARM   32
#define A4L_INSN_CONFIG_GET_COUNTER_STATUS   33
#define A4L_INSN_CONFIG_RESET   34
#define A4L_INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR   1001 /* Use CTR as single pulsegenerator */
#define A4L_INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR   1002 /* Use CTR as pulsetraingenerator */
#define A4L_INSN_CONFIG_GPCT_QUADRATURE_ENCODER   1003 /* Use the counter as encoder */
#define A4L_INSN_CONFIG_SET_GATE_SRC   2001 /* Set gate source */
#define A4L_INSN_CONFIG_GET_GATE_SRC   2002 /* Get gate source */
#define A4L_INSN_CONFIG_SET_CLOCK_SRC   2003 /* Set master clock source */
#define A4L_INSN_CONFIG_GET_CLOCK_SRC   2004 /* Get master clock source */
#define A4L_INSN_CONFIG_SET_OTHER_SRC   2005 /* Set other source */
#define A4L_INSN_CONFIG_SET_COUNTER_MODE   4097
#define A4L_INSN_CONFIG_SET_ROUTING   4099
#define A4L_INSN_CONFIG_GET_ROUTING   4109

Counter status bits

Status bits for INSN_CONFIG_GET_COUNTER_STATUS

#define A4L_COUNTER_ARMED   0x1
#define A4L_COUNTER_COUNTING   0x2
#define A4L_COUNTER_TERMINAL_COUNT   0x4

IO direction

Values to define the IO polarity

#define A4L_INPUT   0
#define A4L_OUTPUT   1
#define A4L_OPENDRAIN   2

Events types

Values to define the Analogy events. They might used to send some specific events through the instruction interface.

#define A4L_EV_START   0x00040000
#define A4L_EV_SCAN_BEGIN   0x00080000
#define A4L_EV_CONVERT   0x00100000
#define A4L_EV_SCAN_END   0x00200000
#define A4L_EV_STOP   0x00400000

Function Documentation

int a4l_snd_insn ( a4l_desc_t dsc,
a4l_insn_t arg 
)

Perform a synchronous acquisition misc operation.

The function a4l_snd_insn() triggers a synchronous acquisition.

Parameters:
[in]dscDevice descriptor filled by a4l_open() (and optionally a4l_fill_desc())
[in]argInstruction structure
Returns:
0 on success. Otherwise:
  • -EINVAL is returned if some argument is missing or wrong (Please, type "dmesg" for more info)
  • -EFAULT is returned if a user <-> kernel transfer went wrong
  • -ENOMEM is returned if the system is out of memory

References a4l_descriptor::fd.

Referenced by a4l_config_subd(), a4l_sync_dio(), a4l_sync_read(), and a4l_sync_write().

int a4l_snd_insnlist ( a4l_desc_t dsc,
a4l_insnlst_t arg 
)

Perform a list of synchronous acquisition misc operations.

The function a4l_snd_insnlist() is able to send many synchronous instructions on a various set of subdevices, channels, etc.

Parameters:
[in]dscDevice descriptor filled by a4l_open() (and optionally a4l_fill_desc())
[in]argInstructions list structure
Returns:
0 on success. Otherwise:
  • -EINVAL is returned if some argument is missing or wrong (Please, type "dmesg" for more info)
  • -EFAULT is returned if a user <-> kernel transfer went wrong
  • -ENOMEM is returned if the system is out of memory

References a4l_descriptor::fd.

Referenced by a4l_sync_read(), and a4l_sync_write().

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines