Exemplo n.º 1
0
		public MenuContainer(Menu startMenu)
		{
			activeMenuItem = startMenu;
			activeMenuItem.Parent = this;
			topMenu = startMenu;
			
		}
Exemplo n.º 2
0
		static void ShowMainMenu()
		{
			
			List<IMenuItem> items = new List<IMenuItem>();
			items.Add (new MenuItemWithAction("Programs", () => RunPrograms(),MenuItemSymbole.RightArrow));
			items.Add (new MenuItemWithAction("WiFi Connection", () => ShowWiFiMenu(), MenuItemSymbole.RightArrow));
			items.Add (new MenuItemWithAction("WebServer", () => ShowWebServerMenu(), MenuItemSymbole.RightArrow));
			items.Add (new MenuItemWithAction("Settings", () => ShowSettings(), MenuItemSymbole.RightArrow));
			items.Add (new MenuItemWithAction("Information", () => Information()));
			items.Add (new MenuItemWithAction("Check for Updates", () => ShowUpdatesDialogs()));
			items.Add (new MenuItemWithAction("Shutdown", () => Shutdown()));
			Menu m = new Menu("Main menu", items);
			m.Show();
		}
Exemplo n.º 3
0
		static bool RunPrograms ()
		{
			do
			{
				updateProgramList = false;
				List<MenuItemWithAction> actionList = new List<MenuItemWithAction>();
				List<ProgramInformation> programs = ProgramManager.Instance.GetProgramInformationList();
				foreach(var program in programs)
				{
					actionList.Add( new MenuItemWithAction(program.Name, () => ShowProgramOptions (program)));
				}
				Menu m = new Menu ("Run program:", actionList);
				m.Show ();//block
			}while (updateProgramList); 
			return false;
		}
Exemplo n.º 4
0
		public static void Main (string[] args)
		{
			settings = new EmailSettings ();
			settings.Load ();
			Menu settingMenu = new Menu ("Settings");
			settingMenu.AddItem (new ItemWithCharacterInput ("User Name", "User Name", settings.UserSettings.User, OnUserChanged, false, true, false));
			settingMenu.AddItem (new ItemWithCharacterInput ("SMTP", "SMTP Server", settings.UserSettings.Smtp, OnSMTPChanged, false, true, false));
			settingMenu.AddItem (new ItemWithCharacterInput ("Password", "SMTP Password", settings.UserSettings.Password, OnPasswordChanged, true, true, false));
			settingMenu.AddItem (new ItemWithNumericInput("Port Number", settings.UserSettings.Port, OnPortNmberChanged, 1, 49151));
			settingMenu.AddItem (new ItemWithCheckBox("Enable SSL", settings.UserSettings.EnableSsl, OnEnableSslChanged));

			Menu menu = new Menu ("E-Mail Client");
			menu.AddItem (settingMenu);
			menu.AddItem (new ItemWithCharacterInput ("To", "To", emailTo, (emailAddress) => emailTo = emailAddress, false, true, false ));
			menu.AddItem (new ItemWithCharacterInput ("Subject", "Subject", subject, (newSubject) => subject = newSubject, false, true, false ));
			menu.AddItem (new ItemWithCharacterInput ("Message", "Message", "", (newMessage) => message = newMessage));
			menu.AddItem (new ItemWithDialog<StepDialog>(new StepDialog( "Sending mail ", new List<IStep>{SendStep}), "Send mail")); 
			MenuContainer container = new MenuContainer (menu);
			container.Show (true);
		}
Exemplo n.º 5
0
		public FirmwareMenuContainer (Menu menu) : base(menu)
		{
		}
