peony3000

Gadgeteer Weather Servos WiFi

May 2nd, 2012
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.38 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3. using Microsoft.SPOT;
  4. using Microsoft.SPOT.Presentation;
  5. using Microsoft.SPOT.Presentation.Controls;
  6. using Microsoft.SPOT.Presentation.Media;
  7. using Microsoft.SPOT.Touch;
  8.  
  9. using Gadgeteer.Networking;
  10. using GT = Gadgeteer;
  11. using GTM = Gadgeteer.Modules;
  12. using Gadgeteer.Modules.GHIElectronics;
  13. using System.Xml;
  14.  
  15. namespace Gadgeteer_Servo_Test_02
  16. {
  17.  
  18.     public partial class Program
  19.     {
  20.            
  21.         GT.Timer timer = new GT.Timer(2000, GT.Timer.BehaviorType.RunContinuously);
  22.         GT.Interfaces.PWMOutput servo;
  23.         GT.Interfaces.PWMOutput servo1;
  24.         GT.Interfaces.PWMOutput servo2;
  25.         GT.Interfaces.PWMOutput servo3;
  26.         GT.Interfaces.PWMOutput servo4;
  27.         GT.Interfaces.PWMOutput servo5;
  28.  
  29.         Boolean sway = true;
  30.  
  31.         // This method is run when the mainboard is powered up or reset.  
  32.         void ProgramStarted()
  33.         {
  34.             // jump to the StartWiFi method that starts the WiFi
  35.             StartWiFi();
  36.  
  37.             timer.Tick += new GT.Timer.TickEventHandler(timer_Tick);
  38.             timer.Start();
  39.  
  40.             GT.Socket socket = GT.Socket.GetSocket(11, true, null, null);
  41.             GT.Socket socket1 = GT.Socket.GetSocket(4, true, null, null);
  42.            
  43.             servo = new GT.Interfaces.PWMOutput(socket, GT.Socket.Pin.Seven, extender);
  44.             servo1 = new GT.Interfaces.PWMOutput(socket, GT.Socket.Pin.Eight, extender);
  45.             servo2 = new GT.Interfaces.PWMOutput(socket, GT.Socket.Pin.Nine, extender);
  46.             servo3 = new GT.Interfaces.PWMOutput(socket1, GT.Socket.Pin.Seven, extender1);
  47.             servo4 = new GT.Interfaces.PWMOutput(socket1, GT.Socket.Pin.Eight, extender1);
  48.             servo5 = new GT.Interfaces.PWMOutput(socket1, GT.Socket.Pin.Nine, extender1);
  49.  
  50.             // print something so we know we have started
  51.             Debug.Print("Program Started");
  52.         }
  53.  
  54.         void timer_Tick(GT.Timer timer)
  55.         {
  56.            //GetXmlFromWeb();
  57.             if (sway)
  58.             {
  59.                 printServoDisplay(0, Convert.ToUInt32("75"));
  60.                 sway = false;
  61.             }
  62.             else {
  63.                 printServoDisplay(0, Convert.ToUInt32("225"));
  64.                 sway = true;
  65.             }
  66.  
  67.         }
  68.  
  69.         void StartWiFi()
  70.         {
  71.             wifi.UseDHCP();
  72.             Gadgeteer.Modules.GHIElectronics.WiFi_RS21.WiFiNetworkInfo info = new WiFi_RS21.WiFiNetworkInfo();
  73.             info.SSID = "RISD_BASIC";
  74.             info.SecMode = WiFi_RS21.SecurityMode.WEP;
  75.             info.networkType = WiFi_RS21.NetworkType.AccessPoint;
  76.             wifi.Join(info, "---password---");
  77.         }
  78.  
  79.         void wifi_NetworkDown(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
  80.         {
  81.             Debug.Print("network down: connecting....");
  82.  
  83.         }
  84.  
  85.         void wifi_NetworkUp(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
  86.         {
  87.             Debug.Print("network up");
  88.             Debug.Print(wifi.NetworkSettings.IPAddress);
  89.         }
  90.  
  91.         void printServoDisplay(int servoNumber, uint displaySetting)
  92.         {
  93.             //uint xPos = 0;
  94.             //oledDisplay.SimpleGraphics.DisplayText(displayMessage, Resources.GetFont(Resources.FontResources.NinaB), GT.Color.White, xPos, lineNumber*12);
  95.  
  96.             switch (servoNumber)
  97.             {
  98.                 case 0:
  99.                     // 750,000 to 2,250,000 mid point is 1,500,000
  100.                     servo.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
  101.                     Debug.Print("displaySetting " + displaySetting);
  102.                     break;
  103.                 case 1:
  104.                     // 750,000 to 2,250,000 mid point is 1,500,000
  105.                     servo1.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
  106.                     Debug.Print("displaySetting " + displaySetting);
  107.                     break;
  108.                 case 2:
  109.                     // 750,000 to 2,250,000 mid point is 1,500,000
  110.                     servo2.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
  111.                     Debug.Print("displaySetting " + displaySetting);
  112.                     break;
  113.                 case 3:
  114.                     // 750,000 to 2,250,000 mid point is 1,500,000
  115.                     servo3.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
  116.                     Debug.Print("displaySetting " + displaySetting);
  117.                     break;
  118.                 case 4:
  119.                     // 750,000 to 2,250,000 mid point is 1,500,000
  120.                     servo4.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
  121.                     Debug.Print("displaySetting " + displaySetting);
  122.                     break;
  123.                 case 5:
  124.                     // 750,000 to 2,250,000 mid point is 1,500,000
  125.                     servo5.SetPulse(20 * 1000 * 1000, displaySetting * 10 * 1000);
  126.                     Debug.Print("displaySetting " + displaySetting);
  127.                     break;
  128.                 default:
  129.                     break;
  130.             }
  131.  
  132.         }
  133.  
  134.         void GetXmlFromWeb()
  135.         {
  136.             WebClient.GetFromWeb("http://www.google.com/ig/api?weather=02903").ResponseReceived += new HttpRequest.ResponseHandler(Program_ResponseReceived);
  137.         }
  138.  
  139.         void Program_ResponseReceived(HttpRequest sender, HttpResponse response)
  140.         {
  141.             string elementHolder;
  142.  
  143.             XmlReader reader = XmlReader.Create(response.Stream);
  144.  
  145.             int lineNumberCount = 0;
  146.  
  147.             while (reader.Read())
  148.             {
  149.  
  150.                 switch (reader.NodeType)
  151.                 {
  152.                     case XmlNodeType.Element:
  153.                         //Debug.Print("Element: " + reader.Name);
  154.                         //if (reader.HasAttributes && reader.Name.Equals("current_conditions"))
  155.                         if (reader.Name.Equals("current_conditions"))
  156.                         {
  157.                             reader.ReadToFollowing("temp_f");
  158.                             reader.MoveToFirstAttribute();
  159.                             Debug.Print("Today: " + reader.Value);
  160.                             printServoDisplay(lineNumberCount, Convert.ToUInt32(reader.Value));
  161.                             lineNumberCount++;
  162.                         }
  163.                         else if (reader.Name.Equals("forecast_conditions"))
  164.                         {
  165.                             reader.ReadToFollowing("day_of_week");
  166.                             reader.MoveToFirstAttribute();
  167.                             elementHolder = reader.Value;
  168.                             reader.ReadToFollowing("high");
  169.                             reader.MoveToFirstAttribute();
  170.                             Debug.Print(elementHolder + ": " + reader.Value);
  171.                             //lineNumberCount++;
  172.                             //printServoDisplay(lineNumberCount, elementHolder + ": ");
  173.                             printServoDisplay(lineNumberCount, Convert.ToUInt32(reader.Value));
  174.                             lineNumberCount++;
  175.  
  176.                         }
  177.                         break;
  178.  
  179.                     case XmlNodeType.EndElement:
  180.                         //Debug.Print("End of Element");
  181.                         break;
  182.                 }
  183.  
  184.             }
  185.  
  186.             //Debug.Print(response.StatusCode);
  187.  
  188.         }
  189.  
  190.        
  191.     }
  192. }
Advertisement
Add Comment
Please, Sign In to add comment