serial {serial} | R Documentation |
A serial communication interface for R.
Description
This R package provides the functionality of serial communication ports "COM" or "tty" to use the RS232/RS422/RS485 capabilities of the corresponding hardware. Also virtual COM-ports via USB do work, as long as they are mapped to COM[n] (win) or tty[n] (Linux) in the operating system.
open(con)
opens a serial connection
close(con)
closes the serial connection
flush(con)
flushes the serial connection
nBytesInQueue(con)
get the length of pending input an output queue
read.serialConnection(con)
read from the interface as long as the buffer is not empty
write.serialConnection(con,dat)
writes a data (character or binary) to the serial interface
isOpen(con)
test a connection, whether it is open or not
listPorts()
list all available ports on the system
Examples
# for this example I used the 'null-modem' emulator 'com0com' for Windows
# which is available on 'http://com0com.sourceforge.net/'
# Here the pair of com-ports is 'CNCA0' <-> 'CNCB0'
# Test the functionality:
# ======================
#
# first: install the virtual null-modem connection like
# com0com (win) or tty0tty (linux)
# Hint: Some unix insist on port names like 'ttyS[n]'.
#
# second: setup a terminal program (like HTerm or gtkterm) and listen to
# com-port 'CNCB0' (or what ever you have installed)
# or (for unix only) 'cat /dev/tnt1' will output tnt1 to console
## Not run:
# Now configure one of the com-ports with appropriate connection properties
con <- serialConnection(name = "testcon",port = "CNCA0"
,mode = "115200,n,8,1"
,newline = 1
,translation = "crlf"
)
# let's open the serial interface
open(con)
# write some stuff
write.serialConnection(con,"Hello World!")
# read, in case something came in
read.serialConnection(con)
# show summary
summary(con)
# close the connection
close(con)
# Reading and writing binary (hexadecimal) data
# remember: Everything is a string, so you might need data conversation
con <- serialConnection(name = "testcon",port = "CNCA0"
,mode = "115200,n,8,1"
,translation = "binary" # switches to binary data
)
# let's open the serial interface
open(con)
# write some stuff
write.serialConnection(con, rawToChar(as.raw(15)) ) # 0x0F
write.serialConnection(con, c(15,20) ) # 0x0F, 0x14
write.serialConnection(con, c(0x6F,0x6C) )
# read, in case something came in
# the output is always a character vector
a <- read.serialConnection(con)
# convert the character vector to hexadecimal (raw) values
print(a)
# close the connection
close(con)
## End(Not run)
[Package serial version 3.0 Index]