Exemplo n.º 6
0
 static bool ShowWiFiMenu()
 {
     List<IMenuItem> items = new List<IMenuItem> ();
     var ssidItem = new MenuItemWithCharacterInput("SSID", "Enter SSID", settings.WiFiSettings.SSID);
     ssidItem.OnDialogExit += delegate(string text) {
         new Thread(delegate() {
             settings.WiFiSettings.SSID = text;
             settings.Save();
         }).Start();
     };
     var passwordItem = new MenuItemWithCharacterInput("Password", "Password", settings.WiFiSettings.Password, true);
     passwordItem.OnDialogExit += delegate(string text) {
         new Thread(delegate() {
             settings.WiFiSettings.Password = text;
             settings.Save();
         }).Start();
     };
     var encryptionItem = new MenuItemWithOptions<string>("Encryption", new string[]{"None","WPA/2"}, settings.WiFiSettings.Encryption ? 1 : 0);
     encryptionItem.OnOptionChanged += delegate(string newOpstion) {
         new Thread(delegate() {
             if(newOpstion == "None")
                 settings.WiFiSettings.Encryption = false;
             else
                 settings.WiFiSettings.Encryption = true;
             settings.Save();
         }).Start();
     };
     var connectItem = new MenuItemWithCheckBox("Connect", WiFiDevice.IsLinkUp(),
         delegate(bool WiFiOn)
      		{
             bool isOn = WiFiOn;
             var createFileStep = new StepContainer(
                 delegate()
                 {
                     WriteWpaSupplicantConfiguration(settings.WiFiSettings.SSID,settings.WiFiSettings.Password,settings.WiFiSettings.Encryption);
                     return true;
                 },
                 "Creating file", "Error creating WPA file");
             var progressDialog = new ProgressDialog("WiFi", createFileStep);
             progressDialog.Show();
             if(WiFiOn){
                 var turnOffStep = new StepContainer(
                 delegate()
                 {
                     WiFiDevice.TurnOff();
                     return true;
                 },
                 "Turning Off","Error turning off WiFi","WiFi Disabled");
                 var dialog = new ProgressDialog("WiFi", turnOffStep);
                 dialog.Show();
                 isOn = false;
             }
             else{
                 var turnOnStep = new StepContainer(
                 delegate()
                 {
                     return WiFiDevice.TurnOn(60000);
                 },
                 "Connecting", "Failed to connect");
                 Dialog dialog = new ProgressDialog("WiFi", turnOnStep);
                 if(dialog.Show()){
                     if(settings.WiFiSettings.ConnectAtStartUp == false){
                         var question = new QuestionDialog("Do you want to connect at start-up?", "Settings");
                         if(question.Show()){
                             new Thread(delegate() {
                                 settings.WiFiSettings.ConnectAtStartUp = true;
                                 settings.Save();
                             }).Start();
                         }
                     }
                     dialog = new InfoDialog("Connected Successfully " + WiFiDevice.GetIpAddress(), true, "WiFi");
                     dialog.Show();
                     isOn = true;
                 }
                 else{
                     isOn = false;
                 }
             }
             return isOn;
      		}
     );
     items.Add(ssidItem);
     items.Add(passwordItem);
     items.Add(encryptionItem);
     items.Add(connectItem);
     //Show the menu
     Menu m = new Menu ("WiFi Connection", items);
     m.Show ();
     return false;
 }
Exemplo n.º 7
0
        static bool ShowWebServerMenu()
        {
            List<IMenuItem> items = new List<IMenuItem> ();
            var portItem = new MenuItemWithNumericInput("Port", settings.WebServerSettings.Port, 1, ushort.MaxValue);
            portItem.OnValueChanged+= delegate(int value)
            {
                new Thread(delegate() {
                    settings.WebServerSettings.Port = value;
                    settings.Save();
                }).Start();
            };
            var startItem = new MenuItemWithCheckBox("Start server", WebServer.IsRunning(),
                delegate(bool running)
               	 		{

                    bool isRunning = running;
                    if(running){
                        var step = new StepContainer(
                            delegate()
                            {
                                WebServer.StopAll();
                                System.Threading.Thread.Sleep(2000);
                                return true;
                            },
                            "Stopping", "Failed to stop");
                        var dialog = new ProgressDialog("Web Server",step);
                        dialog.Show();
                        isRunning = WebServer.IsRunning();
                    }
                    else{
                        var step1 = new StepContainer(()=>{return WebServer.StartFastCGI();}, "Init CGI Server", "Failed to start CGI Server");
                        var step2 = new StepContainer(()=>{return WebServer.StartLighttpd();}, "Initializing", "Failed to start server");
                        var step3 = new StepContainer(()=>{return WebServer.LoadPage();}, "Loading page", "Failed to load page");
                        var stepDialog = new StepDialog("Web Server", new List<IStep>{step1,step2,step3}, "Webserver started");
                        isRunning = stepDialog.Show();
                    }
                    return isRunning;
               			}
            );

            //items.Add(portItem);
            items.Add(startItem);
            //Show the menu
            Menu m = new Menu ("Web Server", items);
            m.Show ();
            return false;
        }
Exemplo n.º 8
0
        static bool ShowSettings()
        {
            //Create the settings items and apply the settings
            List<IMenuItem> items = new List<IMenuItem> ();
            var terminateWithEscapeItem = new MenuItemWithCheckBox("Debug termination",settings.DebugSettings.TerminateWithEscape);
            var debugPortItem = new MenuItemWithNumericInput("Debug port",settings.DebugSettings.Port,1, ushort.MaxValue);
            var checkForUpdate = new MenuItemWithCheckBox("Update check",settings.GeneralSettings.CheckForSwUpdatesAtStartUp);
            var wifiConnect = new MenuItemWithCheckBox("WiFi auto connect",settings.WiFiSettings.ConnectAtStartUp);
            //var soundVolume = new MenuItemWithNumericInput("Volume",settings.SoundSettings.Volume);
            //var enableSound = new MenuItemWithCheckBox("Enable sound", settings.SoundSettings.EnableSound);

            items.Add(wifiConnect);
            items.Add(checkForUpdate);
            items.Add(terminateWithEscapeItem);
            items.Add (debugPortItem);
            //items.Add(soundVolume);
            //items.Add(enableSound);
            //Show the menu

            Menu m = new Menu ("Settings", items);
            m.Show ();
            new Thread(delegate() {
                settings.DebugSettings.TerminateWithEscape = terminateWithEscapeItem.Checked;
                settings.DebugSettings.Port = debugPortItem.Value;
                settings.GeneralSettings.CheckForSwUpdatesAtStartUp = checkForUpdate.Checked;
                settings.WiFiSettings.ConnectAtStartUp = wifiConnect.Checked;
                //settings.SoundSettings.Volume = soundVolume.Value;
                //settings.SoundSettings.EnableSound = enableSound.Checked;
                settings.Save();
            }).Start();
            return false;
        }
