]> sigrok.org Git - libsigrok.git/log
libsigrok.git
9 years agozip: Provide fallback if zip_discard() is unavailable
Daniel Elstner [Fri, 30 Oct 2015 14:07:25 +0000 (15:07 +0100)]
zip: Provide fallback if zip_discard() is unavailable

zip_discard() was introduced in libzip 0.11, which some systems
do not have yet. Provide a fallback replacement for zip_discard(),
and reduce the requirement to libzip 0.10 again.

This fixes bug #674.

9 years agoC++: Declare std::default_delete friend as struct
Daniel Elstner [Thu, 29 Oct 2015 21:53:25 +0000 (22:53 +0100)]
C++: Declare std::default_delete friend as struct

std::default_delete<> is originally defined as struct, not class.
This does not really make much of a difference, but some compilers
complain when the struct/class tag is not consistent across all
declarations of the type.

9 years agoC++: Suppress deprecation warnings from glibmm
Daniel Elstner [Thu, 29 Oct 2015 20:48:49 +0000 (21:48 +0100)]
C++: Suppress deprecation warnings from glibmm

Ignore warnings due to use of std::auto_ptr<> in the glibmm headers.
This should be reverted once glibmm is fixed.

9 years agobuild: Use common SWIG defines for Python and Java
Daniel Elstner [Thu, 29 Oct 2015 21:39:44 +0000 (22:39 +0100)]
build: Use common SWIG defines for Python and Java

Make the Python and Java bindings use the same set of preprocessor
macros for the SWIG parsing stage, taken from a make variable. Add
G_GNUC_{BEGIN,END}_IGNORE_DEPRECATIONS to that set.

9 years agosysclk-lwla: Read test word twice during initialization
Daniel Elstner [Sun, 25 Oct 2015 02:44:55 +0000 (03:44 +0100)]
sysclk-lwla: Read test word twice during initialization

During initialization of the LWLA1034, read the 64-bit test word
twice and verify the result of the second read only. This better
matches what the original vendor software does.

9 years agosysclk-lwla: Clarify function of registers 10B0 to 10BC
Daniel Elstner [Sun, 25 Oct 2015 01:26:44 +0000 (02:26 +0100)]
sysclk-lwla: Clarify function of registers 10B0 to 10BC

Apparently, these four registers form an interface for indirect
access to another internal 64 bit wide memory. This is likely the
same memory as that accessed by the bulk transfer commands 7 and 8.

9 years agoMakefile.am: Avoid non-portable -t option for $(INSTALL).
Uwe Hermann [Thu, 29 Oct 2015 22:59:12 +0000 (23:59 +0100)]
Makefile.am: Avoid non-portable -t option for $(INSTALL).

The 'install' tool doesn't have a -t option on all platforms
(e.g. Mac OS X or FreeBSD).

9 years agokorad-kdxxxxp: Minor cosmetics and consistency changes.
Uwe Hermann [Thu, 29 Oct 2015 17:51:09 +0000 (18:51 +0100)]
korad-kdxxxxp: Minor cosmetics and consistency changes.

9 years agoOver voltage and current protection support
Hannu Vuolasaho [Wed, 21 Oct 2015 22:05:37 +0000 (01:05 +0300)]
Over voltage and current protection support

Developed against Velleman LABPS3005D and seems to work.

9 years agoSupport for regulation status and fix for mysterious M
Hannu Vuolasaho [Wed, 21 Oct 2015 16:04:37 +0000 (19:04 +0300)]
Support for regulation status and fix for mysterious M

Added support for SR_CONF_REGULATION which returns value for CH1
Also VELLEMAN LABPS3005D (only device currently supported) sends single
'M' character in beginning of return value, which is specially discarded.

9 years agoJava: Avoid dangerous writes via casted pointers
Daniel Elstner [Mon, 26 Oct 2015 06:29:50 +0000 (07:29 +0100)]
Java: Avoid dangerous writes via casted pointers

