kopia lustrzana https://github.com/Hamlib/Hamlib
Implement ISO8601 time standard in more places.
Debug time now shows localtime + utc offset Rigs that can set the clock now can set either local or utc time on the rig Icom rigs can only display clock#1 right now so users may want either local or utc So here are IC7300 examples rigctl -m 3073 -r com3 -s 115200 set_clock local rigctl -m 3073 -r com3 -s 115200 set_clock utcpull/891/head
rodzic
b11f2e4bbf
commit
674a9868d9
|
@ -226,7 +226,7 @@ void HAMLIB_API rig_debug(enum rig_debug_level_e debug_level,
|
||||||
if (rig_debug_time_stamp)
|
if (rig_debug_time_stamp)
|
||||||
{
|
{
|
||||||
char buf[256];
|
char buf[256];
|
||||||
fprintf(rig_debug_stream, "%s: ", date_strget(buf, sizeof(buf)));
|
fprintf(rig_debug_stream, "%s: ", date_strget(buf, sizeof(buf), 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
vfprintf(rig_debug_stream, fmt, ap);
|
vfprintf(rig_debug_stream, fmt, ap);
|
||||||
|
|
21
src/misc.c
21
src/misc.c
|
@ -2423,19 +2423,30 @@ static struct tm *gmtime_r(const time_t *t, struct tm *r)
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|
||||||
//! @cond Doxygen_Suppress
|
//! @cond Doxygen_Suppress
|
||||||
char *date_strget(char *buf, int buflen)
|
char *date_strget(char *buf, int buflen, int localtime)
|
||||||
{
|
{
|
||||||
char tmp[16];
|
char tmpbuf[64];
|
||||||
struct tm *mytm;
|
struct tm *mytm;
|
||||||
time_t t;
|
time_t t;
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
struct tm result;
|
struct tm result;
|
||||||
t = time(NULL);
|
t = time(NULL);
|
||||||
|
|
||||||
|
if (localtime)
|
||||||
|
{
|
||||||
|
mytm = localtime_r(&t, &result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
mytm = gmtime_r(&t, &result);
|
mytm = gmtime_r(&t, &result);
|
||||||
strftime(buf, buflen, "%Y-%m-%d:%H:%M:%S.", mytm);
|
}
|
||||||
|
|
||||||
|
strftime(buf, buflen, "%FT%T.", mytm);
|
||||||
gettimeofday(&tv, NULL);
|
gettimeofday(&tv, NULL);
|
||||||
sprintf(tmp, "%06ld", (long)tv.tv_usec);
|
sprintf(tmpbuf, "%06ld", (long)tv.tv_usec);
|
||||||
strcat(buf, tmp);
|
strcat(buf, tmpbuf);
|
||||||
|
strftime(tmpbuf, sizeof(tmpbuf), "%z", mytm);
|
||||||
|
strcat(buf, tmpbuf);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@ extern HAMLIB_EXPORT(int) parse_hoststr(char *hoststr, char host[256], char port
|
||||||
|
|
||||||
extern HAMLIB_EXPORT(uint32_t) CRC32_function(uint8_t *buf, uint32_t len);
|
extern HAMLIB_EXPORT(uint32_t) CRC32_function(uint8_t *buf, uint32_t len);
|
||||||
|
|
||||||
extern char *date_strget(char *buf, int buflen);
|
extern char *date_strget(char *buf, int buflen, int localtime);
|
||||||
|
|
||||||
#ifdef PRId64
|
#ifdef PRId64
|
||||||
/** \brief printf(3) format to be used for long long (64bits) type */
|
/** \brief printf(3) format to be used for long long (64bits) type */
|
||||||
|
|
|
@ -2174,7 +2174,8 @@ int HAMLIB_API rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
||||||
|
|
||||||
cache_show(rig, __func__, __LINE__);
|
cache_show(rig, __func__, __LINE__);
|
||||||
|
|
||||||
if (*freq != 0 && (cache_ms_freq < rig->state.cache.timeout_ms || rig->state.cache.timeout_ms == HAMLIB_CACHE_ALWAYS))
|
if (*freq != 0 && (cache_ms_freq < rig->state.cache.timeout_ms
|
||||||
|
|| rig->state.cache.timeout_ms == HAMLIB_CACHE_ALWAYS))
|
||||||
{
|
{
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: %s cache hit age=%dms, freq=%.0f\n", __func__,
|
rig_debug(RIG_DEBUG_TRACE, "%s: %s cache hit age=%dms, freq=%.0f\n", __func__,
|
||||||
rig_strvfo(vfo), cache_ms_freq, *freq);
|
rig_strvfo(vfo), cache_ms_freq, *freq);
|
||||||
|
@ -2497,6 +2498,7 @@ int HAMLIB_API rig_get_mode(RIG *rig,
|
||||||
ELAPSED2;
|
ELAPSED2;
|
||||||
RETURNFUNC(RIG_OK);
|
RETURNFUNC(RIG_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((*mode != RIG_MODE_NONE && cache_ms_mode < rig->state.cache.timeout_ms)
|
if ((*mode != RIG_MODE_NONE && cache_ms_mode < rig->state.cache.timeout_ms)
|
||||||
&& cache_ms_width < rig->state.cache.timeout_ms)
|
&& cache_ms_width < rig->state.cache.timeout_ms)
|
||||||
{
|
{
|
||||||
|
@ -7199,7 +7201,7 @@ int HAMLIB_API rig_cookie(RIG *rig, enum cookie_e cookie_cmd, char *cookie,
|
||||||
__FILE__, __LINE__, cookie_save, time_curr - time_last_used);
|
__FILE__, __LINE__, cookie_save, time_curr - time_last_used);
|
||||||
}
|
}
|
||||||
|
|
||||||
date_strget(cookie, cookie_len);
|
date_strget(cookie, cookie_len, 0);
|
||||||
size_t len = strlen(cookie);
|
size_t len = strlen(cookie);
|
||||||
// add on our random number to ensure uniqueness
|
// add on our random number to ensure uniqueness
|
||||||
// The cookie should never be longer then HAMLIB_COOKIE_SIZE
|
// The cookie should never be longer then HAMLIB_COOKIE_SIZE
|
||||||
|
|
|
@ -5221,11 +5221,32 @@ declare_proto_rig(set_clock)
|
||||||
double msec;
|
double msec;
|
||||||
int utc_offset = 0;
|
int utc_offset = 0;
|
||||||
int n;
|
int n;
|
||||||
|
char timebuf[64];
|
||||||
|
|
||||||
ENTERFUNC;
|
ENTERFUNC;
|
||||||
|
|
||||||
|
if (arg1 && strcasecmp(arg1, "local") == 0)
|
||||||
|
{
|
||||||
|
date_strget(timebuf, sizeof(timebuf), 1);
|
||||||
|
rig_debug(RIG_DEBUG_VERBOSE, "%s: local time set = %s\n", __func__, timebuf);
|
||||||
|
n = sscanf(timebuf, "%04d-%02d-%02dT%02d:%02d:%02d%lf%d", &year, &mon, &day,
|
||||||
|
&hour,
|
||||||
|
&min, &sec, &msec, &utc_offset);
|
||||||
|
}
|
||||||
|
else if (arg1 && strcasecmp(arg1, "utc") == 0)
|
||||||
|
{
|
||||||
|
date_strget(timebuf, sizeof(timebuf), 0);
|
||||||
|
rig_debug(RIG_DEBUG_VERBOSE, "%s: utc time set = %s\n", __func__, timebuf);
|
||||||
|
n = sscanf(timebuf, "%04d-%02d-%02dT%02d:%02d:%02d%lf%d", &year, &mon, &day,
|
||||||
|
&hour,
|
||||||
|
&min, &sec, &msec, &utc_offset);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
n = sscanf(arg1, "%04d-%02d-%02dT%02d:%02d:%02d%lf%d", &year, &mon, &day, &hour,
|
n = sscanf(arg1, "%04d-%02d-%02dT%02d:%02d:%02d%lf%d", &year, &mon, &day, &hour,
|
||||||
&min, &sec, &msec, &utc_offset);
|
&min, &sec, &msec, &utc_offset);
|
||||||
|
}
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE,
|
rig_debug(RIG_DEBUG_VERBOSE,
|
||||||
"%s: n=%d, %04d-%02d-%02dT%02d:%02d:%02d.%0.3f%s%02d\n",
|
"%s: n=%d, %04d-%02d-%02dT%02d:%02d:%02d.%0.3f%s%02d\n",
|
||||||
__func__, n, year, mon, day, hour, min, sec, msec, utc_offset >= 0 ? "+" : "-",
|
__func__, n, year, mon, day, hour, min, sec, msec, utc_offset >= 0 ? "+" : "-",
|
||||||
|
|
Ładowanie…
Reference in New Issue