Exemplo n.º 9
0
        static bool RunPrograms()
        {
            do
            {
                updateProgramList = false;
                IEnumerable<MenuItemWithAction> itemsFromEV3 = Directory.EnumerateDirectories(ProgramPathEV3)
                    .Select((programFolder) => new MenuItemWithAction (new DirectoryInfo(programFolder).Name, () => ShowProgramOptions (programFolder)));
                IEnumerable<MenuItemWithAction> itemsFromSD = Directory.EnumerateDirectories(ProgramPathSdCard)
                    .Select ((programFolder) => new MenuItemWithAction (new DirectoryInfo(programFolder).Name, () => ShowProgramOptions (programFolder)));

                Menu m = new Menu ("Run program:", itemsFromEV3.Concat (itemsFromSD));
                m.Show ();//block
            }while (updateProgramList);
            return false;
        }
Exemplo n.º 10
0
		public static void Main (string[] args)
		{
			if (!File.Exists (SuspendFile))
			{
				File.Create (SuspendFile);
			}
			FileSystemWatcher watcher = new FileSystemWatcher();
			watcher.Path = Path.GetDirectoryName(SuspendFile);
			watcher.NotifyFilter = NotifyFilters.LastWrite;
			watcher.Filter = Path.GetFileName(SuspendFile);
			watcher.Changed += OnSuspendFileChanged;
			watcher.EnableRaisingEvents = true;

			Menu menu = new Menu ("Main Menu");

			menu.AddItem(new ItemWithProgramList ("Programs", false));
			menu.AddItem(new ItemWiFiOptions ());
			menu.AddItem(new ItemWithSettings ());
			menu.AddItem(new ItemWithUpdateDialog ());
			//menu.AddItem(new ItemWithWebserver ());
			menu.AddItem(new ItemWithBrickInfo ());
			menu.AddItem(new ItemWithTurnOff ());

			container = new FirmwareMenuContainer (menu);

			Bitmap monoLogo = Bitmap.FromResouce(Assembly.GetExecutingAssembly(), "monologo.bitmap");
			Lcd.DrawBitmap (monoLogo, new Point ((int)(Lcd.Width - monoLogo.Width) / 2, 5));					
			Rectangle textRect = new Rectangle (new Point (0, Lcd.Height - (int)Font.SmallFont.maxHeight - 2), new Point (Lcd.Width, Lcd.Height - 2));

			Lcd.WriteTextBox (Font.SmallFont, textRect, "Initializing...", true, Lcd.Alignment.Center);
			Lcd.Update ();
			WiFiDevice.TurnOff ();
			ProgramManager.CreateSDCardFolder();
			Lcd.WriteTextBox (Font.SmallFont, textRect, "Loading settings...", true, Lcd.Alignment.Center);
			Lcd.Update ();
			FirmwareSettings.Load ();
			Lcd.WriteTextBox (Font.SmallFont, textRect, "Applying settings...", true, Lcd.Alignment.Center);
			Lcd.Update ();						
			if (FirmwareSettings.GeneralSettings.ConnectToWiFiAtStartUp) 
			{
				Lcd.WriteTextBox (Font.SmallFont, textRect, "Connecting to WiFi...", true, Lcd.Alignment.Center);
				Lcd.Update ();						
				if (WiFiDevice.TurnOn (FirmwareSettings.WiFiSettings.SSID, FirmwareSettings.WiFiSettings.Password, FirmwareSettings.WiFiSettings.Encryption, 40000)) 
				{
					if (FirmwareSettings.GeneralSettings.CheckForSwUpdatesAtStartUp)
					{
						container.Show (3); //show the menu container with the update dialog
						return;
					} 
					else 
					{
						var dialog = new InfoDialog ("Connected Successfully " + WiFiDevice.GetIpAddress ());
						dialog.Show ();
					} 
				} 
				else 
				{
					var dialog = new InfoDialog ("Failed to connect to WiFI Network");
					dialog.Show ();
				}
			}
			container.Show ();	
		}