Writing to an object through a pointer of incompatible type is
really evil. Even when the data size matches, it is still a
violation of strict aliasing rules.

Replace all instances by direct casts of the value, without the
unnecessary and dangerous indirection.

9 years agoSWIG: Avoid unseparated template closing brackets
Daniel Elstner [Mon, 26 Oct 2015 04:47:21 +0000 (05:47 +0100)]
SWIG: Avoid unseparated template closing brackets

SWIG 2.0.12 fails with a syntax error on ">>".

9 years agoC++: Catch exceptions from stoi() and stod().
Martin Ling [Sun, 25 Oct 2015 23:30:49 +0000 (23:30 +0000)]
C++: Catch exceptions from stoi() and stod().

Fixes bug #483.

9 years agojava: Add doxygen output directory to .gitignore.
Martin Ling [Sun, 25 Oct 2015 19:26:42 +0000 (19:26 +0000)]
java: Add doxygen output directory to .gitignore.

9 years agojava: Usable wrapping of Configurable.config_keys().
Martin Ling [Sun, 25 Oct 2015 16:02:54 +0000 (16:02 +0000)]
java: Usable wrapping of Configurable.config_keys().

9 years agoMakefile.am: Make SWIG wrappers also depend on new templates.i file.
Martin Ling [Sun, 25 Oct 2015 14:43:15 +0000 (14:43 +0000)]
Makefile.am: Make SWIG wrappers also depend on new templates.i file.

9 years agopython: Give all enum values __doc__ strings.
Martin Ling [Sun, 25 Oct 2015 14:04:49 +0000 (14:04 +0000)]
python: Give all enum values __doc__ strings.

9 years agopython: Add docstrings for enum constants.
Martin Ling [Sun, 25 Oct 2015 12:06:20 +0000 (12:06 +0000)]
python: Add docstrings for enum constants.

9 years agojava: Add docstrings for enum constants.
Martin Ling [Sun, 25 Oct 2015 03:01:30 +0000 (03:01 +0000)]
java: Add docstrings for enum constants.

9 years agoC++: Include enum classes when generating documentation.
Martin Ling [Sun, 25 Oct 2015 02:07:35 +0000 (02:07 +0000)]
C++: Include enum classes when generating documentation.

9 years agoC++: Declare namespace in enums.hpp so it can be used independently.
Martin Ling [Sun, 25 Oct 2015 01:57:26 +0000 (01:57 +0000)]
C++: Declare namespace in enums.hpp so it can be used independently.

9 years agojava: Make enum values available as normal constants.
Martin Ling [Sun, 25 Oct 2015 01:39:16 +0000 (01:39 +0000)]
java: Make enum values available as normal constants.

9 years agoJava: Remove obsolete SourceCallback interface
Daniel Elstner [Mon, 26 Oct 2015 06:11:20 +0000 (07:11 +0100)]
Java: Remove obsolete SourceCallback interface

9 years agoC++: Avoid const ref args to appease Java bindings
Daniel Elstner [Mon, 26 Oct 2015 06:04:10 +0000 (07:04 +0100)]
C++: Avoid const ref args to appease Java bindings

The Java bindings currently have some weird problem with function
arguments passed by const reference. Not all types are affected,
but the collection types that involve custom typemaps are.

For now, revert back to pass-by-value for the problematic types.

9 years agoC++: Use C++98 syntax for default arguments to appease SWIG
Daniel Elstner [Mon, 26 Oct 2015 04:18:06 +0000 (05:18 +0100)]
C++: Use C++98 syntax for default arguments to appease SWIG

Looks like SWIG silently ignores default arguments specified via
aggregate initialization. This is rather unfortunate, especially
if the argument types are complex.

9 years agoC++: Replace custom deleters with std::default_delete
Daniel Elstner [Thu, 15 Oct 2015 17:21:28 +0000 (19:21 +0200)]
C++: Replace custom deleters with std::default_delete

