Asynchronous commands Function: comedi_cancel -- stop streaming input/output in progress Retval: int Param: comedi_t * device Param: unsigned int subdevice Description: The function comedi_cancel can be used to stop a command previously started by comedi_command which is still in progress on the subdevice indicated by the parameters device and subdevice. Returns: On success, 0 is returned. On failure, -1 is returned. Function: comedi_command -- start streaming input/output Retval: int Param: comedi_t * device Param: comedi_cmd * command Description: The function comedi_command starts a streaming input or output. The command structure pointed to by command specifies settings for the acquisition. The command must be able to pass comedi_command_test with a return value of 0, or comedi_command will fail. For input subdevices, sample values are read using the function read on the device file descriptor. For output subdevices, sample values are written using the function write. Returns: On success, 0 is returned. On failure, -1 is returned. Function: comedi_command_test -- test streaming input/output configuration Retval: int Param: comedi_t * device Param: comedi_cmd * command Description: The function comedi_command_test tests the command structure pointed to by the parameter command and returns an integer describing the testing stages that were successfully passed. In addition, if elements of the comedi_cmd structure are invalid, they may be modified. Source elements are modified to remove invalid source triggers. Argument elements are adjusted or rounded to the nearest valid value. Returns: The meanings of the return value are as follows: 0 indicates a valid command. 1 indicates that one of the …_src members of the command contained an unsupported trigger. The bits corresponding to the unsupported triggers are zeroed. 2 indicates that the particular combination of …_src settings is not supported by the driver, or that one of the …_src members has the bit corresponding to multiple trigger sources set at the same time. 3 indicates that one of the …_arg members of the command is set outside the range of allowable values. For instance, an argument for a TRIG_TIMER source which exceeds the board's maximum speed. The invalid …_arg members will be adjusted to valid values. 4 indicates that one of the …_arg members required adjustment. For instance, the argument of a TRIG_TIMER source may have been rounded to the nearest timing period supported by the board. 5 indicates that some aspect of the command's chanlist is unsupported by the board. For example, some analog input boards require that all channels in the chanlist use the same input range. On failure, -1 is returned. Function: comedi_get_buffer_contents -- streaming buffer status Retval: int Param: comedi_t * device Param: unsigned int subdevice Description: The function comedi_get_buffer_contents is used on a subdevice that has a Comedi command in progress to get the number of unread bytes. For a streaming input command, this is the number of bytes that can be read. For a streaming output command, subtracting this from the buffer size gives the space available to be written. Returns: On success, comedi_get_buffer_contents returns the number of unread bytes in the buffer. On failure, -1 is returned. Function: comedi_get_buffer_read_offset -- streaming buffer read offset Retval: int Param: comedi_t * device Param: unsigned int subdevice Description: The function comedi_get_buffer_read_offset is used on a subdevice that has a Comedi command in progress to get the current read position in the streaming buffer as an offset in bytes from the start of the buffer. The position will wrap around to 0 when it reaches the buffer size. This offset is only useful for memory mapped buffers. This function replaces comedi_get_buffer_offset and has the same functionality. Returns: On success, comedi_get_buffer_read_offset returns the current read position as an offset in bytes from the start of the buffer. On failure, -1 is returned. Function: comedi_get_buffer_write_offset -- streaming buffer write offset Retval: int Param: comedi_t * device Param: unsigned int subdevice Description: The function comedi_get_buffer_write_offset is used on a subdevice that has a Comedi command in progress to get the current write position in the streaming buffer as an offset in bytes from the start of the buffer. The position will wrap around to 0 when it reaches the buffer size. This offset is only useful for memory mapped buffers. Returns: On success, comedi_get_buffer_write_offset returns the current write position as an offset in bytes from the start of the buffer. On failure, -1 is returned. Function: comedi_get_buffer_read_count -- streaming buffer read count Retval: int Param: comedi_t * device Param: unsigned int subdevice Param: unsigned int * read_count Description: The function comedi_get_buffer_read_count is used on a subdevice that has a Comedi command in progress to get the number of bytes that have been read from the buffer, modulo UINT_MAX + 1. The value is stored in *read_count. Returns: On success, 0 is returned. On failure, -1 is returned. Function: comedi_get_buffer_write_count -- streaming buffer write count Retval: int Param: comedi_t * device Param: unsigned int subdevice Param: unsigned int * write_count Description: The function comedi_get_buffer_write_count is used on a subdevice that has a Comedi command in progress to get the number of bytes that have been written to the buffer, modulo UINT_MAX + 1. The value is stored in *write_count. Returns: On success, 0 is returned. On failure, -1 is returned. Function: comedi_get_buffer_size -- streaming buffer size of subdevice Retval: int Param: comedi_t * device Param: unsigned int subdevice Description: The function comedi_get_buffer_size returns the size (in bytes) of the streaming buffer for the subdevice specified by device and subdevice. Returns: On success, comedi_get_buffer_size returns the size of the buffer in bytes. On failure, -1 is returned. Function: comedi_get_cmd_generic_timed -- streaming input/output capabilities Retval: int Param: comedi_t * device Param: unsigned int subdevice Param: comedi_cmd * command Param: unsigned int chanlist_len Param: unsigned int scan_period_ns Description: The command capabilities of the subdevice indicated by the parameters device and subdevice are probed, and the results placed in the command structure pointed to by the parameter command. The command structure pointed to by command is modified to be a valid command that can be used as a parameter to comedi_command (after the command has additionally been assigned a valid chanlist array). The command measures scans consisting of chanlist_len channels at a scan rate that corresponds to a period of scan_period_ns nanoseconds. The rate is adjusted to a rate that the device can handle. Returns: On success, 0 is returned. On failure, -1 is returned. Function: comedi_get_cmd_src_mask -- streaming input/output capabilities Retval: int Param: comedi_t * device Param: unsigned int subdevice Param: comedi_cmd * command Description: The command capabilities of the subdevice indicated by the parameters device and subdevice are probed, and the results placed in the command structure pointed to by command. The trigger source elements of the command structure are set to be the bitwise-or of the subdevice's supported trigger sources. Other elements in the structure are undefined. Returns: On success, 0 is returned. On failure, -1 is returned. Function: comedi_get_max_buffer_size -- maximum streaming buffer size Retval: int Param: comedi_t * device Param: unsigned int subdevice Description: The function comedi_get_max_buffer_size returns the maximum allowable size (in bytes) of the streaming buffer for the subdevice specified by device and subdevice. Changing the maximum buffer size can be accomplished with comedi_set_max_buffer_size or with the comedi_config program, and requires appropriate privileges. Returns: On success, the maximum allowable size (in bytes) of the streaming buffer is returned. On failure, -1 is returned. Function: comedi_get_read_subdevice -- find streaming input subdevice Retval: int Param: comedi_t * device Description: The function comedi_get_read_subdevice returns the index of the subdevice whose streaming input buffer is currently accessible through the device device, if there is one. Returns: On success, comedi_get_read_subdevicereturns the index of the current read subdevice if there is one, or -1 if there is no read subdevice. On failure, -1 is returned. Function: comedi_get_write_subdevice -- find streaming output subdevice Retval: int Param: comedi_t * device Description: The function comedi_get_write_subdevice returns the index of the subdevice whose streaming output buffer is currently accessible through the device device, if there is one. Returns: On success, comedi_get_write_subdevicereturns the index of the current write subdevice if there is one, or -1 if there is no write subdevice. On failure, -1 is returned. Function: comedi_mark_buffer_read -- streaming buffer control Retval: int Param: comedi_t * device Param: unsigned int subdevice Param: unsigned int num_bytes Description: The function comedi_mark_buffer_read is used on a subdevice that has a Comedi input command in progress. It should only be used if you are using a mmap mapping to read data from Comedi's buffer (as opposed to calling read on the device file descriptor), since Comedi will automatically keep track of how many bytes have been transferred via read calls. This function is used to indicate that the next num_bytes bytes in the buffer are no longer needed and may be discarded. Returns: On success, comedi_mark_buffer_read returns the number of bytes successfully marked as read. The return value may be less than the num_bytes. On failure, -1 is returned. Function: comedi_mark_buffer_written -- streaming buffer control Retval: int Param: comedi_t * device Param: unsigned int subdevice Param: unsigned int num_bytes Description: The function comedi_mark_buffer_written is used on a subdevice that has a Comedi output command in progress. It should only be used if you are using a mmap mapping to write data to Comedi's buffer (as opposed to calling write on the device file descriptor), since Comedi will automatically keep track of how many bytes have been transferred via write calls. This function is used to indicate that the next num_bytes bytes in the buffer are valid and may be sent to the device. Returns: On success, comedi_mark_buffer_written returns the number of bytes successfully marked as written. The return value may be less than the num_bytes. On failure, -1 is returned. Function: comedi_poll -- force updating of streaming buffer Retval: int Param: comedi_t * device Param: unsigned int subdevice Description: The function comedi_poll is used on a subdevice that has a Comedi command in progress in order to update the streaming buffer. If supported by the driver, all available samples are copied to the streaming buffer. These samples may be pending in DMA buffers or device FIFOs. Only a few Comedi drivers support this operation. Returns: On success, comedi_poll returns the number of additional bytes available. On failure, -1 is returned. Function: comedi_set_buffer_size -- streaming buffer size of subdevice Retval: int Param: comedi_t * device Param: unsigned int subdevice Param: unsigned int size Description: The function comedi_set_buffer_size changes the size of the streaming buffer for the subdevice specified by device and subdevice. The buffer size will be set to size bytes, rounded up to a multiple of the virtual memory page size. The virtual memory page size can be determined using sysconf(_SC_PAGE_SIZE). This function does not require special privileges. However, it is limited to a (adjustable) maximum buffer size, which can be changed by a privileged user calling comedi_set_max_buffer_size, or running the program comedi_config. Returns: On success, comedi_set_buffer_size returns the new buffer size in bytes. On failure, -1 is returned. Function: comedi_set_max_buffer_size -- streaming maximum buffer size of subdevice Retval: int Param: comedi_t * device Param: unsigned int subdevice Param: unsigned int max_size Description: The function comedi_set_max_buffer_size changes the maximum allowable size (in bytes) of the streaming buffer for the subdevice specified by device and subdevice. Changing the maximum buffer size requires the user to have appropriate privileges. Returns: On success, comedi_set_max_buffer_size returns the new maximum buffer size in bytes. On failure, -1 is returned. Function: comedi_set_read_subdevice -- set streaming input subdevice Retval: int Param: comedi_t * device Param: unsigned int subdevice Status: Works for Linux "in-tree" Comedi since kernel version 3.19. Description: The function comedi_set_read_subdevice sets subdevice as the current read subdevice if the subdevice supports streaming input commands. No action is performed if subdevice is already the current read subdevice. Changes are local to the open file description for this device and have no effect on other open file descriptions for the underlying device node. Returns: On success, 0 is returned. On failure, -1 is returned. Function: comedi_set_write_subdevice -- set streaming output subdevice Retval: int Param: comedi_t * device Param: unsigned int subdevice Status: Works for Linux "in-tree" Comedi since kernel version 3.19. Description: The function comedi_set_write_subdevice sets subdevice as the current write subdevice if the subdevice supports streaming output commands. No action is performed if subdevice is already the current write subdevice. Changes are local to the open file description for this device and have no effect on other open file descriptions for the underlying device node. Returns: On success, 0 is returned. On failure, -1 is returned.