Exemple #1
0
void USBH_HID_EventCallback(USBH_HandleTypeDef *phost) {
  if (USBH_HID_GetDeviceType(&hUSBHost) == HID_MOUSE) {
    HID_MOUSE_Info_TypeDef *m_pinfo_mouse;
    m_pinfo_mouse = USBH_HID_GetMouseInfo(phost);
    if (m_pinfo_mouse) {
//      USBH_DbgLog("btns:%u%u%u", m_pinfo_mouse->buttons[0],m_pinfo_mouse->buttons[1],m_pinfo_mouse->buttons[2]);
      hid_buttons[0] = m_pinfo_mouse->buttons[0];
      hid_buttons[1] = m_pinfo_mouse->buttons[1];
      hid_buttons[2] = m_pinfo_mouse->buttons[2];
      hid_mouse_x += m_pinfo_mouse->x;
      hid_mouse_y += m_pinfo_mouse->y;
    } else {
      hid_buttons[0] = 0;
      hid_buttons[1] = 0;
      hid_buttons[2] = 0;
    }
    USBH_DbgLog("btns:%u%u%u", hid_buttons[0],hid_buttons[1],hid_buttons[2]);
  }
  else if (USBH_HID_GetDeviceType(&hUSBHost) == HID_KEYBOARD) {
    HID_KEYBD_Info_TypeDef *m_pinfo_keyb;
    m_pinfo_keyb = USBH_HID_GetKeybdInfo(phost);
    if (m_pinfo_keyb) {
      if (m_pinfo_keyb->lshift) {
        USBH_DbgLog("ls");

      }
      if (m_pinfo_keyb->rshift) {
        USBH_DbgLog("rs");
      }
    }
  }
}
Exemple #2
0
/**
  * @brief  Main routine for Keyboard application
  * @param  phost: Host handle
  * @retval None
  */
static void USBH_KeybdDemo(USBH_HandleTypeDef *phost)
{
    HID_KEYBD_Info_TypeDef *k_pinfo;
    char c;
    k_pinfo = USBH_HID_GetKeybdInfo(phost);

    if(k_pinfo != NULL)
    {
        c = USBH_HID_GetASCIICode(k_pinfo);
        if(c != 0)
        {
            USR_KEYBRD_ProcessData(c);
        }
    }
}
/**
  * @brief  Main routine for Keyboard application
  * @param  phost: Host handle
  * @retval None
  */
static void USBH_KeybdDemo(USBH_HandleTypeDef *phost)
{
  HID_KEYBD_Info_TypeDef *k_pinfo; 
  char c;
  
  if(hid_demo.keyboard_state != HID_KEYBOARD_START)
  {
    
    k_pinfo = USBH_HID_GetKeybdInfo(phost);
    
    if(k_pinfo != NULL)
    {
      c = USBH_HID_GetASCIICode(k_pinfo);
      if(c != 0)
      {
        USR_KEYBRD_ProcessData(c);
      }
    }
  }
}
TM_USBH_HID_t TM_USBH_HID_GetKeyboard(TM_USB_t USB_Mode, TM_USBH_HID_Keyboard_t* KeyboardStruct) {
	HID_KEYBD_Info_TypeDef* k_pinfo; 
	uint8_t i;
	
	/* Get keyboard informations */
	k_pinfo = USBH_HID_GetKeybdInfo(TM_USBH_GetUSBPointer(USB_Mode));

	/* Check for ASCII value */
	if (k_pinfo != NULL) {
		/* Get ASCII value */
		KeyboardStruct->C = USBH_HID_GetASCIICode(k_pinfo);
		
		/* Copy everything */
		for (i = 0; i < 6; i++) {
			KeyboardStruct->Keys[i] = k_pinfo->keys[i];
		}
		
		/* Control pins */
		KeyboardStruct->Special.S.LAlt = k_pinfo->lalt ? 1 : 0;
		KeyboardStruct->Special.S.LShift = k_pinfo->lshift ? 1 : 0;
		KeyboardStruct->Special.S.LCtrl = k_pinfo->lctrl ? 1 : 0;
		KeyboardStruct->Special.S.LGUI = k_pinfo->lgui ? 1 : 0;
		KeyboardStruct->Special.S.RAlt = k_pinfo->ralt ? 1 : 0;
		KeyboardStruct->Special.S.RShift = k_pinfo->rshift ? 1 : 0;
		KeyboardStruct->Special.S.RCtrl = k_pinfo->rctrl ? 1 : 0;
		KeyboardStruct->Special.S.RGUI = k_pinfo->rgui ? 1 : 0;
		KeyboardStruct->Status = k_pinfo->state;
		
		/* Set flags if needed */
		KeyboardStruct->Special.S.Alt = KeyboardStruct->Special.S.LAlt | KeyboardStruct->Special.S.RAlt;
		KeyboardStruct->Special.S.Shift = KeyboardStruct->Special.S.LShift | KeyboardStruct->Special.S.RShift;
		KeyboardStruct->Special.S.Ctrl = KeyboardStruct->Special.S.LCtrl | KeyboardStruct->Special.S.RCtrl;
		KeyboardStruct->Special.S.GUI = KeyboardStruct->Special.S.LGUI | KeyboardStruct->Special.S.RGUI;
	
		/* Keyboard connected and OK */
		return TM_USBH_HID_Keyboard;
	}
	
	/* Return ERROR */
	return TM_USBH_HID_None;
}