Translates a bluetooth class integer into its component parts
/**
* Parses a bluetooth class integer into major class and service list
*
*/
function parseBlueClass (classInt) {
const mc_list = [
"Miscellaneous",
"Computer",
"Phone",
"LAN/Network Access Point",
"Audio/Video",
"Peripheral",
"Imaging"
]
const s_list = [
[16, "positioning"],
[17, "networking"],
[18, "rendering"],
[19, "capturing"],
[20, "object transfer"],
[21, "audio"],
[22, "telephony"],
[23, "information"]
]
let mi = (classInt >> 8) & 0xf
let major = (mi < 7) ? mc_list[mi] : 'Unknown'
let services = []
s_list.forEach(s => {
if (classInt & (1 << (s[0] - 1)))
services.push(s[1])
})
return {major, services}
}
parseBlueClass(5898764)
Returns
{
"major": "Phone",
"services": [
"rendering",
"object transfer",
"audio",
"information"
]
}