sysclk-lwla: Avoid warning due to bogus range check.

(lwla_set_clock_source): Checking whether an enum value is greater
than or equal to zero apparently results in a warning with some
compilers.  Assign the enum to an unsigned variable to avoid this,
and return SR_ERR_BUG if the range is exceeded, as this indicates
a bug in the driver code itself.
sysclk-lwla: Remove unused dev_context::next_state.
sysclk-lwla: Utility functions clean-up and semantic fixes.

(lwla_send_bitstream): Unref the mapped file earlier in order
to simplify the error handling.
(lwla_receive_reply): Do not treat a reply buffer length of
zero as silent no-op.  That logic was left over from an earlier
iteration, before the distinction between reply buffer size and
expected read length was introduced.
sysclk-lwla: Bypass divider in external clock mode.

(lwla_setup_acquisition): Set the clock divider bypass
flag to 1 for the external clock modes as well.
(capture_setup): Set the clock divide count to 0 if an
external clock source is selected.
sysclk-lwla: Make use of the probe index again.

(configure_probes): sr_probe::index has been un-deprecated,
so use it instead of relying on the list order.
strutil: Correctly parse floating point frequencies in parse_size_string().

parse_size_string() incorrectly parses a real number, e.g. 1.5 kHz ends up
being 1Hz.

This patch fixes parse_size_string() to take the fractional part as well into
account. The fractional part is parsed as an double precision floating point
number while ignoring the locale.
device: Pass sdi as an function argument to config_list in dev_has_option()

With drivers that support multiple devices we need to know the device model
while listing options. That information is most of the time saved in the private
part of the dev_inst structure.

Pass the pointer to the dev_inst structure as an function argument so we have
access to this information.
strutil: Add function to parse floating point numbers while ignoring the locale.

Most of the supported gear uses the ANSI C locale for communication, and if the
client sets up an incompatible locale parsing would fail.

This function ignores the client's locale and parses floating point numbers
using the ANSI C locale. This function should be always used when parsing
floating point numbers coming from the instrument.
scpi: Use sr_atof_ascii() instead of sr_atof().
hameg-hmo: Handle floating point numbers while ignoring the locale.
hameg-hmo: Close the device after initial scan.

The device is after a scan left open and clients that don't call unconditionally
dev_open() will never fetch the initial device state.

Close the device after the scan so clients know they need to open it.
hameg-hmo: Send the DF_END packet in acquisition_stop()

The DF_END packet was send out after all configured frames were fetched, but
devices may stop the acquisition at any point in time and an DF_END will not be
send out in this case.

Send the DF_END packet inside of acquisition_stop() so this can't happen.
hameg-hmo: Change the way vdiv and timebase are saved.

The current vertical division setting (per channel) and the timebase are stored
as a floating point number. This is suboptimal since clients expect us to send
this information to them in form of a rational number.

Store only the index of the current setting since all the supported settings are
already stored inside of an array.
scpi: Add CMD_GET_SAMPLE_RATE to the command enum.
hameg-hmo: Add support for sample rate fetching.
hameg-hmo: Update the sample rate when the channel states or the timebase change.

The sample rate on the Hameg scopes changes depending on the number of channels
turned on and on the current timebase.

Update the sample rate if any of the above change.
hameg-hmo: Advertise the frame limit option.
hameg-hmo: Expose more options with config_get().

This patch exposes the TRIGGER_SOURCE and COUPLING options via config_get().
hameg-hmo: Reset the number of acquired frames in acquisition stop.
hameg-hmo: Silence warning about format security.

The command for fetching the sample rate while in single shot mode doesn't take
an argument so the snprintf here is redundant.