BU-353のデータをJavaScriptで受信
っていっても、Rubyを介してやってますが。
Ruby側。ActiveScriptRubyで。
require "wincom" def open s = Serial.new s.open(7, 11, 4800, 8, 0, 0, 1, 100) return s end def get(s) s.receive end def close(s) s.close() end
こんなのを一々書くの面倒ですね。ASRにはもっと楽な方法あるのかもしれない。
JavaScript (WSH)。
var rubyFile = "../lib/ruby/commet_gps.rb"; // ScriptControl var sc = WScript.CreateObject("ScriptControl"); sc.Language = "RubyScript"; sc.AddCode( readData(rubyFile) ); var ruby = sc.CodeObject; WScript.Echo(readData(rubyFile)); var gps = ruby.open(); while(true){ WScript.Echo( ruby.get(gps) ); WScript.Sleep(1000); } // functions function readData(path){ var fso; try{ fso = WScript.CreateObject("Scripting.FileSystemObject"); } catch(e){ fso = new ActiveXObject("Scripting.FileSystemObject"); } var ForReading = 1; var ts = fso.OpenTextFile(path, ForReading); var s = ts.ReadAll(); ts.Close(); return s; }
やったー動いたー!(完)