おそらく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