docs: def setKeyButton( self, btnId, keyCallback, bounceTime = DEF_BOUNCE_TIME_NORMAL, pullUpDown = GPIO.PUD_UP, event = GPIO.BOTH ):
          """!
          \~english
          Set key button event
          @param btnId: Key button pin number in BCM
          @param keyCallback: A interrupt <b>callback_function</b> or <b>None</b>. <br>
                 If set to <b>None</b> means keybutton work in query mode<br>
                 then uses RPiKeyButtons#readKeyButton for get keybutton status
          @param bounceTime: Default set to DEF_BOUNCE_TIME_NORMAL
          @param pullUpDown: Default set to GPIO.PUD_UP
          @param event: Default set to GPIO.BOTH. it can be: { GPIO.RISING | GPIO.FALLING | GPIO.BOTH }
  
          \~chinese
          设置按键事件
          @param btnId: 按键IO号(in BCM mode)
          @param keyCallback: 按键中断回调函数 <b>callback_function</b> 或 <b>None</b><br>
                  如果设置为<b>None</b>，则表示按键工作在查询模式<br>
                  然后使用 RPiKeyButtons#readKeyButton 获取 keybutton 状态
          @param bounceTime: 默认 DEF_BOUNCE_TIME_NORMAL
          @param pullUpDown: 默认 GPIO.PUD_UP
          @param event: 默认 GPIO.BOTH 它可以是: { GPIO.RISING | GPIO.FALLING | GPIO.BOTH }
  
          \~ \n
          @see DEF_BOUNCE_TIME_SHORT_MON (10ms)
          @see DEF_BOUNCE_TIME_SHORT (50ms)
          @see DEF_BOUNCE_TIME_NORMAL (100ms)
          @see DEF_BOUNCE_TIME_LONG (200ms)
  
          @note
              * setKeyButton(btnId = 12, keyCallback = None )
              * setKeyButton(btnId = 14, keyCallback = aKeyCallbackFun ) <br>
                  <pre>
                  \# a simple callback function
                  def aKeyCallbackFun(channel):
                      print(channel)
                      pass
                  </pre>
          """
          GPIO.setup( btnId, GPIO.IN, pull_up_down=pullUpDown)
          # The keyCallback is None means setting keybutton in query mode, 
          # then uses readKeyButton for get keybutton status
          # event can be { RISING, FALLING, BOTH }
          if keyCallback != None:
              try:
                  GPIO.add_event_detect( btnId, event, callback=keyCallback, bouncetime=bounceTime )
              except:
                  pass
          pass