Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

RTXで遊ぶ

4,793 views

Published on

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

Published in: Software
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/2F90ZZC ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❤❤❤ http://bit.ly/2F90ZZC ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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遊び!

×