Bi-monthly release with minor bug fixes and improvements
LOGF_DEBUG("### OnStep ltm.tm_isdst: %i", ltm.tm_isdst);
double offset = 0;
if (getUTFOffset(&offset))
{
char utcStr[8] = {0};
snprintf(utcStr, 8, "%.2f", offset);
IUSaveText(&TimeT[1], utcStr);
}
else
{
LOG_WARN("Could not obtain UTC offset from mount!");
return false;
}
if (getLocalTime(ctime) == false)
{
LOG_WARN("Could not obtain local time from mount!");
return false;
}
if (getLocalDate(cdate) == false)
{
LOG_WARN("Could not obtain local date from mount!");
return false;
}
// To ISO 8601 format in LOCAL TIME!
char datetime[MAXINDINAME] = {0};
snprintf(datetime, MAXINDINAME, "%sT%s", cdate, ctime);
LOGF_DEBUG("### OnStep Local DateTime: %s", datetime);
// Now that date+time are combined, let's get tm representation of it.
if (strptime(datetime, "%FT%T", <m) == nullptr)
{
LOGF_WARN("Could not process mount date and time: %s", datetime);
return false;
}
LOGF_DEBUG("### OnStep after strptime ltm date: %i-%i-%i", ltm.tm_year, ltm.tm_mon, ltm.tm_mday);
LOGF_DEBUG("### OnStep after strptime ltm time: %i:%i:%i", ltm.tm_hour, ltm.tm_min, ltm.tm_sec);
LOGF_DEBUG("### OnStep after strptime ltm.tm_isdst: %i", ltm.tm_isdst);
// Get local time epoch in UNIX seconds
time_epoch = mktime(<m);
LOGF_DEBUG("OnStep Local DateTime time_epoch: %i", time_epoch);
// LOCAL to UTC by subtracting offset.
time_epoch -= static_cast<int>(offset * 3600.0);
LX200 OnStep : "[DEBUG] ### OnStep ltm.tm_isdst: 1074791425 " <<<< wrong value
LX200 OnStep : "[SCOPE] CMD <:GG#> "
LX200 OnStep : "[SCOPE] RES <+09> "
LX200 OnStep : "[SCOPE] VAL [9] "
LX200 OnStep : "[SCOPE] CMD <:GL#> "
LX200 OnStep : "[SCOPE] RES <04:08:07> "
LX200 OnStep : "[SCOPE] VAL [4.13528] "
LX200 OnStep : "[SCOPE] <getCalendarDate> "
LX200 OnStep : "[SCOPE] CMD <:GC#> "
LX200 OnStep : "[SCOPE] RES <03/23/22> "
LX200 OnStep : "[DEBUG] ### OnStep Local DateTime: 2022-03-23T04:08:07 " <<<< OnStep Local
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm date: 122-2-23 " <<<< OK
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm time: 4:8:7 " <<<< OK
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm.tm_isdst: 1074791425 " <<<< wrong value
LX200 OnStep : "[DEBUG] OnStep Local DateTime time_epoch: -1 " <<<< Error
LX200 OnStep : "[DEBUG] Mount controller UTC Time: 1970-01-01T17:59:59 " <<<< failed
LX200 OnStep : "[DEBUG] Mount controller UTC Offset: -9.00 "
Setting UTC time from device: "LX200 OnStep" "木 1月 1 17:59:59 1970 GMT" <<<< failed
->>>>>> snprintf(datetime, MAXINDINAME, "%sT%s", cdate, ctime);
LX200 OnStep : "[DEBUG] ### OnStep Local DateTime: 2022-03-23T04:08:07 " <<<< OnStep Local
->>>>>> if (strptime(datetime, "%FT%T", <m) == nullptr)
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm date: 122-2-23 " <<<< OK
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm time: 4:8:7 " <<<< OK
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm.tm_isdst: 1074791425 " <<<< wrong value
LX200 OnStep : "[DEBUG] OnStep Local DateTime time_epoch: -1 " <<<< Error
LX200 OnStep : "[DEBUG] ### OnStep ltm.tm_isdst: 0 " <<<< initialized value
LX200 OnStep : "[SCOPE] CMD <:GG#> "
LX200 OnStep : "[SCOPE] RES <+09> "
LX200 OnStep : "[SCOPE] VAL [9] "
LX200 OnStep : "[SCOPE] CMD <:GL#> "
LX200 OnStep : "[SCOPE] RES <04:11:37> "
LX200 OnStep : "[SCOPE] VAL [4.19361] "
LX200 OnStep : "[SCOPE] <getCalendarDate> "
LX200 OnStep : "[SCOPE] CMD <:GC#> "
LX200 OnStep : "[SCOPE] RES <03/23/22> "
LX200 OnStep : "[DEBUG] ### OnStep Local DateTime: 2022-03-23T04:11:37 " <<<< OnStep Local
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm date: 122-2-23 " <<<< OK
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm time: 4:11:37 " <<<< OK
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm.tm_isdst: 0 " <<<< initialized value
LX200 OnStep : "[DEBUG] OnStep Local DateTime time_epoch: 1647976297 " <<<< OK
LX200 OnStep : "[DEBUG] Mount controller UTC Time: 2022-03-23T13:11:37 " <<<< OK
LX200 OnStep : "[DEBUG] Mount controller UTC Offset: -9.00 "
Setting UTC time from device: "LX200 OnStep" "水 3月 23 13:11:37 2022 GMT" <<<< OK
->>>>>> snprintf(datetime, MAXINDINAME, "%sT%s", cdate, ctime);
LX200 OnStep : "[DEBUG] ### OnStep Local DateTime: 2022-03-23T04:11:37 " <<<< OnStep Local
->>>>>> if (strptime(datetime, "%FT%T", <m) == nullptr)
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm date: 122-2-23 " <<<< OK
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm time: 4:11:37 " <<<< OK
LX200 OnStep : "[DEBUG] ### OnStep after strptime ltm.tm_isdst: 0 " <<<< initialized value
LX200 OnStep : "[DEBUG] OnStep Local DateTime time_epoch: 1647976297 " <<<< OK
LX200 OnStep : "[DEBUG] Mount controller UTC Time: 2022-03-23T13:11:37 " <<<< OK
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
RAW ISDST = -1309029128
SEC = 7
MIN = 8
HR = 4
DAY = 23
MON = 2
YR = 122
DWK = 3
DYR = 81
DST = -1309029128
ISDST after strptime = -1309029128
ISDST after clobber >0 1074791425
Got MKTIME = -1
ISDST after clobber =0 = 0
Got MKTIME = 1647976087
ISDST after clobber < 0 -1074791425
Got MKTIME = 1647976087
# timedatectl
Local time: 木 2022-03-24 08:43:06 JST
Universal time: 水 2022-03-23 23:43:06 UTC
RTC time: n/a
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
# sudo timedatectl set-timezone US/Central
Local time: 水 2022-03-23 18:56:44 CDT
Universal time: 水 2022-03-23 23:56:44 UTC
RTC time: n/a
Time zone: US/Central (CDT, -0500)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
RAW ISDST = -1615921928
SEC = 7
MIN = 8
HR = 4
DAY = 23
MON = 2
YR = 122
DWK = 3
DYR = 81
DST = -1615921928
ISDST after strptime = -1615921928
ISDST after clobber >0 1074791425
Got MKTIME = 1648026487
ISDST after clobber =0 = 0
Got MKTIME = 1648030087
ISDST after clobber < 0 -1074791425
Got MKTIME = 1648030087
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.