kopia lustrzana https://github.com/Hamlib/Hamlib
Fix negative fractional UTC offsets
Bizarro utc_offset encoding does not play well with arithmetic.pull/1612/head
rodzic
8a6a500ccd
commit
496d8fde31
|
@ -6020,7 +6020,7 @@ int kenwood_set_clock(RIG *rig, int year, int month, int day, int hour, int min,
|
||||||
int kenwood_get_clock(RIG *rig, int *year, int *month, int *day, int *hour, int *min, int *sec, double *msec, int *utc_offset)
|
int kenwood_get_clock(RIG *rig, int *year, int *month, int *day, int *hour, int *min, int *sec, double *msec, int *utc_offset)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
int fields, zone;
|
int fields, diff;
|
||||||
char ans[20];
|
char ans[20];
|
||||||
|
|
||||||
// Make sure the clock has been set at least once
|
// Make sure the clock has been set at least once
|
||||||
|
@ -6055,9 +6055,9 @@ int kenwood_get_clock(RIG *rig, int *year, int *month, int *day, int *hour, int
|
||||||
retval = kenwood_transaction(rig, "CK2", ans, sizeof(ans));
|
retval = kenwood_transaction(rig, "CK2", ans, sizeof(ans));
|
||||||
if (retval != RIG_OK) {return retval;}
|
if (retval != RIG_OK) {return retval;}
|
||||||
|
|
||||||
zone = atoi(&ans[3]); // UTC offset in 15 minute intervals, centered on 56
|
diff = (atoi(&ans[3]) - 56) * 15; // UTC offset in minutes
|
||||||
zone = (zone / 4) * 100 + (zone % 4) * 15; // Pack as hours * 100 + minutes
|
// Pack as hours * 100 + minutes
|
||||||
*utc_offset = zone - 1400;
|
*utc_offset = (diff / 60) * 100 + diff % 60;
|
||||||
|
|
||||||
// No msec available
|
// No msec available
|
||||||
*msec = 0;
|
*msec = 0;
|
||||||
|
|
Ładowanie…
Reference in New Issue