Fixing timeoffset
This commit is contained in:
parent
0773de6e08
commit
96c1977037
|
@ -9,6 +9,8 @@
|
||||||
FormatedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
FormatedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
||||||
FormatedData result;
|
FormatedData result;
|
||||||
|
|
||||||
|
static int dayoffset = 0;
|
||||||
|
|
||||||
// Load configuration values
|
// Load configuration values
|
||||||
int timeZone = commondata.config->getInt(commondata.config->timeZone); // [UTC -12...+12]
|
int timeZone = commondata.config->getInt(commondata.config->timeZone); // [UTC -12...+12]
|
||||||
String lengthFormat = commondata.config->getString(commondata.config->lengthFormat); // [m|ft]
|
String lengthFormat = commondata.config->getString(commondata.config->lengthFormat); // [m|ft]
|
||||||
|
@ -31,7 +33,7 @@ FormatedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
||||||
time_t tv = 0;
|
time_t tv = 0;
|
||||||
if (value->getFormat() == "formatDate"){
|
if (value->getFormat() == "formatDate"){
|
||||||
tmElements_t parts;
|
tmElements_t parts;
|
||||||
time_t tv=tNMEA0183Msg::daysToTime_t(value->value);
|
time_t tv=tNMEA0183Msg::daysToTime_t(value->value + dayoffset);
|
||||||
tNMEA0183Msg::breakTime(tv,parts);
|
tNMEA0183Msg::breakTime(tv,parts);
|
||||||
if(usesimudata == false) {
|
if(usesimudata == false) {
|
||||||
if(String(dateFormat) == "DE"){
|
if(String(dateFormat) == "DE"){
|
||||||
|
@ -59,11 +61,12 @@ FormatedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
||||||
}
|
}
|
||||||
//########################################################
|
//########################################################
|
||||||
else if(value->getFormat() == "formatTime"){
|
else if(value->getFormat() == "formatTime"){
|
||||||
double timeInSeconds;
|
double timeInSeconds = 0;
|
||||||
double inthr;
|
double utcTime = 0;
|
||||||
double intmin;
|
double inthr = 0;
|
||||||
double intsec;
|
double intmin = 0;
|
||||||
double val;
|
double intsec = 0;
|
||||||
|
double val = 0;
|
||||||
|
|
||||||
if(timeZone > 0){
|
if(timeZone > 0){
|
||||||
timeInSeconds = value->value + timeZone * 3600;
|
timeInSeconds = value->value + timeZone * 3600;
|
||||||
|
@ -74,6 +77,24 @@ FormatedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
||||||
timeInSeconds = int(timeInSeconds) % 86400; // Reduce to one day (86400s)
|
timeInSeconds = int(timeInSeconds) % 86400; // Reduce to one day (86400s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Changing day depends on time offset
|
||||||
|
utcTime = value->value;
|
||||||
|
if(timeZone + (utcTime/3600) > 24 && timeZone > 0){
|
||||||
|
dayoffset = 1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
dayoffset = 0;
|
||||||
|
}
|
||||||
|
if(timeZone == 0){
|
||||||
|
dayoffset = 0;
|
||||||
|
}
|
||||||
|
if(timeZone + (utcTime/3600) > 24 && timeZone < 0){
|
||||||
|
dayoffset = 0;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
dayoffset = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(usesimudata == false) {
|
if(usesimudata == false) {
|
||||||
val=modf(timeInSeconds/3600.0,&inthr);
|
val=modf(timeInSeconds/3600.0,&inthr);
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
"type": "number",
|
"type": "number",
|
||||||
"default": "0",
|
"default": "0",
|
||||||
"check": "checkMinMax",
|
"check": "checkMinMax",
|
||||||
"min": -12,
|
"min": -18,
|
||||||
"max": 14,
|
"max": 14,
|
||||||
"description": "Time zone [UTC -12...+14]",
|
"description": "Time zone [UTC -12...+14]",
|
||||||
"category": "OBP60 Settings",
|
"category": "OBP60 Settings",
|
||||||
|
|
Loading…
Reference in New Issue