Skip to content
Snippets Groups Projects
Commit ef7468a6 authored by Oleksandr Husak's avatar Oleksandr Husak
Browse files

agent properties in the popup

parent 35080dd3
Branches
No related tags found
No related merge requests found
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
- Public MQTT broker and client from [hivemq](https://www.hivemq.com/public-mqtt-broker/). MQTT client with a standart settings. - Public MQTT broker and client from [hivemq](https://www.hivemq.com/public-mqtt-broker/). MQTT client with a standart settings.
- `ipos/client/position`: relative position of an agent to a curent root point - `ipos/client/position`: relative position of an agent to a curent root point
- `ipos/client/root`: update a root point. Default is `{"latitude": 51.02545, "longitude": 13.72295}`. - `ipos/client/root`: update a root point. Default is `{"latitude": 51.02545, "longitude": 13.72295}`.
- `ipos/client/extracted` extracted attributes. Related with VDA5050
- Messages description: [SimpleSceneIntegration Interface](https://md.inf.tu-dresden.de/IPos_IFSimpleSceneIntegration). - Messages description: [SimpleSceneIntegration Interface](https://md.inf.tu-dresden.de/IPos_IFSimpleSceneIntegration).
### Online app ### Online app
...@@ -30,39 +31,44 @@ Connection settings ...@@ -30,39 +31,44 @@ Connection settings
- topic `ipos/client/position` - topic `ipos/client/position`
- new positions - new positions
- ```json - ```json
{
"objects": [
{ {
"id": "Employee1", "objects": [
"sensorId": "UWB_1",
"type": "HUMAN",
"sensorType": "UWB",
"position": {
"refSystemId": "ROOT",
"point": {
"x": 3,
"y": 2,
"z": 3
},
"accuracy": 1
},
"orientation": {
"x": 1,
"y": 0.5,
"z": 1,
"w": 1.5
},
"lastPosUpdate": "2021-09-14T09:41:20+00:00",
"zoneDescriptors": [
{ {
"zoneId": "door_zone", "id": "Employee1",
"notificationType": "EntryNotification" "sensorId": "UWB_1",
"type": "HUMAN",
"sensorType": "UWB",
"position": {
"refSystemId": "ROOT",
"point": {
"x": 28,
"y": -12,
"z": 20
},
"accuracy": 1
},
"orientation": {
"x": 1,
"y": 0.5,
"z": 1,
"w": 1.5
},
"extractedAttributes": {
"batteryChargeLevel": 70,
"loadedItems": [23, 1, 25, 17],
"errors": [2, 1, 6]
},
"lastPosUpdate": "2021-09-14T09:41:20+00:00",
"zoneDescriptors": [
{
"zoneId": "door_zone",
"notificationType": "EntryNotification"
}
]
} }
] ],
"type": "EntryNotification"
} }
],
"type": "EntryNotification"
}
``` ```
- More objects can be added to the `"object": []` - More objects can be added to the `"object": []`
- There are special colours for objects with id `"Employee1"` - `"Employee4"`. Config: [MarkerColorMap](src/environments/environment.ts) - There are special colours for objects with id `"Employee1"` - `"Employee4"`. Config: [MarkerColorMap](src/environments/environment.ts)
......
...@@ -40,11 +40,11 @@ export class MapComponent implements OnInit { ...@@ -40,11 +40,11 @@ export class MapComponent implements OnInit {
}); });
} }
ngOnInit(): void { } ngOnInit(): void { }
// --- Controllers // --- Controllers
ref2root(pos: RelativePos) { ref2root(pos: RelativePos) {
// convert a relative position to WFG84 format // convert a relative position to WFG84 format
let source = <WGS84>this.root.point let source = <WGS84>this.root.point
let origin = L.latLng([source.latitude, source.longitude]) let origin = L.latLng([source.latitude, source.longitude])
...@@ -66,10 +66,22 @@ export class MapComponent implements OnInit { ...@@ -66,10 +66,22 @@ export class MapComponent implements OnInit {
// --- Info // --- Info
let pos = desc["position"] let pos = desc["position"]
this.agentsInfo[key] = desc this.agentsInfo[key] = desc
this.addMarker(key, pos)
var props = undefined
if (desc.extractedAttributes) {
props = `<p> \
<h3>${key}</h3>
<strong>Charge</strong>: ${desc.extractedAttributes.batteryChargeLevel}% <br>\
<strong>Items</strong>: ${desc.extractedAttributes.loadedItems}\
</p>`
} else {
props = `<p><h3>${key}</h3></p>`
}
this.addMarker(key, pos, props)
} }
addMarker(key: string, pos: Position) { addMarker(key: string, pos: Position, popup: string) {
let point = pos.point let point = pos.point
if ('x' in point) { if ('x' in point) {
...@@ -94,7 +106,7 @@ export class MapComponent implements OnInit { ...@@ -94,7 +106,7 @@ export class MapComponent implements OnInit {
shadowUrl: 'assets/marker-shadow.png', shadowUrl: 'assets/marker-shadow.png',
className: 'true-position-marker' className: 'true-position-marker'
}) })
}).bindPopup(key).openPopup(); }).bindPopup(popup).openPopup();
marker.addTo(this.markOverlays[key]) marker.addTo(this.markOverlays[key])
// --- Accuracy // --- Accuracy
......
...@@ -13,6 +13,7 @@ export interface Object { ...@@ -13,6 +13,7 @@ export interface Object {
orientation?: Orientation orientation?: Orientation
lastPosUpdate: string lastPosUpdate: string
zoneDescriptors: ZoneDesc[] zoneDescriptors: ZoneDesc[]
extractedAttributes?: ExtAttribute
} }
export interface Position { export interface Position {
...@@ -47,7 +48,7 @@ interface Orientation { ...@@ -47,7 +48,7 @@ interface Orientation {
export enum NotificationType { export enum NotificationType {
"EntryNotification", "EntryNotification",
"ExitNotification", "ExitNotification",
"Unknown" "Unknown"
} }
...@@ -62,6 +63,10 @@ enum SensorType { ...@@ -62,6 +63,10 @@ enum SensorType {
"Bluetooth", "Bluetooth",
"WiFi" "WiFi"
} }
interface ExtAttribute {
batteryChargeLevel: number
loadedItems: number[]
errors: number[]
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment