diff --git a/app/lib/server_requests/fetch_relation.dart b/app/lib/server_requests/fetch_relation.dart index 3f723fae14e17708212a62fd116ece5c04b1dbc8..999ec52e5795cd5c521c9aced78dae5427c97ae6 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 b2e2182b213b3a15fa209bae0cc4827e86586ebf..dd02829a657e5338c484180d51a75e5815190e3c 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 2232bc36504cec3b8e5ef809ecb7b472a4f43e8d..846143eea398bb521be833e62899746a588c7bbb 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__":