Replace custom Deleter classes with std::default_delete<>, declared
as friend so it can invoke the private destructor. Inexplicably,
std::shared_ptr<> does not use default_delete<> by default, so it
is still necessary to explicitly specify the deleter when creating
shared_ptr instances.

With this, unique_ptr and shared_ptr instances now use the same
default delete mechanism.

9 years agoC++: Use smart pointers instead of manual delete
Daniel Elstner [Thu, 15 Oct 2015 16:32:44 +0000 (18:32 +0200)]
C++: Use smart pointers instead of manual delete

Make use of std::unique_ptr<> to manage the lifetime of members
or container elements, so that manual invocations of delete can
be avoided. This also provides for exception safety.

Since std::unique_ptr<> is only movable but not copyable, adapt
the code to avoid copies and assignments of these pointers.

9 years agoC++: Move C struct pointers out of ownership classes
Daniel Elstner [Sun, 11 Oct 2015 15:57:30 +0000 (17:57 +0200)]
C++: Move C struct pointers out of ownership classes

Reduce needless over-generalization. There is no design need
for the ParentOwned and UserOwned classes to contain the C base
struct pointer. Instead, just make the _structure pointer a
private member of each class that needs one.

9 years agoC++: Rename get_shared_pointer() to share_owned_by()
Daniel Elstner [Sun, 11 Oct 2015 15:11:37 +0000 (17:11 +0200)]
C++: Rename get_shared_pointer() to share_owned_by()

This makes it clearer that this method assigns the parent
(owner) reference.

9 years agoC++: Use shared_from_this() exclusively on this
Daniel Elstner [Sun, 11 Oct 2015 15:01:05 +0000 (17:01 +0200)]
C++: Use shared_from_this() exclusively on this

Never call shared_from_this() on any object other than "this".
Adapt the API so that it can be made protected.

9 years agoC++: Make most members private instead of protected
Daniel Elstner [Sun, 11 Oct 2015 12:51:51 +0000 (14:51 +0200)]
C++: Make most members private instead of protected

Use protected only for members which are actually needed by
sub-classes. Declare all the rest private.

9 years agoSWIG: Hack around SWIG segfault on private destructors
Daniel Elstner [Sun, 11 Oct 2015 12:31:18 +0000 (14:31 +0200)]
SWIG: Hack around SWIG segfault on private destructors

Apparently this problem has been fixed in SWIG 3.0.6. However,
until we can require that version, define "private" as "protected"
when running the SWIG parser.

9 years agoC++: Make value get accessors const
Daniel Elstner [Sun, 11 Oct 2015 11:57:42 +0000 (13:57 +0200)]
C++: Make value get accessors const

Declare accessor methods that return value members const. For now,
skip all cases where constness would have to be applied transitively
to shared objects.

9 years agoC++: Make some methods static to match the C API
Daniel Elstner [Sun, 11 Oct 2015 10:35:01 +0000 (12:35 +0200)]
C++: Make some methods static to match the C API

Context::package_version() and Context::lib_version() do not access
context state and should be static. However, leave the logging
related methods alone for now, as making them static would entail
making the callback data a global static, since the C API lacks
destroy notification callbacks.

9 years agoC++: Declare all callbacks invoked from C noexcept
Daniel Elstner [Wed, 14 Oct 2015 18:56:51 +0000 (20:56 +0200)]
C++: Declare all callbacks invoked from C noexcept

If one of these functions does throw an exception, std::terminate()
will be called. Without this, the behavior is undefined since the C
stack is not prepared to deal with exceptions.

9 years agoC++: Use noexcept instead of throw()
Daniel Elstner [Sun, 11 Oct 2015 10:19:27 +0000 (12:19 +0200)]
C++: Use noexcept instead of throw()

Runtime-checked exception specifications via throw() are
deprecated in C++11.

9 years agoSWIG: Define "noexcept" empty to work around SWIG bug
Daniel Elstner [Sun, 11 Oct 2015 10:12:28 +0000 (12:12 +0200)]
SWIG: Define "noexcept" empty to work around SWIG bug

The SWIG 2.0.12 on my system bails out with a syntax error on the
"noexcept" keyword in C++11 code. Define "noexcept" to nothing (for
the SWIG parser only) to work around this problem.

9 years agoC++: Make most constructors explicit
Daniel Elstner [Sun, 11 Oct 2015 09:39:07 +0000 (11:39 +0200)]
C++: Make most constructors explicit

Unless implicit conversion is desired, constructors that can be
called with one argument should be marked as "explicit".

9 years agoC++: Do not use C-style casts
Daniel Elstner [Sun, 11 Oct 2015 08:48:12 +0000 (10:48 +0200)]
C++: Do not use C-style casts

Never ever.

9 years agoC++: Consistently use nullptr instead of NULL
Daniel Elstner [Sun, 11 Oct 2015 01:38:19 +0000 (03:38 +0200)]
C++: Consistently use nullptr instead of NULL

9 years agoC++: Use move() and avoid passing containers by value
Daniel Elstner [Sun, 11 Oct 2015 01:12:02 +0000 (03:12 +0200)]
C++: Use move() and avoid passing containers by value

Make use of std::move() to transfer arguments passed in by value.
Take complex container arguments by const reference, as passing
those by value is rather unorthodox even for C++11 style code.

9 years agotests: Drop another obsolete sr_analog_float_to_string() test.
Uwe Hermann [Sun, 25 Oct 2015 22:05:49 +0000 (23:05 +0100)]
tests: Drop another obsolete sr_analog_float_to_string() test.

9 years agoscpi: Move closing of discovered devices to sr_scpi_scan_resource().
Martin Ling [Sat, 24 Oct 2015 21:27:45 +0000 (22:27 +0100)]
scpi: Move closing of discovered devices to sr_scpi_scan_resource().

9 years agorigol-ds: After successfully finding a device, close it properly.
Martin Ling [Sat, 24 Oct 2015 20:33:34 +0000 (21:33 +0100)]
rigol-ds: After successfully finding a device, close it properly.

9 years agojava: Don't use SWIG attribute mechanism.
Martin Ling [Tue, 20 Oct 2015 23:29:50 +0000 (00:29 +0100)]
java: Don't use SWIG attribute mechanism.

Using the attribute mechanism results in badly named wrappers like
getLog_level(), as well as incompletely applied typemaps for templated
container types. If we just avoid this mechanism entirely, we get the
same foo() and set_foo() accessors as we have in the C++ API.

9 years agojava: Remove overrides for overloaded methods.
Martin Ling [Tue, 20 Oct 2015 23:20:18 +0000 (00:20 +0100)]
java: Remove overrides for overloaded methods.

These are now wrapped correctly without needing this.

9 years agojava: Remove need for conversion methods on container wrappers.
Martin Ling [Tue, 20 Oct 2015 23:18:03 +0000 (00:18 +0100)]
java: Remove need for conversion methods on container wrappers.

9 years agoSWIG: Declare template specialisations for containers before typemaps.
Martin Ling [Tue, 20 Oct 2015 22:14:45 +0000 (23:14 +0100)]
SWIG: Declare template specialisations for containers before typemaps.

It seems this is necessary to correctly apply typemaps involving
these template specialisations.

9 years agoscpi_usbtmc_libusb: remove libusb_clear_halt() hack which is not useful anymore
Aurelien Jacobs [Tue, 22 Sep 2015 22:30:06 +0000 (00:30 +0200)]
scpi_usbtmc_libusb: remove libusb_clear_halt() hack which is not useful anymore

9 years agotransform/scale: Fix g_variant_new() argument.
Uwe Hermann [Sat, 24 Oct 2015 19:36:20 +0000 (21:36 +0200)]
transform/scale: Fix g_variant_new() argument.

9 years agoscpi_usbtmc_libusb: set_configuration only if it is not already set
Aurelien Jacobs [Thu, 24 Sep 2015 19:43:06 +0000 (21:43 +0200)]
scpi_usbtmc_libusb: set_configuration only if it is not already set

This avoids the issues described here:
http://libusb.sourceforge.net/api-1.0/caveats.html#configsel

9 years agoscpi_usbtmc_libusb: add Rigol DS2000 to the RL1 blacklist
Aurelien Jacobs [Tue, 22 Sep 2015 22:24:54 +0000 (00:24 +0200)]
scpi_usbtmc_libusb: add Rigol DS2000 to the RL1 blacklist

The Rigol DS2000 series also give a USB timeout when trying to apply
RL1 lock or unlock.

9 years agoDrop unneeded sr_analog_float_to_string().
Uwe Hermann [Sat, 24 Oct 2015 19:14:50 +0000 (21:14 +0200)]
Drop unneeded sr_analog_float_to_string().

A simple g_strdup_printf() is sufficient, no need for an extra
libsigrok API call here.

9 years agodrivers: Fix behaviour when trying to set an invalid capture ratio.
Tilman Sauerbeck [Thu, 15 Oct 2015 20:38:12 +0000 (22:38 +0200)]
drivers: Fix behaviour when trying to set an invalid capture ratio.

Trying to configure an invalid capture ratio would reset the
previously configured value. Instead, we should just reject the
new value and keep the original one.

9 years agofx2lafw: Drop obsolete macro usage.
Uwe Hermann [Sat, 24 Oct 2015 18:51:13 +0000 (20:51 +0200)]
fx2lafw: Drop obsolete macro usage.

9 years agofx2lafw: Add the official fx2lafw sigrok VID/PID pairs.
Uwe Hermann [Wed, 21 Oct 2015 21:41:50 +0000 (23:41 +0200)]
fx2lafw: Add the official fx2lafw sigrok VID/PID pairs.

As supported by sigrok-firmware-fx2lafw >= 0.1.3:

 - 1D50:608C: fx2lafw-sigrok-fx2-8ch.fw

 - 1D50:608D: fx2lafw-sigrok-fx2-16ch.fw

9 years agoanalog.c: Various Doxygen additions and improvements.
Uwe Hermann [Thu, 15 Oct 2015 17:49:57 +0000 (19:49 +0200)]
analog.c: Various Doxygen additions and improvements.

9 years agoanalog.c: Return SR_ERR_ARG upon invalid arguments.
Uwe Hermann [Thu, 15 Oct 2015 17:40:59 +0000 (19:40 +0200)]
analog.c: Return SR_ERR_ARG upon invalid arguments.

(instead of segfaulting)

9 years agosr_analog_float_to_string(): Make 'digits' argument unsigned.
Uwe Hermann [Thu, 15 Oct 2015 17:38:02 +0000 (19:38 +0200)]
sr_analog_float_to_string(): Make 'digits' argument unsigned.

9 years agoAdd a few unit tests for the analog conversion functions.
Uwe Hermann [Thu, 15 Oct 2015 10:13:43 +0000 (12:13 +0200)]
Add a few unit tests for the analog conversion functions.

9 years agobindings: Use SR_DF_ANALOG, drop SR_DF_ANALOG_OLD support.
Uwe Hermann [Fri, 2 Oct 2015 14:18:35 +0000 (16:18 +0200)]
bindings: Use SR_DF_ANALOG, drop SR_DF_ANALOG_OLD support.

All SR_DF_ANALOG_OLD packets are automatically converted to SR_DF_ANALOG
in the session already.

9 years agoSR_DF_ANALOG2 and sr_datafeed_analog2 renames.
Uwe Hermann [Tue, 29 Sep 2015 16:34:55 +0000 (18:34 +0200)]
SR_DF_ANALOG2 and sr_datafeed_analog2 renames.

