Как узнать время GPS на Windows Mobile 6? - PullRequest
0 голосов
/ 09 июля 2009

Как я могу получить время, которое не зависит от времени моего ПК? Я использую приведенный ниже код, чтобы получить время, и оно работает, но когда я меняю время на компьютере, время перестает быть правильным, поэтому есть ли способ получить реальное время в реальном времени, но не из времени ПК? Может быть, время GPS?

    private void btn_DateTime_Click(object sender, EventArgs e)
    {
        DateTime dateTime = DateTime.Now;
        label_localTime.Text = dateTime.ToString();
        DateTime utcNow = DateTime.UtcNow;
        label_utc.Text = utcNow.ToString();


        TimeZone timeZone = TimeZone.CurrentTimeZone;
        if (timeZone.IsDaylightSavingTime(dateTime) == true)
        {
            label_dayLightSaving.Text = "YES";
            label_timeZone.Text = timeZone.GetUtcOffset(dateTime).ToString();
        }
        else
        {
            label_dayLightSaving.Text = "NO";
            label_timeZone.Text = "N//A";
        }                                  
    }

РЕДАКТИРОВАТЬ: целевое устройство работает на WM6 и имеет оборудование GPS.

спасибо.

Ответы [ 5 ]

7 голосов
/ 09 июля 2009

Звучит так, будто вы ищете сетевой сервер времени. Если у вас нет локального оборудования (GPS-приемник, радиомодуль) для поддержки других методов, лучшим выбором будет сетевое время.

Сетевой протокол времени (NTP) является протокол для синхронизации часов компьютерных систем над данные с коммутацией пакетов и переменной задержкой сетей.

Вот клиентская реализация, использующая C # ; это может помочь.

1 голос
/ 09 июля 2009

Вы можете использовать ntp, но требуется время, чтобы получить доступ к источнику времени, который не находится на компьютере, на котором запущена программа и который слишком часто обращается к серверам уровня 1 или уровня 2 за определенный период времени. вероятно нахмурился.

0 голосов
/ 10 июля 2009

Если у вас есть доступ к последовательному потоку GPS, одно из предложений имеет время GMT / UTC.

ОБНОВЛЕНИЕ: предложение $ GPRMC является тем. http://www.codepedia.com/1/The+GPRMC+Sentence

$ GPRMC, UTC, POS_STAT, LAT, LAT_REF, LON, LON_REF, СПД, HDG, ДАТА, MAG_VAR, MAG_REF * CS

0 голосов
/ 10 июля 2009

Существуют также Win32 API для получения некорректированного времени процессора, которое вы должны локализовать самостоятельно.

Когда встроенная система GPS работает на платформе Win32, где мы получаем время GPS и корректируем местное время ПК во время работы. Поэтому для ведения журнала мы просто используем локальное время Windows, но для таймеров мы используем неправильное время ЦП, чтобы избежать коротких или длинных таймеров при изменении системного времени.

0 голосов
/ 09 июля 2009

Поскольку DateTime основывается на часах вашего процессора и внутренних часах вашего компьютера, вы никак не можете получить DateTime, не основываясь на времени вашего процессора или компьютера.

Лучший способ - найти веб-сервис для вызова, который даст вам, например, Navy Master Clock .

Я не знаю, есть ли веб-сервис, но вы можете получить его с сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...