Ejemplo n.º 1
0
 def send(self, data):
     payloads = self.split(data, self.group_size)
     for payload in payloads:
         payload = self.escape(payload, self.flag, self.escape_byte)
         frame = self.flag + payload + self.flag
         print 'frame sent by {}: {}'.format(self.endpoint, utils.format_bytes(frame))
         self.port.put(frame)
Ejemplo n.º 2
0
 def send(self, data):
     payloads = self.split(data, self.group_size)
     for payload in payloads:
         payload = self.escape(payload, self.flag, self.escape_byte)
         frame = self.flag + payload + self.flag
         print 'frame sent by {}: {}'.format(self.endpoint,
                                             utils.format_bytes(frame))
         self.port.put(frame)
Ejemplo n.º 3
0
 def collect_bits(self, port):
     # TODO
     # self.data += ibuffer.take_bytes()
     #
     # collect bits at multiples of 8
     bits, port.ibuffer = utils.split_at(port.ibuffer, len(port.ibuffer) // 8 * 8)
     if bits:
         self.data += utils.unbitify(bits)
         print '{} Collected: {}'.format(self, utils.format_bytes(self.data))
         raw_input()
Ejemplo n.º 4
0
                data = ''
                break
        # receive data until end flag
        while True:
            # receive 8 bits
            for _ in range(8):
                yield self.port.bit_arrive.event
                data += self.port.get(1)
            # check if is escaping
            if data.endswith(escape_byte):
                # delete the escaper byte
                data = data[:-8]
                # get the escapee byte
                for _ in range(8):
                    yield self.port.bit_arrive.event
                    data += self.port.get(1)
                continue
            # end flag detected
            if data.endswith(flag):
                data = data[:-8]
                break
        mint.ret(utils.unbitify(data))


if __name__ == '__main__':
    data = '\xff\x01\x00'
    print utils.format_bytes(data)
    edata = Framer.escape(data, '\xff', '\x00')
    print utils.format_bytes(edata, 'hex')
    print utils.format_bytes(Framer.unescape(edata, '\x00'), 'hex')
Ejemplo n.º 5
0
            if data.endswith(flag):
                data = ''
                break
        # receive data until end flag
        while True:
            # receive 8 bits
            for _ in range(8):
                yield self.port.bit_arrive.event
                data += self.port.get(1)
            # check if is escaping
            if data.endswith(escape_byte):
                # delete the escaper byte
                data = data[:-8]
                # get the escapee byte
                for _ in range(8):
                    yield self.port.bit_arrive.event
                    data += self.port.get(1)
                continue
            # end flag detected
            if data.endswith(flag):
                data = data[:-8]
                break
        mint.ret(utils.unbitify(data))

if __name__ == '__main__':
    data = '\xff\x01\x00'
    print utils.format_bytes(data)
    edata = Framer.escape(data, '\xff', '\x00')
    print utils.format_bytes(edata, 'hex')
    print utils.format_bytes(Framer.unescape(edata, '\x00'), 'hex')