Rename SR_DF_ANALOG2 to SR_DF_ANALOG, and 'struct sr_datafeed_analog2'
to 'struct sr_datafeed_analog'.

9 years agoSR_DF_ANALOG_OLD and sr_datafeed_analog_old renames.
Uwe Hermann [Tue, 29 Sep 2015 11:55:46 +0000 (13:55 +0200)]
SR_DF_ANALOG_OLD and sr_datafeed_analog_old renames.

Rename SR_DF_ANALOG to SR_DF_ANALOG_OLD, and 'struct sr_datafeed_analog'
to 'struct sr_datafeed_analog_old'.

9 years agosession: Convert from SR_DF_ANALOG to SR_DF_ANALOG2 automatically.
Martin Ling [Wed, 9 Sep 2015 23:34:53 +0000 (00:34 +0100)]
session: Convert from SR_DF_ANALOG to SR_DF_ANALOG2 automatically.

This fixes bus #640.

9 years agooutput/csv: Support SR_DF_ANALOG2.
Martin Ling [Wed, 9 Sep 2015 23:19:23 +0000 (00:19 +0100)]
output/csv: Support SR_DF_ANALOG2.

9 years agooutput/wav: Support SR_DF_ANALOG2.
Martin Ling [Wed, 9 Sep 2015 23:03:18 +0000 (00:03 +0100)]
output/wav: Support SR_DF_ANALOG2.

9 years agotransform/invert: Support SR_DF_ANALOG2.
Martin Ling [Wed, 9 Sep 2015 22:57:18 +0000 (23:57 +0100)]
transform/invert: Support SR_DF_ANALOG2.

9 years agotransform/scale: Support SR_DF_ANALOG2.
Martin Ling [Wed, 9 Sep 2015 22:49:01 +0000 (23:49 +0100)]
transform/scale: Support SR_DF_ANALOG2.

9 years agotransform/scale: Use a rational rather than floating point factor.
Martin Ling [Wed, 9 Sep 2015 22:39:15 +0000 (23:39 +0100)]
transform/scale: Use a rational rather than floating point factor.

9 years agojava: Fix SWIG warnings due to dodgy %extend redefinitions.
Martin Ling [Tue, 20 Oct 2015 20:05:36 +0000 (21:05 +0100)]
java: Fix SWIG warnings due to dodgy %extend redefinitions.

If we're going to %extend these methods, we need to firstly ignore the
originals, and secondly implement all possible argument combinations.

This fixes the rest of bug #417.

9 years agopython: Prevent warning about deprecated NumPy API.
Martin Ling [Tue, 20 Oct 2015 19:38:37 +0000 (20:38 +0100)]
python: Prevent warning about deprecated NumPy API.

Without this we get:

/usr/include/python2.7/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning
"Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API
NPY_1_7_API_VERSION" [-Wcpp]

As far as I'm aware we're not using any deprecated NumPy C API features.

This fixes part of bug #417.

9 years agopython: Fix PyObject_CallMethod() arguments
Daniel Elstner [Sat, 10 Oct 2015 02:45:13 +0000 (04:45 +0200)]
python: Fix PyObject_CallMethod() arguments

Pass nullptr instead of the empty string for format, and remove
the excess varargs argument. Also, avoid NULL in favor of nullptr.

9 years agopython: Wrap session stop callback
Daniel Elstner [Sat, 10 Oct 2015 02:38:54 +0000 (04:38 +0200)]
python: Wrap session stop callback

9 years agosession: Make event source injection API private
Daniel Elstner [Fri, 9 Oct 2015 17:46:14 +0000 (19:46 +0200)]
session: Make event source injection API private

Also remove the corresponding functionality from the bindings.

9 years agoC++: Add bindings for session stop notification
Daniel Elstner [Fri, 9 Oct 2015 17:24:51 +0000 (19:24 +0200)]
C++: Add bindings for session stop notification

9 years agosession: Keep reference to main context while running
Daniel Elstner [Fri, 9 Oct 2015 13:49:12 +0000 (15:49 +0200)]
session: Keep reference to main context while running

9 years agosession: Make sr_session_run() optional
Daniel Elstner [Fri, 9 Oct 2015 00:35:47 +0000 (02:35 +0200)]
session: Make sr_session_run() optional

Introduce a new API function sr_session_stopped_callback_set()
which can be used to receive notification when a session stops
running. This allows applications to integrate libsigrok event
processing with their own main loop, instead of blocking in
sr_session_run().

9 years agoresource: Do not require size to stay valid after close
Daniel Elstner [Thu, 8 Oct 2015 18:51:55 +0000 (20:51 +0200)]
resource: Do not require size to stay valid after close

Chalk one up for uber-correctness, just in case.

9 years agoAdd support for the Tenma 77-7732 multimeter.
Uwe Hermann [Fri, 16 Oct 2015 17:48:13 +0000 (19:48 +0200)]
Add support for the Tenma 77-7732 multimeter.

9 years agoAdd support for the Tenma 77-9380A multimeter.
Uwe Hermann [Fri, 16 Oct 2015 17:38:52 +0000 (19:38 +0200)]
Add support for the Tenma 77-9380A multimeter.

9 years agobuild: Require libzip 0.11
Daniel Elstner [Fri, 16 Oct 2015 18:45:43 +0000 (20:45 +0200)]
build: Require libzip 0.11

This is needed for zip_discard().

9 years agosrzip: Avoid recent-ish zip_file_add()
Daniel Elstner [Fri, 16 Oct 2015 18:35:32 +0000 (20:35 +0200)]
srzip: Avoid recent-ish zip_file_add()

9 years agokorad-kdxxxxp: Use PRIi64 format for int64_t
Daniel Elstner [Fri, 16 Oct 2015 19:28:07 +0000 (21:28 +0200)]
korad-kdxxxxp: Use PRIi64 format for int64_t

9 years agodrivers: Add support for Tenma 72-7730 multimeter
Karl Palsson [Tue, 13 Oct 2015 16:19:24 +0000 (16:19 +0000)]
drivers: Add support for Tenma 72-7730 multimeter

Tested with a 72-7730 device.

Signed-off-by: Karl Palsson <redacted>
9 years agoconfigure.ac: Korad KDxxxxP depends on libserialport.
Uwe Hermann [Tue, 13 Oct 2015 21:26:40 +0000 (23:26 +0200)]
configure.ac: Korad KDxxxxP depends on libserialport.

9 years agoInitial driver for Korad KDxxxxP (Velleman LABPS3005D)
Hannu Vuolasaho [Fri, 25 Sep 2015 14:43:17 +0000 (16:43 +0200)]
Initial driver for Korad KDxxxxP (Velleman LABPS3005D)

With this driver it is possible to set voltage target and current
limit. Also enabling and disabling the output is possible.

Analog output sends read back values from output. If output is
disabled analog outputs 0.00.

In protocol.c there is a g_usleep() call. This gives almost
every time enough time for PSU to parse and process input.

Multichannel devices aren't supported.

9 years agokorad-kdxxxxp: Initial driver skeleton.
Hannu Vuolasaho [Thu, 24 Sep 2015 19:58:38 +0000 (21:58 +0200)]
korad-kdxxxxp: Initial driver skeleton.

9 years agobaylibre-acme: Fix EEPROM fields endianness.
Bartosz Golaszewski [Fri, 9 Oct 2015 13:52:28 +0000 (15:52 +0200)]
baylibre-acme: Fix EEPROM fields endianness.

Use RB32 instead of RL32 since integer types in probe EEPROM are in network
byte order.

