Fehlerkorrekturen
This commit is contained in:
1 parent
db93891dc9
commit
5c1d016935
7 files changed
+57
-91
No files matched your search
@@ -98,6 +98,8 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
|||||||
for (int i = 0; i < _ranking!.ranks.length; i++) {
|
for (int i = 0; i < _ranking!.ranks.length; i++) {
|
||||||
var rank = _ranking!.ranks[i];
|
var rank = _ranking!.ranks[i];
|
||||||
|
|
||||||
|
var rankArea = rank.area ?? "";
|
||||||
|
|
||||||
List<Widget> entries = [];
|
List<Widget> entries = [];
|
||||||
entries.add(
|
entries.add(
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
@@ -125,7 +127,7 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
|||||||
style: TextStyle(fontSize: 20, color: (i == 0 ? Colors.white : Colors.black)),
|
style: TextStyle(fontSize: 20, color: (i == 0 ? Colors.white : Colors.black)),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
rank.area,
|
rankArea,
|
||||||
style: TextStyle(fontSize: 13, color: (i == 0 ? Colors.white : Colors.black)),
|
style: TextStyle(fontSize: 13, color: (i == 0 ? Colors.white : Colors.black)),
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
@@ -191,7 +193,7 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
|||||||
setPosMessage.track!.pos!.acc = position.accuracy.toInt();
|
setPosMessage.track!.pos!.acc = position.accuracy.toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageService().publish<PublishPayloadMessage>(Constants.messageTopicPublishPayload, arguments: PublishPayloadMessage(topic: "rank", message: setPosMessage.toJson()));
|
MessageService().publish<PublishPayloadMessage>(Constants.messageTopicPublishPayload, arguments: PublishPayloadMessage(topic: "set_zip", message: setPosMessage.toJson()));
|
||||||
}
|
}
|
||||||
|
|
||||||
_initMessages() {
|
_initMessages() {
|
||||||
|
|||||||
@@ -476,26 +476,25 @@ class _TaskListPageState extends State<TaskListPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_sendFinTourMessage() async {
|
_sendFinTourMessage() async {
|
||||||
var finTourMessage = FinTourMessage();
|
var finTourMessage = FinTour();
|
||||||
finTourMessage.finTour = FinTour();
|
finTourMessage.trId = widget.tour.id;
|
||||||
finTourMessage.finTour.trId = widget.tour.id;
|
finTourMessage.com = _commisionNumber;
|
||||||
finTourMessage.finTour.com = _commisionNumber;
|
|
||||||
|
|
||||||
var position = MyApp.currentPosition;
|
var position = MyApp.currentPosition;
|
||||||
if (position != null) {
|
if (position != null) {
|
||||||
finTourMessage.finTour.track = Track();
|
finTourMessage.track = Track();
|
||||||
finTourMessage.finTour.track!.time = DateTime.now().toIso8601String();
|
finTourMessage.track!.time = DateTime.now().toIso8601String();
|
||||||
finTourMessage.finTour.track!.pos = FinTaskPos();
|
finTourMessage.track!.pos = FinTaskPos();
|
||||||
finTourMessage.finTour.track!.pos!.lat = position.latitude;
|
finTourMessage.track!.pos!.lat = position.latitude;
|
||||||
finTourMessage.finTour.track!.pos!.long = position.longitude;
|
finTourMessage.track!.pos!.long = position.longitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
finTourMessage.finTour.tasks = [];
|
finTourMessage.tasks = [];
|
||||||
for(var taskInfo in _taskList) {
|
for(var taskInfo in _taskList) {
|
||||||
if (taskInfo.answer != null) {
|
if (taskInfo.answer != null) {
|
||||||
var finTourTask = FinTourTask.fromJson(jsonDecode(taskInfo.answer!));
|
var finTourTask = FinTourTask.fromJson(jsonDecode(taskInfo.answer!));
|
||||||
|
|
||||||
finTourMessage.finTour.tasks.add(finTourTask);
|
finTourMessage.tasks.add(finTourTask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ class Rank {
|
|||||||
|
|
||||||
late String zip;
|
late String zip;
|
||||||
|
|
||||||
late String area;
|
String? area;
|
||||||
|
|
||||||
late List<Vehicle> vehicles;
|
late List<Vehicle> vehicles;
|
||||||
|
|
||||||
|
|||||||
+30
-9
@@ -442,7 +442,12 @@ int _rankEstimateSize(
|
|||||||
Map<Type, List<int>> allOffsets,
|
Map<Type, List<int>> allOffsets,
|
||||||
) {
|
) {
|
||||||
var bytesCount = offsets.last;
|
var bytesCount = offsets.last;
|
||||||
bytesCount += 3 + object.area.length * 3;
|
{
|
||||||
|
final value = object.area;
|
||||||
|
if (value != null) {
|
||||||
|
bytesCount += 3 + value.length * 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
bytesCount += 3 + object.vehicles.length * 3;
|
bytesCount += 3 + object.vehicles.length * 3;
|
||||||
{
|
{
|
||||||
final offsets = allOffsets[Vehicle]!;
|
final offsets = allOffsets[Vehicle]!;
|
||||||
@@ -479,7 +484,7 @@ Rank _rankDeserialize(
|
|||||||
Map<Type, List<int>> allOffsets,
|
Map<Type, List<int>> allOffsets,
|
||||||
) {
|
) {
|
||||||
final object = Rank();
|
final object = Rank();
|
||||||
object.area = reader.readString(offsets[0]);
|
object.area = reader.readStringOrNull(offsets[0]);
|
||||||
object.id = reader.readLong(offsets[1]);
|
object.id = reader.readLong(offsets[1]);
|
||||||
object.vehicles = reader.readObjectList<Vehicle>(
|
object.vehicles = reader.readObjectList<Vehicle>(
|
||||||
offsets[2],
|
offsets[2],
|
||||||
@@ -500,7 +505,7 @@ P _rankDeserializeProp<P>(
|
|||||||
) {
|
) {
|
||||||
switch (propertyId) {
|
switch (propertyId) {
|
||||||
case 0:
|
case 0:
|
||||||
return (reader.readString(offset)) as P;
|
return (reader.readStringOrNull(offset)) as P;
|
||||||
case 1:
|
case 1:
|
||||||
return (reader.readLong(offset)) as P;
|
return (reader.readLong(offset)) as P;
|
||||||
case 2:
|
case 2:
|
||||||
@@ -519,8 +524,24 @@ P _rankDeserializeProp<P>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||||
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaIsNull() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addFilterCondition(const FilterCondition.isNull(
|
||||||
|
property: r'area',
|
||||||
|
));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaIsNotNull() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||||
|
property: r'area',
|
||||||
|
));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaEqualTo(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaEqualTo(
|
||||||
String value, {
|
String? value, {
|
||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
@@ -533,7 +554,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaGreaterThan(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaGreaterThan(
|
||||||
String value, {
|
String? value, {
|
||||||
bool include = false,
|
bool include = false,
|
||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
@@ -548,7 +569,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaLessThan(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaLessThan(
|
||||||
String value, {
|
String? value, {
|
||||||
bool include = false,
|
bool include = false,
|
||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
}) {
|
}) {
|
||||||
@@ -563,8 +584,8 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaBetween(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaBetween(
|
||||||
String lower,
|
String? lower,
|
||||||
String upper, {
|
String? upper, {
|
||||||
bool includeLower = true,
|
bool includeLower = true,
|
||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
bool caseSensitive = true,
|
bool caseSensitive = true,
|
||||||
@@ -1155,7 +1176,7 @@ Map<String, dynamic> _$RankingToJson(Ranking instance) => <String, dynamic>{
|
|||||||
Rank _$RankFromJson(Map<String, dynamic> json) => Rank()
|
Rank _$RankFromJson(Map<String, dynamic> json) => Rank()
|
||||||
..id = json['id'] as int
|
..id = json['id'] as int
|
||||||
..zip = json['zip'] as String
|
..zip = json['zip'] as String
|
||||||
..area = json['area'] as String
|
..area = json['area'] as String?
|
||||||
..vehicles = (json['vehicles'] as List<dynamic>)
|
..vehicles = (json['vehicles'] as List<dynamic>)
|
||||||
.map((e) => Vehicle.fromJson(e as Map<String, dynamic>))
|
.map((e) => Vehicle.fromJson(e as Map<String, dynamic>))
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
import 'package:json_annotation/json_annotation.dart';
|
|
||||||
|
|
||||||
part 'payload_container.g.dart';
|
|
||||||
|
|
||||||
@JsonSerializable()
|
|
||||||
class PayloadContainer {
|
|
||||||
late String recv;
|
|
||||||
|
|
||||||
late bool store;
|
|
||||||
|
|
||||||
late String id;
|
|
||||||
|
|
||||||
late Map<String, dynamic> payload;
|
|
||||||
|
|
||||||
PayloadContainer();
|
|
||||||
|
|
||||||
factory PayloadContainer.fromJson(Map<String, dynamic> json) => _$PayloadContainerFromJson(json);
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => _$PayloadContainerToJson(this);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
|
||||||
|
|
||||||
part of 'payload_container.dart';
|
|
||||||
|
|
||||||
// **************************************************************************
|
|
||||||
// JsonSerializableGenerator
|
|
||||||
// **************************************************************************
|
|
||||||
|
|
||||||
PayloadContainer _$PayloadContainerFromJson(Map<String, dynamic> json) =>
|
|
||||||
PayloadContainer()
|
|
||||||
..recv = json['recv'] as String
|
|
||||||
..store = json['store'] as bool
|
|
||||||
..id = json['id'] as String
|
|
||||||
..payload = json['payload'] as Map<String, dynamic>;
|
|
||||||
|
|
||||||
Map<String, dynamic> _$PayloadContainerToJson(PayloadContainer instance) =>
|
|
||||||
<String, dynamic>{
|
|
||||||
'recv': instance.recv,
|
|
||||||
'store': instance.store,
|
|
||||||
'id': instance.id,
|
|
||||||
'payload': instance.payload,
|
|
||||||
};
|
|
||||||
+12
-25
@@ -21,7 +21,7 @@ import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
|
|||||||
import 'package:stadtbote/protocoll_messages/device_log_request.dart';
|
import 'package:stadtbote/protocoll_messages/device_log_request.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/device_log_response.dart';
|
import 'package:stadtbote/protocoll_messages/device_log_response.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/device_object.dart';
|
import 'package:stadtbote/protocoll_messages/device_object.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/payload_container.dart';
|
import 'package:stadtbote/protocoll_messages/job_del_message.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/start_session_message.dart';
|
import 'package:stadtbote/protocoll_messages/start_session_message.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/status_info_update.dart';
|
import 'package:stadtbote/protocoll_messages/status_info_update.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/sync_jobs_message.dart';
|
import 'package:stadtbote/protocoll_messages/sync_jobs_message.dart';
|
||||||
@@ -147,6 +147,7 @@ class MqttCore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_publishText(String topic, String text) {
|
_publishText(String topic, String text) {
|
||||||
|
try {
|
||||||
var buffer = Uint8Buffer();
|
var buffer = Uint8Buffer();
|
||||||
buffer.addAll(GZipEncoder().encode(const Utf8Encoder().convert(text)) as Iterable<int>);
|
buffer.addAll(GZipEncoder().encode(const Utf8Encoder().convert(text)) as Iterable<int>);
|
||||||
|
|
||||||
@@ -155,21 +156,8 @@ class MqttCore {
|
|||||||
_mqttClient!.publishMessage(messageTopic, MqttQos.exactlyOnce, buffer);
|
_mqttClient!.publishMessage(messageTopic, MqttQos.exactlyOnce, buffer);
|
||||||
|
|
||||||
Util.logInfo("message\n$text\nsend to $messageTopic");
|
Util.logInfo("message\n$text\nsend to $messageTopic");
|
||||||
}
|
} catch (ex) {
|
||||||
|
_enqueueMessage(topic, text);
|
||||||
publishPayloadMessage(String topic, Map<String, dynamic> payload) {
|
|
||||||
var payloadContainer = PayloadContainer();
|
|
||||||
payloadContainer.id = const Uuid().v4().toString();
|
|
||||||
payloadContainer.recv = topic;
|
|
||||||
payloadContainer.store = true;
|
|
||||||
payloadContainer.payload = payload;
|
|
||||||
|
|
||||||
var json = jsonEncode(payloadContainer.toJson());
|
|
||||||
|
|
||||||
try {
|
|
||||||
_publishText(topic, json);
|
|
||||||
} catch (e) {
|
|
||||||
_enqueueMessage(topic, jsonEncode(payloadContainer.toJson()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,7 +188,7 @@ class MqttCore {
|
|||||||
_statusMessageReceived(jsonDecode(payload));
|
_statusMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'ranks':
|
case 'ranking':
|
||||||
_rankingMessageReceived(jsonDecode(payload));
|
_rankingMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -338,13 +326,12 @@ class MqttCore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _jobDeleteReceived(payloadData) async {
|
void _jobDeleteReceived(payloadData) async {
|
||||||
for (var jobId in payloadData) {
|
var jobDelMessage = JobDelMessage.fromJson(payloadData);
|
||||||
await MyApp.isarInstance.writeTxn(() async {
|
await MyApp.isarInstance.writeTxn(() async {
|
||||||
await MyApp.isarInstance.jobs.delete(jobId);
|
await MyApp.isarInstance.jobs.delete(jobDelMessage.id);
|
||||||
});
|
});
|
||||||
|
|
||||||
MessageService().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(id: jobId));
|
MessageService().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(id: jobDelMessage.id));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _syncRequestReceived(payloadData) async {
|
void _syncRequestReceived(payloadData) async {
|
||||||
@@ -494,7 +481,7 @@ class MqttCore {
|
|||||||
answer.sync.jobs.add(syncJob);
|
answer.sync.jobs.add(syncJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
publishPayloadMessage("sync_request_response", answer.toJson());
|
_publishText("sync", jsonEncode(answer.toJson()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _startTrackTimer() {
|
void _startTrackTimer() {
|
||||||
@@ -508,7 +495,7 @@ class MqttCore {
|
|||||||
trackMessage.pos!.long = position.longitude;
|
trackMessage.pos!.long = position.longitude;
|
||||||
trackMessage.pos!.acc = position.accuracy.toInt();
|
trackMessage.pos!.acc = position.accuracy.toInt();
|
||||||
|
|
||||||
publishPayloadMessage("track", trackMessage.toJson());
|
_publishText("track", jsonEncode(trackMessage.toJson()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -555,12 +542,12 @@ class MqttCore {
|
|||||||
message.received.ver = job.ver;
|
message.received.ver = job.ver;
|
||||||
message.received.utc = DateTime.now().millisecondsSinceEpoch;
|
message.received.utc = DateTime.now().millisecondsSinceEpoch;
|
||||||
|
|
||||||
publishPayloadMessage('job', message.toJson());
|
_publishText('job', jsonEncode(message.toJson()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void initMessages() {
|
void initMessages() {
|
||||||
MessageService().subscribe<PublishPayloadMessage>(Constants.messageTopicPublishPayload, this, (PublishPayloadMessage payloadMessage) {
|
MessageService().subscribe<PublishPayloadMessage>(Constants.messageTopicPublishPayload, this, (PublishPayloadMessage payloadMessage) {
|
||||||
publishPayloadMessage(payloadMessage.topic, payloadMessage.message);
|
_publishText(payloadMessage.topic, jsonEncode(payloadMessage.message));
|
||||||
});
|
});
|
||||||
|
|
||||||
MessageService().subscribe<DisconnectClientMessage>(Constants.messageTopicDisconnectClient, this,
|
MessageService().subscribe<DisconnectClientMessage>(Constants.messageTopicDisconnectClient, this,
|
||||||
|
|||||||
Reference in new issue
Block a user