2

シリアル デバイス (Xbee モジュール) をポーリングするために使用する非常に単純な Python スクリプトがあります。基本的には、無限の while ループです。このループを繰り返すたびに、Web ページを更新したいと考えています。ユーザーがボタンをクリックして ajax 投稿をサーバーに送信したり戻したりする UI 相互作用を示す多くのサンプルを見てきましたが、ユーザーの操作なしで Python バックエンド ループがクライアントへの更新を行うようにしたいと考えています。私は web.py と ajax を見てきましたが、それが進むべき道のようです. 私のpythonスクリプトの要点は次のとおりです。

ser = serial.Serial('COM3', baudrate=9600)
while 1:
    data = ser.readline()
    if len(data) == 14:
        num = struct.unpack('BBBBBBBBBBBBBB', data)[9]
        if num == 1:
            // update the web client with 1
        elif num == 2:
            // update the web client with 2
        else:
            // update the web client with 0
    app.processEvents()

セットアップは、apache2 および python 2.7 を使用して ubuntu 12.04 で実行されています。

4

1 に答える 1

0

主な制限は、サーバー上のスクリプト内からクライアントに表示される Web サイトを更新できないことです。Javascript を介して Web サイト内からデータを要求し、サーバーが更新されたデータを返すようにする必要があります。

あなたのウェブサイト内で、あなたは使用することができます

setInterval(function() {
    //do something
    }, 2000)

また

setTimeout(function() {
    //do something
    }, 2000)

2秒ごとに何かをすること。次に、最も簡単な方法は、ウェブサイトをリロードすることです

window.location.reload()

<iframe>small を使用して、小さな部分だけを更新することもできます。

より洗練されたオプションは AJAX を使用することです。そのためには、jQuery のような確立されたライブラリを使用することをお勧めします: jQuery AJAX。jQuery を使用すると、Web サイトのコンテンツを非常に簡単に変更できます。ドキュメントを参照してください。

于 2013-01-15T07:33:01.080 に答える