Exemple #1
0
/**
  * @brief  Changes the selection mode.
  * @param  select_mode: Selection mode
  * @retval None
  */
void CDC_ChangeSelectMode(CDC_DEMO_SelectMode select_mode)
{
  if(select_mode == CDC_SELECT_CONFIG)
  {
    LCD_ClearTextZone();
    CDC_SelectItem(DEMO_CONFIGURATION_menu, 0xFF);
    CdcSettingsState.select = 0;
    CDC_SelectSettingsItem(0); 
  }
  else if(select_mode == CDC_SELECT_FILE)
  {
    CDC_SelectItem(DEMO_SEND_menu, 0xFF);
    CdcSettingsState.select = 0;
  }
  else if(select_mode == CDC_SELECT_MENU)
  {
    if(CdcDemo.state == CDC_DEMO_CONFIGURATION)
    {   
      CDC_SelectSettingsItem(0xFF); 
      CDC_SelectItem(DEMO_CONFIGURATION_menu, 0); 
    }
    
    if(CdcDemo.state == CDC_DEMO_SEND)
    {   
      CDC_SelectItem(DEMO_SEND_menu, 1); 
    }
  }
  CdcSelectMode = select_mode; 
  CdcDemo.select = 0;
}
/**
  * @brief  Adjusts CDC configuration setting Menu.
  * @param  None
  * @retval None
  */
void CDC_AdjustSettingMenu(void)
{
  uint8_t str_temp[40];
  
  BSP_LCD_SetBackColor(LCD_COLOR_MAGENTA); 
  
  if(CdcSettingsState.select != PrevSelect)
  {
    PrevSelect = CdcSettingsState.select;
    CDC_SelectSettingsItem(CdcSettingsState.select);
  }
  
  if(CdcSettingsState.settings.BaudRateIdx != Prev_BaudRateIdx)
  {
    Prev_BaudRateIdx = CdcSettingsState.settings.BaudRateIdx;
    
    if(BaudRateValue[CdcSettingsState.settings.BaudRateIdx] <= 9600)
      sprintf((char *)str_temp, "         %lu", BaudRateValue[CdcSettingsState.settings.BaudRateIdx]);
    else if(BaudRateValue[CdcSettingsState.settings.BaudRateIdx] <= 57600)
      sprintf((char *)str_temp, "        %lu", BaudRateValue[CdcSettingsState.settings.BaudRateIdx]);
    else
      sprintf((char *)str_temp, "       %lu", BaudRateValue[CdcSettingsState.settings.BaudRateIdx]);
    
    BSP_LCD_DisplayStringAtLine(9, str_temp);
    
    LineCoding.b.dwDTERate = BaudRateValue[CdcSettingsState.settings.BaudRateIdx];  
  }
  
  if(CdcSettingsState.settings.DataBitsIdx != Prev_DataBitsIdx)
  {
    Prev_DataBitsIdx = CdcSettingsState.settings.DataBitsIdx;
    sprintf((char *)str_temp, "            %d", DataBitsValue[CdcSettingsState.settings.DataBitsIdx]);
    BSP_LCD_DisplayStringAtLine(10, str_temp);
    LineCoding.b.bDataBits = DataBitsValue[CdcSettingsState.settings.DataBitsIdx];
  }
  
  if(CdcSettingsState.settings.ParityIdx != Prev_ParityIdx)
  {
    Prev_ParityIdx = CdcSettingsState.settings.ParityIdx;
    if(CdcSettingsState.settings.ParityIdx == 2)
      sprintf((char *)str_temp, "          %s", (uint8_t *)ParityArray[CdcSettingsState.settings.ParityIdx]);
    else
      sprintf((char *)str_temp, "         %s", (uint8_t *)ParityArray[CdcSettingsState.settings.ParityIdx]);
    BSP_LCD_DisplayStringAtLine(11, str_temp);
    LineCoding.b.bParityType = CdcSettingsState.settings.ParityIdx;          
  }
  
  if(CdcSettingsState.settings.StopBitsIdx!= Prev_StopBitsIdx)
  {
    Prev_StopBitsIdx = CdcSettingsState.settings.StopBitsIdx;
    sprintf((char *)str_temp, "            %s", StopBitsArray[CdcSettingsState.settings.StopBitsIdx]);
    BSP_LCD_DisplayStringAtLine(12, str_temp);
    LineCoding.b.bCharFormat = CdcSettingsState.settings.StopBitsIdx;       
  }  
  BSP_LCD_SetBackColor(LCD_COLOR_BLUE); 
}