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