INT 21h

Домашняя страница самого страшного прерывания

Lazarus: клиент NTP и часовые пояса (NTP client and time zones)

№ 5710 В разделе "Программирование" от November 27th, 2013,

На самом деле за вас уже все сделали. Дело в том, что на днях мне понадобилось доработать прошивку на настенных часах и управляющую программу чтобы она всякую хрень в память не писала, а делала что велено :)

Качаем нашу самую любимую библиотеку для работы со всем сетевым Synapse и распаковываем lib в директорию своей программы (ну можно и переименовать, если не хотите кучу барахла всякого в одной директории). Подключаете директорию к проекту (делается в настройках проекта) и теперь можно писать код!

function get_ntp(): TDateTime;
var
  NTPClient: TSNTPSend;
  NTPResult, Belt: TDateTime;
begin
  with form1 do
  begin
    NTPClient := TSNTPSend.Create;
    NTPClient.TargetHost := Edit2.Text;
    NTPClient.GetNTP;
    NTPResult := NTPClient.NTPTime;
    if StrToInt(Edit3.Text) >= 0 then
    begin
      Belt := EncodeTime(StrToInt(Edit3.Text), 0, 0, 0);
      NTPResult := NTPResult + Belt;
    end
    else
    begin
      Belt := EncodeTime(abs(StrToInt(Edit3.Text)), 0, 0, 0);
      NTPResult := NTPResult - Belt;
    end;
  end;
  Result:=NTPResult;
end;

Этой функции ничего кормить не надо. Однако, это неправильно :) Вы можете переписать ее, чтобы передавать ей 2 параметра: сервер (у меня Edit2.Text) и временной сдвиг (часовой пояс, Edit3.Text). После этого и with form1 do убрать можно будет ;)

Ну а потом эти значения можно использовать, например, так:

procedure TForm1.Button4Click(Sender: TObject);
begin
  ShowMessage(DateTimeToStr(get_ntp()));
end;

Или так:

var mydatetime: TDateTime;
...
 mydatetime:=get_ntp();
 ShowMessage(FormatDateTime('dd', mydatetime))+'.'+
    FormatDateTime('mm', mydatetime))+'.20'+
    FormatDateTime('yy', mydatetime)));

Рабочий код можно посмотреть в репозитории, который я вынес из 2 других схожих проектов http://bitbucket.org/21h/clocksync.

ClockSync

Нет комментариев »

Оставьте ваш комментарий »

Форма отправки комментария

CAPTCHA
*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

RSS RSS Feed только для этого поста |


Комментарии
  • Игорь: Все настроил, еще раз просмотрел видео и методом научного тыка все настроил и сохранил, все работает и обе...
  • 21h: Здравствуйте, Игорь! Я не знаю :) Думаю аналогично согласно инструкции к вашей радиостанции.
  • Игорь: Добрый день, просмотрел Ваше видео все доступно и ясно для 8 ми канальных радеек, но мне нада настроить 69...
  • Гоги: Есть инструкция к Моторолкам – она подходит к серии Motorola TLKR T4… Т8. В конце сетка частот и...
  • 21h: торчок давно уже не обновлял, как только закрыл сайт где он работал. да, это морда для opentracker. без...
  • Buter: Какова дальнейшая жизнь торчка? Он кстати веб-интерфейсом для OpenTracker выступает? Без OpenTracker работать...
  • 21h: понятия не имею. гуглите инструкцию к вашей радейке и сверяйтесь с ней.
  • Денис: хочу их подружить с uv5r
  • Денис: t-388 walkie talkie на эти шпаргалочек нет,или как приминить ваши к их настройке?
  • John: Стекла для электроник – техночас.ру