diff options
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | guix.scm | 3 | ||||
-rw-r--r-- | hall.scm | 2 | ||||
-rw-r--r-- | inkplate.scm | 16 |
4 files changed, 18 insertions, 5 deletions
diff --git a/configure.ac b/configure.ac index e28d343..ee4e2a4 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ if test "x$GUILD" = "x"; then fi dnl Hall auto-generated guile-module dependencies - +GUILE_MODULE_REQUIRED([termios]) dnl Installation directories for .scm and .go files. guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION" @@ -23,7 +23,8 @@ ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (inputs `(("guile" ,guile-3.0))) - (propagated-inputs `()) + (propagated-inputs + `(("guile-termios" ,guile-termios))) (synopsis "") (description "") (home-page "") @@ -8,7 +8,7 @@ (description "") (home-page "") (license gpl3+) - (dependencies `()) + (dependencies `(("guile-termios" (termios) ,guile-termios))) (skip ()) (files (libraries ((scheme-file "inkplate"))) (tests ((directory "tests" ((scheme-file "inkplate"))))) diff --git a/inkplate.scm b/inkplate.scm index d068455..2774293 100644 --- a/inkplate.scm +++ b/inkplate.scm @@ -1,6 +1,13 @@ (define-module (inkplate) #:use-module ((ice-9 format) #:select (format)) #:use-module ((srfi srfi-9) #:select (define-record-type)) + #:use-module ((termios system) #:select (termios-B115200)) + #:use-module ((termios with-exceptions) + #:select (make-termios-struct + tc-get-attr! + tc-set-attr + cf-make-raw! + cf-set-speed!)) #:export (<inkplate> make-inkplate @@ -62,8 +69,13 @@ (define (open device-path) "Open a connection to an Inkplate on the named DEVICE-PATH." - (let ((port (open-file device-path "r+"))) - (make-inkplate port port))) + (let ((port (open-file device-path "r+")) + (termios (make-termios-struct))) + (tc-get-attr! port termios) + (cf-make-raw! termios) + (cf-set-speed! termios termios-B115200) + (tc-set-attr port termios) + (make-inkplate port port))) (define (close device) "Close a connection to an Inkplate in DEVICE." |