Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- 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;
- using System.Xml;
- namespace Gadgeteer_Servo_Test_02
- {
- public partial class Program
- {
- GT.Timer timer = new GT.Timer(2000, 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;
- Boolean sway = true;
- // 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();
- GT.Socket socket = GT.Socket.GetSocket(11, true, null, null);
- GT.Socket socket1 = GT.Socket.GetSocket(4, true, null, null);
- servo = new GT.Interfaces.PWMOutput(socket, GT.Socket.Pin.Seven, extender);
- servo1 = new GT.Interfaces.PWMOutput(socket, GT.Socket.Pin.Eight, extender);
- servo2 = new GT.Interfaces.PWMOutput(socket, GT.Socket.Pin.Nine, extender);
- servo3 = new GT.Interfaces.PWMOutput(socket1, GT.Socket.Pin.Seven, extender1);
- servo4 = new GT.Interfaces.PWMOutput(socket1, GT.Socket.Pin.Eight, extender1);
- servo5 = new GT.Interfaces.PWMOutput(socket1, GT.Socket.Pin.Nine, extender1);
- // print something so we know we have started
- Debug.Print("Program Started");
- }
- void timer_Tick(GT.Timer timer)
- {
- //GetXmlFromWeb();
- if (sway)
- {
- printServoDisplay(0, Convert.ToUInt32("75"));
- sway = false;
- }
- else {
- printServoDisplay(0, Convert.ToUInt32("225"));
- sway = true;
- }
- }
- void StartWiFi()
- {
- wifi.UseDHCP();
- Gadgeteer.Modules.GHIElectronics.WiFi_RS21.WiFiNetworkInfo info = new WiFi_RS21.WiFiNetworkInfo();
- info.SSID = "RISD_BASIC";
- info.SecMode = WiFi_RS21.SecurityMode.WEP;
- info.networkType = WiFi_RS21.NetworkType.AccessPoint;
- wifi.Join(info, "---password---");
- }
- 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 servoNumber, uint displaySetting)
- {
- //uint xPos = 0;
- //oledDisplay.SimpleGraphics.DisplayText(displayMessage, Resources.GetFont(Resources.FontResources.NinaB), GT.Color.White, xPos, lineNumber*12);
- switch (servoNumber)
- {
- case 0:
- // 750,000 to 2,250,000 mid point is 1,500,000
- servo.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
- Debug.Print("displaySetting " + displaySetting);
- break;
- case 1:
- // 750,000 to 2,250,000 mid point is 1,500,000
- servo1.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
- Debug.Print("displaySetting " + displaySetting);
- break;
- case 2:
- // 750,000 to 2,250,000 mid point is 1,500,000
- servo2.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
- Debug.Print("displaySetting " + displaySetting);
- break;
- case 3:
- // 750,000 to 2,250,000 mid point is 1,500,000
- servo3.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
- Debug.Print("displaySetting " + displaySetting);
- break;
- case 4:
- // 750,000 to 2,250,000 mid point is 1,500,000
- servo4.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
- Debug.Print("displaySetting " + displaySetting);
- break;
- case 5:
- // 750,000 to 2,250,000 mid point is 1,500,000
- servo5.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
- Debug.Print("displaySetting " + displaySetting);
- break;
- 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