示例#1
0
  def refresh(self):
    #    cfg.dbg("hexscreen.py refresh tw:" + str(self.tableWidth) + " ppadCurX:" + str(self.ppadCurX) + " maxX:" + str(self.maxX))
    if(curses.is_term_resized(self.maxY, self.maxX)):
      cfg.dbg("Caught resize event. Consider using immedok()")
      self.tearDown()

    self.drawHeader()
    self.drawFooter()

    # Handle the mini-buffer
    if(self.mBufFocus):
      eStr = self.mBuf.exe()
      if(eStr):
        self.toggleMBuf()
        self.stdscr.move(self.cY, self.cX)
        self.genericTry(eStr)
      else:
        self.printToMBuf(self.mBuf.out())
        self.stdscr.move(self.maxY - 1, self.mBuf.cX)
    else:
      self.printToMBuf(self.mBufMsg)
      self.mBufMsg = ''
      self.stdscr.move(self.cY, self.cX)

    self.refreshBoldPacket()
    self.headPpad.refresh(0, self.ppadCurX, 0, 0, self.headerHeight, self.maxX - 1)
    self.ppad.refresh(self.ppadCurY, self.ppadCurX, self.ppadTopY, 0, self.ppadBottomY, self.maxX - 1)
    self.stdscr.refresh()
    curses.doupdate()
示例#2
0
  def rx(self, count, *filt):
    def end(): # Called before we return
      self.stdscr.nodelay(0) # Reblock character input
      self.initPad(self.cap)
      self.refresh()

    def redraw(): # Called when we need to refresh during capture
      self.initPad(self.cap)
      self.refresh()
      self.printToMBuf("Any key to break")

    if(filt):
      rv = self.cap.initRx(filt[0])
      if(rv != None):
        self.printToMBuf(rv)
        return
    elif(len(filt) == 0):
      rv = self.cap.initRx('')
      if(rv != None):
        self.printToMBuf(rv)
        return
    else:
      cfg.dbg("Error in hexscreen.rx(): Bad filter")
      return

    self.printToMBuf("Any key to break")
    self.stdscr.nodelay(1) # Unblock character input
    captured = 0
    if(count == 0):
      while True:
        rv = self.cap.rx()
        if(rv != 0): # We got a packet
          captured += rv
          if((captured % 10) == 0):
            redraw()

        if(self.getch() != -1):
          end()
          return

    else:
      while(captured != count):
        rv = self.cap.rx()
        if(rv != 0): # We got a packet
          captured += rv
          if((captured % 5) == 0):
            redraw()

        if(self.getch() != -1):
          end()
          return

    end()
示例#3
0
文件: hexcap.py 项目: hexcap/hexcap
    sys.exit(1)


# Is inter-key time gap greater than repeatKey
# Resets typeMaticStamp
def checkRepeatKey():
    global repeatKeyStamp
    if repeatKeyStamp > int(round(time.time() * 100)) - repeatKeyDelay:
        repeatKeyStamp = int(round(time.time() * 100))
        return True
    else:
        repeatKeyStamp = int(round(time.time() * 100))
        return False


cfg.dbg("Start")
# Used for checking for repeat keys
repeatKeyStamp = int(round(time.time() * 100))
repeatKeyDelay = 40  # In hundreths of a second

# Check for args
if len(sys.argv) < 2:
    pc = capture.Capture()

elif len(sys.argv) > 2:
    usage("Too many arguments")

else:
    if not os.path.exists(sys.argv[1]):
        usage("Bad Filename")
    fName = sys.argv[1]