Signed-off-by: Bartosz Golaszewski <redacted>
9 years agobaylibre-acme: Read EEPROM contents into buffer before processing.
Bartosz Golaszewski [Fri, 25 Sep 2015 21:48:30 +0000 (14:48 -0700)]
baylibre-acme: Read EEPROM contents into buffer before processing.

Instead of using a non-standard packed attribute, read the contents of the
probe EEPROM into a buffer and then process it using the R* macros.

Signed-off-by: Bartosz Golaszewski <redacted>
9 years agobaylibre-acme: Use fixed-size integer types in struct probe_eeprom.
Bartosz Golaszewski [Sat, 19 Sep 2015 18:08:26 +0000 (20:08 +0200)]
baylibre-acme: Use fixed-size integer types in struct probe_eeprom.

Standard integer types may differ in size on different targets. Use fixed-size
types instead.

Signed-off-by: Bartosz Golaszewski <redacted>
9 years agoC++: Remove leftover Context::begin_save() method
Daniel Elstner [Sun, 4 Oct 2015 20:11:39 +0000 (22:11 +0200)]
C++: Remove leftover Context::begin_save() method

9 years agobuild: Do not define FIRMWARE_DIR on Windows
Daniel Elstner [Sat, 3 Oct 2015 12:08:32 +0000 (14:08 +0200)]
build: Do not define FIRMWARE_DIR on Windows

The hard-coded location is bound to be wrong anyway. Instead, rely
on the new resource lookup code to find the firmware files in a
location relative to the library or executable.

9 years agoresource: Make definition of FIRMWARE_DIR optional
Daniel Elstner [Sat, 3 Oct 2015 11:58:50 +0000 (13:58 +0200)]
resource: Make definition of FIRMWARE_DIR optional

9 years agosession-file: Use 32-bit int for channel count
Daniel Elstner [Fri, 2 Oct 2015 18:09:46 +0000 (20:09 +0200)]
session-file: Use 32-bit int for channel count

SR_CONF_NUM_LOGIC_CHANNELS is defined as SR_T_INT32. Create the
GVariant with the correct type to avoid a type mismatch error in
sr_variant_type_check().

9 years agousb: Skip add/remove of FD on destroyed source
Daniel Elstner [Thu, 1 Oct 2015 22:36:10 +0000 (00:36 +0200)]
usb: Skip add/remove of FD on destroyed source

This avoids nasty GLib-CRITICALs on Windows with some drivers.

9 years agoC++: Wrap resource access API
Daniel Elstner [Sat, 26 Sep 2015 22:03:21 +0000 (00:03 +0200)]
C++: Wrap resource access API

Introduce a ResourceReader delegate class with virtual methods
corresponding to the C callback functions.

9 years agodrivers: Load firmware via new resource API
Daniel Elstner [Sat, 26 Sep 2015 20:41:05 +0000 (22:41 +0200)]
drivers: Load firmware via new resource API

9 years agoresource: Move sr_file_get_size() to resource.c
Daniel Elstner [Sat, 26 Sep 2015 16:10:28 +0000 (18:10 +0200)]
resource: Move sr_file_get_size() to resource.c

9 years agoresource: New internal API for accessing resource files
Daniel Elstner [Sat, 26 Sep 2015 11:38:30 +0000 (13:38 +0200)]
resource: New internal API for accessing resource files

The resource API provides a generic means for accessing resources
that are bundled with sigrok, such as device firmware files. Since
the manner of resource bundling is platform-dependent, users of
libsigrok may override the functions used to open, close and read
a resource. The default implementation accesses resources as files
located in one of the XDG data directories or a directory defined
at compile time.

9 years agosrzip: Avoid low-level FD-based I/O
Daniel Elstner [Sun, 20 Sep 2015 18:32:03 +0000 (20:32 +0200)]
srzip: Avoid low-level FD-based I/O

Use in-memory buffers instead of temporary files. This avoids
the need for low-level I/O on the FD returned by g_mkstemp().
Refactor the code accordingly. Also plug a number of leaks and
tighten the error checking.