Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- using System.Xml;
- using Microsoft.SPOT;
- using Gadgeteer.Networking;
- using GT = Gadgeteer;
- using GTM = Gadgeteer.Modules;
- using Gadgeteer.Modules.GHIElectronics;
- namespace Gadgeteer_Wifi_04
- {
- public partial class Program
- {
- // create a time based event robot to trigger repeated tasks
- GT.Timer timer = new GT.Timer(60000, GT.Timer.BehaviorType.RunContinuously);
- // This method is run when the mainboard is powered up or reset.
- void ProgramStarted()
- {
- // jump to the StartWiFi method that starts the WiFi
- StartWiFi();
- // create a button watching robot to trigger things when the button is pressed
- button.ButtonPressed += new Button.ButtonEventHandler(button_ButtonPressed);
- // set the timer robot so it fires off a tick event
- timer.Tick += new GT.Timer.TickEventHandler(timer_Tick);
- // print something so we know we have started
- Debug.Print("Program Started");
- }
- void timer_Tick(GT.Timer timer)
- {
- // what do we want to happen when the timer tick event fires
- // get some xml from the internet
- GetXmlFromWeb();
- }
- void GetXmlFromWeb()
- {
- WebClient.GetFromWeb("http://www.google.com/ig/api?weather=02903").ResponseReceived += new HttpRequest.ResponseHandler(Program_ResponseReceived);
- }
- void StartWiFi()
- {
- wifi.UseDHCP();
- Gadgeteer.Modules.GHIElectronics.WiFi_RS21.WiFiNetworkInfo info = new WiFi_RS21.WiFiNetworkInfo();
- info.SSID = "network_name";
- info.SecMode = WiFi_RS21.SecurityMode.WEP;
- info.networkType = WiFi_RS21.NetworkType.AccessPoint;
- wifi.Join(info, "network_password");
- wifi.NetworkDown += new GTM.Module.NetworkModule.NetworkEventHandler(wifi_NetworkDown);
- wifi.NetworkUp += new GTM.Module.NetworkModule.NetworkEventHandler(wifi_NetworkUp);
- }
- void wifi_NetworkDown(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
- {
- Debug.Print("network down: connecting....");
- timer.Stop();
- }
- void wifi_NetworkUp(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
- {
- Debug.Print("network up");
- Debug.Print(wifi.NetworkSettings.IPAddress);
- GetXmlFromWeb();
- timer.Start();
- }
- void Program_ResponseReceived(HttpRequest sender, HttpResponse response)
- {
- string elementHolder;
- XmlReader reader = XmlReader.Create(response.Stream);
- while (reader.Read())
- {
- switch (reader.NodeType)
- {
- case XmlNodeType.Element:
- //Debug.Print("Element: " + reader.Name);
- //if (reader.HasAttributes && reader.Name.Equals("current_conditions"))
- if (reader.Name.Equals("current_conditions"))
- {
- reader.ReadToFollowing("condition");
- reader.MoveToFirstAttribute();
- Debug.Print("Today: " + reader.Value);
- }
- else if (reader.Name.Equals("forecast_conditions"))
- {
- reader.ReadToFollowing("day_of_week");
- reader.MoveToFirstAttribute();
- elementHolder = reader.Value;
- reader.ReadToFollowing("condition");
- reader.MoveToFirstAttribute();
- Debug.Print(elementHolder + ": " + reader.Value);
- }
- break;
- case XmlNodeType.EndElement:
- //Debug.Print("End of Element");
- break;
- }
- }
- //Debug.Print(response.StatusCode);
- }
- void button_ButtonPressed(Button sender, Button.ButtonState state)
- {
- GetXmlFromWeb();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment