В скрученном приложении я хотел бы запустить / остановить соединение tcp (к Modbus) через ajax POST. У меня есть одна кнопка под названием «Подключиться» или «Отключиться» в зависимости от состояния подключения.
Теперь мой код выглядит так:
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()
Теперь я получаю «соединение» при запуске соединения и «подключение» при прекращении соединения. Я хотел бы подождать с ответом, пока соединение не будет установлено или отменено, и вернуть статус соединения (подключено или отключено + необязательно описание ошибки).
Спасибо.