[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