code: def send_hid_event(use_page, usage, down):
      
      message = create(protobuf.SEND_HID_EVENT_MESSAGE)
      event = message.inner()
  
      # TODO: This should be generated somehow. I guess it's mach AbsoluteTime
      # which is tricky to generate. The device does not seem to care much about
      # the value though, so hardcode something here.
      abstime = binascii.unhexlify(b'438922cf08020000')
  
      data = use_page.to_bytes(2, byteorder='big')
      data += usage.to_bytes(2, byteorder='big')
      data += (1 if down else 0).to_bytes(2, byteorder='big')
  
      # This is the format that the device expects. Some day I might take some
      # time to decode it for real, but this is fine for now.
      event.hidEventData = abstime + \
          binascii.unhexlify(b'00000000000000000100000000000000020' +
                             b'00000200000000300000001000000000000') + \
          data + \
          binascii.unhexlify(b'0000000000000001000000')
  
      return message
docs: Create a new SEND_HID_EVENT_MESSAGE.