]> sigrok.org Git - libsigrok.git/commit
dmm/bm86x: add Brymen BM86x packet parser, register with serial-dmm
authorGerhard Sittig <redacted>
Sun, 9 Jun 2019 07:03:22 +0000 (09:03 +0200)
committerGerhard Sittig <redacted>
Thu, 13 Jun 2019 17:23:24 +0000 (19:23 +0200)
commit0759e2f55b5e45ff283f396c38c08eb180ba83b7
tree4745c58a99eaebfac010af3964a0213b08f021ff
parent7c7a11204633e145178e4544b6418c59da33b2c7
dmm/bm86x: add Brymen BM86x packet parser, register with serial-dmm

Move Brymen BM86x specific packet parse logic to a new src/dmm/bm86x.c
source file, and register the routines with the serial-dmm driver's list
of supported devices. Which obsoletes the src/hardware/brymen-bm86x/
hierarchy.

This implementation differs from the previous version: The parse routine
gets called multiple times after one DMM packet was received. Values for
the displays get extracted in separate invocations, the received packet
is considered read-only. Unsupported LCD segment combinations for digits
get logged. Low battery gets logged with higher severity -- the validity
of measurement values is uncertain after all. The parse routine uses
longer identifiers. Packet reception uses whichever serial transport is
available (need no longer be strictly USB HID nor libusb based). All
features of the previous implementation are believed to still be present
in this version.

This configuration queries measurement values each 0.5 seconds and
re-sends a not responded to request after 1.5 seconds. Which follows the
combination of the vendor's suggested flow (frequency) and the previous
implementation's timeout (3x 500ms). This implementation does not try to
re-connect to the HID device for each measurement, and neither checks
for the 4.0 seconds timeout (vendor's suggested flow). Local experiments
work without these.
Makefile.am
src/dmm/bm86x.c [new file with mode: 0644]
src/hardware/serial-dmm/api.c
src/libsigrok-internal.h