ねじれたアプリケーションでは、ajax POST 経由で (modbus への) TCP 接続を開始/停止したいと考えています。接続ステータスに応じて、[接続] または [切断] というタイトルのボタンが 1 つあります。
今私のコードは次のようになります:
class ConnectHandler(Resource):
modbus_connection = None
def try_disconnect(self):
log.msg('Disconnecting...')
try:
self.modbus_connection.disconnect()
except:
log.err()
return self.modbus_connection.state
def try_connect(self):
try:
framer = ModbusFramer(ClientDecoder())
reader = DataReader()
factory = ModbusFactory(framer, reader) # inherits from ClientFactory
self.modbus_connection = reactor.connectTCP(ip, 502, factory)
except:
log.err()
return str(self.modbus_connection.state)
def render_POST(self, request):
if self.modbus_connection and \
self.modbus_connection.state == 'connected':
return self.try_disconnect()
else:
return self.try_connect()
接続を開始すると「接続中」になり、接続を停止すると「接続済み」になります。接続が確立または切断されるまで応答で待機し、接続ステータス (接続または切断 + オプションでエラーの説明) を返します。
ありがとうございました。