def _sendExact(): if _embedded: result = Storage(traciemb.execute(_message.string)) else: length = struct.pack("!i", len(_message.string)+4) _connections[""].send(length + _message.string) result = _recvExact() if not result: _connections[""].close() del _connections[""] raise FatalTraCIError("connection closed by SUMO") for command in _message.queue: prefix = result.read("!BBB") err = result.readString() if prefix[2] or err: print prefix, _RESULTS[prefix[2]], err elif prefix[1] != command: print "Error! Received answer %s for command %s." % (prefix[1], command) elif prefix[1] == constants.CMD_STOP: length = result.read("!B")[0] - 1 result.read("!%sx" % length) _message.string = "" _message.queue = [] return result
def _sendExact(): if _embedded: result = Storage(traciemb.execute(_message.string)) else: length = struct.pack("!i", len(_message.string) + 4) _connections[""].send(length + _message.string) result = _recvExact() if not result: _connections[""].close() del _connections[""] raise FatalTraCIError("connection closed by SUMO") for command in _message.queue: prefix = result.read("!BBB") err = result.readString() if prefix[2] or err: print prefix, _RESULTS[prefix[2]], err elif prefix[1] != command: print "Error! Received answer %s for command %s." % (prefix[1], command) elif prefix[1] == constants.CMD_STOP: length = result.read("!B")[0] - 1 result.read("!%sx" % length) _message.string = "" _message.queue = [] return result
def _sendExact(self): if _embedded: result = Storage(traciemb.execute(self._string)) else: length = struct.pack("!i", len(self._string) + 4) self._socket.send(length + self._string) result = self._recvExact() if not result: self._socket.close() del self._socket raise FatalTraCIError("connection closed by SUMO") for command in self._queue: prefix = result.read("!BBB") err = result.readString() if prefix[2] or err: self._string = bytes() self._queue = [] raise TraCIException(prefix[1], _RESULTS[prefix[2]], err) elif prefix[1] != command: raise FatalTraCIError("Received answer %s for command %s." % (prefix[1], command)) elif prefix[1] == tc.CMD_STOP: length = result.read("!B")[0] - 1 result.read("!%sx" % length) self._string = bytes() self._queue = [] return result