Ejemplo n.º 1
0
 def send_frame(self, frame):
     frame.encode()
     retry = 1
     while retry:
         self.write_exact(frame.raw)
         # Get the reply from the device
         reply = character(self.serial.read())
         if reply == sfl_ack_success:
             retry = 0
         elif reply == sfl_ack_crcerror:
             retry = 1
         else:
             print("[FLTERM] Got unknown reply '{}' from the device, aborting.".format(reply))
             return 0
     return 1
Ejemplo n.º 2
0
 def send_frame(self, frame):
     frame.encode()
     retry = 1
     while retry:
         self.write_exact(frame.raw)
         # Get the reply from the device
         reply = character(self.serial.read())
         if reply == sfl_ack_success:
             retry = 0
         elif reply == sfl_ack_crcerror:
             retry = 1
         else:
             print("[FLTERM] Got unknown reply '{}' from the device, aborting.".format(reply))
             return 0
     return 1
Ejemplo n.º 3
0
 def writer(self):
     try:
         while self.writer_alive:
             try:
                 b = console.getkey()
             except KeyboardInterrupt:
                 b = serial.to_bytes([3])
             c = character(b)
             if c == chr(0x03):
                 self.stop()
             elif c == "\n":
                 self.serial.write(LF)
             else:
                 self.serial.write(b)
     except:
         self.writer_alive = False
         raise
Ejemplo n.º 4
0
    def reader(self):
        try:
            while self.reader_alive:
                c = character(self.serial.read())
                if c == "\r":
                    sys.stdout.write("\n")
                else:
                    sys.stdout.write(c)
                sys.stdout.flush()

                if self.kernel_image is not None:
                    if self.detect_magic(c):
                        self.answer_magic()

        except serial.SerialException:
            self.reader_alive = False
            raise
Ejemplo n.º 5
0
 def writer(self):
     try:
         while self.writer_alive:
             try:
                 b = console.getkey()
             except KeyboardInterrupt:
                 b = serial.to_bytes([3])
             c = character(b)
             if c == chr(0x03):
                 self.stop()
             elif c == '\n':
                 self.serial.write(LF)
             else:
                 self.serial.write(b)
     except:
         self.writer_alive = False
         raise
Ejemplo n.º 6
0
    def reader(self):
        try:
            while self.reader_alive:
                c = character(self.serial.read())
                if c == '\r':
                    sys.stdout.write('\n')
                else:
                    sys.stdout.write(c)
                sys.stdout.flush()

                if self.kernel_image is not None:
                    if self.detect_magic(c):
                        self.answer_magic()

        except serial.SerialException:
            self.reader_alive = False
            raise