aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutumn <git@autumnfo.rest>2026-05-17 11:02:15 +0100
committerAutumn <git@autumnfo.rest>2026-05-17 11:02:15 +0100
commit2828b446e529185bd9f3ecc82d9b0f157bc81be0 (patch)
tree8e9fe24f6f0c1e7c3a9c696264bb75e2e5c52be6
parentd6f22794fc2d42fc2573c023d6814ececdd03c1d (diff)
[pawsd] added tag fetching utils
-rw-r--r--src/pawsd/tag.lua56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/pawsd/tag.lua b/src/pawsd/tag.lua
new file mode 100644
index 0000000..f4031f4
--- /dev/null
+++ b/src/pawsd/tag.lua
@@ -0,0 +1,56 @@
+--
+-- ~~~ response tag utils
+--
+
+require("src/utils")
+
+-- get tag types
+function gettagtypes (response, offset)
+
+ local high = table.extracthex(response, offset, offset + 7)
+ local low = table.extracthex(response, offset + 8, offset + 15)
+
+ return {
+ high = high,
+ low = low
+ }
+
+end
+
+-- get tag values
+function gettagvalue (response, offset)
+
+ local valuetypes = gettagtypes(response, offset)
+
+ print("T>--------- Tag (High): " .. valuetypes.high)
+ print("T>--------- Tag (Low): " .. valuetypes.low)
+
+ local valuelength = tonumber(table.extracthex(response, offset + 16, offset + 19), 16)
+ local valueoffset = offset + 20
+ local value = ""
+
+ print("\nT>--------- Length: " .. valuelength)
+ print("T>--------- Value Offset: " .. valueoffset)
+
+ if valuelength > 0 then
+
+ value = table.extracthex(response, valueoffset, valueoffset + valuelength)
+ valueoffset = valueoffset + valuelength
+
+ print("\nT>--------- Value (Hex): " .. value)
+ print("T>--------- Value (Binary): " .. string.fromhex(value))
+
+ end
+
+ return {
+ value = value,
+ endoffset = valueoffset
+ }
+
+end
+
+-- return
+return {
+ types = gettagtypes,
+ get = gettagvalue
+}