#!/opt/QtPalmtop/bin/ruby

# ruby-serialportを使って
# Linux ZaurusでPHSカードから位置情報を得る
#
# 試し試し書いた書きかけでゴミスクリプトです
# タイムアウト処理、例外処理を山ほど入れないと
#
# moyashi (komugi)
# http://moyashi.air-nifty.com/

require 'serialport'

debug = false
port = "/dev/ttyS3"

# PHSカードを起こす
if (`cardctl status 0` =~ /suspend/)
  system("cardctl resume 0")
end

while (`cardctl status 0` =~ /suspend/)
  sleep(0.5)
end

sp = SerialPort.new(port, 1200, 8, 1, SerialPort::NONE)
sp.flow_control = (SerialPort::HARD | SerialPort::SOFT)

# SerialPort::NONE, SerialPort::HARD, SerialPort::SOFT
# or (SerialPort::HARD | SerialPort::SOFT)

#puts sp.closed?
#puts sp.read_timeout

sp.puts "AT@LBC1\r"

while (res = sp.gets)
  puts res if debug
  if (res =~ /OK/)
    break
  end
end

while true
  buf = res = ""
  sp.puts "AT@LBC?\r"
  timeout = 5
  while (res = sp.gets)
    buf = res.chomp if res =~ /^N/
    puts "#{buf} #{res}" if res =~ /^E/
    if (res =~ /OK/ && timeout == 0)
      break
    end
    timeout -= 1
  end
end

#sp.close