From 2daf46d870a4d67c73ad3273ea67506fd6f12bb6 Mon Sep 17 00:00:00 2001 From: Charlie Jonas Date: Tue, 31 Aug 2021 18:19:19 +0100 Subject: [PATCH 1/2] Use UTC timestamps for CAT control --- application/controllers/Api.php | 4 ++++ application/controllers/Radio.php | 5 +++-- application/models/Cat.php | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/application/controllers/Api.php b/application/controllers/Api.php index 9e88e859..b0b1a17a 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -476,6 +476,10 @@ class API extends CI_Controller { die(); } + if(!isset($obj['timestamp'])) { + $obj['timestamp'] = gmdate('Y/m/d H:i:s'); + } + // Store Result to Database $this->cat->update($obj); diff --git a/application/controllers/Radio.php b/application/controllers/Radio.php index d8c95838..0b7a14e8 100755 --- a/application/controllers/Radio.php +++ b/application/controllers/Radio.php @@ -120,8 +120,9 @@ } // Calculate how old the data is in minutes - $datetime1 = new DateTime(); // Today's Date/Time - $datetime2 = new DateTime($row->newtime); + $timezone = new DateTimeZone("UTC"); + $datetime1 = new DateTime("now", $timezone); + $datetime2 = new DateTime($row->timestamp, $timezone); $interval = $datetime1->diff($datetime2); $minutes = $interval->days * 24 * 60; diff --git a/application/models/Cat.php b/application/models/Cat.php index 2f92b788..4306cdbe 100644 --- a/application/models/Cat.php +++ b/application/models/Cat.php @@ -102,7 +102,7 @@ function radio_status($id) { - return $this->db->query('SELECT *, CONVERT_TZ(`timestamp`, @@session.time_zone, \'+00:00\' ) as newtime FROM `cat` WHERE id = '.$id.' '); + return $this->db->query('SELECT * FROM `cat` WHERE id = '.$id.' '); } From 033971ad09a5240fc4f87d41c86f4a661921f490 Mon Sep 17 00:00:00 2001 From: Charlie Jonas Date: Tue, 31 Aug 2021 18:37:33 +0100 Subject: [PATCH 2/2] Further clarify timestamp format in comments --- application/controllers/Api.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/application/controllers/Api.php b/application/controllers/Api.php index b0b1a17a..8857167d 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -455,14 +455,18 @@ class API extends CI_Controller { } - /* ENDPOINT for Rig Control */ + /* + * ENDPOINT for Rig Control + * + * Note: timestamp should always be in UTC + */ function radio() { header('Content-type: application/json'); $this->load->model('api_model'); - //$json = '{"radio":"FT-950","frequency":14075,"mode":"SSB","timestamp":"2012/04/07 16:47"}'; + //$json = '{"radio":"FT-950","frequency":14075,"mode":"SSB","timestamp":"2012/04/07 16:47:31"}'; $this->load->model('cat'); @@ -477,7 +481,7 @@ class API extends CI_Controller { } if(!isset($obj['timestamp'])) { - $obj['timestamp'] = gmdate('Y/m/d H:i:s'); + $obj['timestamp'] = gmdate('Y/m/d H:i:s'); // in UTC } // Store Result to Database