MSF fork of the RubyForge ruby-serialport library
git-svn-id: file:///home/svn/framework3/trunk@6117 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
parent
348ffe7894
commit
cad513b703
|
@ -0,0 +1,14 @@
|
|||
0.6 => 12/02/2003: Windows support
|
||||
Get/set modem parameters
|
||||
Read and write timeouts
|
||||
Open method
|
||||
|
||||
0.5 => 25/10/2002: Cygwin support
|
||||
|
||||
0.4 => 19/09/2002: Added more serial ports (total of 8 ports)
|
||||
|
||||
0.3 => 15/03/2002: Damn, another bug found
|
||||
|
||||
0.2 => 14/03/2002: A bug fixed (read() was not blocking)
|
||||
|
||||
0.1 => 14/03/2002: First release
|
|
@ -0,0 +1,10 @@
|
|||
test/miniterm.rb
|
||||
README
|
||||
CHANGELOG
|
||||
debian/control
|
||||
debian/rules
|
||||
debian/changelog
|
||||
debian/copyright
|
||||
extconf.rb
|
||||
serialport.c
|
||||
.cvsignore
|
|
@ -0,0 +1,149 @@
|
|||
|
||||
SHELL = /bin/sh
|
||||
|
||||
#### Start of system configuration section. ####
|
||||
|
||||
srcdir = .
|
||||
topdir = /usr/lib/ruby/1.8/i486-linux
|
||||
hdrdir = $(topdir)
|
||||
VPATH = $(srcdir):$(topdir):$(hdrdir)
|
||||
prefix = $(DESTDIR)/usr
|
||||
exec_prefix = $(prefix)
|
||||
sitedir = $(prefix)/lib/ruby/site_ruby
|
||||
rubylibdir = $(libdir)/ruby/$(ruby_version)
|
||||
docdir = $(datarootdir)/doc/$(PACKAGE)
|
||||
dvidir = $(docdir)
|
||||
datarootdir = $(prefix)/share
|
||||
archdir = $(rubylibdir)/$(arch)
|
||||
sbindir = $(exec_prefix)/sbin
|
||||
psdir = $(docdir)
|
||||
localedir = $(datarootdir)/locale
|
||||
htmldir = $(docdir)
|
||||
datadir = $(DESTDIR)/usr/share
|
||||
includedir = $(prefix)/include
|
||||
infodir = $(datarootdir)/info
|
||||
sysconfdir = $(prefix)/etc
|
||||
mandir = $(DESTDIR)/usr/man
|
||||
libdir = $(exec_prefix)/lib
|
||||
sharedstatedir = $(prefix)/com
|
||||
oldincludedir = $(DESTDIR)/usr/include
|
||||
pdfdir = $(docdir)
|
||||
sitearchdir = $(sitelibdir)/$(sitearch)
|
||||
bindir = $(exec_prefix)/bin
|
||||
localstatedir = $(prefix)/var
|
||||
sitelibdir = $(sitedir)/$(ruby_version)
|
||||
libexecdir = $(exec_prefix)/libexec
|
||||
|
||||
CC = gcc
|
||||
LIBRUBY = $(LIBRUBY_SO)
|
||||
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
||||
LIBRUBYARG_SHARED = -Wl,-R -Wl,$(libdir) -L$(libdir) -L. -l$(RUBY_SO_NAME)
|
||||
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
||||
|
||||
RUBY_EXTCONF_H =
|
||||
CFLAGS = -fPIC -O2 -march=i486 -mtune=i686 -fPIC -Dlinux
|
||||
INCFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir)
|
||||
CPPFLAGS = -DHAVE_TERMIOS_H -DHAVE_UNISTD_H
|
||||
CXXFLAGS = $(CFLAGS)
|
||||
DLDFLAGS = -rdynamic -Wl,-export-dynamic
|
||||
LDSHARED = $(CC) -shared
|
||||
AR = ar
|
||||
EXEEXT =
|
||||
|
||||
RUBY_INSTALL_NAME = ruby
|
||||
RUBY_SO_NAME = ruby
|
||||
arch = i486-linux
|
||||
sitearch = i486-linux
|
||||
ruby_version = 1.8
|
||||
ruby = /usr/bin/ruby
|
||||
RUBY = $(ruby)
|
||||
RM = rm -f
|
||||
MAKEDIRS = mkdir -p
|
||||
INSTALL = /usr/bin/ginstall -c
|
||||
INSTALL_PROG = $(INSTALL) -m 0755
|
||||
INSTALL_DATA = $(INSTALL) -m 644
|
||||
COPY = cp
|
||||
|
||||
#### End of system configuration section. ####
|
||||
|
||||
preload =
|
||||
|
||||
libpath = $(libdir)
|
||||
LIBPATH = -L'$(libdir)' -Wl,-R'$(libdir)'
|
||||
DEFFILE =
|
||||
|
||||
CLEANFILES =
|
||||
DISTCLEANFILES =
|
||||
|
||||
extout =
|
||||
extout_prefix =
|
||||
target_prefix =
|
||||
LOCAL_LIBS =
|
||||
LIBS = $(LIBRUBYARG_SHARED) -ldl -lcrypt -lm -lc
|
||||
SRCS = serialport.c
|
||||
OBJS = serialport.o
|
||||
TARGET = serialport
|
||||
DLLIB = $(TARGET).so
|
||||
EXTSTATIC =
|
||||
STATIC_LIB =
|
||||
|
||||
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
||||
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
||||
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
||||
|
||||
TARGET_SO = $(DLLIB)
|
||||
CLEANLIBS = $(TARGET).so $(TARGET).il? $(TARGET).tds $(TARGET).map
|
||||
CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
|
||||
|
||||
all: $(DLLIB)
|
||||
static: $(STATIC_LIB)
|
||||
|
||||
clean:
|
||||
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
|
||||
|
||||
distclean: clean
|
||||
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
||||
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
||||
|
||||
realclean: distclean
|
||||
install: install-so install-rb
|
||||
|
||||
install-so: $(RUBYARCHDIR)
|
||||
install-so: $(RUBYARCHDIR)/$(DLLIB)
|
||||
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
|
||||
$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
|
||||
install-rb: pre-install-rb install-rb-default
|
||||
install-rb-default: pre-install-rb-default
|
||||
pre-install-rb: Makefile
|
||||
pre-install-rb-default: Makefile
|
||||
$(RUBYARCHDIR):
|
||||
$(MAKEDIRS) $@
|
||||
|
||||
site-install: site-install-so site-install-rb
|
||||
site-install-so: install-so
|
||||
site-install-rb: install-rb
|
||||
|
||||
.SUFFIXES: .c .m .cc .cxx .cpp .C .o
|
||||
|
||||
.cc.o:
|
||||
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
||||
|
||||
.cxx.o:
|
||||
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
||||
|
||||
.cpp.o:
|
||||
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
||||
|
||||
.C.o:
|
||||
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
||||
|
||||
.c.o:
|
||||
$(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
|
||||
|
||||
$(DLLIB): $(OBJS)
|
||||
@-$(RM) $@
|
||||
$(LDSHARED) $(DLDFLAGS) $(LIBPATH) -o $@ $(OBJS) $(LOCAL_LIBS) $(LIBS)
|
||||
|
||||
|
||||
|
||||
$(OBJS): ruby.h defines.h
|
|
@ -0,0 +1,61 @@
|
|||
Due to the ruby-serialport project provided by RubyForge.org apparently
|
||||
being unmaintained, this is a MSF-specific fork of that project. This
|
||||
version has been modified by both MSF developers as well as by applying
|
||||
a patch found submitted to the RubyForge project but never included in
|
||||
the distribution provided there. The versioning scheme has been updated
|
||||
from the format X.y, to X.Y.z-msf. The text accompanying the applied
|
||||
patch can be found below.
|
||||
|
||||
Please see the README.orig file for the original project's README, which
|
||||
includes buid and install instructions as well as documentation of the
|
||||
SerialPort Class API.
|
||||
|
||||
-- I)ruid
|
||||
|
||||
########################################################################
|
||||
Applied Patches:
|
||||
|
||||
========================================================================
|
||||
[#878] Six new methods (implemented for the posix flavor only) for the
|
||||
SerialPort class
|
||||
|
||||
I had to use the SerialPort class to communicate chunks of binary data
|
||||
through the serial port, and i needed to set some of the low-level
|
||||
flags onto the serial fd using fcntl() and tcsetattr(), so I implemented
|
||||
some nifty methods and added them to the class.
|
||||
|
||||
The six new methods are:
|
||||
|
||||
.nonblock= and .nonblock() -> Manipulate the O_NONBLOCK descriptor flag
|
||||
.input_type= and .input_type() -> Manipulate the ICANON/RAW input flags
|
||||
.output_type= and .output_type() -> Manipulate the OPOST/RAW output flags
|
||||
|
||||
Also two new constants were added:
|
||||
|
||||
SerialPort::PROCESSED -> Identifies the CANONICAL/PROCESSED I/O
|
||||
SerialPort::RAW -> Identifies the RAW/RAW I/O
|
||||
|
||||
Example usage:
|
||||
|
||||
def open_port
|
||||
ret = SerialPort.new @device
|
||||
|
||||
ret.baud = @port_baud
|
||||
ret.data_bits = @port_data_bits
|
||||
ret.stop_bits = @port_stop_bits
|
||||
ret.parity = SerialPort::NONE
|
||||
ret.flow_control = SerialPort::HARD
|
||||
ret.input_type = SerialPort::RAW
|
||||
ret.output_type = SerialPort::RAW
|
||||
ret.read_timeout = -1
|
||||
ret.nonblock = false
|
||||
ret.dtr = 1
|
||||
|
||||
ret
|
||||
end
|
||||
|
||||
This was the best setup for modem communications I could achieve, for
|
||||
binary and string I/O, in a multithreaded application. Obviously YMMV.
|
||||
|
||||
-void
|
||||
void@core-dumped.info
|
|
@ -0,0 +1,152 @@
|
|||
-----Ruby/SerialPort-----
|
||||
|
||||
-- Description --
|
||||
|
||||
Ruby/SerialPort is a Ruby library that provides a class for using
|
||||
RS-232 serial ports. This class also contains low-level functions to
|
||||
check and set the current state of the signals on the line.
|
||||
|
||||
The native Windows version of this library supports Microsoft's Visual C++
|
||||
and Borland's C++ compilers.
|
||||
|
||||
-- Installation --
|
||||
|
||||
$ ruby extconf.rb
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
|
||||
-- Testing --
|
||||
|
||||
* test/miniterm.rb
|
||||
|
||||
Ruby's copy of miniterm.c !
|
||||
|
||||
|
||||
-- API --
|
||||
|
||||
**** Class SerialPort, Parent IO ****
|
||||
|
||||
** Class constants **
|
||||
|
||||
VERSION -> aString (this release is "0.6")
|
||||
NONE, HARD, SOFT, SPACE, MARK, EVEN, ODD -> anInteger
|
||||
|
||||
** Class methods **
|
||||
|
||||
* new(port_num [, modem_parameters]) -> aSerialPort
|
||||
* open(port_num [, modem_parameters]) -> aSerialPort
|
||||
* open(port_num [, modem_parameters]) {|aSerialPort| block} -> nil
|
||||
|
||||
port_num -> anInteger: port number, 0 for first port which is
|
||||
"/dev/ttyS0" on GNU/Linux and "COM1" on Windows,
|
||||
or aString: file name of the device (example: "/dev/ttyS2")
|
||||
|
||||
Optional modem_parameters:
|
||||
|
||||
baudrate -> anInteger: from 50 to 256000, depends on platform.
|
||||
|
||||
databits -> anInteger: from 5 to 8 (4 is allowed on Windows)
|
||||
|
||||
stopbits -> anInteger: 1 or 2 (1.5 is not supported)
|
||||
|
||||
parity -> anInteger: SerialPort::NONE, SerialPort::EVEN,
|
||||
SerialPort::ODD, SerialPort::MARK, SerialPort::SPACE
|
||||
(MARK and SPACE are not supported on Posix)
|
||||
|
||||
Raise an argError on bad argument.
|
||||
|
||||
SerialPort.new and SerialPort.open without a block return an
|
||||
instance of SerialPort. SerialPort.open with a block passes
|
||||
a SerialPort to the block and closes it when the block exits
|
||||
(like File.open).
|
||||
|
||||
|
||||
** Instance methods **
|
||||
|
||||
* modem_params() -> aHash
|
||||
* modem_params=(aHash) -> self
|
||||
* get_modem_params() -> aHash
|
||||
* set_modem_params(aHash) -> self
|
||||
* set_modem_params(baudrate [, databits [, stopbits [, parity]]])
|
||||
|
||||
Get and set the modem parameters. Hash keys are "baud", "data_bits",
|
||||
"stop_bits", and "parity" (see above).
|
||||
|
||||
Parameters not present in the hash or set to nil remain unchanged.
|
||||
Default parameter values for the set_modem_params method are:
|
||||
databits = 8, stopbits = 1, parity = (databits == 8 ?
|
||||
SerialPort::NONE : SerialPort::EVEN).
|
||||
|
||||
* baud() -> anInteger
|
||||
* baud=(anInteger) -> self
|
||||
* data_bits() -> 4, 5, 6, 7, or 8
|
||||
* data_bits=(anInteger) -> self
|
||||
* stop_bits() -> 1 or 2
|
||||
* stop_bits=(anInteger) -> self
|
||||
* parity() -> anInteger: SerialPort::NONE, SerialPort::EVEN,
|
||||
SerialPort::ODD, SerialPort::MARK, or SerialPort::SPACE
|
||||
* parity=(anInteger) -> self
|
||||
|
||||
Get and set the corresponding modem parameter.
|
||||
|
||||
* flow_control() -> anInteger
|
||||
* flow_control=(anInteger) -> self
|
||||
|
||||
Get and set the flow control: SerialPort::NONE, SerialPort::HARD,
|
||||
SerialPort::SOFT, or (SerialPort::HARD | SerialPort::SOFT).
|
||||
|
||||
Note: SerialPort::HARD mode is not supported on all platforms.
|
||||
SerialPort::HARD uses RTS/CTS handshaking; DSR/DTR is not
|
||||
supported.
|
||||
|
||||
* read_timeout() -> anInteger
|
||||
* read_timeout=(anInteger) -> self
|
||||
* write_timeout() -> anInteger
|
||||
* write_timeout=(anInteger) -> self
|
||||
|
||||
Get and set timeout values (in milliseconds) for reading and writing.
|
||||
A negative read timeout will return all the available data without
|
||||
waiting, a zero read timeout will not return until at least one
|
||||
byte is available, and a positive read timeout returns when the
|
||||
requested number of bytes is available or the interval between the
|
||||
arrival of two bytes exceeds the timeout value.
|
||||
|
||||
Note: Read timeouts don't mix well with multi-threading.
|
||||
|
||||
Note: Under Posix, write timeouts are not implemented.
|
||||
|
||||
* break(time) -> nil
|
||||
|
||||
Send a break for the given time.
|
||||
|
||||
time -> anInteger: tenths-of-a-second for the break.
|
||||
Note: Under Posix, this value is very approximate.
|
||||
|
||||
* signals() -> anHash
|
||||
|
||||
Return a hash with the state of each line status bit. Keys are
|
||||
"rts", "dtr", "cts", "dsr", "dcd", and "ri".
|
||||
|
||||
Note: Under Windows, the rts and dtr values are not included.
|
||||
|
||||
* rts()
|
||||
* dtr()
|
||||
* cts()
|
||||
* dsr()
|
||||
* dcd()
|
||||
* ri() -> 0 or 1
|
||||
|
||||
* rts=(0 or 1)
|
||||
* dtr=(0 or 1) -> self
|
||||
|
||||
Get and set the corresponding line status bit.
|
||||
|
||||
Note: Under Windows, rts() and dtr() are not implemented.
|
||||
|
||||
-- License --
|
||||
|
||||
GPL
|
||||
|
||||
Guillaume Pierronnet <moumar@netcourrier.com>
|
||||
Alan Stern <stern@rowland.harvard.edu>
|
|
@ -0,0 +1,39 @@
|
|||
ruby-serialport (0.6.1) unstable; urgency=low
|
||||
|
||||
* Added nonblock= and nonblock()
|
||||
* Added input_type= and input_type()
|
||||
* Added output_type= and output_type()
|
||||
* Re-indented code
|
||||
|
||||
-- Marcello Barnaba <l.barnaba@openssl.it> Wed, 8 Sep 2004 17:18:25 +0200
|
||||
|
||||
ruby-serialport (0.6) unstable; urgency=low
|
||||
|
||||
* Windows support
|
||||
* Get/set modem parameters
|
||||
* Read and write timeouts
|
||||
* Open method
|
||||
|
||||
-- Guillaume Pierronnet <moumar@duron.maison.chello.fr> Thu, 13 Feb 2003 20:59:37 +0100
|
||||
|
||||
ruby-serialport (0.5-1) unstable; urgency=low
|
||||
|
||||
* Cygwin support
|
||||
|
||||
-- Guillaume Pierronnet <moumar@duron.maison.chello.fr> Fri, 25 Oct 2002 13:48:44 +0200
|
||||
|
||||
ruby-serialport (0.4-1) unstable; urgency=low
|
||||
|
||||
* Modified to support 8 serial ports
|
||||
|
||||
-- Guillaume Pierronnet <moumar@duron.maison.chello.fr> Fri, 20 Sep 2002 15:26:20 +0200
|
||||
|
||||
ruby-serialport (0.3-1) unstable; urgency=low
|
||||
|
||||
* Initial Release.
|
||||
|
||||
-- Guillaume Pierronnet <moumar@netcourrier.com> Mon, 21 Sep 2001 11:19:36 +0900
|
||||
|
||||
Local variables:
|
||||
mode: debian-changelog
|
||||
End:
|
|
@ -0,0 +1,13 @@
|
|||
Source: ruby-serialport
|
||||
Section: interpreters
|
||||
Priority: optional
|
||||
Maintainer: Guillaume Pierronnet <moumar@netcourrier.com>
|
||||
Standards-Version: 3.1.1
|
||||
Build-Depends: debhelper (>= 2.1.2), ruby (>= 1.8-1), ruby1.8-dev (>= 1.8-1)
|
||||
|
||||
Package: ruby-serialport
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ruby (>= 1.8)
|
||||
Description: serial port module for Ruby
|
||||
serial port module for ruby
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
This package was debianized by Guillaume Pierronnet <moumar@netcourrier.com>
|
||||
Mon, 25 Mar 2002 22:19:36 +0100.
|
||||
|
||||
It was downloaded from http://davedd.free.fr/ruby-serialport/
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/bin/make -f
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# GNU copyright 1997 to 1999 by Joey Hess.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
export DH_VERBOSE=1
|
||||
|
||||
# This is the debhelper compatability version to use.
|
||||
export DH_COMPAT=2
|
||||
|
||||
PACKAGE_NAME=ruby-serialport
|
||||
#GNU_ARCH=$(shell ruby -e 'puts RUBY_PLATFORM')
|
||||
|
||||
#RBV=1.6
|
||||
|
||||
build: build-stamp
|
||||
build-stamp:
|
||||
dh_testdir
|
||||
|
||||
ruby extconf.rb
|
||||
$(MAKE)
|
||||
|
||||
touch build-stamp
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-stamp install-stamp
|
||||
|
||||
# Add here commands to clean up after the build process.
|
||||
-$(MAKE) distclean
|
||||
dh_clean
|
||||
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/tmp.
|
||||
$(MAKE) install DESTDIR=`pwd`/debian/$(PACKAGE_NAME)
|
||||
# mkdir -p debian/tmp/$(RBV)/$(GNU_ARCH)
|
||||
# cp serialport.so debian/$(PACKAGE_NAME)/usr/lib/ruby/$(RBV)/$(GNU_ARCH)/
|
||||
|
||||
touch install-stamp
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
|
||||
# Build architecture-dependent files here.
|
||||
binary-arch: build install
|
||||
# dh_testversion
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
# dh_installdebconf
|
||||
dh_installdocs README*
|
||||
dh_installexamples
|
||||
# dh_installmenu
|
||||
# dh_installemacsen
|
||||
# dh_installpam
|
||||
# dh_installinit
|
||||
# dh_installcron
|
||||
# dh_installmanpages
|
||||
# dh_installinfo
|
||||
# dh_undocumented
|
||||
dh_installchangelogs
|
||||
dh_link
|
||||
dh_strip
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
# You may want to make some executables suid here.
|
||||
# dh_suidregister
|
||||
dh_makeshlibs
|
||||
dh_installdeb
|
||||
# dh_perl
|
||||
dh_shlibdeps
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install
|
|
@ -0,0 +1,13 @@
|
|||
require 'mkmf'
|
||||
|
||||
printf("checking for OS... ")
|
||||
STDOUT.flush
|
||||
os = /-([a-z]+)/.match(RUBY_PLATFORM)[1]
|
||||
puts(os)
|
||||
$CFLAGS += " -D#{os}"
|
||||
|
||||
if !(os == 'mswin' or os == 'bccwin')
|
||||
exit(1) if not have_header("termios.h") or not have_header("unistd.h")
|
||||
end
|
||||
|
||||
create_makefile("serialport")
|
|
@ -0,0 +1,20 @@
|
|||
have_header: checking for termios.h... -------------------- yes
|
||||
|
||||
"gcc -E -I. -I/usr/lib/ruby/1.8/i486-linux -I. -O2 -march=i486 -mtune=i686 -fPIC -Dlinux conftest.c -o conftest.i"
|
||||
checked program was:
|
||||
/* begin */
|
||||
1: #include <termios.h>
|
||||
/* end */
|
||||
|
||||
--------------------
|
||||
|
||||
have_header: checking for unistd.h... -------------------- yes
|
||||
|
||||
"gcc -E -I. -I/usr/lib/ruby/1.8/i486-linux -I. -O2 -march=i486 -mtune=i686 -fPIC -Dlinux conftest.c -o conftest.i"
|
||||
checked program was:
|
||||
/* begin */
|
||||
1: #include <unistd.h>
|
||||
/* end */
|
||||
|
||||
--------------------
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,25 @@
|
|||
require "../serialport.so"
|
||||
|
||||
|
||||
if ARGV.size < 4
|
||||
STDERR.print <<EOF
|
||||
Usage: ruby #{$0} num_port bps nbits stopb
|
||||
EOF
|
||||
exit(1)
|
||||
end
|
||||
|
||||
sp = SerialPort.new(ARGV[0].to_i, ARGV[1].to_i, ARGV[2].to_i, ARGV[3].to_i, SerialPort::NONE)
|
||||
|
||||
open("/dev/tty", "r+") { |tty|
|
||||
tty.sync = true
|
||||
Thread.new {
|
||||
while true do
|
||||
tty.printf("%c", sp.getc)
|
||||
end
|
||||
}
|
||||
while (l = tty.gets) do
|
||||
sp.write(l.sub("\n", "\r"))
|
||||
end
|
||||
}
|
||||
|
||||
sp.close
|
Loading…
Reference in New Issue