using System; using System.Threading; using Microsoft.SPOT; using GHI.Processor; using System.Text; namespace IMULogger { public class Real_Time_Clock { // Create stringbuilder to save data and time private static StringBuilder sbDateTime = new StringBuilder(500); // create object to read date and time from RTC private static DateTime timeNow; //---------------------------------------------------------------------------------------------------- // Setup the RTC //---------------------------------------------------------------------------------------------------- public static void setupRTC() { //DateTime DT; try { // Read the RTC timeNow = RealTimeClock.GetDateTime(); Debug.Print("Current Real-time Clock " + timeNow.ToString()); } catch // If the time is not invalid, like day of the month is 40! { Debug.Print("Bad time exception"); // Set to something! timeNow = new DateTime(2000, 1, 1, 1, 1, 1, 1); } if (timeNow.Year < 2015) { Debug.Print("Bad time value"); // Date is wrong! We need to set // .. get time from user or network ands set RTC // Set the time to 06/20/2016 at 11:00:00 in this example timeNow = new DateTime(2016, 06, 20, 00, 00, 00); RealTimeClock.SetDateTime(timeNow); } // lost after power cycle or reset: Microsoft.SPOT.Hardware.Utility.SetLocalTime(timeNow); //while (true) //{ // Debug.Print("System Time: " + DateTime.Now.ToString()); // Debug.Print(" RTC Time: " + RealTimeClock.GetDateTime()); // Thread.Sleep(1000); //} } //---------------------------------------------------------------------------------------------------- // Read the RTC //---------------------------------------------------------------------------------------------------- public static StringBuilder readClock() { timeNow = DateTime.Now; sbDateTime.Clear(); sbDateTime.Append(timeNow.ToString("dd-MMM-yyyy")); sbDateTime.Append("\t"); sbDateTime.Append(timeNow.ToString("HH:mm:ss.fff")); //Debug.Print(sbWrite.ToString()); //Debug.Print(sbWrite.Length.ToString()); return (sbDateTime); } } }