Пример #1
0
/**
 * @brief
 * @param	None
 * @retval	None
 */
void lcdChangeDisplayStateOfSidebar(uint32_t SidebarId)
{
    GUIDisplayState displayState = GUIContainer_GetDisplayState(SidebarId);
    if (displayState == GUIDisplayState_NotHidden)
    {
        /* Hide this sidebar and display the last active instead */
        GUIContainer_Hide(SidebarId);
        GUIContainer_Draw(prvIdOfLastActiveSidebar);
        /* Set the last active as active now */
        prvIdOfActiveSidebar = prvIdOfLastActiveSidebar;
        prvIdOfLastActiveSidebar = GUIContainerId_SidebarEmpty;
    }
    else if (displayState == GUIDisplayState_Hidden)
    {
        /* Hide the active sidebar and display this sidebar instead */
        GUIContainer_Hide(prvIdOfActiveSidebar);
        GUIContainer_Draw(SidebarId);
        /* Save the old active sidebar and set this sidebar as the new active one */
        prvIdOfLastActiveSidebar = prvIdOfActiveSidebar;
        prvIdOfActiveSidebar = SidebarId;
    }

    if (prvIdOfActiveSidebar != GUIContainerId_SidebarSystem)
    {
        prvActiveChannelHasChanged = true;
    }
}
Пример #2
0
/**
 * @brief
 * @param	Event: The event that caused the callback
 * @param	ButtonId: The button ID that the event happened on
 * @retval	None
 */
void guiUart1ParityButtonCallback(GUITouchEvent Event, uint32_t ButtonId)
{
	if (Event == GUITouchEvent_Up)
	{
		GUIDisplayState displayState = GUIContainer_GetDisplayState(GUIContainerId_PopoutUart1Parity);

		if (displayState == GUIDisplayState_Hidden)
		{
			GUI_SetActiveLayer(GUILayer_1);
			GUIButton_SetLayer(GUIButtonId_Uart1Parity, GUILayer_1);
			GUIButton_SetState(GUIButtonId_Uart1Parity, GUIButtonState_Enabled);
			GUIContainer_Draw(GUIContainerId_PopoutUart1Parity);
		}
		else if (displayState == GUIDisplayState_NotHidden)
		{
			GUIContainer_Hide(GUIContainerId_PopoutUart1Parity);
			GUI_SetActiveLayer(GUILayer_0);
			GUIButton_SetLayer(GUIButtonId_Uart1Parity, GUILayer_0);
			GUIButton_SetState(GUIButtonId_Uart1Parity, GUIButtonState_Disabled);

			/* Refresh the main text box */
			guiUart1ManageMainTextBox(true);
		}
	}
}
Пример #3
0
/**
 * @brief	Initializes the GUI elements
 * @param	None
 * @retval	None
 */
static void prvInitGuiElements()
{
    GUI_Init();

    /* TODO: BUG? We need to clear the active window one time first for some reason */
    LCD_ClearActiveWindow(0, 0, 0, 0);

    /* CAN1 */
    guiCan1InitGuiElements();
    guiCan1UpdateGuiElementsReadFromSettings();

    /* CAN2 */
    guiCan2InitGuiElements();
    guiCan2UpdateGuiElementsReadFromSettings();

    /* UART1 */
    guiUart1InitGuiElements();
    guiUart1UpdateGuiElementsReadFromSettings();

    /* UART2 */
    guiUart2InitGuiElements();
    guiUart2UpdateGuiElementsReadFromSettings();

    /* RS232 */
    guiRs232InitGuiElements();
    guiRs232UpdateGuiElementsReadFromSettings();

    /* GPIO */
    guiGpioInitGuiElements();

    /* ADC */
    guiAdcInitGuiElements();

    /* System */
    guiSystemInitGuiElements();


    /* Text boxes ----------------------------------------------------------------*/
    /* Main text box */
    prvTextBox.object.id = GUITextBoxId_Main;
    prvTextBox.object.xPos = 0;
    prvTextBox.object.yPos = 50;
    prvTextBox.object.width = 650;
    prvTextBox.object.height = 400;
    prvTextBox.textColor = GUI_WHITE;
    prvTextBox.backgroundColor = LCD_COLOR_BLACK;
    prvTextBox.textSize = LCDFontEnlarge_1x;
    prvTextBox.xWritePos = 0;
    prvTextBox.yWritePos = 0;
    GUITextBox_Add(&prvTextBox);

//	/* Clock Text Box */
//	prvTextBox.object.id = GUITextBoxId_Clock;
//	prvTextBox.object.xPos = 650;
//	prvTextBox.object.yPos = 0;
//	prvTextBox.object.width = 150;
//	prvTextBox.object.height = 25;
//	prvTextBox.textColor = GUI_WHITE;
//	prvTextBox.backgroundColor = LCD_COLOR_BLACK;
//	prvTextBox.textSize = LCDFontEnlarge_1x;
//	prvTextBox.xWritePos = 50;
//	prvTextBox.yWritePos = 3;
//	GUITextBox_Add(&prvTextBox);

    /* Serial Monitor Text Box */
    prvTextBox.object.id = GUITextBoxId_SerialMonitor;
    prvTextBox.object.xPos = 650;
    prvTextBox.object.yPos = 0;
    prvTextBox.object.width = 150;
    prvTextBox.object.height = 25;
    prvTextBox.textColor = GUI_WHITE;
    prvTextBox.backgroundColor = LCD_COLOR_BLACK;
    prvTextBox.textSize = LCDFontEnlarge_1x;
    prvTextBox.staticText = "Serial Monitor";
    GUITextBox_Add(&prvTextBox);

    /* Temperature Text Box */
    prvTextBox.object.id = GUITextBoxId_Temperature;
    prvTextBox.object.xPos = 651;
    prvTextBox.object.yPos = 25;
    prvTextBox.object.width = 149;
    prvTextBox.object.height = 24;
    prvTextBox.textColor = GUI_WHITE;
    prvTextBox.backgroundColor = LCD_COLOR_BLACK;
    prvTextBox.textSize = LCDFontEnlarge_1x;
    prvTextBox.xWritePos = 50;
    prvTextBox.yWritePos = 3;
    GUITextBox_Add(&prvTextBox);

    /* Buttons -------------------------------------------------------------------*/

    /* Containers ----------------------------------------------------------------*/
    /* Main content container */
    prvContainer.object.id = GUIContainerId_MainContent;
    prvContainer.object.xPos = 0;
    prvContainer.object.yPos = 50;
    prvContainer.object.width = 650;
    prvContainer.object.height = 400;
    prvContainer.object.border = GUIBorder_Right | GUIBorder_Top;
    prvContainer.object.borderThickness = 1;
    prvContainer.object.borderColor = GUI_WHITE;
    prvContainer.contentHideState = GUIHideState_KeepBorders;
    prvContainer.activePage = guiConfigMAIN_CONTAINER_EMPTY_PAGE;
    prvContainer.containers[0] = GUIContainer_GetFromId(GUIContainerId_Can2MainContent);
    prvContainer.containers[1] = GUIContainer_GetFromId(GUIContainerId_Uart1MainContent);
    prvContainer.containers[2] = GUIContainer_GetFromId(GUIContainerId_Uart2MainContent);
    prvContainer.containers[3] = GUIContainer_GetFromId(GUIContainerId_Rs232MainContent);
    prvContainer.containers[4] = GUIContainer_GetFromId(GUIContainerId_Gpio0MainContent);
    prvContainer.containers[5] = GUIContainer_GetFromId(GUIContainerId_Gpio1MainContent);
    prvContainer.containers[6] = GUIContainer_GetFromId(GUIContainerId_AdcMainContent);
    prvContainer.touchCallback = prvMainContentContainerCallback;
    GUIContainer_Add(&prvContainer);

    /* Status info container */
    prvContainer.object.id = GUIContainerId_Status;
    prvContainer.object.xPos = 650;
    prvContainer.object.yPos = 0;
    prvContainer.object.width = 150;
    prvContainer.object.height = 50;
    prvContainer.object.border = GUIBorder_Left | GUIBorder_Bottom;
    prvContainer.object.borderThickness = 1;
    prvContainer.object.borderColor = GUI_WHITE;
    prvContainer.contentHideState = GUIHideState_KeepBorders;
//	prvContainer.textBoxes[0] = GUITextBox_GetFromId(GUITextBoxId_Clock);
    prvContainer.textBoxes[0] = GUITextBox_GetFromId(GUITextBoxId_SerialMonitor);
    prvContainer.textBoxes[1] = GUITextBox_GetFromId(GUITextBoxId_Temperature);
    GUIContainer_Add(&prvContainer);

    /* Draw the main container */
    GUIContainer_Draw(GUIContainerId_MainContent);

    /* Draw the status container */
    GUIContainer_Draw(GUIContainerId_Status);

    /* Draw the empty sidebar container */
    GUIContainer_Draw(GUIContainerId_SidebarEmpty);
    prvIdOfActiveSidebar = prvIdOfLastActiveSidebar = GUIContainerId_SidebarEmpty;
}