Commit Graph

108 Commits

Author SHA1 Message Date
Uwe Hermann 39e5d79826 serial: RTS/DTR support on Windows/MinGW. 2012-12-02 13:41:49 +01:00
Uwe Hermann a54dd31e38 serial: Use OS-independent flags for serial port opening.
Add SERIAL_RDWR, SERIAL_RDONLY, and SERIAL_NONBLOCK (for now), which are
mapped to the respective OS-specific mechanism in serial_open().
2012-12-02 12:45:54 +01:00
Uwe Hermann 0f84cda05d serial: Fix Windows build. 2012-12-01 22:34:53 +01:00
Bert Vermeulen 71caaad46b serial: allow for extra rts and dtr options in conn string
Options in addition to the usual "9600/8n1" syntax start with a
slash, and take the form of key=value, where different options are
also separated by slashes. For example:

	"9600/8n1/rts=0/dtr=1"

This sets RTS low and DTR high.
2012-11-27 00:55:08 +01:00
Uwe Hermann 700dcd5caa serial: Initial code for setting DTR/RTS.
Currently disabled until option parsing is in place.
2012-11-26 17:01:15 +01:00
Alexandru Gagniuc 551c3d8ce3 serial.c: Sanitize serial_stream_detect
Print the timeout in miliseconds, not microseconds.
Only calculate elapsed time once oer loop.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2012-11-21 19:18:21 -06:00
Uwe Hermann 766456be1c Move serial_stream_detect() to serial.c. 2012-11-14 18:40:07 +01:00
Uwe Hermann 4da1a800df serial: Compile-fix for Windows/MinGW. 2012-11-14 18:20:13 +01:00
Bert Vermeulen 299bdb249e serial: revamp internal API
The only thing to get passed around now is the struct sr_serial_dev_inst
pointer. This should make things more portable as well.
2012-11-12 00:27:17 +01:00
Bert Vermeulen 5df7b20156 serial: avoid Cyrillic conversion specifiers 2012-11-11 03:27:51 +01:00
Alexandru Gagniuc a99e0d2a0c ols: Do not randomly probe serial ports
ols driver used to probe a series of available serial ports obtained
by regexp matching of common serial port names.
There are a number of problems with this approach:
1. It will probe all serial devices, including devices that do not
like to be probed, potentially causing them to act up.
2. It will try to probe serial ports which may already be opened in
other applications for other purposes.
3. It assumes the naming of the serial ports is set in stone, and
creates an unnecessary OS-specific list.
4. It produces unnecessary debug output even when an OLS device is
not connected.
5. etc...

Do not implicitly probe serial ports. Only probe the port specified
by the frontend, if any; otherwise, just quit.
Also get rid of all functionality in serial.c which was designed
specifically for random probing.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2012-11-11 03:12:10 +01:00
Uwe Hermann 302c4b5ab5 serial: Deduplicate log messages a bit. 2012-11-10 01:45:51 +01:00
Bert Vermeulen 318dd53c70 serial_readline() now terminates on and strips CR and/or LF 2012-11-07 01:24:23 +01:00
Bert Vermeulen b87f8504dc g_get_monotonic_time() takes a signed int64 2012-11-07 01:23:24 +01:00
Uwe Hermann 83e3c368c6 serial: Output successful open and the FD. 2012-11-02 18:49:00 +01:00
Uwe Hermann 20af610683 serial: Fix two segfaults. 2012-11-02 18:45:37 +01:00
Uwe Hermann c485db908a serial: Fix some sr_err() items. 2012-11-02 18:35:30 +01:00
Uwe Hermann b19f4622b6 serial: More error-checking & logging, add baudrates.
This mostly affects the non-Windows code so far, the rest will follow.
2012-11-02 18:02:20 +01:00
Uwe Hermann d7c776b9ff serial: Add missing "break"s.
This would otherwise cause bugs when e.g. asking for 2 stopbits.
2012-11-02 15:57:21 +01:00
Uwe Hermann 886a52b6fb Return SR_ERR_MALLOC upon allocation errors.
Add some TODOs.
2012-10-30 20:25:54 +01:00
Uwe Hermann 6f22a8ef2c Factor out serial_readline() to serial.c.
Only one (slightly different) variant remains in agilent-dmm, this will
be merged soon too, though.
2012-10-30 19:59:21 +01:00
Alexandru Gagniuc 0f70830194 libsigrok: (Trivial) Add support for 2400 baud
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2012-10-20 23:02:14 +02:00
Alexandru Gagniuc e8e9dcdd70 serial: (Trivial) add support for 4800 baud
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2012-10-15 17:32:58 +02:00
Bert Vermeulen fb9d3bf9cc sr: always turn off ICRNL on serial ports
It does rather screw with protocols that use CR.
2012-09-25 19:53:05 +02:00
Bert Vermeulen 5c51e09868 sr: turn off canonical mode and echo ion serial ports by default 2012-09-25 19:53:05 +02:00
Bert Vermeulen 792fc68658 serial: add serial_set_paramstr() 2012-09-02 15:42:56 +02:00
Bert Vermeulen f38b9763fa serial: fix flow control setting 2012-09-02 15:42:56 +02:00
Bert Vermeulen 6a6e23abf5 serial: set speed in both directions 2012-09-02 15:42:56 +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
Bert Vermeulen f8c1fcda46 sr: use proper definitions for parity setting
ols driver fixed to use these as well.
2012-07-01 22:31:31 +02:00
Uwe Hermann 0abee5076f sr: Fix some TODOs, improve comments/docs. 2012-03-04 15:10:12 +01:00
Bert Vermeulen c73d2ea421 sr: adjust copyright year 2012-02-13 14:31:51 +01:00
Uwe Hermann 133a37bfba Use g_try_malloc/g_free/g_strdup consistently.
Avoid plain malloc()/free() in sr/srd, especially in the API calls.
Also avoid g_malloc*() in favor of g_try_malloc*().

