peony3000

Gadgeteer Time Checker 01

Nov 7th, 2012
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.93 KB | None | 0 0
  1.  
  2. using System;
  3. using Microsoft.SPOT;
  4. //using Microsoft.SPOT.Presentation;
  5. //using Microsoft.SPOT.Presentation.Controls;
  6. //using Microsoft.SPOT.Presentation.Media;
  7.  
  8. using GT = Gadgeteer;
  9. using GTM = Gadgeteer.Modules;
  10. using Gadgeteer.Modules.GHIElectronics;
  11. using Microsoft.SPOT.Time;
  12. using System.Net;
  13.  
  14. namespace Gadgeteer_NTP_Time_Checker_01
  15. {
  16.     partial class Program
  17.     {
  18.         bool timeSynchronized;
  19.         string txtDateTime;
  20.         string txtDayTime;
  21.         GT.Timer timer = new GT.Timer(1000); // every second (1000ms)
  22.         int zoneOffset = -5; // 5 hour EST offset
  23.  
  24.         void ProgramStarted()
  25.         {
  26.             Debug.Print("Program Started");
  27.  
  28.             TimeService.SystemTimeChanged += new SystemTimeChangedEventHandler(TimeService_SystemTimeChanged);
  29.             TimeService.TimeSyncFailed += new TimeSyncFailedEventHandler(TimeService_TimeSyncFailed);
  30.  
  31.             timer.Tick += new GT.Timer.TickEventHandler(timer_Tick);
  32.             timer.Start();
  33.  
  34.             txtDateTime = ("Waiting for time update...");
  35.  
  36.             StartWiFi();
  37.  
  38.             Debug.Print("Program Running");
  39.         }
  40.  
  41.         void TimeService_TimeSyncFailed(object sender, TimeSyncFailedEventArgs e)
  42.         {
  43.             Debug.Print("Error synchronizing system time with NTP server: " + e.ErrorCode);
  44.         }
  45.  
  46.         void TimeService_SystemTimeChanged(object sender, SystemTimeChangedEventArgs e)
  47.         {
  48.             Debug.Print("Network time received.");
  49.             if (!timeSynchronized)
  50.             {
  51.                 timeSynchronized = true;
  52.             }
  53.         }
  54.  
  55.         void timer_Tick(GT.Timer timer)
  56.         {
  57.        
  58.             if (timeSynchronized)
  59.             {
  60.                 txtDateTime = DateTime.Now.TimeOfDay.Hours.ToString();
  61.                 Debug.Print("The currrent hour is " + txtDateTime);
  62.                 txtDayTime = DateTime.Now.DayOfWeek.ToString();
  63.                 Debug.Print("The currrent day is " + txtDayTime);
  64.             }
  65.  
  66.         }
  67.  
  68.         void StartWiFi()
  69.         {
  70.             wifi.UseDHCP();
  71.             Gadgeteer.Modules.GHIElectronics.WiFi_RS21.WiFiNetworkInfo info = new WiFi_RS21.WiFiNetworkInfo();
  72.             info.SSID = "name";
  73.             info.SecMode = WiFi_RS21.SecurityMode.WEP;
  74.             info.networkType = WiFi_RS21.NetworkType.AccessPoint;
  75.             wifi.Join(info, "pass");
  76.             wifi.NetworkDown += new GTM.Module.NetworkModule.NetworkEventHandler(wifi_NetworkDown);
  77.             wifi.NetworkUp += new GTM.Module.NetworkModule.NetworkEventHandler(wifi_NetworkUp);
  78.         }
  79.  
  80.         void wifi_NetworkDown(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
  81.         {
  82.             Debug.Print("network down: connecting....");
  83.             //timer.Stop();
  84.         }
  85.  
  86.         void wifi_NetworkUp(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
  87.         {
  88.             Debug.Print("network up");
  89.             Debug.Print(wifi.NetworkSettings.IPAddress);
  90.             //Debug.Print("Network up!");
  91.  
  92.             // Configure TimeService settings.
  93.             TimeServiceSettings settings = new TimeServiceSettings();
  94.             settings.ForceSyncAtWakeUp = true;
  95.             settings.RefreshTime = 1800;    // in seconds.
  96.  
  97.             IPAddress[] address = Dns.GetHostEntry("time-a.nist.gov").AddressList;
  98.             if (address != null && address.Length > 0)
  99.                 settings.PrimaryServer = address[0].GetAddressBytes();
  100.  
  101.             address = Dns.GetHostEntry("pool.ntp.org").AddressList;
  102.             if (address != null && address.Length > 0)
  103.                 settings.AlternateServer = address[0].GetAddressBytes();
  104.  
  105.             TimeService.Settings = settings;
  106.  
  107.             // Set time zone offset to the retrieved UTC/GMT Time.
  108.             TimeService.SetTimeZoneOffset((zoneOffset)*60);
  109.  
  110.             TimeService.Start();
  111.             timer.Start();
  112.         }
  113.  
  114.        
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment