SENSOR

おそらくUSB型の環境センサーを接続すると、その値が取得できるものと思われる(まだ試したことがないので何とも言えない)。取得できない場合EMPTYを返す。

構文
SENSOR( 取得項目 )
引数
取得項目
取得項目:以下の定数
SNSR_Biometric_HumanPresense
人が存在した場合に True
SNSR_Biometric_HumanProximity
人との距離(メートル)
SNSR_Electrical_Capacitance
静電容量(ファラド)
SNSR_Electrical_Resistance
電気抵抗(オーム)
SNSR_Electrical_Inductance
誘導係数(ヘンリー)
SNSR_Electrical_Current
電流(アンペア)
SNSR_Electrical_Voltage
電圧(ボルト)
SNSR_Electrical_Power
電力(ワット)
SNSR_Environmental_Temperature
気温(セ氏)
SNSR_Environmental_Pressure
気圧(バール)
SNSR_Environmental_Humidity
湿度(パーセンテージ)
SNSR_Environmental_WindDirection
風向(度数)
SNSR_Environmental_WindSpeed
風速(メートル毎秒)
SNSR_Light_Lux
照度(ルクス)
SNSR_Light_Temperature
光色温度(ケルビン)
SNSR_Mechanical_Force
力(ニュートン)
SNSR_Mechanical_AbsPressure
絶対圧(パスカル)
SNSR_Mechanical_GaugePressure
ゲージ圧(パスカル)
SNSR_Mechanical_Weight
重量(キログラム)
SNSR_Motion_AccelerationX, Y, Z
X/Y/Z軸 加速度(ガル)
SNSR_Motion_AngleAccelX, Y, Z
X/Y/Z軸 角加速度(度毎秒毎秒)
SNSR_Motion_Speed
速度(メートル毎秒)
SNSR_Scanner_RFIDTag
RFIDタグの40ビット値
SNSR_Scanner_BarcodeData
バーコードデータを表す文字列
SNSR_Orientation_TiltX, Y, Z
X/Y/Z 軸角(度)
SNSR_Orientation_DistanceX, Y, Z
X/Y/Z 距離(メートル)
SNSR_Orientation_MagHeading
磁北基準未補正コンパス方位
SNSR_Orientation_TrueHeading
真北基準未補正コンパス方位
SNSR_Orientation_CompMagHeading
磁北基準補正済みコンパス方位
SNSR_Orientation_CompTrueHeading
真北基準補正済みコンパス方位
SNSR_Location_Altitude
海抜(メートル)
SNSR_Location_Latitude
緯度(度数)
SNSR_Location_Longitude
経度(度数)
SNSR_Location_Speed
スピード(メートル毎秒)
戻値
取得したセンサー値

プログラム実行例

環境センサーから位置情報を取得し、Googleマップで表示

DIM IE = CREATEOLEOBJ("InternetExplorer.Application") IE.Visible = TRUE DIM latitude = SENSOR(SNSR_Location_Latitude) DIM longitude = SENSOR(SNSR_Location_Longitude) IE.Navigate("https://www.google.co.jp/maps/@" + latitude + "," + longitude + ",15z?hl=ja") BusyWait(IE) // 終了する // IE.Quit ////////////////////////////////////////////////// // 【引数】 // IE : IEオブジェクト // 【戻値】 // ////////////////////////////////////////////////// PROCEDURE BusyWait(Var IE) SLEEP(0.500) DIM t = GETTIME() TRY REPEAT DIM tm = GETTIME() - t FUKIDASI("BusyWait:" + tm) SLEEP(0.010) IF tm >= 60 THEN BREAK UNTIL !IE.Busy AND IE.readyState = 4 EXCEPT IE = getIEObj(-1) PRINT IE.document.URL + " のIEオブジェクトを取得しました。" BusyWait(IE) ENDTRY FUKIDASI() FEND ////////////////////////////////////////////////// // 【引数】 // 文字列 or 数値 : 取得したいIEオブジェクトのタイトル・URLもしくは数値を指定 // 完全一致フラグ : (TRUE : 文字列が完全一致したものを取得、FALSE : 文字列の一部を含むものを取得) // 【戻値】 // Internet Explorerオブジェクト ////////////////////////////////////////////////// FUNCTION getIEObj(str, flg = FALSE) DIM Shell = CREATEOLEOBJ("Shell.Application") SELECT CHKNUM(str) CASE TRUE DIM cnt = 0 SELECT TRUE CASE str > 0 FOR n = 0 TO Shell.Windows.Count - 1 TRY IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1 IFB str = cnt THEN RESULT = Shell.Windows.Item(n) EXIT ENDIF ENDIF EXCEPT ENDTRY NEXT CASE str < 0 FOR n = Shell.Windows.Count - 1 TO 0 STEP -1 TRY IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1 IFB ABS(str) = cnt THEN RESULT = Shell.Windows.Item(n) EXIT ENDIF ENDIF EXCEPT ENDTRY NEXT CASE str = 0 FOR n = 0 TO Shell.Windows.Count - 1 TRY IF Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1 EXCEPT ENDTRY NEXT RESULT = cnt EXIT SELEND CASE FALSE DIM t = GETTIME() REPEAT FOR n = 0 TO Shell.Windows.Count - 1 TRY DIM targetObj = Shell.Windows.Item(n) IFB targetObj.Name = "Internet Explorer" THEN SELECT flg CASE TRUE IFB targetObj.document.title = str OR targetObj.LocationURL = str THEN RESULT = Shell.Windows.Item(n) EXIT ENDIF CASE FALSE IFB POS(str, targetObj.document.title) OR POS(str, targetObj.LocationURL) THEN RESULT = Shell.Windows.Item(n) EXIT ENDIF SELEND ENDIF EXCEPT ENDTRY NEXT UNTIL GETTIME() - t >= 5 SELEND RESULT = ERR_VALUE FEND