From bbffbf386a707a30094675edd06fbf5cb7b4d3bb Mon Sep 17 00:00:00 2001 From: Sara <sarasdj@stud.ntnu.no> Date: Fri, 5 Apr 2024 15:02:37 +0200 Subject: [PATCH] update: maybe fix loadRelation() --- app/lib/server_requests/fetch_relation.dart | 16 +++++++--------- app/lib/server_requests/init_state.dart | 6 ++---- server/main.py | 4 +++- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/app/lib/server_requests/fetch_relation.dart b/app/lib/server_requests/fetch_relation.dart index 3f723fae..999ec52e 100644 --- a/app/lib/server_requests/fetch_relation.dart +++ b/app/lib/server_requests/fetch_relation.dart @@ -45,25 +45,23 @@ Future<Uint8List> fetchRelation() async { } } +/// Load last saved relation data form last_relation.json Future<Uint8List> loadSavedRelation() async { try { // Get latest saved relation from file if the server does not respond Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); String filePath = '${appDocumentsDirectory.path}/last_relation.json'; - // Read file contents + // Read file contents as bytes File file = File(filePath); if (await file.exists()) { - String contents = await file.readAsString(); - List<dynamic> jsonData = json.decode(contents); // Parse JSON string from file - Uint8List relation = Uint8List.fromList(utf8.encode(jsonData.toString())); - return relation; + Uint8List bytes = await file.readAsBytes(); + return bytes; } else { - throw Exception('File does not exist'); + throw Exception('Relation file does not exist'); } } catch (error) { - print('Error in reading relation from file: $error'); - return Uint8List(0); + print('Error in reading relation from file: $error'); + return Uint8List(0); } } - diff --git a/app/lib/server_requests/init_state.dart b/app/lib/server_requests/init_state.dart index b2e2182b..dd02829a 100644 --- a/app/lib/server_requests/init_state.dart +++ b/app/lib/server_requests/init_state.dart @@ -20,10 +20,8 @@ Future<void> initialiseState() async { late Future<Uint8List> relationFuture; try { - - // Read data from files if no internet connection - if (!internetConnection) { - selectedRelation = Uint8List(0); // NB update once fixed + if (!internetConnection) { // Read data from files if no internet connection + selectedRelation = await loadSavedRelation(); FetchResult fetchResult = await loadSavedData(); List<Measurement> measurements = fetchResult.measurements; diff --git a/server/main.py b/server/main.py index 2232bc36..846143ee 100644 --- a/server/main.py +++ b/server/main.py @@ -13,6 +13,7 @@ import sqlite3 app = Flask(__name__) terminate_server = 0 + class IceHTTPServer(HTTPServer): def __init__(self, server_address, handler_class, cursor): super().__init__(server_address, handler_class) @@ -65,7 +66,8 @@ class IceHTTP(BaseHTTPRequestHandler): def do_POST(self): if self.path == '/new_lidar_data': - input_new_Lidar_data(self,self.cursor, 1, 'Mjosa') # hardcoded body of water must change later + input_new_Lidar_data(self, self.cursor, 1, 'Mjosa') # hardcoded body of water must change later + # Start a server on port 8443 using self defined HTTP class if __name__ == "__main__": -- GitLab