ungereimtheiten zu DCF77, Ltime_to_UTC (oscat240)

Begonnen von HeHo, 09. Dezember 2007, 08:41:28

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 9 Gäste betrachten dieses Thema.

HeHo

hallo zusammen,

z.B. bei oben genannten funktionen wird ein mittels INT_TO_TIME ein offset von einer zeit berechnet. dieser offset ist als int deklariert und sollte in stunden angegeben sein?!

die funktion INT_TO_TIME macht aber auf meinem system nur eine millisekunde (sollte aber eine stunde sein) daraus???

FRAGE: tritt das phänomen nur auf der easycontrol(möller) auf?

gruß Horst 

hugo

nein das ist ein fehler der sich in die lib rev 24 eingeschlichen hat.
mittlerweile aber behoben ist hier der richtige code für die funktion local_time

tx := DWORD_TO_TIME(INT_TO_DWORD(ABS(time_zone_offset))* 3600000);

IF DST(utc) AND dst_enable THEN
   IF time_zone_offset < 0 THEN local_time := utc - tx + T#1h; ELSE local_time := utc + tx + T#1h; END_IF;
ELSE
   IF time_zone_offset < 0 THEN local_time := utc - tx; ELSE local_time := utc + tx; END_IF;
END_IF;

es bitrifft 3 funktionen die ltime, ltime_to_utc und local_time wir werden noch heute hierzu einen update bringen

HeHo

danke, das ging ja flott!

tolles forum.

gruß horst

hugo

ab sofort ist im download die release 251 vorhanden.
die int to time probleme sind dort gelöst

HeHo

hallo,

sorry, ich will weder stress noch unmut verbreiten aber int_to_time ist auch im "DCF77" baustein vorhanden!

Zitatrtc := utc;
   IF DST AND dst_en THEN
      IF time_offset < 0 THEN   rtc1 := rtc - INT_TO_TIME(-time_offset) + t#1h; ELSE rtc1 := rtc + INT_TO_TIME(time_offset) + t#1h; END_IF;
   ELSE
      IF time_offset < 0 THEN rtc1 := rtc - INT_TO_TIME(-time_offset); ELSE rtc1 := rtc + INT_TO_TIME(time_offset); END_IF;
   END_IF;

gruß Horst

hugo

sch.. da hab nicht genau genug hingesehen
in einer stunde ist es erledigt.

hugo

im download liegt die 252 welche das problem im dcf77 beseitigt

HeHo