readHistoryStatic static method

Future<List<Map<String, dynamic>>> readHistoryStatic(
  1. String devId
)

Implementation

static Future<List<Map<String, dynamic>>> readHistoryStatic(
    String devId) async {
  try {
    final dir = await getApplicationDocumentsDirectory();
    final file = File('${dir.path}/reputation_$devId.txt');

    if (!await file.exists()) return [];

    List<String> lines = await file.readAsLines();

    if (lines.isEmpty) return [];

    return lines.map((line) {
      var parts = line.split(',');
      return {
        'timestamp': parts[0],
        'battery': double.tryParse(parts[1]) ?? 0.0,
        'storage': double.tryParse(parts[2]) ?? 0.0,
        'successfulInteractions': int.tryParse(parts[3]) ?? 0,
        'totalInteractions': int.tryParse(parts[4]) ?? 0,
        'requestedPackets': int.tryParse(parts[5]) ?? 0,
        'deliveredPackets': int.tryParse(parts[6]) ?? 0,
        'avgLatency': double.tryParse(parts[7]) ?? 0.0,
        'diversity': int.tryParse(parts[8]) ?? 0,
        'daysSinceLastInteraction': int.tryParse(parts[9]) ?? 0,
        'reputation': double.tryParse(parts[10]) ?? 0.0,
        'canCooperate': parts[11].trim().toLowerCase() == 'true',
        'hasHistory': parts.length > 12
            ? parts[12].trim().toLowerCase() == 'true'
            : false,
      };
    }).toList();
  } catch (e) {
    if (kDebugMode) {
      print("Error reading history: $e");
    }
    return [];
  }
}