Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using Microsoft.SPOT;
- //using Microsoft.SPOT.Presentation;
- //using Microsoft.SPOT.Presentation.Controls;
- //using Microsoft.SPOT.Presentation.Media;
- using GT = Gadgeteer;
- using GTM = Gadgeteer.Modules;
- using Gadgeteer.Modules.GHIElectronics;
- using Microsoft.SPOT.Time;
- using System.Net;
- namespace Gadgeteer_NTP_Time_Checker_01
- {
- partial class Program
- {
- bool timeSynchronized;
- string txtDateTime;
- string txtDayTime;
- GT.Timer timer = new GT.Timer(1000); // every second (1000ms)
- int zoneOffset = -5; // 5 hour EST offset
- void ProgramStarted()
- {
- Debug.Print("Program Started");
- TimeService.SystemTimeChanged += new SystemTimeChangedEventHandler(TimeService_SystemTimeChanged);
- TimeService.TimeSyncFailed += new TimeSyncFailedEventHandler(TimeService_TimeSyncFailed);
- timer.Tick += new GT.Timer.TickEventHandler(timer_Tick);
- timer.Start();
- txtDateTime = ("Waiting for time update...");
- StartWiFi();
- Debug.Print("Program Running");
- }
- void TimeService_TimeSyncFailed(object sender, TimeSyncFailedEventArgs e)
- {
- Debug.Print("Error synchronizing system time with NTP server: " + e.ErrorCode);
- }
- void TimeService_SystemTimeChanged(object sender, SystemTimeChangedEventArgs e)
- {
- Debug.Print("Network time received.");
- if (!timeSynchronized)
- {
- timeSynchronized = true;
- }
- }
- void timer_Tick(GT.Timer timer)
- {
- if (timeSynchronized)
- {
- txtDateTime = DateTime.Now.TimeOfDay.Hours.ToString();
- Debug.Print("The currrent hour is " + txtDateTime);
- txtDayTime = DateTime.Now.DayOfWeek.ToString();
- Debug.Print("The currrent day is " + txtDayTime);
- }
- }
- void StartWiFi()
- {
- wifi.UseDHCP();
- Gadgeteer.Modules.GHIElectronics.WiFi_RS21.WiFiNetworkInfo info = new WiFi_RS21.WiFiNetworkInfo();
- info.SSID = "name";
- info.SecMode = WiFi_RS21.SecurityMode.WEP;
- info.networkType = WiFi_RS21.NetworkType.AccessPoint;
- wifi.Join(info, "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....");
- //timer.Stop();
- }
- void wifi_NetworkUp(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
- {
- Debug.Print("network up");
- Debug.Print(wifi.NetworkSettings.IPAddress);
- //Debug.Print("Network up!");
- // Configure TimeService settings.
- TimeServiceSettings settings = new TimeServiceSettings();
- settings.ForceSyncAtWakeUp = true;
- settings.RefreshTime = 1800; // in seconds.
- IPAddress[] address = Dns.GetHostEntry("time-a.nist.gov").AddressList;
- if (address != null && address.Length > 0)
- settings.PrimaryServer = address[0].GetAddressBytes();
- address = Dns.GetHostEntry("pool.ntp.org").AddressList;
- if (address != null && address.Length > 0)
- settings.AlternateServer = address[0].GetAddressBytes();
- TimeService.Settings = settings;
- // Set time zone offset to the retrieved UTC/GMT Time.
- TimeService.SetTimeZoneOffset((zoneOffset)*60);
- TimeService.Start();
- timer.Start();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment