Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

RTXで遊ぶ

4.018 visualizaciones

Publicado el

@第11回 カーネル/VM探検隊

Publicado en: Software
  • Sé el primero en comentar

RTXで遊ぶ

  1. 1. RTXで遊ぶ NV(@nvsofts)
  2. 2. 自己紹介 • HN: NV • Twitter: @nvsofts です(*́ω`*) • Gentoo大大学院修士2年 • 研究でKVMとかLLVMとかを触ってました
 (最近はBitVisorを触ってます)
  3. 3. Kernel/VM経験 • 初参加、初発表です • 勢いで申し込んだ • こんなイメージ→
  4. 4. さてみなさん
  5. 5. 自宅に
  6. 6. ヤマハルータ
  7. 7. ありますよね?
  8. 8. ありますよね?
  9. 9. これ
  10. 10. 今回のネタ • ヤマハルータに搭載されているLua機能のお話です • 公式では割と真面目な使い方が紹介されてますが… • 経路ダウン時にメール送信 • VPNの接続にワンタイムパスワードを使う • など
  11. 11. Lua機能の概要 • ヤマハルータ上でLuaスクリプトを実行してルータ の設定変更やアクションをプログラミングできる
 (公式より) • 独自APIで以下の機能が追加されている • ハードウェア制御(LEDなど) • ソケット通信 • など http://www.rtpro.yamaha.co.jp/RT/docs/lua/
  12. 12. 変な使い方できないかな… • 詳しく見ていくと、変更履歴に変なものが… • バージョン1.04 • ハードウェアライブラリで、USBキーボードやUSB バーコードリーダーの出力を読み取れるようにした !? http://www.rtpro.yamaha.co.jp/RT/docs/lua/
  13. 13. 変な使い方できないかな… • 詳しく見ていくと、変更履歴に変なものが… • バージョン1.04 • ハードウェアライブラリで、USBキーボードやUSB バーコードリーダーの出力を読み取れるようにした !? http://www.rtpro.yamaha.co.jp/RT/docs/lua/
  14. 14. 変な使い方できないかな… • 詳しく見ていくと、変更履歴に変なものが… • バージョン1.04 • ハードウェアライブラリで、USBキーボードやUSB バーコードリーダーの出力を読み取れるようにした !? http://www.rtpro.yamaha.co.jp/RT/docs/lua/
  15. 15. 確かにUSBはあるけど…
  16. 16. USBの役目 • 本来このUSBは、データ保存用のUSBメモリや3G 回線をUSB経由で接続するためのもの • それに加え、Lua機能バージョン1.04からはキーボー ドを接続するという役目が加わった • これで遊ぶしかない!(泣)
  17. 17. 遊ぶためには • 機種のファームウェアリビジョンを確かめる必要がある • 最初から対応済み • RTX1210(今回はこれを使います) • RTX5000 • RTX3500 • FWX120 • RTX810 http://www.rtpro.yamaha.co.jp/RT/docs/lua/
  18. 18. 遊ぶためには • 機種のファームウェアリビジョンを確かめる必要がある • ファームアップの必要があるかも • NVR500 • RTX1200 • SRT1000 • 中古で人気のRTX1100とかはLua遊び自体ができない http://www.rtpro.yamaha.co.jp/RT/docs/lua/
  19. 19. つなぐ • microSDにLuaスクリプトを入れて、USBポートに キーボードをつなぐ
  20. 20. 使い方 • キーボードの制御開始 • LEDなどと同じく、rt.hw.open()を使う • キーボードを表す文字列は”keyboard1” • 戻り値等の扱いもLEDなどと同じ http://www.rtpro.yamaha.co.jp/RT/docs/lua/rt_api.html#rt_hw_open
  21. 21. 使い方 • キーボードの文字の読み取り • 以下のメソッドを使う • hwd:getc() • hwd:getchar() • hwd:gets() • 名前からどんな機能かは想像がつくはず
  22. 22. 使い方 • コード例 • キーボードを開き、1行入力を受け付けてprintする kbd, err = rt.hw.open("keyboard1") if kbd then print(kbd:gets()) kbd:close() else print(err) end
  23. 23. ブザー音の出し方 • bz, err = rt.hw.open(”buzzer1”)
 でブザーデバイスを開く • bz:tone(”音程”)でブザーを鳴らす • 残念ながら(?)鳴らせる音程は決まっている • bz:off()でブザーを止める http://www.rtpro.yamaha.co.jp/RT/docs/lua/rt_api.html#hwd_tone
  24. 24. 遊んでみる • ルータからモールス信号を出してみる • 文字列は外部キーボードから受け取る • モールス信号の発信はビープ音で行う • コードはこちらにアップしてあります • http://bit.ly/1T1Akyq
  25. 25. 問題発生 • 独自APIには、スリープを行うメソッドがあるが秒 単位 • これではモールス信号には使えない • ローテクな空ループを使って1秒未満のウェイトを 入れることにした
  26. 26. THE ローテク • ついカッとなってやった for k = 1, 1400000 do end • RTX1210では1秒=2000000回くらいでした
  27. 27. 音声サンプル • KERNEL VM 11 を変換してみました • https://soundcloud.com/nvsofts/kernel-vm-11
  28. 28. 応用(?)例 • USBキーボード対応のバーコードリーダーを付けて JANコードをスキャンさせて蔵書管理とか • DOWNLOADボタンにSOSのモールス信号を発信 するスクリプトを付ける • ルータと共に遭難しても大丈夫!
  29. 29. まとめ • ヤマハルータのLua機能は、真面目な使い方も当然 できるし、不真面目な使い方もできる! • Lua対応のヤマハルータを持っているのなら
 Let s Lua遊び!

×