Esempio n. 1
0
int exec_cfg_command(const char *argument)
{
    const struct cfgmenu *p_menu, *p_item;
    const void *v;

    // is it a plugin related command?
    if (0 == memicmp(argument, "plugin.", 7)) {
        if (0 == PluginManager_handleBroam(argument+7))
            return 0;
        Menu_Update(MENU_UPD_CONFIG);
        return 1;
    }

    // search the item in above structures
    v = exec_internal_broam(argument, cfg_main, &p_menu, &p_item);
    if (NULL == p_item)
        return 0;

    // now take care for some item-specific refreshes
    if (v == &Settings_toolbar.enabled) {
        if (Settings_toolbar.enabled)
            beginToolbar(hMainInstance);
        else
            endToolbar(hMainInstance);
        Menu_Update(MENU_UPD_CONFIG);
    } else if (v == &Settings_menu.sortByExtension
            || v == &Settings_menu.showHiddenFiles) {
        PostMessage(BBhwnd, BB_REDRAWGUI, BBRG_MENU|BBRG_FOLDER, 0);
    } else if (v == &Settings_smartWallpaper) {
        Desk_Reset(true);
    } else if (v == &Settings_menu.dropShadows) {
        Menu_Exit(), Menu_Init();
    } else if (v == &Settings_UTF8Encoding) {
        Workspaces_GetCaptions();
        Tray_SetEncoding();
        PostMessage(BBhwnd, BB_REDRAWGUI, BBRG_MENU|BBRG_FOLDER, 0);
    }

    if (p_menu == cfg_sub_graphics || v == &Settings_UTF8Encoding)
        PostMessage(BBhwnd, BB_RECONFIGURE, 0, 0); // full reconfigure
    else
        PostMessage(BBhwnd, BB_RECONFIGURE, 1, 0); // bypass plugins

    return 1;
}
Esempio n. 2
0
int main(void)
{
  SystemInit();						// initialize MCU clocks and registers
  TM_DELAY_Init();					// initialize Delay library
  TM_DELAY_SetTime(0);				// Reset couter for systime
  Laser_GPIO_Conf();				// configure GPIO for laser control (to be able to enable/disable lasers via software
  TM_BKPSRAM_Init();				// initialize BKP RAM access library
  Laser_Update();			// load laser statuses saved in BKP RAM
  TM_USART_Init(OUTPUT_USART, OUTPUT_USART_PINS, OUTPUT_USART_SPEED);		// initialize UART used for collected Data output
  TM_USART_Init(MENU_USART, MENU_USART_PINS, MENU_USART_SPEED);				// initialize UART used for configuration
  TM_RTC_Init(TM_RTC_ClockSource_External);									// initialize RTC library
  TM_GPIO_Init(GPIOD, GPIO_Pin_8, TM_GPIO_Mode_OUT, TM_GPIO_OType_PP, TM_GPIO_PuPd_NOPULL, TM_GPIO_Speed_Low); // configure GPIO for GSM status indication (RED LED)
  TM_GPIO_Init(GPIOD, GPIO_Pin_9, TM_GPIO_Mode_OUT, TM_GPIO_OType_PP, TM_GPIO_PuPd_NOPULL, TM_GPIO_Speed_Low); // configure GPIO for GSM status indication (GREEN LED)
  Laser_ADC_Init();					// initialize ADC peripherals
  Menu_Init();						// initialize CLI library
  sfpInit();						// configure GPIO for SFP modules
  gsm_Init();						// initialize GSM module


  /* configure and initialize Ethernet hardware and LwIP stack */

  ETH_BSP_Config();					// configure ETH GPIOs
  printf("Ethernet MAC and PHY configured successfully!\n");
  LwIP_Init();						// start LwIP stack
  printf("LwIP stack initialized successfully!\n");
  UDP_Server_Init();				// start UDP Server
  printf("UDP Server initialized successfully!\n");

  //start periodic tasks

  /* GSM Status update "task" */
  GSM_Status_Update_Timer = TM_DELAY_TimerCreate(GSM_CHECK_INTERVAL, 1, 1, GSM_Status_Update_Timer_Task, NULL);
  printf("GSM status check task created!\n");
  /* Print results from remote devices "task" */
  Print_Results_Timer = TM_DELAY_TimerCreate(DATA_OUT_INTERVAL, 1, 1, Print_Results_Timer_Task, NULL);
  printf("Print collected data task created!\n");
  /* LaserLock status update "task" */
  LaserLock_Timer = TM_DELAY_TimerCreate(1000, 1, 1, LaserLock_Timer_Task, NULL);
  printf("Laser lock check task created!\n");

  while (1) {
	  /* CLI menu update */
	  Menu_Update();
      /* check if any packet received */
	  if (ETH_CheckFrameReceived())
	  {
		  /* process received ethernet packet */
		  LwIP_Pkt_Handle();
	  }
    /* handle periodic timers for LwIP */
    LwIP_Periodic_Handle(LocalTime);
    /* update laser statuses */
    Laser_Update();
    /* remove SMS messages which were read by system */
    delete_read_gsm_messages();
  }
} 
Esempio n. 3
0
void Menu()
{
	if(!menuHasInit)
	{
		Menu_Init(); // One-time initialization of menu state.
		menuHasInit = true;
	}
	
	Menu_Input();
	Menu_Update();
	Menu_Draw();
	
	menuframeCounter++; // Update frame counter for this state, resetting whenever it hits 32.
	if(menuframeCounter > 32)
	{
		menuframeCounter = 0;
	}
}
Esempio n. 4
0
void MainView_Update(void)
{
	if(Keypad_IsKeyStored())
	{
		switch(Keypad_GetKey())
		{
			case 0x24:
				// "8"
				Menu_Down(&menu);
				break;
			case 0x44:
				// "5"
				Menu_Select(&menu);
				return;
				break;
			case 0x84:
				// "2"
				Menu_Up(&menu);
				break;
		}
		Menu_Update(&menu);
	}
}
Esempio n. 5
0
// show one of the root menus
bool MenuMaker_ShowMenu(int id, const char* param)
{
    char buffer[MAX_PATH];
    Menu *m;
    int x, y, n, flags, toggle;

    static const char * const menu_string_ids[] = {
        "",
        "root",
        "workspaces",
        "icons",
        "tasks",
        "configuration",
        NULL
    };

    enum {
        e_lastmenu,
        e_root,
        e_workspaces,
        e_icons,
        e_tasks,
        e_configuration,
    };

    x = y = flags = n = toggle = 0;


    switch (id)
    {
        case BB_MENU_BROAM: // @ShowMenu ...
            while (param[0] == '-') {
                const char *p = NextToken(buffer, &param, NULL);
                if (0 == strcmp(p, "-at")) {
                    for (;;++param) {
                        if (*param == 'r')
                            flags |= BBMENU_XRIGHT;
                        else if (*param == 'b')
                            flags |= BBMENU_YBOTTOM;
                        else
                            break;
                    }
                    x = atoi(NextToken(buffer, &param, " ,"));
                    param += ',' == *param;
                    y = atoi(NextToken(buffer, &param, NULL));
                    flags |= BBMENU_XY;
                } else if (0 == strcmp(p, "-key")) {
                    flags |= BBMENU_KBD;
                } else if (0 == strcmp(p, "-toggle")) {
                    toggle = 1;
                } else if (0 == strcmp(p, "-pinned")) {
                    flags |= BBMENU_PINNED;
                } else if (0 == strcmp(p, "-ontop")) {
                    flags |= BBMENU_ONTOP;
                } else if (0 == strcmp(p, "-notitle")) {
                    flags |= BBMENU_NOTITLE;
                }
            }
            break;
        case BB_MENU_ROOT: // Main menu
            param = "root";
            break;
        case BB_MENU_TASKS: // Workspaces menu
            param = "workspaces";
            break;
        case BB_MENU_ICONS: // Iconized tasks menu
            param = "icons";
            break;
        case BB_MENU_UPDATE:
            Menu_Update(MENU_UPD_ROOT);
            Menu_All_Redraw(0);
            return false;
        case BB_MENU_SIGNAL: // just to signal e.g. BBSoundFX
            return true;
        default:
            return false;
    }

    // If invoked by kbd and the menu currently has focus,
    // hide it and return
    if (((flags & BBMENU_KBD) || toggle) && Menu_ToggleCheck(param))
        return false;

    //DWORD t1 = GetTickCount();

    switch (get_string_index(param, menu_string_ids))
    {
        case e_root:
        case e_lastmenu:
            m = MakeRootMenu("root", menuPath(NULL), default_root_menu, true);
            break;

        case e_workspaces:
            m = MakeDesktopMenu(0, true);
            break;

        case e_icons:
            m = MakeDesktopMenu(1, true);
            break;

        case e_tasks:
            m = MakeDesktopMenu(2, true);
            break;

        case e_configuration:
            m = MakeConfigMenu(true);
            break;

        default:
            n = get_workspace_number(param); // e.g. 'workspace1'
            if (-1 != n) {
                m = MakeTaskFolder(n, true);
            } else if (FindRCFile(buffer, param, NULL)) {
                m = MakeRootMenu(param, buffer, NULL, true);
            } else {
                const char *cmd = get_special_command(&param, buffer, sizeof buffer);
                m = MakeFolderMenu(NULL, param, cmd);
            }
            break;
    }

    if (NULL == m)
        return false;

    MenuOption(m, flags, x, y);
    ShowMenu(m);

    //dbg_printf("showmenu time %d", GetTickCount() - t1);
    return true;
}
Esempio n. 6
0
void MainView_Callback(void)
{
	currentView = MAIN;
	Menu_Update(&menu);
}
Esempio n. 7
0
void USB_TransmitTxData(void)
{
	USB_Transmit(); // output pending bytes in tx buffer
	if((USB_tx_buffer.Locked == TRUE)) return;

	if(CheckDelay(USB_AboTimeOut))
	{
		USB_DebugData_Interval = 0;
		USB_NaviData_Interval = 0;
		USB_Data3D_Interval = 0;
		USB_Display_Interval = 0;
	}

	if((USB_Request_DebugLabel != 0xFF) && (USB_tx_buffer.Locked == FALSE))
	{
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'A', NC_ADDRESS, 2, &USB_Request_DebugLabel, sizeof(USB_Request_DebugLabel), (u8 *) ANALOG_LABEL[USB_Request_DebugLabel], 16);
		USB_Request_DebugLabel = 0xFF;
	}
	else if(USB_ConfirmFrame && (USB_tx_buffer.Locked == FALSE))
	{
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'B', NC_ADDRESS, 1, &USB_ConfirmFrame, sizeof(USB_ConfirmFrame));
		USB_ConfirmFrame = 0;
	}
	else if( (( (USB_DebugData_Interval > 0) && CheckDelay(USB_DebugData_Timer)) || USB_Request_DebugData) && (USB_tx_buffer.Locked == FALSE))
	{
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'D', NC_ADDRESS, 1,(u8 *)&DebugOut, sizeof(DebugOut));
		USB_DebugData_Timer = SetDelay(USB_DebugData_Interval);
		USB_Request_DebugData = FALSE;
	}
	else if((( (USB_Data3D_Interval > 0) && CheckDelay(USB_Data3D_Timer) ) || USB_Request_Data3D) && (USB_tx_buffer.Locked == FALSE))
	{
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'C', NC_ADDRESS, 1,(u8 *)&Data3D, sizeof(Data3D));
		USB_Data3D_Timer = SetDelay(USB_Data3D_Interval);
		USB_Request_Data3D = FALSE;
	}
	else if(USB_Request_ExternalControl && (USB_tx_buffer.Locked == FALSE))
	{
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'G', NC_ADDRESS, 1, (u8 *)&ExternControl, sizeof(ExternControl));
		USB_Request_ExternalControl = FALSE;
	}
	else if( (( (USB_Display_Interval > 0) && CheckDelay(USB_Display_Timer)) || USB_Request_Display) && (USB_tx_buffer.Locked == FALSE))
	{
		Menu_Update(USB_DisplayKeys);
		USB_DisplayKeys = 0;
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'H', NC_ADDRESS, 1, (u8*)DisplayBuff, sizeof(DisplayBuff));
		USB_Request_Display = FALSE;
	}
	else if(USB_Request_Display1 && (USB_tx_buffer.Locked == FALSE))
	{
		Menu_Update(0);
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'L', NC_ADDRESS, 3, (u8*)&MenuItem, sizeof(MenuItem), (u8*)&MaxMenuItem, sizeof(MaxMenuItem),(u8*)DisplayBuff, sizeof(DisplayBuff));
		USB_Request_Display1 = FALSE;
	}
	else if(USB_Request_VersionInfo && (USB_tx_buffer.Locked == FALSE))
	{
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'V', NC_ADDRESS,1, (u8 *)&UART_VersionInfo, sizeof(UART_VersionInfo));
		USB_Request_VersionInfo = FALSE;
	}
	else if(( (USB_NaviData_Interval && CheckDelay(USB_NaviData_Timer) ) || USB_Request_NaviData) && (USB_tx_buffer.Locked == FALSE))
	{
		NaviData.Errorcode = ErrorCode;
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'O', NC_ADDRESS,1, (u8 *)&NaviData, sizeof(NaviData));
		USB_NaviData_Timer = SetDelay(USB_NaviData_Interval);
		USB_Request_NaviData = FALSE;
	}
	else if(USB_Request_ErrorMessage && (USB_tx_buffer.Locked == FALSE))
	{
		MKProtocol_CreateSerialFrame(&USB_tx_buffer, 'E', NC_ADDRESS, 1, (u8 *)&ErrorMSG, sizeof(ErrorMSG));
		USB_Request_ErrorMessage = FALSE;
	}
	USB_Transmit(); // output pending bytes in tx buffer
}