Erweiterungen
This commit is contained in:
1 parent
20a1309946
commit
25a2455ce1
18 files changed
+2272
-1261
No files matched your search
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user