Commit Graph

154 Commits

Author SHA1 Message Date
Uwe Hermann 7c1d391c8b sr: input/output: Mark more symbols with SR_PRIV. 2012-02-05 15:05:13 +01:00
Uwe Hermann 0f8522bf74 Project-wide consistent naming for #include guards.
Document the naming scheme in HACKING.
2012-02-05 15:05:13 +01:00
Uwe Hermann 1a081ca67d sr: Mark API functions with SR_API/SR_PRIV.
Use SR_API to mark public API symbols, and SR_PRIV for private symbols.

Variables and functions marked 'static' are private already and don't
need SR_PRIV. However, functions which are not static (because they need
to be used in other libsigrok-internal files) but are also not meant to
be part of the public libsigrok API, must use SR_PRIV.

This uses the 'visibility' feature of gcc (requires gcc >= 4.0).

Details: http://gcc.gnu.org/wiki/Visibility
2012-02-02 00:03:17 +01:00
Uwe Hermann 66410a8617 sr: g_free()/g_string_free() can handle NULL input. 2012-01-19 00:32:02 +01:00
Uwe Hermann 0da5b6a9f5 sr: Remove useless filename prefixes. 2012-01-03 20:01:02 +01:00
Uwe Hermann cd315a80d8 sr/srd: Fix left-over #includes.
The libs themselves should use #include "sigrok.h" etc., while the
frontends must use #include <sigrok.h> and so on.
2012-01-03 19:56:01 +01:00
Uwe Hermann db8ae7b941 sr/srd: Remove/fix non-applicable autotools stuff. 2011-12-30 11:14:24 +01:00
Uwe Hermann cb93f8a927 Other method to avoid "unused var" compiler warnings.
The '(void)varname' method is nicer than 'varname = varname' and also
prevents warnings when compiling sigrok with clang instead of gcc.
2011-11-24 22:57:48 +01:00
Uwe Hermann 719c5a934c Fix some compiler warnings. 2011-11-15 21:05:40 +01:00
Uwe Hermann 548b08e55c Drop unneeded skeleton files.
They're not too useful as they mostly consist of a list of function names,
and that list is already available in the respective struct. The wiki
API docs and the code in the various hardware/output drivers serve as
useful examples already, no need for additional files.
2011-05-05 13:06:12 +02:00
Uwe Hermann 02604ed6de Initial support for CSV as output format. 2011-04-27 00:25:57 +02:00
Uwe Hermann b53738baf7 Replace g_malloc{0,} with g_try_malloc{0,}.
The g_malloc()/g_malloc0() versions exit/segfault if not enough memory
is available, which is not a good thing in libsigrok.

Instead, we use the g_try_malloc()/g_try_malloc0() variants, which
return NULL if not enough memory is available, so that the caller can
handle the error properly.
2011-04-16 18:08:15 +02:00
Uwe Hermann 50959ddcdc gnuplot output: Optimize by only storing changes.
Only output new lines in gnuplot output if there have been changes in
the samples (similar to what VCD does). As long as the first and last
sample are output, the resulting plot looks OK.

This reduces the size of the output file from roughly 200MB to just 60KB
in one specific test setup (depends on the number of probes and on the
signal, of course). The time and CPU load required to generate the gnuplot
output and the resulting plot (PNG or other) is also drastically reduced
from multiple minutes to roughly 30 seconds (again, depends on various
things).

Thanks Ken Mobley of ChronoVu for the report.
2011-04-15 21:49:22 +02: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 8c48f17944 Add chronovu-la8 output file format. 2011-04-10 23:59:38 +02:00
Uwe Hermann 20ebd1fe1d gnuplot output: More error checks. 2011-04-10 23:03:34 +02:00
Uwe Hermann cdb3573ceb input/output formats: s/extension/id/.
The struct entry 'extension' is not really a (filename) extension, but
rather a unique ID used for input or output formats, e.g. in the sigrok
CLI or GUI interface. Thus, rename it accordingly.
2011-04-10 23:03:34 +02:00
Uwe Hermann 819184ee68 Binary output: Add more error checks. 2011-04-10 23:03:33 +02:00
Uwe Hermann d494a4aa9d input/output formats: Explicit struct member names.
This makes it immediately clear what an entry is supposed to be, no
need to look it up in some header file.
2011-04-10 23:03:33 +02:00
Uwe Hermann 847c21bc65 Hook up output/text directory with autotools.
This is needed for 'make distcheck' to work.

Also, add missing text.h to the list of source files.
2011-04-03 20:15:12 +02:00
Bert Vermeulen 4487177c79 output_ols: disabled cursors don't really need to be listed 2011-04-03 06:18:05 +02:00
Uwe Hermann 120b259ea8 Drop obsolete vcd_header. 2011-03-03 20:24:25 +01:00
Uwe Hermann d078d2e5f3 Make some more items 'static'. 2011-03-03 20:24:25 +01:00
Uwe Hermann 59df0c77e2 Add SR_ prefix to the KHZ/MHZ/GHZ macros. 2011-03-03 20:24:24 +01:00
Uwe Hermann 9688b443f6 Add SR_ prefix for MAX_NUM_PROBES/MAX_PROBENAME_LEN. 2011-02-20 21:16:26 +01:00
Uwe Hermann 54ac5277c5 Constify some more 'char *' parameters. 2011-02-20 21:16:26 +01:00
Uwe Hermann 809c5f2011 Add sr_ prefix for analog stuff some structs. 2011-02-20 21:16:24 +01:00
Uwe Hermann 77b454421a Disable analog bits/gnuplot output for now. 2011-02-20 21:16:20 +01:00
Bert Vermeulen 305bde4d42 implement version 1.3 of the OLS output format, now streaming 2011-02-12 06:18:16 +01:00
Uwe Hermann 2bf4aca64a Add sr_ prefix for device related API functions. 2011-02-08 22:28:02 +01:00
Uwe Hermann 1afe89897c Add sr_ prefix for 'struct probe'. 2011-02-08 22:27:58 +01:00
Bert Vermeulen 6e738600eb output_ols: now fully compliant with spec 2011-02-01 06:13:32 +01:00
Bert Vermeulen 3a28509817 don't just assume a device has a samplerate setting 2011-02-01 02:33:54 +01:00
Bert Vermeulen 40f5ddac01 move samplerate/period printers and parsers into libsigrok 2011-01-31 22:29:40 +01:00
Uwe Hermann 5a2326a71b SR_ prefix for all public enums. 2011-01-30 18:32:59 +01:00
Uwe Hermann a00ba01228 Change all sigrok_ prefixes to sr_. 2011-01-30 18:32:55 +01:00
Uwe Hermann f50f3f40d9 Add sr_ prefix to input/output structs. 2011-01-30 18:32:54 +01:00
Uwe Hermann e46b8fb154 Change SIGROK_ prefix to SR_. 2011-01-30 18:32:53 +01:00
Uwe Hermann ff35879bb7 Fix some compiler warnings. 2011-01-27 23:17:47 +01:00
Bert Vermeulen 97554432e8 split output_text into more manageable pieces 2011-01-22 04:35:02 +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
Daniel Ribeiro 81bbdf6a6a add incomplete DF_ANALOG support to output_gnuplot.c
RAW->Voltage conversion is not implemented yet, its hardcoded for
signed 16bit conversion.
2011-01-21 16:11:44 -02:00
Daniel Ribeiro 6eb0e3ea95 change output_text.c to support analog
Only the "bits" output format was converted.
Analog values, are scaled down to A-Z letters.
2011-01-21 02:12:48 -02:00
Daniel Ribeiro f3163a6c2e make output_analog.c = output_text.c 2011-01-21 02:12:48 -02:00
Håvard Espeland 32c0551ba6 output_vcd: Make timestamp work on 32-bit machine. 2011-01-18 23:17:55 +01:00
Håvard Espeland afa8f8449a output_text: Mark trigger at correct position.
ASCII output does not separate groups of samples with
and must be handled separately.
2011-01-18 22:14:36 +01:00
Håvard Espeland 6ef7a8cb5d output_text: Fix ASCII edge case. 2011-01-18 22:13:50 +01:00
Håvard Espeland d4f228d094 output_text: Add ASCII output. 2011-01-17 22:56:14 +01:00
Håvard Espeland b33e7d7058 output_vcd: Emit timestamps as time, not sample num. 2011-01-16 17:55:51 +01:00
Håvard Espeland 08b488b848 output_vcd: Remember samples between packets.
Fixes two bugs in vcd output:
1) Waveform did not match original input when viewed in gtkwave.
2) No vcd output when using 1 MHz sampling on Sigma.
2011-01-16 17:34:49 +01:00
Uwe Hermann 10c471ab13 Fix warnings. 2011-01-16 14:18:26 +01:00
Bert Vermeulen fbf1ff5d22 clean up output_vcd module
use self-expanding strings, better standards conformance
2011-01-16 04:34:45 +01:00
Uwe Hermann ab224f7b61 Initial support for the OLS output format.
This is the file format for the OpenBench Logic Sniffer "Alternative" client.
Details: https://github.com/jawi/ols/wiki/OLS-data-file-format

