... | @@ -396,3 +396,88 @@ bits `insn_bits()`, poll `poll()` and abort acquisition `cancel()`. |
... | @@ -396,3 +396,88 @@ bits `insn_bits()`, poll `poll()` and abort acquisition `cancel()`. |
|
There is no interfaces for buffers and triggers development; if you need
|
|
There is no interfaces for buffers and triggers development; if you need
|
|
your own buffer or trigger you can develop them outside COMEDI.
|
|
your own buffer or trigger you can develop them outside COMEDI.
|
|
|
|
|
|
|
|
## Compare with requirements
|
|
|
|
|
|
|
|
The following table shows how the [Requirements](Requirements) list
|
|
|
|
items are supported by COMEDI.
|
|
|
|
|
|
|
|
<table>
|
|
|
|
<tbody>
|
|
|
|
<tr class="odd">
|
|
|
|
<td><strong>requirments</strong></td>
|
|
|
|
<td><strong>COMEDI</strong></td>
|
|
|
|
<td><strong>Note</strong></td>
|
|
|
|
</tr>
|
|
|
|
<tr class="even">
|
|
|
|
<td>Digitial/Analog I/O</td>
|
|
|
|
<td>yes</td>
|
|
|
|
<td></td>
|
|
|
|
</tr>
|
|
|
|
<tr class="odd">
|
|
|
|
<td>TDC and DTC</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>While you can implement them using COMEDI instructions, there is no explicit support.</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="even">
|
|
|
|
<td>One-shot, burst, and streaming support</td>
|
|
|
|
<td>yes</td>
|
|
|
|
<td></td>
|
|
|
|
</tr>
|
|
|
|
<tr class="odd">
|
|
|
|
<td>Layered structure</td>
|
|
|
|
<td>yes</td>
|
|
|
|
<td></td>
|
|
|
|
</tr>
|
|
|
|
<tr class="even">
|
|
|
|
<td>No hard limits on the number of bits or channels</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>It supports at most 49 devices and 207 sub-devices.</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="odd">
|
|
|
|
<td>High-data rate, little storage overhead</td>
|
|
|
|
<td>yes</td>
|
|
|
|
<td></td>
|
|
|
|
</tr>
|
|
|
|
<tr class="even">
|
|
|
|
<td>Easy and general configuration</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>There are a few configuration options, but they are mainly configured via ioctl</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="odd">
|
|
|
|
<td>Offset, gain, number of bits, ...</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>There is no support for attributes at all.</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="even">
|
|
|
|
<td>Extensibility</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>No way to extend COMEDI within its core.</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="odd">
|
|
|
|
<td>Little code overhead</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>COMEDI low-level driver requires different implementations for different kind of acquisition (or output) and usually the implementation of triggers. Many drivers have thousand on line of code.</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="even">
|
|
|
|
<td>Centralized semaphores</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>There are no interfaces for buffers and triggers. You must implement them by yourself, so all locking is left to the developer.</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="odd">
|
|
|
|
<td>Flexible buffer management</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>There is no support for specific buffers</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="even">
|
|
|
|
<td>Device-driven data transfers</td>
|
|
|
|
<td>no</td>
|
|
|
|
<td>Triggers are left to low-level driver.</td>
|
|
|
|
</tr>
|
|
|
|
<tr class="odd">
|
|
|
|
<td>Hardware time stamps</td>
|
|
|
|
<td>half</td>
|
|
|
|
<td>There is no support for time stamping, but COMEDI don't touch it if it is present within the samples.</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|