serial-dmm: more DMM parser callbacks (open, var length, config, start) Extend the serial-dmm driver's common infrastructure to support more per-parser (per-model) specific extensions. Add support for variable length packets (motivated by BM85x), and pass the packet length to parsers which accept it. Add callbacks which run after the COM port got opened (motivated by BM85x). Add support for additional configuration get/set/list properties (motivated by BM52x), including a hook into the acquisition start and a state container which is owned by the parser. Device specific acquisition start can check its local state which can store the result of previous config get/set requests, and can arrange for a different receive routine to execute (motivated by BM52x). The default code path will execute serial-dmm's receive routine which keeps invoking the DMM's packet parser for each registered display. Prefer double precision values in the new parser callbacks. Also fixup some data type issues: Use unsigned types for length and size specs as well as timeouts, don't promote false booleans to NULL pointers, reduce malloc() argument redundancy. Rephrase some instruction grouping and update comments to simplify future maintenance. Get the current time just once for improved consistency in the packet re-request code path. Rename identifiers in the data reception path to improve readability.
serial-dmm: print data bytes according to specific meter's packet length The previous implementation always dumped 23 data bytes for received packets. This could result in truncated diagnostics information, and/or access to invalid buffer content. Rephrase the packet dump routine such that the specific meter's exact packet length gets dumped, and use the common hex dump support code.
serial-dmm, metex14: add support for multiple channels per DMM Optionally create multiple analog channels in serial-dmm's scan() routine. Allow the meters' parse routines to fill in more than one analog value from the inspection of a single packet. Use "large" (4 times 14 bytes) packets for the Metex M-3860M and the PeakTech 4390A meters, and have those large packets parsed by wrapping the routines for regular 14-byte Metex packets, and sending four values to the session bus after reception of one large packet. Thanks to Frank Stettner <redacted> for testing and fixing the initial implementation of this extension.
Build: Set local include directories in Makefile.am Move the include flags for files in the source tree from configure.ac to Makefile.am where they belong. Also use AM_CPPFLAGS instead of CFLAGS/CXXFLAGS to make sure the files in the build/source tree are always picked up first. Also, remove the include/libsigrok sub-directory from the search path, thereby making the <libsigrok/> prefix mandatory when building libsigrok itself. This matches the convention already imposed on users of the library.