SQ50 patches for libsigrok
Go to file
Russ Dill 42ceb77726 zeroplus: Major rework of sample buffer processing
The sample buffer is a still a bit of a mystery, but this should help.
The variables in play:

triggerbar/ramsize_trigger - These two variables added together indicate
how many samples we want captured. ramsize_trigger - triggerbar
indicades how many samples must be captured. The ratio between the two
is determined by capture ratio.

memory_size - This indicates the number of samples in the circular
capture buffer. stop_address, now_address, and trigger_address are
pointers within the zeroplus that wrap based on this size.

now_address - The address that the zeroplus was about to write to when
it finished capturing, and now the address that will be read from when
reads are done from the capture buffer

stop_address - The address that the zeroplus last wrote to when it
completed capture.

trigger_address - The sample address for which the trigger occured.

status - This one is a bit tricky. Some testing has shown that if the
zeroplus has captured memory_size or less samples, the STATUS_READY bit
is set. For all captures generated with more samples than this,
STATUS_READY was cleared. However, boundary conditions are difficult to
test and values such as, memory_size + 1 have not been tested. We use
this to determine if the capture has wrapped through the sample buffer.

More testing is required, but this improves behavior in a number of
cases, specifically capturing sample amounts that are not a power of 2
of the sample buffer size. Before, random data was passed to libsigrok.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
2014-01-03 15:09:11 +01:00
bindings python: Use OrderedDict for input formats. 2013-12-17 16:29:41 +00:00
contrib Add udev rule for Agilent DSO1000 series. 2013-12-29 01:48:40 +01:00
hardware zeroplus: Major rework of sample buffer processing 2014-01-03 15:09:11 +01:00
input log prefixes: Cosmetics, consistency fixes, typo fixes. 2013-12-27 13:17:20 +01:00
output output/analog: Add missing space (consistency). 2014-01-01 17:38:05 +01:00
tests Fix test failure 2013-12-07 12:25:18 +01:00
.gitignore .gitignore: Add some files from the testsuite. 2013-08-05 13:19:21 +02:00
AUTHORS autotools: Don't use "foreign" option. 2013-03-17 13:15:56 +01:00
COPYING sr/srd: Move some files to their resp. dirs. 2011-12-30 11:14:05 +01:00
Doxyfile Doxyfile/Doxyfile_internal: Ignore doxy/* when creating docs. 2013-12-27 15:50:27 +01:00
Doxyfile_internal Doxyfile/Doxyfile_internal: Ignore doxy/* when creating docs. 2013-12-27 15:50:27 +01:00
HACKING HACKING: Updates, some additions. 2013-11-04 01:14:56 +01:00
Makefile.am Makefile.am: Add missing HACKING file. 2013-09-25 14:26:35 +02:00
NEWS NEWS: Update for upcoming 0.2.2 release. 2013-11-04 01:24:49 +01:00
README Bump minimum libusb version to 1.0.16 2013-12-19 10:45:36 +01:00
README.devices Add support for the UNI-T UT61B multimeter. 2014-01-01 15:28:44 +01:00
autogen.sh GPL headers: Use correct project name. 2013-04-23 22:24:30 +02:00
backend.c Doxygen fixes: Hide private stuff, document some structs. 2013-12-27 16:18:28 +01:00
configure.ac appa-55ii: driver implementation with Live and Memory data source support 2013-12-23 01:21:52 +01:00
device.c Doxygen fixes: Hide private stuff, document some structs. 2013-12-27 16:18:28 +01:00
error.c error.c: Add SR_ERR_PROBE_GROUP handling. 2013-11-11 07:53:52 +01:00
filter.c Centralise duplicated logging helper defines. 2013-12-27 12:54:05 +01:00
hwdriver.c Add initial support for the V&A VA40B multimeter. 2014-01-02 01:46:15 +01:00
libsigrok-internal.h Add initial support for the V&A VA40B multimeter. 2014-01-02 01:46:15 +01:00
libsigrok.h Add config keys for setting the number of analog probes. 2013-12-29 10:58:56 +01:00
libsigrok.pc.in Always link against the math library. 2013-05-10 21:46:30 +02:00
log.c Centralise duplicated logging helper defines. 2013-12-27 12:54:05 +01:00
proto.h Fix a few #include guard names. 2013-12-17 17:45:18 +01:00
session.c Centralise duplicated logging helper defines. 2013-12-27 12:54:05 +01:00
session_driver.c Add config keys for setting the number of analog probes. 2013-12-29 10:58:56 +01:00
session_file.c Add config keys for setting the number of analog probes. 2013-12-29 10:58:56 +01:00
std.c Centralise duplicated logging helper defines. 2013-12-27 12:54:05 +01:00
strutil.c Doxygen fixes: Hide private stuff, document some structs. 2013-12-27 16:18:28 +01:00
version.c GPL headers: Use correct project name. 2013-04-23 22:24:30 +02:00
version.h.in GPL headers: Use correct project name. 2013-04-23 22:24:30 +02:00

README

-------------------------------------------------------------------------------
README
-------------------------------------------------------------------------------

The sigrok project aims at creating a portable, cross-platform,
Free/Libre/Open-Source signal analysis software suite that supports various
device types (such as logic analyzers, oscilloscopes, multimeters, and more).

libsigrok is a shared library written in C which provides the basic API
for talking to hardware and reading/writing the acquired data into various
input/output file formats.


Status
------

libsigrok is in a usable state and has had official tarball releases.

While the API can change from release to release, this will always be
properly documented and reflected in the package version number and
in the shared library / libtool / .so-file version numbers.

However, there are _NO_ guarantees at all for stable APIs in git snapshots!
Distro packagers should only use released tarballs (no git snapshots).


Requirements
------------

 - git
 - gcc (>= 4.0)
 - make
 - autoconf >= 2.63
 - automake >= 1.11
 - libtool
 - pkg-config >= 0.22
 - libglib >= 2.32.0
 - libzip >= 0.10
 - libserialport >= 0.1.0 (optional, used by some drivers)
 - libusb-1.0 >= 1.0.16 (optional, used by some drivers)
 - libftdi >= 0.16 (optional, used by some drivers)
 - libudev >= 151 (optional, used by some drivers)
 - libasound / alsa-lib >= 1.0 (optional, only used by the alsa driver)
 - check >= 0.9.4 (optional, only needed to run unit tests)


Building and installing
-----------------------

In order to get the libsigrok source code and build it, run:

 $ git clone git://sigrok.org/libsigrok
 $ cd libsigrok
 $ ./autogen.sh
 $ ./configure
 $ make

For installing libsigrok:

 $ make install

See INSTALL or the following wiki page for more (OS-specific) instructions:

 http://sigrok.org/wiki/Building


Device-specific issues
----------------------

Please check README.devices for some notes and hints about device- or
driver-specific issues to be aware of.


Firmware
--------

Some devices supported by libsigrok need a firmware to be uploaded before the
device can be used. See README.devices for details.


Copyright and license
---------------------

libsigrok is licensed under the terms of the GNU General Public License
(GPL), version 3 or later.

While some individual source code files are licensed under the GPLv2+, and
some files are licensed under the GPLv3+, this doesn't change the fact that
the library as a whole is licensed under the terms of the GPLv3+.

Please see the individual source files for the full list of copyright holders.


Mailing lists
-------------

There are two mailing lists for sigrok/libsigrok:

 https://lists.sourceforge.net/lists/listinfo/sigrok-devel
 https://lists.sourceforge.net/lists/listinfo/sigrok-commits


IRC
---

You can find the sigrok developers in the #sigrok IRC channel on Freenode.


Website
-------

 http://sigrok.org/wiki/Libsigrok