Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
Failed to load latest commit information.
POSIX termios interface for GNU Guile To query and change settings of serial devices on POSIX systems, the termios API is used. GNU Guile doesn't have an interface for that built in. This module implements this interface by use of Guile's dynamic FFI. The problem with Guile's dynamic FFI is, that if you need to make use of preprocessor macros, typesets or platform-specific struct layouts it seems to fall a little short. To get this working anyway, this module does this: - Use ‘gen-gps.scm’ to generate ‘gen-platform-specifics.c’. - Use ‘gen-config.h.sh’ to generate ‘config.h’. - Use ‘gen-platform-specifics.c’ and ‘config.h’ to generate ‘scheme/termios/system.scm’. This module was so far only tested on Debian Linux with GNU libc using GNU Guile 2.0.9, and partially on 64-bit cygwin with Microsoft Windows 7 as the host OS. Requirements (excluding the test-suite): - Guile 2.0 - A C compiler - A POSIX shell as /bin/sh To generate, byte-compile, test and install the module, use these steps: % make % make compile % make test # make install If you got more than one version of guile installed, you may use the GUILE_BINARY make variable to point the build-system to the right binary: # make install GUILE_BINARY=/usr/local/bin/guile Reference manual ---------------- The reference manual is located in ‘doc/’. It is written as markdown text, with manual page, HTML and pdf targets generated by ‘pandoc’, which is thus required in order to build the manual. All targets can be build at once by calling the following in the top-level directory of the project: % make doc At every release of the library, pre-built versions of the reference manual are added tho the ‘manual’ branch of guile-termios' git repository. The project's documentation can be installed to the system by issuing: # make install-doc About the test-suite... ----------------------- The test-suite run by "make test" requires the following additional software: - Perl 5 - The POSIX Perl module (this is a standard module) - The IO::Pty module (this one is not) - The scm-test-tap test framework https://github.com/ft/scm-test-tap The Perl code opens a serial device, that can be used to test guile-termios against. ‘scm-test-tap’ is a test framework that emits TAP output, so the test suite can be ran within a TAP harness (like Perl's ‘prove’ harness). If you do not have those dependencies installed, you can still run the old plausibility test: % make plausibility The real test suite can be run without the plausibility test: % make test-suite In fact, "make test" is a shortcut to run those two, one after another. If you need more verbose test-suite output, use either of these: % make test-verbose % make test-suite-verbose To run a single test-file in case of an error, you can use this: % sh ./test-driver ./tests/baudrate.t ...with the file of your choosing in place of ‘./tests/baudrate.t’, obviously.