From 9b4f78418662864a8d2ca74fd75d7f1bbe01b1e1 Mon Sep 17 00:00:00 2001 From: Konstantin Dudkov Date: Tue, 21 Nov 2023 22:36:55 +0300 Subject: [PATCH] . --- pkg/cot/xmlevent.go | 16 ++++++++-------- pkg/model/chat.go | 4 ++-- pkg/model/http.go | 10 +++------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/pkg/cot/xmlevent.go b/pkg/cot/xmlevent.go index 063cf52..0543258 100644 --- a/pkg/cot/xmlevent.go +++ b/pkg/cot/xmlevent.go @@ -47,7 +47,7 @@ func (e *Event) AddGroup(group, role string) { return } - e.AddDetail().AddChild("__group", map[string]string{"name": group, "role": role}, "") + e.AddDetail().AddOrChangeChild("__group", map[string]string{"name": group, "role": role}) } func (e *Event) AddCallsign(callsign, endpoint string, addDroid bool) { @@ -55,10 +55,10 @@ func (e *Event) AddCallsign(callsign, endpoint string, addDroid bool) { return } - e.AddDetail().AddChild("contact", map[string]string{"callsign": callsign, "endpoint": endpoint}, "") + e.AddDetail().AddOrChangeChild("contact", map[string]string{"callsign": callsign, "endpoint": endpoint}) if addDroid { - e.AddDetail().AddChild("uid", map[string]string{"Droid": callsign}, "") + e.AddDetail().AddOrChangeChild("uid", map[string]string{"Droid": callsign}) } } @@ -67,7 +67,7 @@ func (e *Event) AddTrack(speed, course string) { return } - e.AddDetail().AddChild("track", map[string]string{"speed": speed, "course": course}, "") + e.AddDetail().AddOrChangeChild("track", map[string]string{"speed": speed, "course": course}) } func (e *Event) AddVersion(device, platform, os, version string) { @@ -75,7 +75,7 @@ func (e *Event) AddVersion(device, platform, os, version string) { return } - e.AddDetail().AddChild("takv", map[string]string{"device": device, "platform": platform, "os": os, "version": version}, "") + e.AddDetail().AddOrChangeChild("takv", map[string]string{"device": device, "platform": platform, "os": os, "version": version}) } type Point struct { @@ -109,7 +109,7 @@ func VersionSupportMsg(ver int8) *Event { v := strconv.Itoa(int(ver)) ev := XmlBasicMsg("t-x-takp-v", "protouid", time.Minute) ev.How = "m-g" - ev.AddDetail().AddChild("TakControl", nil, "").AddChild("TakProtocolSupport", map[string]string{"version": v}, "") + ev.AddDetail().AddOrChangeChild("TakControl", nil).AddOrChangeChild("TakProtocolSupport", map[string]string{"version": v}) return ev } @@ -117,14 +117,14 @@ func VersionReqMsg(ver int8) *Event { v := strconv.Itoa(int(ver)) ev := XmlBasicMsg("t-x-takp-q", "protouid", time.Minute) ev.How = "m-g" - ev.AddDetail().AddChild("TakControl", nil, "").AddChild("TakRequest", map[string]string{"version": v}, "") + ev.AddDetail().AddOrChangeChild("TakControl", nil).AddOrChangeChild("TakRequest", map[string]string{"version": v}) return ev } func ProtoChangeOkMsg() *Event { ev := XmlBasicMsg("t-x-takp-r", "protouid", time.Minute) ev.How = "m-g" - ev.AddDetail().AddChild("TakControl", nil, "").AddChild("TakResponse", map[string]string{"status": "true"}, "") + ev.AddDetail().AddOrChangeChild("TakControl", nil).AddOrChangeChild("TakResponse", map[string]string{"status": "true"}) return ev } diff --git a/pkg/model/chat.go b/pkg/model/chat.go index 65923eb..3a514d3 100644 --- a/pkg/model/chat.go +++ b/pkg/model/chat.go @@ -123,8 +123,8 @@ func MakeChatMessage(c *ChatMessage) *cotproto.TakMessage { xd := cot.NewXmlDetails() xd.AddPpLink(c.FromUid, "", "") - chat := xd.AddChild("__chat", map[string]string{"parent": c.Parent, "groupOwner": "false", "chatroom": c.Chatroom, "senderCallsign": c.From, "id": c.ToUid, "messageId": c.Id}, "") - chat.AddChild("chatgrp", map[string]string{"uid0": c.FromUid, "uid1": c.ToUid, "id": c.ToUid}, "") + chat := xd.AddOrChangeChild("__chat", map[string]string{"parent": c.Parent, "groupOwner": "false", "chatroom": c.Chatroom, "senderCallsign": c.From, "id": c.ToUid, "messageId": c.Id}) + chat.AddOrChangeChild("chatgrp", map[string]string{"uid0": c.FromUid, "uid1": c.ToUid, "id": c.ToUid}) xd.AddChild("remarks", map[string]string{"source": "BAO.F.ATAK." + c.FromUid, "to": c.ToUid, "time": t}, html.EscapeString(c.Text)) diff --git a/pkg/model/http.go b/pkg/model/http.go index be52a71..005ce59 100644 --- a/pkg/model/http.go +++ b/pkg/model/http.go @@ -121,7 +121,7 @@ func (w *WebUnit) ToMsg() *cot.CotMessage { Detail: &cotproto.Detail{ Contact: &cotproto.Contact{Callsign: w.Callsign}, PrecisionLocation: &cotproto.PrecisionLocation{ - Geopointsrc: "DTED0", + Geopointsrc: "USER", Altsrc: "USER", }, }, @@ -130,13 +130,9 @@ func (w *WebUnit) ToMsg() *cot.CotMessage { xd := cot.NewXmlDetails() if w.ParentUid != "" { - m := map[string]string{"uid": w.ParentUid, "relation": "p-p"} - if w.ParentCallsign != "" { - m["parent_callsign"] = w.ParentCallsign - } - xd.AddChild("link", m, "") + xd.AddPpLink(w.ParentUid, "", w.ParentCallsign) } - xd.AddChild("status", map[string]string{"readiness": "true"}, "") + xd.AddOrChangeChild("status", map[string]string{"readiness": "true"}) if w.Text != "" { xd.AddChild("remarks", nil, w.Text) }