This is work-in-progress.
Currently the number of samples is hardcoded to 10000. Also, this will
require a real logic analyzer as input at the moment, and will not yet
work with the "demo" driver.
2011-01-15 19:05:14 +01:00
Håvard Espeland 9d7ab9ba3b output_text: Allocate more memory for output
The trigger line was forgotten. Allocate 512 bytes extra.
2011-01-15 18:24:01 +01:00
Håvard Espeland 3aa403e858 output_text: Allocate enough memory for output 2011-01-15 16:12:12 +01:00
Uwe Hermann 484760d1a8 Cosmetics. 2011-01-15 15:57:54 +01:00
Bert Vermeulen f7606f9b75 fix hex output 2011-01-15 15:25:08 +01:00
Bert Vermeulen 9ab95e5408 make output modules a bit more crashproof
the event handler in output modules is now optional.
2011-01-13 07:55:35 +01:00
Bert Vermeulen 2507648e63 use us instead of µs in periods (VCD can't handle it) 2011-01-13 07:55:35 +01:00
Bert Vermeulen 78ed642035 code cleanup 2011-01-11 23:59:33 +01:00
Bert Vermeulen 655756e01d cli: new option to list output modules 2011-01-10 12:39:53 +01:00
Bert Vermeulen 9b36e360f3 output_analog: allow samples per line arg (default analog10) 2011-01-10 05:27:22 +01:00
Bert Vermeulen 1437e8934b add DF_ANALOG, and an analog output module
Samples in DF_ANALOG packets are fixed in length to sizeof(double).
2011-01-10 05:13:46 +01:00
Bert Vermeulen f0411b1d17 output modules now register the DF type they can use 2011-01-09 23:23:56 +01:00
Bert Vermeulen d4ae8eaa7c fix buffer size, various error checks 2011-01-08 15:50:14 +01:00
Bert Vermeulen 2a3f9541a4 add sigrok_period_string(), MAX_NUM_PROBES 2011-01-08 15:50:13 +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 757b8c628a Cosmetics, whitespace, simplifications.
Reduce code nesting a bit, constify some strings.
2011-01-08 01:49:47 +01:00
Bert Vermeulen 339729131d proper fix for output_text corner cases
limit probe names to 32 chars
2010-12-29 01:22:58 +01:00
Bert Vermeulen ee5f5e81ad fix corner cases/memory management (cli->text out) 2010-12-28 21:59:07 +01:00
Uwe Hermann 38ba252251 Use 'kHz' (not 'KHz') consistently. 2010-05-27 01:51:55 +02:00
Uwe Hermann fbe2f7945d VCD: Optimizations and fixes. 2010-05-09 22:06:30 +02:00
Uwe Hermann 086eac7c7b VCD/Gnuplot: Fix incorrect sample counter. 2010-05-09 22:06:30 +02:00
Uwe Hermann 114fb93f67 Gnuplot: Nicer output formatting. 2010-05-09 22:06:30 +02:00
Uwe Hermann 5f8c4cb363 Gnuplot: Improve column/probe name display.
This fixes incorrect probe name display if the user explicitly named
probes via '-p 1=CLK' etc.
2010-05-09 22:06:29 +02:00
Uwe Hermann e734b81a68 output_text: More error handling. 2010-05-09 22:06:29 +02:00
Uwe Hermann caf62e22c4 output_gnuplot: Simplify event(). 2010-05-09 22:06:28 +02:00
Uwe Hermann d20ba6490a output_binary: Code simplifications. 2010-05-09 22:06:28 +02:00
Uwe Hermann 1e32053cd0 Gnuplot quickfix: Increase malloc()'ed size. 2010-05-09 22:06:28 +02:00
Uwe Hermann 5cca9adbf2 VCD/Gnuplot: Store time/date in output. 2010-05-09 22:06:28 +02:00
Uwe Hermann 607b58de58 VCD/Gnuplot: Cosmetics, code simplifications. 2010-05-09 22:06:27 +02:00
Uwe Hermann a821069b34 Gnuplot output: More error handling. 2010-05-09 22:06:27 +02:00
Uwe Hermann 6b5e3ceefc VCD: Improve error handling/checking.
Check malloc()/calloc() return values and so on. Also, add missing
free() calls and some TODOs. Simplify some code.
2010-05-09 22:06:26 +02:00
Bert Vermeulen d2b36a10d7 output_text: always print sigrok version 2010-05-07 23:55:32 +02:00
Bert Vermeulen c9c1c6458c output_binary: rm TODO item
Yes, disabled probes are stripped by the filter before the
output module even gets data.
2010-05-07 23:55:32 +02:00
Bert Vermeulen 7aae74622e output: if device has no plugin, don't report samplerate 2010-05-07 23:52:48 +02:00
Håvard Espeland e273a9040e Output: Fix invalid pointer dereferencing in vcd and gnuplot. 2010-05-04 19:44:39 +02:00
Håvard Espeland 5045c217e6 cli: Show trigger event in bits plugin. 2010-05-01 00:04:07 +02:00
Bert Vermeulen 9601818842 simplify code for unused features 2010-04-18 10:57:13 -07:00
Uwe Hermann 408e719989 Refactoring and code simplifications. 2010-04-15 23:21:30 +02:00
Uwe Hermann 99c1fc59ed output: Coding style fixes. 2010-04-15 20:36:04 +02:00
Uwe Hermann 02076d69f9 Rename "bin" output module to "bits" everywhere. 2010-04-12 23:21:12 +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 afc8e4deb6 Fix all warnings and re-enable -Wextra. 2010-04-09 22:18:46 +02:00
Bert Vermeulen 37aea2d35c better buffer size calculation 2010-04-08 16:50:27 +02:00
Bert Vermeulen d2cd86ac26 fix off-by-one error 2010-04-08 16:50:27 +02:00
Uwe Hermann 25e7d9b115 Factor out common sigrok_samplerate_string(). 2010-04-07 20:13:57 +02:00
Uwe Hermann bc010c054b VCD output: Handle disabled probes correctly. 2010-04-06 16:54:39 +02:00
Uwe Hermann e2ad47b5b0 Gnuplot output format support. 2010-04-06 16:54:37 +02:00
Uwe Hermann e31b636df6 Start unification of libsigrok return codes.
We have SIGROK_OK for functions calls where no errors occured. All
error code names start with SIGROK_ERR and are globally unique,
negative values.

The value SIGROK_ERR is a generic/unspecified error code, all others,
such as SIGROK_ERR_MALLOC, refer to a specific error condition.

This commit renames the old SIGROK_NOK etc.
2010-04-05 18:30:14 +02:00