[PATCH v2 04/13] staging: comedi: ni_routing: Add NI signal routing info
Ian Abbott
abbotti at mev.co.uk
Mon Oct 1 11:17:15 UTC 2018
On 27/09/18 20:27, Spencer E. Olson wrote:
> See README for a thorough discussion of this content.
>
> Adds tables of all register values for routing various signals to various
> terminals on National Instruments hardware. This information is directly
> compared to and taken from register-level programming documentation and/or
> register-level programming examples as provided by National Instruments.
>
> Furthermore, this information was mostly compared (favorably) to the
> register values already used in the comedi drivers for NI hardware.
>
> Adds tables of valid routes for many devices. This information is not
> consistent from device to device, nor entirely consistent within device
> families. One additional major challenge is that this information does not
> seem to be obtainable in any programmatic fashion, neither through the
> proprietary NIDAQmx(-base) c-libraries, nor with register level
> programming, _nor_ through any documentation. In fact, the only consistent
> source of this information is through the proprietary NI-MAX software,
> which currently only runs on Windows platforms. A further challenge is
> that this information cannot be exported from NI-MAX, except by screenshot.
>
> The collection and maintenance of this information is somewhat tedious and
> requires frequent re-examination and comparison of NI-MAX and/or the
> NI-MHDDK documentation (register programming information) and NI-MHDDK
> examples. Tools are added with this patch to facilitate generating CSV
> files from the data tables. These CSV files can be used with a spreadsheet
> program to provide better visual comparision with screenshots gathered from
> NI-MAX. Tools are also added to regenerate the data tables from CSV
> content--this greatly enhances updating data tables with large changes
> (such as when adding devices).
>
> Signed-off-by: Spencer E. Olson <olsonse at umich.edu>
> ---
>
> Changes since last submission:
> - [PATCH v2 04/13]: Add routing information for PXIe-6535 and PXIe-6738
> devices.
> - [PATCH v2 04/13]: Implements Ian's suggestion to break up components of new
> ni_routing module into multiple compile units so that .c files are not
> included from .c files.
> - [PATCH v2 04/13]: Fixes various function prototypes and "const" variable
> declarations as per Ian's suggestions.
I'm not bothered by some of the lines being slightly over 80 columns in
the auto-generated C code (it would be a real pain for the Python
scripts to avoid that!). And the CamelCase stuff has been explained.
[snip]
> diff --git a/drivers/staging/comedi/drivers/ni_routing/tools/convert_c_to_py.c b/drivers/staging/comedi/drivers/ni_routing/tools/convert_c_to_py.c
> new file mode 100644
> index 000000000000..5952aba91953
> --- /dev/null
> +++ b/drivers/staging/comedi/drivers/ni_routing/tools/convert_c_to_py.c
> @@ -0,0 +1,159 @@
[snip]
> +void family_write(const struct family_route_values *rv, FILE *fp)
> +{
> + fprintf(fp,
> + " \"%s\" : {\n"
> + " # dest -> {src0:val0, src1:val1, ...}\n"
> + , rv->family);
> + for (unsigned int dest = NI_NAMES_BASE;
> + dest < (NI_NAMES_BASE + NI_NUM_NAMES);
> + ++dest) {
> + unsigned int src = NI_NAMES_BASE;
> +
> + for (; src < (NI_NAMES_BASE + NI_NUM_NAMES) &&
> + RVij(rv, B(src), B(dest)) == 0; ++src)
> + ;
checkpatch.pl complains here about "suspect code indent for conditional
statements". That semi-colon needs indenting.
--
-=( Ian Abbott <abbotti at mev.co.uk> || Web: www.mev.co.uk )=-
-=( MEV Ltd. is a company registered in England & Wales. )=-
-=( Registered number: 02862268. Registered address: )=-
-=( 15 West Park Road, Bramhall, STOCKPORT, SK7 3JZ, UK. )=-
More information about the devel
mailing list