Use g_strdup() instead of strdup() so that we can use g_free()
consistently everywhere.

Exceptions: Stuff that is allocated via other libs (not using glib),
should also be properly free'd using the respective free-ing function
(instead of g_free()). Examples: Stuff allocated by libusb, libftdi, etc.

Also, use sr_err() instead of sr_warn() for actual errors. sr_warn() is
meant for non-fatal/uncritical warnings.
2012-02-11 22:34:16 +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 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 a0ecd83bc6 Make more variables/functions static and non-global.
The 'GSList *devices' from device.c was actually really global (i.e.,
listed in sigrok.h), which is now fixed.
2011-12-28 22:55:21 +01:00
Jerry 9a75102313 Mac OS X build fixes 2011-06-20 23:43:44 +02:00
Uwe Hermann c548332c21 serial.c: Use g_try_malloc(). 2011-04-16 18:08:18 +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
Uwe Hermann a9f54bcd7b MinGW: Build fixes. 2011-02-02 13:13:26 +01:00
Uwe Hermann e46b8fb154 Change SIGROK_ prefix to SR_. 2011-01-30 18:32:53 +01:00
Uwe Hermann bffed4fc10 Re-enable stuff we temporarily disabled for 0.1. 2011-01-20 00:43:57 +01:00
Bert Vermeulen 576790ff7b disable MSO-19 specific stuff for 0.1 release 2011-01-19 22:58:09 +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
Uwe Hermann 2119ab0364 MinGW/Windows: Serial port portability fixes.
Add serial_read()/serial_write() which have different implementations on
MinGW/Windows.

Add some more error code handling and documentation.
2011-01-12 01:09:31 +01:00
Uwe Hermann 1fdb75e145 MinGW: Quickfix to make serial.c/ols.c compile.
Note: It does NOT actually work, yet, it only compiles!
2011-01-11 01:27:16 +01:00
Daniel Ribeiro ac4a2ea45a serial.c: fix parity != none
The flag write was wrong
2011-01-10 15:05:14 -02:00
Daniel Ribeiro 1ff7712c93 Finish serial_set_params implementation
Adds the most common baud rates and support bits, parity, stopbits
and flocontrol settings.
2011-01-10 02:21:07 -02:00
Bert Vermeulen f0551a6543 oops, fix serial_flush() 2010-08-12 06:04:44 +02:00
Bert Vermeulen 06d64eb880 add serial_flush() 2010-08-12 06:02:25 +02:00
Peter Stuge 71dda10656 serial: Remove unneccesary nesting 2010-05-09 23:10:23 +02:00
Uwe Hermann 926b866cb6 Win: Fix compile, serial port code (unfinished). 2010-04-22 03:39:02 +02:00
Uwe Hermann 986f7270bf hardware/common: Coding style fixes. 2010-04-15 20:55:57 +02:00
Uwe Hermann afc8e4deb6 Fix all warnings and re-enable -Wextra. 2010-04-09 22:18:46 +02:00
Bert Vermeulen d02a535e05 move posix-specific serial port comms to serial.c 2010-04-09 05:15:27 +02:00
Bert Vermeulen 54b38f64aa use strdup() instead of g_strdup() 2010-04-08 16:50:27 +02:00
Uwe Hermann a1bb33afbd Start of code base layout restructuring. 2010-04-02 20:27:54 +02:00