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 Microsoft.SPOT.Presentation;
- using Microsoft.SPOT.Presentation.Controls;
- using Microsoft.SPOT.Presentation.Media;
- using Microsoft.SPOT.Touch;
- using Gadgeteer.Networking;
- using GT = Gadgeteer;
- using GTM = Gadgeteer.Modules;
- using Gadgeteer.Modules.GHIElectronics;
- namespace Gadgeteer_Servo_Weather_01
- {
- public partial class Program
- {
- GT.Timer timer = new GT.Timer(1000, GT.Timer.BehaviorType.RunContinuously);
- GT.Interfaces.PWMOutput servo;
- GT.Interfaces.PWMOutput servo1;
- GT.Interfaces.PWMOutput servo2;
- GT.Interfaces.PWMOutput servo3;
- GT.Interfaces.PWMOutput servo4;
- GT.Interfaces.PWMOutput servo5;
- // This method is run when the mainboard is powered up or reset.
- void ProgramStarted()
- {
- // jump to the StartWiFi method that starts the WiFi
- StartWiFi();
- timer.Tick += new GT.Timer.TickEventHandler(timer_Tick);
- timer.Start();
- servo = extender.SetupPWMOutput(GT.Socket.Pin.Seven);
- extender.SetupPWMOutput(GT.Socket.Pin.Eight);
- extender.SetupPWMOutput(GT.Socket.Pin.Nine);
- extender1.SetupPWMOutput(GT.Socket.Pin.Seven);
- extender1.SetupPWMOutput(GT.Socket.Pin.Eight);
- extender1.SetupPWMOutput(GT.Socket.Pin.Nine);
- servo.Active = true;
- servo1.Active = true;
- servo2.Active = true;
- servo3.Active = true;
- servo4.Active = true;
- servo5.Active = true;
- // print something so we know we have started
- Debug.Print("Program Started");
- }
- void timer_Tick(GT.Timer timer)
- {
- GetXmlFromWeb();
- }
- 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_pass");
- 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....");
- }
- void wifi_NetworkUp(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
- {
- Debug.Print("network up");
- Debug.Print(wifi.NetworkSettings.IPAddress);
- }
- void printServoDisplay(int lineNumber, uint displaySetting)
- {
- //uint xPos = 0;
- //oledDisplay.SimpleGraphics.DisplayText(displayMessage, Resources.GetFont(Resources.FontResources.NinaB), GT.Color.White, xPos, lineNumber*12);
- switch (lineNumber)
- {
- case 0:
- servo.SetPulse(20 * 1000 * 1000, (displaySetting - 10) * 100 * 1000);
- break;
- case 1:
- servo1.SetPulse(20 * 1000 * 1000, (displaySetting - 10) * 100 * 1000);
- break;
- case 2:
- servo2.SetPulse(20 * 1000 * 1000, (displaySetting - 10) * 100 * 1000);
- goto case 1;
- case 3:
- servo3.SetPulse(20 * 1000 * 1000, (displaySetting - 10) * 100 * 1000);
- goto case 1;
- case 4:
- servo4.SetPulse(20 * 1000 * 1000, (displaySetting - 10) * 100 * 1000);
- goto case 1;
- case 5:
- servo5.SetPulse(20 * 1000 * 1000, (displaySetting - 10) * 100 * 1000);
- goto case 1;
- default:
- break;
- }
- }
- void GetXmlFromWeb()
- {
- WebClient.GetFromWeb("http://www.google.com/ig/api?weather=02903").ResponseReceived += new HttpRequest.ResponseHandler(Program_ResponseReceived);
- }
- void Program_ResponseReceived(HttpRequest sender, HttpResponse response)
- {
- string elementHolder;
- XmlReader reader = XmlReader.Create(response.Stream);
- int lineNumberCount = 0;
- 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("temp_f");
- reader.MoveToFirstAttribute();
- Debug.Print("Today: " + reader.Value);
- printServoDisplay(lineNumberCount, Convert.ToUInt32(reader.Value));
- lineNumberCount++;
- }
- else if (reader.Name.Equals("forecast_conditions"))
- {
- reader.ReadToFollowing("day_of_week");
- reader.MoveToFirstAttribute();
- elementHolder = reader.Value;
- reader.ReadToFollowing("high");
- reader.MoveToFirstAttribute();
- Debug.Print(elementHolder + ": " + reader.Value);
- //lineNumberCount++;
- //printServoDisplay(lineNumberCount, elementHolder + ": ");
- printServoDisplay(lineNumberCount, Convert.ToUInt32(reader.Value));
- lineNumberCount++;
- }
- break;
- case XmlNodeType.EndElement:
- //Debug.Print("End of Element");
- break;
- }
- }
- //Debug.Print(response.StatusCode);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment