Posted at

cserial-port

More than 5 years have passed since last update.

(LISP Library 365参加エントリ)

13日の予定でしたが落としました…いつだか。:(


cserial-portについて

Lisp Worksのserial-portの再実装です。

本家Lispworksではwindowsでのみサポートされているようです。

これをcffiを利用しwindowsとunix環境一般で動くようにしようとしています。

基本的な所だけしか実装されていないので、足りてない所が色々ありますが…


インストール

https://github.com/snmsts/cserial-port に公開したばかりなので

quicklisp/local-project 以下に

git clone https://github.com/snmsts/cserial-port

などとするのが良いでしょう。quicklispに登録するタイミングは逃しましたが、そのうち登録します。


つかいかた

二つのシリアルポートをクロスケーブルで繋いだ状態での通信

(with-serial-port (rs2 #+windows 2 #-windows 0 :encoding :utf-8)

(with-serial-port (rs1 1 :encoding :utf-8)
(let* ((send (format nil "/-*~A~A~A"
(code-char 12354) #\cr #\lf))
(recv (make-string (length send))))
(write-serial-port-string send rs1)
(sleep 1)
(read-serial-port-string recv rs2)
(print (list (equal send recv) recv)))
(print :done)))

こんな感じです。


他のライブラリ

参考までにrs232cを使いたかったので色々しらべていました。

-https://bitbucket.org/blueswitch/cerial

-https://github.com/marsijanin/iolib.termios

iolib.termiosはunix専用。

cerialのwindows実装は良さげに見えますが、開発中のようで現状壊れているように見えますが

僕のかいているものも…将来的にもどうかという話だと…どうだろう…