コード例 #1
0
ファイル: __init__.py プロジェクト: k0emt/macts
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
コード例 #2
0
ファイル: __init__.py プロジェクト: maslab-ufrgs/sumoplot
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
コード例 #3
0
 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
コード例 #4
0
ファイル: connection.py プロジェクト: cbrafter/sumo
 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