Commit Graph

131 Commits

Author SHA1 Message Date
Martin Ling 59131d6028 Initialise structure in sp_new_config(). 2013-11-23 20:55:18 +00:00
Martin Ling 9b1502efce Make configuration structure opaque. 2013-11-23 20:43:13 +00:00
Martin Ling 3c126654b3 Add sp_get_port_handle() function. 2013-11-23 17:50:45 +00:00
Martin Ling 1c5aae9dc5 Make port structure opaque. 2013-11-23 17:11:19 +00:00
Martin Ling 70cd37def2 Add back previously deleted sp_get_config function. 2013-11-23 12:04:21 +00:00
Martin Ling a6cda1e8c7 Fix swapped DCD & RI signals on Windows. 2013-11-23 11:59:42 +00:00
Martin Ling 6b93ede419 Return SP_ERR_SUPP from sp_list_ports() on unsupported platforms. 2013-11-23 11:57:17 +00:00
Martin Ling 64690702cb Generate debug output when returning using TRY() macro. 2013-11-23 11:49:35 +00:00
Martin Ling dec10e31d0 Additional argument checking. 2013-11-23 11:39:59 +00:00
Martin Ling ea667be751 Add additional debug messages. 2013-11-23 01:08:57 +00:00
Martin Ling c33efc482e Add debug output for all entry and exit points. 2013-11-23 00:26:44 +00:00
Martin Ling 92f756f8c1 Add debug macros. 2013-11-23 00:19:38 +00:00
Martin Ling 863b35e69c Add API for and default handler for debug messages. 2013-11-22 22:41:03 +00:00
Uwe Hermann 71c8a9b906 serialport.c: Add missing linux_termios.h #include.
This is safe to include (at the moment) on all non-win32 OSes, since it
doesn't contain anything OS-specific.
2013-11-22 22:41:23 +01:00
Martin Ling 6aabf62a90 Use new SP_ERR_SUPP error to indicate unsupported operations. 2013-11-22 21:46:26 +01:00
Martin Ling 68ec29db5e Check for termiox support at runtime. 2013-11-22 20:28:20 +01:00
Martin Ling 8d43110ad7 Fix memory leaks. 2013-11-22 20:28:20 +01:00
Uwe Hermann 1d5d2a166f Temporarily disable USE_TERMIOX code (breaks the lib).
On some systems the use of the code enabled by USE_TERMIOX leads to a
non-working sp_open() which breaks all functionality provided by the lib.

Thus, temporarily disable that code until the details are investigated.

This has been tested with a serial port DMM and the OLS logic analyzer
on an x86 64bit Linux system with kernel version 3.11. The code compiles
fine but doesn't work at runtime. The configure output included:

checking for struct termios2... yes
checking for struct termiox... yes

The root cause for the problem is that the ioctl(fd, TCGETX, data) call in
get_flow() returns -1 ("Invalid argument"), which in turn lets sp_open()
return SP_ERR_FAIL.
2013-11-22 16:44:19 +01:00
Uwe Hermann 24abdb680f Minor cosmetics. 2013-11-22 16:10:55 +01:00
Martin Ling 82f424e6cd Fix to sp_flush() on Unix. 2013-11-22 02:19:12 +01:00
Martin Ling 8cf7c6978f Add sp_get_signals() function. 2013-11-22 02:11:40 +01:00
Martin Ling 90cc3ee62b Add sp_start_break() and sp_end_break() functions. 2013-11-22 02:11:34 +01:00
Martin Ling 69a3739ca0 Add sp_drain() function. 2013-11-22 02:11:34 +01:00
Martin Ling fd8fd11a4e Make sp_flush take an option for what to flush. 2013-11-22 01:53:22 +01:00
Martin Ling a036341bdf Use a more logical set of SP_MODE_* flags. 2013-11-22 01:48:02 +01:00
Martin Ling 40978c2b41 Support non-standard flow control modes on Linux. 2013-11-21 11:52:41 +00:00
Martin Ling 7a6d2196e0 Support custom baudrates on Linux. 2013-11-21 11:51:08 +00:00
Matthias Heidbrink 31b3a8f5b5 Added support for non-standard baud rates for Apple. 2013-11-20 19:18:36 +00:00
Martin Ling e29b93a572 Retrieve XON/XOFF setting on Unix. 2013-11-19 20:46:52 +00:00
Uwe Hermann eac329d26b Cosmetics, whitespace, consistency fixes. 2013-11-19 19:32:01 +01:00
Uwe Hermann 705bdc6947 get_config(): Add a quickfix for xon_xoff.
The config->xon_xoff variable is not filled correctly with data read
from the current serial port config. Without this, the value of the
variable will be bogus and some code that depends on the variable will fail.

