Move io.serial.unix to io.serial.linux, add platforms files. Move termios into io.serial.linux.ffi vocab.

db4
Doug Coleman 2011-11-03 16:25:53 -07:00
parent bbede53f78
commit e1c123e157
13 changed files with 40 additions and 94 deletions

View File

@ -1,7 +1,37 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: assocs alien.syntax kernel io.serial system unix ;
IN: io.serial.unix
USING: alien.c-types alien.syntax assocs classes.struct
io.serial kernel system ;
IN: io.serial.linux.ffi
CONSTANT: NCCS 32
TYPEDEF: uchar cc_t
TYPEDEF: uint speed_t
TYPEDEF: uint tcflag_t
STRUCT: termios
{ iflag tcflag_t }
{ oflag tcflag_t }
{ cflag tcflag_t }
{ lflag tcflag_t }
{ line cc_t }
{ cc { cc_t NCCS } }
{ ispeed speed_t }
{ ospeed speed_t } ;
FUNCTION: speed_t cfgetispeed ( termios* t ) ;
FUNCTION: speed_t cfgetospeed ( termios* t ) ;
FUNCTION: int cfsetispeed ( termios* t, speed_t s ) ;
FUNCTION: int cfsetospeed ( termios* t, speed_t s ) ;
FUNCTION: int tcgetattr ( int i1, termios* t ) ;
FUNCTION: int tcsetattr ( int i1, int i2, termios* t ) ;
FUNCTION: int tcdrain ( int i1 ) ;
FUNCTION: int tcflow ( int i1, int i2 ) ;
FUNCTION: int tcflush ( int i1, int i2 ) ;
FUNCTION: int tcsendbreak ( int i1, int i2 ) ;
FUNCTION: void cfmakeraw ( termios* t ) ;
FUNCTION: int cfsetspeed ( termios* t, speed_t s ) ;
CONSTANT: TCSANOW 0
CONSTANT: TCSADRAIN 1
@ -128,3 +158,4 @@ M: linux lookup-baud ( n -- n )
{ 3500000 OCT: 0010016 }
{ 4000000 OCT: 0010017 }
} ?at [ invalid-baud ] unless ;

View File

@ -1,28 +1,9 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien.c-types alien.syntax alien.data
classes.struct combinators io.ports io.streams.duplex
system kernel math math.bitwise vocabs io.serial
io.serial.unix.termios io.backend.unix unix unix.ffi
literals ;
IN: io.serial.unix
<< {
{ [ os linux? ] [ "io.serial.unix.linux" ] }
} cond require >>
FUNCTION: speed_t cfgetispeed ( termios* t ) ;
FUNCTION: speed_t cfgetospeed ( termios* t ) ;
FUNCTION: int cfsetispeed ( termios* t, speed_t s ) ;
FUNCTION: int cfsetospeed ( termios* t, speed_t s ) ;
FUNCTION: int tcgetattr ( int i1, termios* t ) ;
FUNCTION: int tcsetattr ( int i1, int i2, termios* t ) ;
FUNCTION: int tcdrain ( int i1 ) ;
FUNCTION: int tcflow ( int i1, int i2 ) ;
FUNCTION: int tcflush ( int i1, int i2 ) ;
FUNCTION: int tcsendbreak ( int i1, int i2 ) ;
FUNCTION: void cfmakeraw ( termios* t ) ;
FUNCTION: int cfsetspeed ( termios* t, speed_t s ) ;
USING: accessors classes.struct combinators io.backend.unix
io.ports io.serial io.streams.duplex kernel literals math
system unix unix.ffi ;
IN: io.serial.linux
: fd>duplex-stream ( fd -- duplex-stream )
<fd> init-fd

View File

@ -0,0 +1,2 @@
linux
windows

View File

@ -31,6 +31,6 @@ M: serial-port dispose* ( serial -- ) stream>> dispose ;
[ open-serial ] dip with-duplex-stream ; inline
{
{ [ os unix? ] [ "io.serial.unix" ] }
{ [ os linux? ] [ "io.serial.linux" ] }
{ [ os windows? ] [ "io.serial.windows" ] }
} cond require

View File

@ -1 +0,0 @@
unix

View File

@ -1,21 +0,0 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types alien.syntax classes.struct kernel system
unix ;
IN: io.serial.unix.termios
CONSTANT: NCCS 32
TYPEDEF: uchar cc_t
TYPEDEF: uint speed_t
TYPEDEF: uint tcflag_t
STRUCT: termios
{ iflag tcflag_t }
{ oflag tcflag_t }
{ cflag tcflag_t }
{ lflag tcflag_t }
{ line cc_t }
{ cc { cc_t NCCS } }
{ ispeed speed_t }
{ ospeed speed_t } ;

View File

@ -1,20 +0,0 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types alien.syntax classes.struct kernel
sequences system ;
IN: io.serial.unix.termios
CONSTANT: NCCS 20
TYPEDEF: uint tcflag_t
TYPEDEF: uchar cc_t
TYPEDEF: uint speed_t
STRUCT: termios
{ iflag tcflag_t }
{ oflag tcflag_t }
{ cflag tcflag_t }
{ lflag tcflag_t }
{ cc { cc_t NCCS } }
{ ispeed speed_t }
{ ospeed speed_t } ;

View File

@ -1 +0,0 @@
macosx

View File

@ -1 +0,0 @@
unix

View File

@ -1,9 +0,0 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: combinators system vocabs ;
IN: io.serial.unix.termios
{
{ [ os linux? ] [ "io.serial.unix.termios.linux" ] }
{ [ os macosx? ] [ "io.serial.unix.termios.macosx" ] }
} cond require

View File

@ -1,15 +0,0 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors io io.serial io.serial.unix kernel literals
math.bitwise tools.test ;
IN: io.serial.unix
: <serial-port-test> ( -- serial-port )
"/dev/ttyS0" 19200 <serial-port> ;
: with-serial-port-test ( quot -- )
[ <serial-port-test> ] dip with-serial-port ; inline
! [ ] [
! [ "hello" over stream-write stream-flush ] with-serial-port-test
! ] unit-test