Commit Graph

273 Commits

Author SHA1 Message Date
Martin Ling 63d0fb7528 Move public headers into include/libsigrok.
This is needed so that the C++ bindings, the header for which
references "libsigrok/libsigrok.h", can have a valid include
directory passed to build them before the headers are installed.
2014-07-17 18:30:49 +01:00
Bert Vermeulen 5d8c55f9ee Move conditional driver cruft to separate source file. 2014-07-11 16:47:06 +02:00
Bert Vermeulen d4b3874828 autoconf: Use DRIVER macro to declare drivers. 2014-07-10 20:44:32 +02:00
Bert Vermeulen 0acdd79357 testo: Initial driver skeleton. 2014-07-05 21:56:46 +02:00
Uwe Hermann 8f4e922f43 manson-hcs-3xxx: Initial driver skeleton. 2014-06-23 00:59:17 +02:00
Bert Vermeulen ac136b574a Add new software trigger as a library-wide facility.
This is strictly an internal feature, for use by drivers for hardware
that doesn't have its own trigger mechanism.
2014-05-28 15:53:27 +02:00
Bert Vermeulen 7b5e6d2978 Add new triggering framework.
The new triggers consist of a set of structs and an API to manipulate
them.  Both logic and analog triggers are supported, in an unlimited
number of stages.

A single struct sr_trigger containing its stages and triggers is then
added to the session.

In case of a driver where the hardware supports triggering, the struct
is then converted and used to arm the hardware trigger. Drivers without
hardware trigger support, such as fx2lafw or multimeter drivers, use it
as the basis for a software-based trigger implementation instead.
2014-05-27 23:53:27 +02:00
Matthias Heidbrink 41b7bd01c1 motech-lps-30x: Initial driver framework. 2014-05-19 19:23:30 +02:00
Uwe Hermann 8c21897f59 Unhook the Link Instruments MSO-19 from the build for now.
This driver is neither working nor has it been in a compiling state for
a long time, so unhook it from the build until it is fixed and works.

The files (api.c and protocol.[ch]) are still in git, but won't end up in
released tarballs and they don't get built (neither git nor tarballs).

This also allows us to drop the otherwise unneeded dependency on libudev.
When the MSO-19 driver comes back, it should be in a form that doesn't
require the inherently Linux-only libudev anyway. See also:
http://sigrok.org/bugzilla/show_bug.cgi?id=65
2014-05-04 17:44:05 +02:00
Uwe Hermann 2fa222c78b Drop obsolete Linux-only usbtmc backend.
We're now using a portable libusb-based (userspace) backend which should
in theory work on any OS with libusb support.
2014-05-04 17:38:09 +02:00
Bert Vermeulen dba3e6826e output: Introduce output module API wrappers. 2014-04-21 01:50:43 +02:00
Bert Vermeulen 7e7b7fb7d3 Removed ALSA driver.
This driver has been unmaintained for years, and was never good code
to begin with. It's also questionable whether it was ever useful,
particularly with the demo driver now supporting various analog
signalling.
2014-04-19 13:37:53 +02:00
Bert Vermeulen 3b15586812 Removed obsolete sr_filter_channels(). 2014-04-19 13:34:46 +02:00
Bert Vermeulen 44559b2c3b Remove obsolete output API. 2014-04-19 13:28:17 +02:00
Bert Vermeulen 6f64ebb223 output/ascii: Rewrite for new output API. 2014-04-19 12:34:51 +02:00
Bert Vermeulen 8d3af2e868 output/hex: Rewrite for new output API. 2014-04-19 12:31:50 +02:00
Bert Vermeulen dbd0aeff35 output/bits: Rewrite for new output API.
This also fixes the performance problems in the old module.
2014-04-19 12:25:02 +02:00
Uwe Hermann 7b3567126c Rename 'chronovu-la8' driver to 'chronovu-la'.
The driver now also supports the LA16 device (and possibly others in the
future).
2014-04-02 17:20:09 +02:00
Uwe Hermann 36cf5b5445 Makefile.am: Add missing vxi.h.
If it's not listed as SOURCE, it won't end up in the tarball and a build
from tarball would thus break.
2014-03-20 13:10:53 +01:00
Uwe Hermann 67bd805523 Switch to a non-recursive automake setup.
Instead of >= 44 Makefile.am's we now only have one top-level
Makefile.am, and use the 'subdir-objects' automake option to
handle the build via non-recursive (auto)make.

This has the advantage of fewer (boilerplate or other) files and less
clutter in general, as well as performance advantages since the new
setup can build many files in parallel (with 'make -j'), not only 2 or 3
files within the same (e.g. hardware/xxxx/* subdirectory) and also since
we no longer need to build intermediate libtool helper libs per subdirectory.

A quick, non-scientific test build on a quad-core laptop with 'make -j 4'
yields a build time reduction from 35s to 19s.

All autotools features that worked before are still intact without any
regressions, including the Make targets 'install', 'uninstall', 'check',
'dist', 'clean', 'distclean' and so on, as well as all the usual portability
handling (build works on any OS, with any Make implementation such as
GNU Make or BSD Make, with any shell such as sh/ksh/zsh/bash/dash, etc. etc.)
and features such as out-of-tree build support, cross-compile support,
testsuite support (also with colored output), "silent make rules", etc. etc.
2014-03-20 13:10:05 +01:00
Uwe Hermann 1ca48e29d4 Makefile.am: Add missing HACKING file. 2013-09-25 14:26:35 +02:00
Uwe Hermann 50985c2019 GPL headers: Use correct project name. 2013-04-23 22:24:30 +02:00
Uwe Hermann c77ed446f2 Add initial README.devices file. 2013-03-14 19:49:33 +01:00
Uwe Hermann 79bb0e97d5 Add a testsuite for libsigrok.
This adds a suite of unit tests for libsigrok. It uses the 'Check'
tool/library (apt-get install check) to run the tests.

The configure tool tries to find libcheck. If it succeeds, a
"make check" will run all tests. Otherwise, none of the tests will
be built and "make check" will not run any tests.

This also means that users who don't have 'check' installed will still
be able to build and install libsigrok just fine.
2013-03-09 11:55:43 +01:00
Uwe Hermann 063e7aef6d Factor out common hw_init() driver code.
Most drivers do pretty much the same things in their hw_init()
right now, so factor out that code to std_hw_init() in std.c.
2013-01-29 12:56:02 +01:00
Uwe Hermann bd58d8f3ec Makefile.am: Fix typo in 'ChangeLog' target. 2013-01-14 11:13:58 +01:00
Bert Vermeulen 6936ee4206 remove datastore functionality
Keeping a copy of acquired data is up to the frontend, not libsigrok.
2013-01-08 14:14:44 +01:00
Uwe Hermann 296821683d Makefile.am: Add missing backslash. 2012-10-22 11:54:40 +02:00
Alexandru Gagniuc d375b3c3ec radioshack-dmm: Add support for Radioshack 22-812 DMM
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2012-10-15 17:32:58 +02:00
Uwe Hermann b5a8e84825 sr: Add sr_strerror() and sr_strerror_name(). 2012-07-12 23:23:07 +02:00
Bert Vermeulen 45c59c8bdd sr: moved sigrok.h so libsigrok/libsigrok.h
All frontends will have to include <libsigrok/libsigrok.h> from now on.
This header includes proto.h and version.h, both installed from the
distribution into $INCLUDE/libsigrok/ as well.

The only dynamically changed header is now version.h, which has both
libsigrok and libtool compile-time versions in it.
2012-07-05 01:17:28 +02:00
Uwe Hermann fb6f1978ed sr: New default firmware dir: $prefix/share/sigrok-firmware.
We no longer expect firmware files to be in the
$prefix/share/libsigrok/firmware directory, as that would require an
additional (distro) package 'sigrok-firmware' or the like to install
files into another package's (libsigrok) path, which can be problematic.

The current 'sigrok-firmware' repo's "make install" will already install
all files into $prefix/share/sigrok-firmware.
2012-05-30 00:00:33 +02:00
Uwe Hermann c09584085e sr/srd/cli/gtk: ChangeLog -> MAINTAINERCLEANFILES.
If the (generated) ChangeLog file is marked for DISTCLEANFILES, it'll be
removed whenever "make distclean" is called (and is then gone forever if
you use the tarballs, for example).
2012-05-29 20:30:15 +02:00
Uwe Hermann 787c43905d sr: Add functions to query sr version(s). 2012-04-15 20:33:45 +02:00
Uwe Hermann 1054920344 sr/srd: Fix 'make distcheck'. 2012-03-31 12:09:37 +02:00
Uwe Hermann 6dddd90224 sr: SR_PACKAGE_VERSION_* for consistency.
No need to use the LIBSIGROK_ prefix here when we use SR_ everywhere
else. Also, better distinction between package version and lib version.
2012-03-31 11:35:47 +02:00
Uwe Hermann 0fc12d66f1 sr: Generate ChangeLog from git upon 'make dist'. 2012-03-28 02:32:52 +02:00
Uwe Hermann c30b417f71 sr: Rename hwplugin.c to hwdriver.c. 2012-02-28 23:53:17 +01:00
Bert Vermeulen c73d2ea421 sr: adjust copyright year 2012-02-13 14:31:51 +01:00
Uwe Hermann dd8b5f565f sr/srd: Add Doxyfile to the tarball. 2012-01-04 02:50:26 +01:00
Uwe Hermann 3af71f0da6 sr: configure.ac: Fix version number magic. 2012-01-04 00:36:53 +01:00
Uwe Hermann d8521c939f Put most autotools files into autostuff/.
This yields a slightly more "tidy" top-level directory.
2012-01-03 23:34:31 +01:00
Uwe Hermann db8ae7b941 sr/srd: Remove/fix non-applicable autotools stuff. 2011-12-30 11:14:24 +01:00
Uwe Hermann 826938d81e sr/srd: Move some files to their resp. dirs. 2011-12-30 11:14:05 +01:00
Uwe Hermann 5e59cfbfc7 Move most contrib/ stuff to libsigrok.
The udev rules file is libsigrok-specific, the gnuplot files too.

The nsis files stay in the top-level contrib/ for now, they're not
really part of any of the (sub-)projects, but rather are used to create
a single Windows .exe installer for all of them.
2011-12-30 10:34:30 +01:00
Uwe Hermann b7f09cf86d libsigrok: Fix #includes.
In the lib, we should only #include "sigrok.h" or "sigrok-internal.h",
but not the (possibly installed and thus different/older versions) via
<sigrok.h> or <sigrok-internal.h>.

Frontends should of course use <sigrok.h> and <sigrok-internal.h>.
2011-12-28 23:07:08 +01:00
Uwe Hermann b08024a836 libsigrok: Introduce sr_dbg/sr_info/sr_warn/sr_err.
We should use these (internal) functions in libsigrok exclusively from
now on, i.e. no more use of glib's g_debug() etc.

These functions are only for libsigrok, the frontends use whatever
logging mechanism is suitable there.
2011-04-14 10:11:08 +02:00
Uwe Hermann 8a7b47cdfa Revert temporary changes for 0.2 release. 2011-04-03 23:18:46 +02:00
Uwe Hermann 2f3aab0ee9 Disable some stuff which should not be in 0.2.
Disable decoders, disable lib building.
2011-04-03 22:47:51 +02:00
Bert Vermeulen 7d65887435 implement session loading based on a virtual device driver 2011-01-31 22:34:14 +01:00
Bert Vermeulen 40f5ddac01 move samplerate/period printers and parsers into libsigrok 2011-01-31 22:29:40 +01:00
Uwe Hermann eeebceea31 Introduce proper libtool versioning for the libs. 2011-01-23 21:09:37 +01:00
Uwe Hermann 5819184b22 Remove duplicate FIRMWARE_DIR includes.
We use AC_DEFINE_UNQUOTED in configure.ac now to put the FIRMWARE_DIR #define
in the config.h file, which is included where we need the #define.
2011-01-21 21:14:37 +01:00
Uwe Hermann f95fd1aaf3 Install an empty firmware/ directory.
This reduces the hassle for the users (and distro packages) a bit, you
only need to copy files into there now.
2011-01-20 23:23:06 +01:00
Uwe Hermann bffed4fc10 Re-enable stuff we temporarily disabled for 0.1. 2011-01-20 00:43:57 +01:00
Uwe Hermann c70fce6ba6 Don't install libs and headers in the 0.1 release.
The library APIs are not yet usable or finalized, so don't expose the
libs for now. Instead, only install sigrok-cli, the manpages, and
the decoders.
2011-01-19 19:20:44 +01:00
Uwe Hermann 1483577eed Start moving private stuff to sigrok-internal.h.
This is work-in-progress, unfinished.
2011-01-15 15:57:54 +01:00
Bert Vermeulen 882e2075bb finish split of sigrok.h 2011-01-10 13:47:24 +01:00
Uwe Hermann 340f6e7aea Fix out-of-tree build.
Use libtool "noinst" local helper libs and use one Makefile.am per
subdir, which is the usual/preferred method. These helper libraries are
purely local and will not be installed.

This also fixes out-of-tree builds of sigrok, i.e. building in a
directory other than the sigrok source directory, e.g.

 $ cd /home/user
 $ git clone ...sigrok
 $ cd sigrok
 $ ./autogen.sh
 $ mkdir /tmp/foo
 $ cd /tmp/foo
 $ /home/user/sigrok/configure
 $ make
 $ make install

This will place all build results (.o files, .la files, etc) in the
local build directory (/tmp/foo) instead of the source directory
(/home/user/sigrok in this example). The installation directory is
selected via the --prefix configure option (/usr/local per default).
2011-01-08 03:32:25 +01:00
Uwe Hermann 6239c175c1 Initial, unfinished demo/simulation hardware driver. 2011-01-06 19:16:47 +01:00
Uwe Hermann 960a75e474 Only build hardware plugins if requested by user.
Per default all plugins will be built, though. The user can override
this via the --disable-la-xxxx options.
2010-06-25 01:11:11 +02:00
Uwe Hermann 5b907f9b07 Add per-LA --enable-XXXX configure options. 2010-05-31 12:43:08 +02:00
Uwe Hermann 9a5c6dcf49 Factor out opendev2/opendev3. 2010-05-18 00:05:10 +02:00
Uwe Hermann d658e348a8 pkg-config: Add (semi-generated) libsigrok.pc. 2010-05-11 22:28:09 +02:00
Bert Vermeulen 34e4813f2e inout module infrastructure + binary input module 2010-04-30 16:09:47 -07:00
Håvard Espeland 28a35d8ab3 This commit adds initial support for the Asix Sigma Logic Analyzer. Currently, only 200 MHz is supported, and only with software trigger. Firmware for the device will be distributed separately, with permission from the vendor.
Signed-off-by: Håvard Espeland <gus@ping.uio.no>
2010-04-27 13:16:01 -07:00
Uwe Hermann 62c8202582 libsigrok: More coding style fixes. 2010-04-15 20:16:53 +02:00
Uwe Hermann 1c5b9d302c Add raw binary output format.
Also, rename the "bin" format to "bits" for now to avoid confusion.
2010-04-12 21:22:58 +02:00
Uwe Hermann 25e7d9b115 Factor out common sigrok_samplerate_string(). 2010-04-07 20:13:57 +02:00
Uwe Hermann e2ad47b5b0 Gnuplot output format support. 2010-04-06 16:54:37 +02:00
Uwe Hermann 4c9ffa83cf Initial Value Change Dump (VCD) output support. 2010-04-04 13:19:20 +02:00
Uwe Hermann a695d6c075 Rename libbackend to libsigrok. 2010-04-02 20:27:59 +02:00
Uwe Hermann a1bb33afbd Start of code base layout restructuring. 2010-04-02 20:27:54 +02:00