Move io.serial.unix to io.serial.linux, add platforms files. Move termios into io.serial.linux.ffi vocab.
parent
bbede53f78
commit
e1c123e157
|
|
@ -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 ;
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
linux
|
||||
windows
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
unix
|
||||
|
|
@ -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 } ;
|
||||
|
|
@ -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 } ;
|
||||
|
|
@ -1 +0,0 @@
|
|||
macosx
|
||||
|
|
@ -1 +0,0 @@
|
|||
unix
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
Loading…
Reference in New Issue