Erweiterungen
This commit is contained in:
1 parent
64e6ddd18c
commit
1249abfd15
18 files changed
+85
-139
No files matched your search
@@ -190,7 +190,7 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
||||
message.reqZip!.zip = zip;
|
||||
}
|
||||
|
||||
MqttCore.instance.publishText("/appserver/to_server/100/1/104400/set_location", jsonEncode(message.toJson()));
|
||||
MqttCore.instance.publishText("set_location", jsonEncode(message.toJson()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ class _AssignedJobsPageState extends State<AssignedJobsPage> {
|
||||
message.track.pos.long = currentPosition != null ? currentPosition.longitude : 0.0;
|
||||
message.track.pos.acc = currentPosition != null ? currentPosition.accuracy.toInt() : 0;
|
||||
|
||||
MqttCore.instance.publishText("/appserver/to_server/100/1/104400/reaction", jsonEncode(message.toJson()));
|
||||
MqttCore.instance.publishText("reaction", jsonEncode(message.toJson()));
|
||||
|
||||
job.state = 9;
|
||||
MyApp.isarInstance.writeTxnSync(() => {MyApp.isarInstance.jobs.putSync(job)});
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:stadtbote/content_views/accepted_jobs_page.dart';
|
||||
@@ -325,15 +327,13 @@ class _MainPageState extends State<MainPage> {
|
||||
var position = MyApp.currentPosition;
|
||||
|
||||
var logoutMessage = LogoutMessage();
|
||||
logoutMessage.logout = LogoutContainer();
|
||||
if (position != null) {
|
||||
logoutMessage.logout.pos = LogoutMessagePosition();
|
||||
logoutMessage.logout.pos!.time = position.timestamp.toIso8601String();
|
||||
logoutMessage.logout.pos!.lat = position.latitude;
|
||||
logoutMessage.logout.pos!.long = position.longitude;
|
||||
logoutMessage.logout.pos!.acc = position.accuracy.toInt();
|
||||
logoutMessage.time = position.timestamp.toIso8601String();
|
||||
logoutMessage.lat = position.latitude;
|
||||
logoutMessage.long = position.longitude;
|
||||
logoutMessage.acc = position.accuracy.toInt();
|
||||
}
|
||||
|
||||
MqttCore.instance.publishPayloadMessage('session', logoutMessage.toJson());
|
||||
MqttCore.instance.publishText("session", jsonEncode(logoutMessage.toJson()));
|
||||
}
|
||||
}
|
||||
@@ -109,7 +109,7 @@ class _MessagesPageState extends State<MessagesPage> {
|
||||
|
||||
var json = jsonEncode(message.toJson());
|
||||
|
||||
MqttCore.instance.publishText('/appserver/to_server/100/1/104400/set_location', jsonEncode(message.toJson()));
|
||||
MqttCore.instance.publishText('set_location', jsonEncode(message.toJson()));
|
||||
|
||||
_messages.insert(0, types.TextMessage(
|
||||
author: _user,
|
||||
|
||||
@@ -407,7 +407,7 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
message.task.pos!.long = position.longitude;
|
||||
}
|
||||
|
||||
MqttCore.instance.publishText("/appserver/to_server/100/1/104400/fin_task", jsonEncode(message.toJson()));
|
||||
MqttCore.instance.publishText("fin_task", jsonEncode(message.toJson()));
|
||||
}
|
||||
|
||||
FinTourTask _createAnswerHeader(TaskInfo taskInfo) {
|
||||
@@ -449,7 +449,7 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
}
|
||||
}
|
||||
|
||||
MqttCore.instance.publishText("/appserver/to_server/100/1/104400/fin_tour", jsonEncode(message.toJson()));
|
||||
MqttCore.instance.publishText("fin_tour", jsonEncode(message.toJson()));
|
||||
|
||||
widget.tour.state = Constants.stateFinishedNotConfirmed;
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
|
||||
@@ -173,7 +173,7 @@ _sendAnswer(Job job, int item) {
|
||||
message.track.pos.long = currentPosition != null ? currentPosition.longitude : 0.0;
|
||||
message.track.pos.acc = currentPosition != null ? currentPosition.accuracy.toInt() : 0;
|
||||
|
||||
MqttCore.instance.publishText("/appserver/to_server/100/1/104400/reaction", jsonEncode(message.toJson()));
|
||||
MqttCore.instance.publishText("reaction", jsonEncode(message.toJson()));
|
||||
|
||||
job.state = 9;
|
||||
MyApp.isarInstance.writeTxnSync(() => {MyApp.isarInstance.jobs.putSync(job)});
|
||||
|
||||
@@ -4,14 +4,21 @@ import 'package:stadtbote/protocoll_messages/bootstrap_response_config.dart';
|
||||
part 'bootstrap_response_payload.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class BootstrapResponsePayload
|
||||
class BootstrapResponse
|
||||
{
|
||||
late BootstrapResponseConfig config;
|
||||
late String broker;
|
||||
late String id;
|
||||
|
||||
BootstrapResponsePayload();
|
||||
@JsonKey(name: "to_server")
|
||||
late String toServer;
|
||||
|
||||
factory BootstrapResponsePayload.fromJson(Map<String, dynamic> json) => _$BootstrapResponsePayloadFromJson(json);
|
||||
@JsonKey(name: "from_server")
|
||||
late String fromServer;
|
||||
|
||||
Map<String, dynamic> toJson() => _$BootstrapResponsePayloadToJson(this);
|
||||
BootstrapResponse();
|
||||
|
||||
factory BootstrapResponse.fromJson(Map<String, dynamic> json) => _$BootstrapResponseFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$BootstrapResponseToJson(this);
|
||||
}
|
||||
|
||||
@@ -6,14 +6,17 @@ part of 'bootstrap_response_payload.dart';
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
BootstrapResponsePayload _$BootstrapResponsePayloadFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
BootstrapResponsePayload()
|
||||
..config = BootstrapResponseConfig.fromJson(
|
||||
json['config'] as Map<String, dynamic>);
|
||||
BootstrapResponse _$BootstrapResponseFromJson(Map<String, dynamic> json) =>
|
||||
BootstrapResponse()
|
||||
..broker = json['broker'] as String
|
||||
..id = json['id'] as String
|
||||
..toServer = json['to_server'] as String
|
||||
..fromServer = json['from_server'] as String;
|
||||
|
||||
Map<String, dynamic> _$BootstrapResponsePayloadToJson(
|
||||
BootstrapResponsePayload instance) =>
|
||||
Map<String, dynamic> _$BootstrapResponseToJson(BootstrapResponse instance) =>
|
||||
<String, dynamic>{
|
||||
'config': instance.config,
|
||||
'broker': instance.broker,
|
||||
'id': instance.id,
|
||||
'to_server': instance.toServer,
|
||||
'from_server': instance.fromServer,
|
||||
};
|
||||
@@ -4,28 +4,6 @@ part 'logout_message.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class LogoutMessage {
|
||||
late LogoutContainer logout;
|
||||
|
||||
LogoutMessage();
|
||||
|
||||
factory LogoutMessage.fromJson(Map<String, dynamic> json) => _$LogoutMessageFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$LogoutMessageToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class LogoutContainer {
|
||||
late LogoutMessagePosition? pos;
|
||||
|
||||
LogoutContainer();
|
||||
|
||||
factory LogoutContainer.fromJson(Map<String, dynamic> json) => _$LogoutContainerFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$LogoutContainerToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class LogoutMessagePosition {
|
||||
late String time;
|
||||
|
||||
late double lat;
|
||||
@@ -34,10 +12,10 @@ class LogoutMessagePosition {
|
||||
|
||||
late int acc;
|
||||
|
||||
LogoutMessagePosition();
|
||||
LogoutMessage();
|
||||
|
||||
factory LogoutMessagePosition.fromJson(Map<String, dynamic> json) => _$LogoutMessagePositionFromJson(json);
|
||||
factory LogoutMessage.fromJson(Map<String, dynamic> json) => _$LogoutMessageFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$LogoutMessagePositionToJson(this);
|
||||
Map<String, dynamic> toJson() => _$LogoutMessageToJson(this);
|
||||
}
|
||||
|
||||
@@ -8,35 +8,12 @@ part of 'logout_message.dart';
|
||||
|
||||
LogoutMessage _$LogoutMessageFromJson(Map<String, dynamic> json) =>
|
||||
LogoutMessage()
|
||||
..logout =
|
||||
LogoutContainer.fromJson(json['logout'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$LogoutMessageToJson(LogoutMessage instance) =>
|
||||
<String, dynamic>{
|
||||
'logout': instance.logout,
|
||||
};
|
||||
|
||||
LogoutContainer _$LogoutContainerFromJson(Map<String, dynamic> json) =>
|
||||
LogoutContainer()
|
||||
..pos = json['pos'] == null
|
||||
? null
|
||||
: LogoutMessagePosition.fromJson(json['pos'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$LogoutContainerToJson(LogoutContainer instance) =>
|
||||
<String, dynamic>{
|
||||
'pos': instance.pos,
|
||||
};
|
||||
|
||||
LogoutMessagePosition _$LogoutMessagePositionFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
LogoutMessagePosition()
|
||||
..time = json['time'] as String
|
||||
..lat = (json['lat'] as num).toDouble()
|
||||
..long = (json['long'] as num).toDouble()
|
||||
..acc = json['acc'] as int;
|
||||
|
||||
Map<String, dynamic> _$LogoutMessagePositionToJson(
|
||||
LogoutMessagePosition instance) =>
|
||||
Map<String, dynamic> _$LogoutMessageToJson(LogoutMessage instance) =>
|
||||
<String, dynamic>{
|
||||
'time': instance.time,
|
||||
'lat': instance.lat,
|
||||
|
||||
@@ -6,8 +6,6 @@ part 'start_session_message.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class StartSessionMessage {
|
||||
late bool startSession;
|
||||
|
||||
StartSessionMessage();
|
||||
|
||||
factory StartSessionMessage.fromJson(Map<String, dynamic> json) => _$StartSessionMessageFromJson(json);
|
||||
|
||||
@@ -7,10 +7,8 @@ part of 'start_session_message.dart';
|
||||
// **************************************************************************
|
||||
|
||||
StartSessionMessage _$StartSessionMessageFromJson(Map<String, dynamic> json) =>
|
||||
StartSessionMessage()..startSession = json['startSession'] as bool;
|
||||
StartSessionMessage();
|
||||
|
||||
Map<String, dynamic> _$StartSessionMessageToJson(
|
||||
StartSessionMessage instance) =>
|
||||
<String, dynamic>{
|
||||
'startSession': instance.startSession,
|
||||
};
|
||||
<String, dynamic>{};
|
||||
+17
-35
@@ -48,6 +48,7 @@ class MqttCore {
|
||||
late String _brokerUri;
|
||||
late int _brokerPort;
|
||||
late String _fromServerTopic;
|
||||
late String _clientId;
|
||||
late String _toServerTopic;
|
||||
|
||||
late MqttServerClient _mqttClient;
|
||||
@@ -127,12 +128,14 @@ class MqttCore {
|
||||
}
|
||||
}
|
||||
|
||||
publishText(String topic, String text) {
|
||||
publishText(String subtopic, String text) {
|
||||
try {
|
||||
var buffer = Uint8Buffer();
|
||||
buffer.addAll(text.codeUnits);
|
||||
|
||||
_mqttClient.publishMessage(topic, MqttQos.exactlyOnce, buffer);
|
||||
var topic = "$_toServerTopic$subtopic/$_clientId";
|
||||
|
||||
_mqttClient.publishMessage( topic, MqttQos.exactlyOnce, buffer);
|
||||
|
||||
Util.logInfo("send message $text to $topic");
|
||||
} catch (e) {
|
||||
@@ -140,22 +143,6 @@ class MqttCore {
|
||||
}
|
||||
}
|
||||
|
||||
publishPayloadMessage(String receiver, Map<String, dynamic> payload) {
|
||||
try {
|
||||
var payloadContainer = PayloadContainer();
|
||||
payloadContainer.id = const Uuid().v4().toString();
|
||||
payloadContainer.recv = receiver;
|
||||
payloadContainer.store = true;
|
||||
payloadContainer.payload = payload;
|
||||
|
||||
var json = jsonEncode(payloadContainer.toJson());
|
||||
|
||||
publishText(_toServerTopic, json);
|
||||
} catch (e) {
|
||||
Util.logException(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
void _setupSubscriptions() async {
|
||||
Util.logInfo('_setupSubscriptions called');
|
||||
|
||||
@@ -170,7 +157,7 @@ class MqttCore {
|
||||
Util.logInfo('mesage: $payload');
|
||||
|
||||
var topicArray = topic!.split('/');
|
||||
var messageType = topicArray[topicArray.length - 1];
|
||||
var messageType = topicArray[3];
|
||||
|
||||
switch(messageType) {
|
||||
case 'session':
|
||||
@@ -210,12 +197,9 @@ class MqttCore {
|
||||
}
|
||||
});
|
||||
|
||||
_mqttClient.subscribe(_fromServerTopic + "/session", MqttQos.exactlyOnce);
|
||||
_mqttClient.subscribe(_fromServerTopic + "/status", MqttQos.exactlyOnce);
|
||||
_mqttClient.subscribe(_fromServerTopic + "/job", MqttQos.exactlyOnce);
|
||||
_mqttClient.subscribe(_fromServerTopic + "/job_del", MqttQos.exactlyOnce);
|
||||
_mqttClient.subscribe(_fromServerTopic + "/ranking", MqttQos.exactlyOnce);
|
||||
Util.logInfo('subscribed to topic: $_fromServerTopic');
|
||||
var topic = "$_fromServerTopic#";
|
||||
_mqttClient.subscribe(topic, MqttQos.exactlyOnce);
|
||||
Util.logInfo('subscribed to topic: $topic');
|
||||
|
||||
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.connected));
|
||||
}
|
||||
@@ -369,13 +353,14 @@ class MqttCore {
|
||||
|
||||
var responseText = await rootBundle.loadString('assets/json/bootstrap_response.json');
|
||||
|
||||
var bootstrapResponsePayload = BootstrapResponsePayload.fromJson(jsonDecode(responseText)["payload"]);
|
||||
var bootstrapResponse = BootstrapResponse.fromJson(jsonDecode(responseText));
|
||||
|
||||
var brokerUriAndPortArray = bootstrapResponsePayload.config.broker.replaceFirst("mqtt://", "").split(":");
|
||||
var brokerUriAndPortArray = bootstrapResponse.broker.replaceFirst("mqtt://", "").split(":");
|
||||
_brokerUri = brokerUriAndPortArray[0];
|
||||
_brokerPort = int.parse(brokerUriAndPortArray[1]);
|
||||
_fromServerTopic = bootstrapResponsePayload.config.topics.fromServer;
|
||||
_toServerTopic = bootstrapResponsePayload.config.topics.toServer;
|
||||
_clientId = bootstrapResponse.id;
|
||||
_fromServerTopic = bootstrapResponse.fromServer;
|
||||
_toServerTopic = bootstrapResponse.toServer;
|
||||
|
||||
_connectToBroker();
|
||||
} catch (ex) {
|
||||
@@ -385,13 +370,10 @@ class MqttCore {
|
||||
|
||||
_initSession() {
|
||||
var startSessionMessage = StartSessionMessage();
|
||||
startSessionMessage.startSession = true;
|
||||
|
||||
var topic = "$_toServerTopic/session";
|
||||
|
||||
var jsonMap = startSessionMessage.toJson();
|
||||
var json = jsonEncode(jsonMap);
|
||||
publishText(topic, json);
|
||||
publishText("session", json);
|
||||
}
|
||||
|
||||
_sendSyncMessage() async
|
||||
@@ -410,7 +392,7 @@ class MqttCore {
|
||||
answer.sync.jobs.add(syncJob);
|
||||
}
|
||||
|
||||
MqttCore.instance.publishText("/appserver/to_server/100/1/104400/sync", jsonEncode(answer.toJson()));
|
||||
MqttCore.instance.publishText("sync", jsonEncode(answer.toJson()));
|
||||
}
|
||||
|
||||
void _startTrackTimer() {
|
||||
@@ -424,7 +406,7 @@ class MqttCore {
|
||||
trackMessage.pos.long = answer.longitude;
|
||||
trackMessage.pos.acc = answer.accuracy.toInt();
|
||||
|
||||
publishText("/appserver/to_server/100/1/104400/track", jsonEncode(answer.toJson()));
|
||||
publishText("track", jsonEncode(answer.toJson()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user