[PATCH v2 04/13] staging: comedi: ni_routing: Add NI signal routing info

Spencer Olson olsonse at umich.edu
Mon Oct 1 19:05:10 UTC 2018


On Mon, Oct 1, 2018 at 5:17 AM Ian Abbott <abbotti at mev.co.uk> wrote:
>
> 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.

Interesting that checkpatch.pl did not complain about that for me.
Perhaps I just missed it.  Fixed and will go on next submission.

>
> --
> -=( 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