Blame doc/examples/termios.lua.html

Packit 437b5e
Packit 437b5e
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Packit 437b5e
<html>
Packit 437b5e
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Packit 437b5e
<head>
Packit 437b5e
    <title>luaposix 33.3.0 Reference</title>
Packit 437b5e
    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
Packit 437b5e
</head>
Packit 437b5e
<body>
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
	
Packit 437b5e
	
<big></big>
Packit 437b5e
	
Packit 437b5e
 
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e

Packit 437b5e

luaposix 33.3.0

Packit 437b5e
Packit 437b5e
    Packit 437b5e
      
  • Index
  • Packit 437b5e
    Packit 437b5e
    Packit 437b5e
    Packit 437b5e
    Packit 437b5e

    Examples

    Packit 437b5e
      Packit 437b5e
        
    • curses.lua
    • Packit 437b5e
        
    • dir.lua
    • Packit 437b5e
        
    • fork.lua
    • Packit 437b5e
        
    • fork2.lua
    • Packit 437b5e
        
    • getopt.lua
    • Packit 437b5e
        
    • glob.lua
    • Packit 437b5e
        
    • limit.lua
    • Packit 437b5e
        
    • lock.lua
    • Packit 437b5e
        
    • netlink-uevent.lua
    • Packit 437b5e
        
    • ping.lua
    • Packit 437b5e
        
    • poll.lua
    • Packit 437b5e
        
    • rt_sched.lua
    • Packit 437b5e
        
    • signal.lua
    • Packit 437b5e
        
    • socket.lua
    • Packit 437b5e
        
    • termios.lua
    • Packit 437b5e
        
    • tree.lua
    • Packit 437b5e
      Packit 437b5e

      Modules

      Packit 437b5e
        Packit 437b5e
          
      • posix
      • Packit 437b5e
          
      • posix.ctype
      • Packit 437b5e
          
      • posix.curses
      • Packit 437b5e
          
      • posix.dirent
      • Packit 437b5e
          
      • posix.errno
      • Packit 437b5e
          
      • posix.fcntl
      • Packit 437b5e
          
      • posix.fnmatch
      • Packit 437b5e
          
      • posix.getopt
      • Packit 437b5e
          
      • posix.glob
      • Packit 437b5e
          
      • posix.grp
      • Packit 437b5e
          
      • posix.libgen
      • Packit 437b5e
          
      • posix.poll
      • Packit 437b5e
          
      • posix.pwd
      • Packit 437b5e
          
      • posix.sched
      • Packit 437b5e
          
      • posix.signal
      • Packit 437b5e
          
      • posix.stdio
      • Packit 437b5e
          
      • posix.stdlib
      • Packit 437b5e
          
      • posix.sys.msg
      • Packit 437b5e
          
      • posix.sys.resource
      • Packit 437b5e
          
      • posix.sys.socket
      • Packit 437b5e
          
      • posix.sys.stat
      • Packit 437b5e
          
      • posix.sys.statvfs
      • Packit 437b5e
          
      • posix.sys.time
      • Packit 437b5e
          
      • posix.sys.times
      • Packit 437b5e
          
      • posix.sys.utsname
      • Packit 437b5e
          
      • posix.sys.wait
      • Packit 437b5e
          
      • posix.syslog
      • Packit 437b5e
          
      • posix.termio
      • Packit 437b5e
          
      • posix.time
      • Packit 437b5e
          
      • posix.unistd
      • Packit 437b5e
          
      • posix.utime
      • Packit 437b5e
        Packit 437b5e

        Classes

        Packit 437b5e
          Packit 437b5e
            
        • posix.curses.chstr
        • Packit 437b5e
            
        • posix.curses.window
        • Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
              

          termios.lua

          Packit 437b5e
          Packit 437b5e
          local p = require "posix"
          Packit 437b5e
          local dev = arg[1] or "/dev/ttyUSB0"
          Packit 437b5e
          Packit 437b5e
          -- Open serial port and do settings
          Packit 437b5e
          Packit 437b5e
          local fds, err = p.open(dev, p.O_RDWR + p.O_NONBLOCK);
          Packit 437b5e
          if not fds then
          Packit 437b5e
          	print("Could not open serial port " .. dev .. ":", err)
          Packit 437b5e
          	os.exit(1)
          Packit 437b5e
          end
          Packit 437b5e
          Packit 437b5e
          p.tcsetattr(fds, 0, {
          Packit 437b5e
          	cflag = p.B115200 + p.CS8 + p.CLOCAL + p.CREAD,
          Packit 437b5e
          	iflag = p.IGNPAR,
          Packit 437b5e
          	oflag = p.OPOST,
          Packit 437b5e
          	cc = {
          Packit 437b5e
          		[p.VTIME] = 0,
          Packit 437b5e
          		[p.VMIN] = 1
          Packit 437b5e
          	}
          Packit 437b5e
          })
          Packit 437b5e
          Packit 437b5e
          -- Set stdin to non canonical mode. Save current settings
          Packit 437b5e
          Packit 437b5e
          local save = p.tcgetattr(0)
          Packit 437b5e
          p.tcsetattr(0, 0, {
          Packit 437b5e
          	cc = {
          Packit 437b5e
          		[p.VTIME] = 0,
          Packit 437b5e
          		[p.VMIN] = 1
          Packit 437b5e
          	}
          Packit 437b5e
          })
          Packit 437b5e
          Packit 437b5e
          -- Loop, reading and writing between ports. ^C stops
          Packit 437b5e
          Packit 437b5e
          local set = {
          Packit 437b5e
          	[0] = { events = { IN = true } },
          Packit 437b5e
          	[fds] = { events = { IN = true } },
          Packit 437b5e
          }
          Packit 437b5e
          Packit 437b5e
          p.write(1, "Starting terminal, hit ^C to exit\r\n")
          Packit 437b5e
          Packit 437b5e
          local function exit(msg)
          Packit 437b5e
          	p.tcsetattr(0, 0, save)
          Packit 437b5e
          	print("\n")
          Packit 437b5e
          	print(msg)
          Packit 437b5e
          	os.exit(0)
          Packit 437b5e
          end
          Packit 437b5e
          Packit 437b5e
          while true do
          Packit 437b5e
          	local r = p.poll(set, -1)
          Packit 437b5e
          	for fd, d in pairs(set) do
          Packit 437b5e
          		if d.revents and d.revents.IN then
          Packit 437b5e
          			if fd == 0 then
          Packit 437b5e
          				local d, err = p.read(0, 1024)
          Packit 437b5e
          				if not d then exit(err) end
          Packit 437b5e
          				if d == string.char(3) then exit("Bye") end
          Packit 437b5e
          				local ok, err = p.write(fds, d)
          Packit 437b5e
          				if not ok then exit(err) end
          Packit 437b5e
          			end
          Packit 437b5e
          			if fd == fds then
          Packit 437b5e
          				local d, err = p.read(fds, 1024)
          Packit 437b5e
          				if not d then exit(err) end
          Packit 437b5e
          				local ok, err = p.write(1, d)
          Packit 437b5e
          				if not ok then exit(err) end
          Packit 437b5e
          			end
          Packit 437b5e
          		end
          Packit 437b5e
          	end
          Packit 437b5e
          end
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
           
          Packit 437b5e
           
          Packit 437b5e
          Packit 437b5e
          generated by LDoc 1.4.3
          Packit 437b5e
          Last updated 2015-03-01 09:06:02 
          Packit 437b5e
           
          Packit 437b5e
           
          Packit 437b5e
          </body>
          Packit 437b5e
          </html>