2009-10-07 16 views
0

我想檢測在linux中按網絡攝像頭頂部的「快照」按鈕。按鈕在/ dev的此項: /dev/input/by-id/usb-PixArt_Imaging_Inc._USB2.0_UVC_VGA-event-if00在pyevent中使用回調函數

我現在用的是「相對」的包裝,此刻,因爲它處理異常更好。在執行下面的代碼之前,self.s.cam_btn被分配給按鈕的/ dev條目。

rel.override() 
    rel.init() 
    rel.read(self.s.cam_btn, self.snap) 
    rel.dispatch() 

self.snap()是回調函數。它捕捉來自mplayer的屏幕截圖並將圖像提供給OCR程序。一切主要工作,直到回調返回。問題如下:

如果self.snap()不返回任何內容,程序將停止並且不會再服務任何其他按鈕事件。如果self.snap()返回1,程序將繼續在無限循環中服務相同的按鈕事件,而不是等待新事件。 pyevent的文檔有點稀疏,因此感激地收到了任何幫助。

克林頓

回答

0

沒用過pyevent,但將嘗試在處理程序結束重新安排的事件:

def snap(self): 
    # ... code ... 
    rel.read(self.s.cam_btn, self.snap) 
    return False