Note: This is just a temporary quickfix, not a proper final solution.
2013-11-19 19:32:01 +01:00
Uwe Hermann 23922313b3 set_config(): Add missing CS5 handling. 2013-11-19 12:32:01 +01:00
Martin Ling eb6ed20f51 Use named enums instead of ints for clearer documentation. 2013-11-19 02:36:22 +00:00
Martin Ling bf2cbd652f Mark config argument to sp_set_config as const. 2013-11-19 01:13:09 +00:00
Martin Ling 823690ae3e Additional argument checking for config functions. 2013-11-18 20:08:25 +00:00
Martin Ling 8f189c4c0f Remove sp_ prefix from private port data structure. 2013-11-18 20:04:54 +00:00
Martin Ling 348e23ccbb Tidy up static functions. 2013-11-18 20:02:30 +00:00
Martin Ling 8f471c669f Make sure OS handles are set correctly for unopened / closed ports. 2013-11-18 20:00:15 +00:00
Martin Ling c6754b4517 Get Xon/Xoff status on Windows. 2013-11-18 19:55:43 +00:00
Martin Ling e33ab9aaf2 Refactor port configuration code. 2013-11-18 19:52:37 +00:00
Martin Ling 067417af4f Add sp_get_config() function. 2013-11-16 20:55:53 +00:00
Martin Ling da2748bfb3 Eliminate lengthy switch/case blocks for baudrates. 2013-11-15 11:43:07 +00:00
Martin Ling 18fc2dd12b Add sp_set_flowcontrol helper function. 2013-11-15 11:43:07 +00:00
Martin Ling 824dcb4561 Store control bits in sp_port_data on Unix. 2013-11-15 11:43:07 +00:00
Martin Ling 9069c2fbb2 Add functions for setting individual port parameters. 2013-11-15 11:43:07 +00:00
Martin Ling 9cb98459a8 Apply sane termios settings at port open time. 2013-11-15 11:43:07 +00:00
Martin Ling 80186526b2 Add prototypes for config helper functions. 2013-11-15 11:43:07 +00:00
Martin Ling 9f90173cbd Retrieve current control line settings in start_config. 2013-11-15 11:43:07 +00:00
Martin Ling d514a26f81 New API for serial control lines. 2013-11-15 11:43:07 +00:00
Martin Ling cbf628c7fe Move cfset{i,o}speed() calls to set_baudrate(). 2013-11-15 11:43:07 +00:00
Martin Ling a46f0960a2 Use negative values in sp_port_config to retain existing settings. 2013-11-15 11:43:07 +00:00
Martin Ling d1202734fb Replace sp_set_params with sp_set_config, which takes a struct. 2013-11-15 11:43:07 +00:00
Uwe Hermann f92f1f0c20 Minor cosmetics, typos, and so on. 2013-11-15 00:42:40 +01:00
Martin Ling 8094e4a0ce Divide sp_set_params into separate helper functions. 2013-11-15 00:42:40 +01:00
Martin Ling 767c5ba80e Include <stdio.h> on Windows for sprintf, used in sp_open. 2013-11-15 00:42:40 +01:00
Martin Ling d1d566f27f Support 6-bit data on Unix. 2013-11-15 00:42:40 +01:00
Martin Ling e4cc1a537a Set data bits on Windows. 2013-11-15 00:42:39 +01:00
Martin Ling 32b5ac05b4 Add sp_copy_port() function. 2013-11-15 00:42:39 +01:00
Martin Ling 99945a1fb5 On Windows, prefix port names with '\\.\' to work with ports above COM9. 2013-11-15 00:42:39 +01:00
Martin Ling f6a1fb65ea Rename header to libserialport.h. 2013-11-15 00:42:39 +01:00
Martin Ling d9573bad9a Fix enumeration on Windows. 2013-11-15 00:42:39 +01:00
Martin Ling 0d34b4519c Fix enumeration on OS X. 2013-11-15 00:42:39 +01:00
Martin Ling f9796bcb86 Remove outdated inline documentation, README is now authoritative. 2013-11-15 00:42:39 +01:00
Martin Ling e3b2f7a4e3 Add sp_free_port() function. 2013-11-15 00:42:38 +01:00
Martin Ling 77f262c4f9 Make sp_list_ports and sp_get_port_by_name return int. 2013-11-15 00:42:38 +01:00
Martin Ling d4babed247 Add sp_get_port_by_name() function. 2013-11-15 00:42:38 +01:00
Martin Ling 5919c9134a Port name string length now no longer needs to be passed around. 2013-11-15 00:42:38 +01:00
Martin Ling 8b532d9c1e Handle conversion of unicode names to char * on Windows. 2013-11-15 00:42:38 +01:00
Martin Ling d54e90047b Identify ports by sp_port structure, not name. 2013-11-15 00:42:38 +01:00
Martin Ling 24c1a4bb05 Always return an empty port list unless allocation fails. 2013-11-15 00:42:38 +01:00
Martin Ling 1ebf4347e0 Fix building on OSX and Linux. 2013-11-15 00:42:37 +01:00
Martin Ling bdfb5b8c08 Rename "name" to "value" to be more consistent with Windows terminology. 2013-11-15 00:42:37 +01:00
Martin Ling 4b97c9fc26 Ignore non-existant serial8250 ports on Linux. 2013-11-15 00:42:37 +01:00
Martin Ling 08fe0bdbdb On Linux, skip virtual ttys that have no parent device. 2013-11-15 00:42:37 +01:00
Martin Ling 8683177b9d Minor changes to port flags on Unix, to remain in sync with libsigrok. 2013-11-15 00:42:37 +01:00
Martin Ling db2794cea9 Fix list append. 2013-11-15 00:42:37 +01:00
Martin Ling 68ab64ccdc Document enumeration functions. 2013-11-15 00:42:36 +01:00
Martin Ling 3b63f34dcb Add serial enumeration code. 2013-11-15 00:42:36 +01:00
Martin Ling 64eec30d22 Avoid unused variable warning on non-Windows platforms. 2013-10-27 10:56:31 +00:00
Martin Ling 954e81adaf Remove unused glob.h include. 2013-10-27 10:56:31 +00:00
Martin Ling 74510d4b59 Initial version. Builds for Linux and Windows. 2013-10-27 10:56:22 +00:00