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()
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()
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]