-- -- ~~~ response service utils -- require("src/utils") -- setup pawsd local pawsd = {} pawsd.signature = require("src/pawsd/signature") pawsd.record = require("src/pawsd/record") pawsd.tag = require("src/pawsd/tag") -- get index of service function getserviceindex (response) local indexStart = 15 + pawsd.signature.length(response) return table.extracthex(response, indexStart, indexStart + 1) end -- get service flags function getserviceflags (response) local flagsStart = 17 + pawsd.signature.length(response) return table.extracthex(response, flagsStart, flagsStart + 3) end -- get number of records function getrecordnumber (response) local recordsStart = 21 + pawsd.signature.length(response) return tonumber(table.extracthex(response, recordsStart, recordsStart + 1), 16) end -- get all records function getallrecords (response) print("\nR>--- Getting Records...") local records = {} local recordoffset = 23 + pawsd.signature.length(response) local recordnumber = getrecordnumber(response) print("\nR>--- Record Offset: " .. recordoffset) print("R>--- Number Of Records: " .. recordnumber) for recordindex = 1, recordnumber , 1 do print("\nR>--- Getting Record " .. recordindex .. "...") local record = pawsd.record.get(response, recordoffset) records[recordindex] = record.tags recordoffset = record.endoffset end return records end -- return return { index = getserviceindex, flags = getserviceflags, records = { count = getrecordnumber, all = getallrecords } }