基本的なdjangoセットアップを実行していて、現在、シリアル接続にデータを書き込むためのdajaxice呼び出しを実装しています(RainbowDuinoはもう一方の端にあります)。
次のコードは機能しますが、Arduinoへのシリアル接続を確立するときは、Arduinoがリセットされるため、データを書き込む前に待機する必要があります。
from django.utils import simplejson
from dajaxice.decorators import dajaxice_register
import time, serial
def serialWrite(msg):
try:
ser = serial.Serial('/dev/ttyUSB0', 9600)
time.sleep(1.5) #wait for arduino to reset
ser.write(msg)
return "Running Animation"
except:
return "Failed to communicate with cube"
@dajaxice_register
def animate(request, data):
msg = serialWrite(str(data))
return simplejson.dumps({'message':msg})
私はpythonとdjangoのすべてに慣れていないので、この環境でシリアル接続を使用できる永続オブジェクトを維持する方法がわかりません。私自身の読み取りとテストから、dajaxiceに登録されたメソッドは、対応するボタンのクリックを受信したときにのみ呼び出されることがわかります。
これは、アプリのビューを使用してシリアル接続をインスタンス化できる可能性がある場合ですか?そうであれば、接続をdajaxice呼び出しと共有するにはどうすればよいですか?