aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--guix.scm3
-rw-r--r--hall.scm2
-rw-r--r--inkplate.scm16
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"
diff --git a/guix.scm b/guix.scm
index fd9512d..575e981 100644
--- a/guix.scm
+++ b/guix.scm
@@ -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 "")
diff --git a/hall.scm b/hall.scm
index a8716ce..ea11c6e 100644
--- a/hall.scm
+++ b/hall.scm
@@ -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."