On Mon, Oct 1, 2018 at 5:17 AM Ian Abbott <abbotti@xxxxxxxxx> 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@xxxxxxxxx> > > --- > > > > 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@xxxxxxxxx> || 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. )=- _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel