2

OK、マイクロチップのPic-webで何かを監視および制御しようとしています。1つのことを除いて、なんとかすべてをプログラムすることができました。2つの温度を比較する必要があり、一方が他方よりも小さい場合はリレーをアクティブにする必要があり、大きいか等しい場合は別のリレーをアクティブにする必要があります。私が理解したことから、Pic-web は xml ファイル (status.xml) を更新し、Web サイト (ajax を使用) はそこから値を取得し、それらを Web ページに表示します。

XMLファイルは次のようになります

<response>
<temp0>~temp~</temp0>
<temp2>~tempc~</temp2>
</response

Web ページで値を取得するために使用する ajax コード

document.getElementById('temp0').innerHTML = getXMLValue(xmlData, 'temp0');
document.getElementById('temp2').innerHTML = getXMLValue(xmlData, 'temp2');

そしてそれらを表示するために私は使用します

<span id="temp0"style="font-weight:normal">?</span>
<span id="temp2"style="font-weight:normal">?</span>

temp0 と temp2 を比較するだけです。

    var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
    var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

    if( temp0 < temp2 ) 
    {
        document.getElementById('temp3').innerHTML = '<font color="#00FF00">ON</font>';
    } 
    else 
    {
        document.getElementById('temp3').innerHTML = '<font color="#00FFFF">OFF</font>';

}

<span id="temp3">?</span>結果を表示するために追加するだけです

私は正しいですか?

4

4 に答える 4

1
if(getXMLValue(xmlData, 'temp0') < 'temp2')

'temp0'の値ではありませんdocument.getElementById('temp0')。'temp0' を含む文字列を作成しただけです。

これを変数に割り当て、文字列から数値に変換する必要があります。

var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

次に使用します。

if(temp0 < temp2)
于 2012-06-19T16:27:05.187 に答える
0
// Compare the two temperatures
var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

if( temp0 < temp2 ) {
    document.getElementById('temp3').innerHTML = '<font color="#00FF00">ON</font>';
} else {
    document.getElementById('temp3').innerHTML = '<font color="#FF0000">OFF</font>';
}

これは、temp2 > temp0 の場合に ON と表示されます

temp0 < temp2 の場合はオフ

ご支援いただきありがとうございます

于 2012-06-21T11:16:10.170 に答える
0

このようなものはどうですか:

var temp0 = parseInt(getXMLValue(xmlData, 'temp0'))
  , temp2 = parseInt(getXMLValue(xmlData, 'temp2'));

if( temp0 < temp2 ) {
    ...
} else {
    ...
}
于 2012-06-19T16:27:46.350 に答える
0

この行は正しくないようです...

if(getXMLValue(xmlData, 'temp0') < 'temp2')

すべきか…?

if(getXMLValue(xmlData, 'temp0') < getXMLValue(xmlData, 'temp2'))

また、getXMLValue が何らかの種類の数値を返さない限り、比較する前に変換する必要があります。

于 2012-06-19T16:26:05.570 に答える