Erweiterungen

This commit is contained in:
Sven committed 2024-02-10 09:12:51 +01:00
1 parent 20a1309946
commit 25a2455ce1
18 files changed
+2272 -1261

No files matched your search

+26 -7
View File
@@ -6,6 +6,7 @@ import 'package:isar/isar.dart';
import 'package:mqtt_client/mqtt_client.dart';
import 'package:mqtt_client/mqtt_server_client.dart';
import 'package:stadtbote/model/job_tour.dart';
import 'package:stadtbote/model/status.dart';
import 'package:stadtbote/protocoll_messages/bootstrap_request.dart';
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
import 'package:stadtbote/protocoll_messages/device_object.dart';
@@ -23,13 +24,14 @@ import 'package:stadtbote/tools/messages/job_deleted_message.dart';
import 'package:stadtbote/tools/messages/job_received_message.dart';
import 'package:stadtbote/tools/messages/message_message.dart';
import 'package:stadtbote/tools/messages/session_info_update.dart';
import 'package:stadtbote/tools/messages/status_info_update.dart';
// ignore: depend_on_referenced_packages
import 'package:typed_data/typed_buffers.dart';
import 'package:http/http.dart' as http;
import 'package:uuid/uuid.dart';
import '../main.dart';
import '../model/status.dart';
import '../model/session_status.dart';
import 'constants.dart';
import 'util.dart';
@@ -164,6 +166,10 @@ class MqttCore {
_sessionMessageReceived(payloadData);
break;
case 'status':
_statusMessageReceived(payloadData);
break;
case 'ranks':
_rankingMessageReceived(payloadData);
break;
@@ -207,15 +213,27 @@ class MqttCore {
await _sendSyncMessage();
var statusMessage = Status.fromJson(payloadData['status']);
var sessionStatusMessage = SessionStatus.fromJson(payloadData['status']);
await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.sessionStatus.clear();
await MyApp.isarInstance.sessionStatus.put(sessionStatusMessage);
});
MessageService().publish<SessionStatusInfoUpdate>(Constants.messageTopicSessionStatusInfoUpdate, arguments: SessionStatusInfoUpdate(status: sessionStatusMessage));
_startTrackTimer();
}
void _statusMessageReceived(payloadData) async {
var statusMessage = Status.fromJson(payloadData);
await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.status.clear();
await MyApp.isarInstance.status.put(statusMessage);
});
MessageService().publish<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, arguments: StatusInfoUpdate(status: statusMessage));
_startTrackTimer();
}
void _rankingMessageReceived(payloadData) async {
@@ -372,14 +390,14 @@ class MqttCore {
var jobs = await MyApp.isarInstance.jobs.filter().stateGreaterThan(-1).findAll();
var answer = SyncJobsMessage();
answer.utcUnixTime = DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000;
answer.sync = SyncJobMessageSync();
answer.sync.jobs = [];
answer.sync.utcUnixTime = DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000;
for (var job in jobs) {
SyncJobMessageJob syncJob = SyncJobMessageJob();
syncJob.state = job.state;
syncJob.id = job.id;
syncJob.ver = job.ver;
syncJob.ver = job.ver.toString();
answer.sync.jobs.add(syncJob);
}
@@ -391,7 +409,8 @@ class MqttCore {
var position = MyApp.currentPosition;
if (position != null) {
var trackMessage = TrackMessage();
trackMessage.pos = FinTaskPos();
trackMessage.pos = TrackPosition();
trackMessage.pos.time = position.timestamp.toIso8601String();
trackMessage.pos.lat = position.latitude;
trackMessage.pos.long = position.longitude;
trackMessage.pos.acc = position.accuracy.toInt();