-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document Galaku Protocol #24
Comments
Implementation SampleClassify Product Type
Sample Codefunction isTwoEngineDevice(e) {
var i = e.indexOf("GS08");
return -1 != i || -1 != (i = e.indexOf("GSA8")) || -1 != (i = e.indexOf("GS13")) || -1 != (i = e.indexOf("G29A")) || -1 != (i = e.indexOf("GK36")) || -1 != (i = e.indexOf("K311")) || -1 != (i = e.indexOf("G311")) || -1 != (i = e.indexOf("G317")) || -1 != (i = e.indexOf("G312")) || -1 != (i = e.indexOf("G307")) || -1 != (i = e.indexOf("G320"))
}
function isDianjiDevice(e) {
var i = e.indexOf("GK36");
return -1 != i || -1 != (i = e.indexOf("K311")) || -1 != (i = e.indexOf("G311"))
}
/** All devices **/
function getDisplayNameByName(e) {
var i = e.indexOf("EJX-Para");
return -1 != i ? "觅雅Miya" : -1 != (i = e.indexOf("GK03")) ? "胶囊跳蛋" : -1 != (i = e.indexOf("GK10085")) ? "夏娜" : -1 != (i = e.indexOf("GS03")) ? "胶囊跳蛋" : -1 != (i = e.indexOf("GS07")) ? "觅雅Miya" : -1 != (i = e.indexOf("GS85")) ? "夏娜" : -1 != (i = e.indexOf("GS02")) ? "超薄穿戴" : -1 != (i = e.indexOf("GS10")) ? "贝拉" : -1 != (i = e.indexOf("GS01")) ? "进阶后庭" : -1 != (i = e.indexOf("GS08")) ? "线控双跳" : -1 != (i = e.indexOf("GSA8")) ? "线控双跳" : -1 != (i = e.indexOf("GS04")) ? "章鱼" : -1 != (i = e.indexOf("GS17")) ? "胶囊口红" : -1 != (i = e.indexOf("GS13")) ? "元气章鱼Mini" : -1 != (i = e.indexOf("GS21")) ? "元气猫" : -1 != (i = e.indexOf("GS23")) ? "异次元1号" : -1 != (i = e.indexOf("GS22")) ? "幻影X" : -1 != (i = e.indexOf("GS16")) ? "元气草莓" : -1 != (i = e.indexOf("GS19")) ? "觅喜mini" : -1 != (i = e.indexOf("AK04")) ? "Doris 朵丽丝" : -1 != (i = e.indexOf("AS67")) ? "振动棒" : -1 != (i = e.indexOf("AS90")) ? "飞机杯" : -1 != (i = e.indexOf("K020")) ? "蘑菇跳蛋" : -1 != (i = e.indexOf("GS25")) ? "花季系列" : -1 != (i = e.indexOf("GH28")) ? "后庭战士" : -1 != (i = e.indexOf("GS28")) ? "后庭战士" : -1 != (i = e.indexOf("LL18")) ? "角斗士" : -1 != (i = e.indexOf("GK23")) ? "元气萌宠" : -1 != (i = e.indexOf("GK27")) ? "小钢炮Cannon-GT" : -1 != (i = e.indexOf("G29B")) ? "小魔盒" : -1 != (i = e.indexOf("G29A")) ? "小魔方" : -1 != (i = e.indexOf("GA23")) ? "小鲸鱼" : -1 != (i = e.indexOf("L26H")) ? "角斗士" : -1 != (i = e.indexOf("GA25")) ? "丁丁穿戴" : -1 != (i = e.indexOf("GA26")) ? "小豌豆pea" : -1 != (i = e.indexOf("GK22")) ? "觅糖 META" : -1 != (i = e.indexOf("GX85")) ? "夏娜" : -1 != (i = e.indexOf("GX07")) ? "觅雅" : -1 != (i = e.indexOf("GX17")) ? "胶囊口红" : -1 != (i = e.indexOf("GX21")) ? "元气猫" : -1 != (i = e.indexOf("GX33")) ? "异次元1号" : -1 != (i = e.indexOf("GX22")) ? "幻影X" : -1 != (i = e.indexOf("GX16")) ? "元气草莓" : -1 != (i = e.indexOf("GX29")) ? "小魔盒" : -1 != (i = e.indexOf("GX23")) ? "小鲸鱼" : -1 != (i = e.indexOf("GX25")) ? "丁丁穿戴" : -1 != (i = e.indexOf("GX26")) ? "小豌豆" : -1 != (i = e.indexOf("GX36")) ? "电击跳蛋" : -1 != (i = e.indexOf("GX39")) ? "雪糕筒miniAV棒" : -1 != (i = e.indexOf("GK36")) ? "小捣蛋" : -1 != (i = e.indexOf("K311")) ? "芙蕾雅" : -1 != (i = e.indexOf("G311")) ? "芙蕾雅" : -1 != (i = e.indexOf("GX25")) ? "快乐制动器" : -1 != (i = e.indexOf("G317")) ? "扎古飞机杯" : -1 != (i = e.indexOf("G312")) ? "机甲-原主飞机杯" : -1 != (i = e.indexOf("G326")) ? "爱丽丝" : -1 != (i = e.indexOf("G335")) ? "独角兽肛塞" : -1 != (i = e.indexOf("G307")) ? "蜂后炮机" : -1 != (i = e.indexOf("G320")) ? "雅典娜" : e
} Send IntentsitySample CodeCall function sendIntentsity(e) {
var t = wx.getStorageSync("ble-params").localName,
i = n.isDianjiDevice(t),
a = n.isTwoEngineDevice(t);
if (n.isDianjiDeviceSingle(t) && (a = !1), this.cWrite) {
if (a) return void this.didSendIntensityTwo(e);
if (this.intensity1 != e && !i) {
var r = this.getValue1(e);
this.intensity1 = r, this.didSendIntensity(r)
}
}
if (i) {
var s = e,
c = this.getDianjiInfo();
if (c.intensity != this.currentDianjiInfo.intensity || c.frequency != this.currentDianjiInfo.frequency) {
this.currentDianjiInfo = c;
var o = this,
u = c.frequency,
e = c.intensity;
o.sendDianji(u, e), setTimeout(function() {
o.didSendIntensity(s)
}, 100)
}
}
}
function didSendIntensity(e) {
var t = [90, 0, 0, 1, 49, 0, 0, 0, 0, 0];
t[5] = e;
var n = i.sendBytes(t, 10),
a = new Uint8Array(n.length);
n.forEach(function(e, t) {
return a[t] = e
});
var r = wx.getStorageSync("ble-params"),
s = r.deviceId,
c = r.serviceId,
o = this.cWrite;
r.localName;
console.log("serviceId:" + c), console.log("characteristicId:" + o), this.cmd = "set-intensity", wx.writeBLECharacteristicValue({
deviceId: s,
serviceId: c,
characteristicId: o,
value: a.buffer,
success: function(e) {}
})
}
function didSendIntensityTwo(e) {
var t = e,
n = e;
this.madaAEnable || (t = 0), this.madaBEnable || (n = 0);
var a = [90, 0, 0, 1, 64, 3, t, n, 0, 0];
a[5] = e;
var r = i.sendBytes(a, 10),
s = new Uint8Array(r.length);
r.forEach(function(e, t) {
return s[t] = e
});
var c = wx.getStorageSync("ble-params"),
o = c.deviceId,
u = c.serviceId,
l = this.cWrite;
c.localName;
console.log("serviceId:" + u), console.log("characteristicId:" + l), this.cmd = "set-intensity", wx.writeBLECharacteristicValue({
deviceId: o,
serviceId: u,
characteristicId: l,
value: s.buffer,
success: function(e) {}
})
}
function sendDianji(e, t) {
console.log("sendDianji fequency:" + e), console.log("sendDianji intensity:" + t);
var n = [90, 0, 0, 1, 144, 0, 0, 0, 0, 0];
n[5] = e, n[6] = t;
var a = i.sendBytes(n, 10),
r = new Uint8Array(a.length);
a.forEach(function(e, t) {
return r[t] = e
});
var s = wx.getStorageSync("ble-params"),
c = s.deviceId,
o = s.serviceId,
u = this.cWrite;
console.log("serviceId:" + o), console.log("characteristicId:" + u), this.cmd = "set-intensity", wx.writeBLECharacteristicValue({
deviceId: c,
serviceId: o,
characteristicId: u,
value: r.buffer,
success: function(e) {
console.log("writeBLECharacteristicValue"), console.log(e)
}
})
} Get Battery LevelSample CodeCall function sendCommandGetBattery() {
console.log("sendCommandGetBattery");
var e = [90, 0, 0, 1, 19, 0, 0, 0, 0, 0],
t = i.sendBytes(e, 10),
n = new Uint8Array(t.length);
t.forEach(function(e, t) {
return n[t] = e
});
var a = wx.getStorageSync("ble-params"),
r = a.deviceId,
s = a.serviceId,
c = this.cWrite;
this.cmd = "get-battery", wx.writeBLECharacteristicValue({
deviceId: r,
serviceId: s,
characteristicId: c,
value: n.buffer,
success: function(e) {
console.log("sendCommandGetBattery success", e.errMsg)
}
})
}
function readValue(e) {
var t = this.ab2hex(e),
i = this.stringToHex(t),
n = enDesCommand.decrypt(i),
s = 0;
if (n.length > 0 && (s = n[4]), s > 0)
for (var r = getCurrentPages(), o = 0; o < r.length; o++)(u = r[o]).updateBattery && u.updateBattery(s);
for (var r = getCurrentPages(), a = 0; a < r.length; a++) {
var u = r[a];
u.didReadValue && u.didReadValue(this.cmd)
}
this.cmd = "", i = []
} Some shared encrypt/decrypt functionsSample Codefunction ab2hex(e) {
return Array.prototype.map.call(new Uint8Array(e), function(e) {
return ("00" + e.toString(16)).slice(-2)
})
}
function stringToHex(e) {
for (var t = e.length, i = [], n = 0; n < t; n++) {
var s = e[n],
r = parseInt(s, 16);
i.push(r)
}
return i
}
function getKeyTab() {
return [
[0, 24, 152, 247, 165, 61, 13, 41, 37, 80, 68, 70],
[0, 69, 110, 106, 111, 120, 32, 83, 45, 49, 46, 55],
[0, 101, 120, 32, 84, 111, 121, 115, 10, 142, 157, 163],
[0, 197, 214, 231, 248, 10, 50, 32, 111, 98, 13, 10]
]
}
function getTabKey(r, t) {
var e = 3 & r;
return this.getKeyTab()[e][t]
}
function parseIntToByte(r) {
var t = r;
return r > 256 ? t = r - 256 : r < 0 && (t = 256 + r), t
}
function calcCheckSum(r, t) {
for (var e = 0, n = 0; n < t; n++) e += r[n];
return e
}
function encrypt(r) {
var t = [],
e = r[0];
t.push(e);
for (var n = 1; n < 12; n++) {
var a = this.getTabKey(t[n - 1], n),
u = (a ^ e ^ r[n]) + a,
s = this.parseIntToByte(u);
t.push(s)
}
return t
}
function decrypt(r) {
var t = [],
e = r[0];
t.push(e);
for (var n = 1; n < 12; n++) {
var a = this.getTabKey(r[n - 1], n),
u = r[n] - a ^ e ^ a,
s = this.parseIntToByte(u);
t.push(s)
}
return t
}
function sendBytes(r, t) {
var e = [];
e[0] = 35;
for (var n = 0; n < t; n++) {
var a = r[n];
e[n + 1] = a
}
var u = this.calcCheckSum(e, 11);
return e[11] = u, this.encrypt(e)
} |
{
"localName": "TFG1",
"displayName": "Aurora Aircraft Cup",
"deviceType": 2,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GK27",
"displayName": "Cannon-GT",
"deviceType": 2,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GK25",
"displayName": "Phantom PLUS",
"deviceType": 2,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "AC695X_1(BLE)",
"displayName": "vision",
"deviceType": 2,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "V415",
"displayName": "Nebula",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GK22",
"displayName": "Mitang META",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G29B",
"displayName": "Little Magic Box",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GA25",
"displayName": "Ding Ding wears",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G29A",
"displayName": "Little Rubik's Cube",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GA23",
"displayName": "Little Whale",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GA26",
"displayName": "Little Pea",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX85",
"displayName": "Shana",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX07",
"displayName": "Miya",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX17",
"displayName": "Capsule lipstick",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX21",
"displayName": "Vitality Cat",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX33",
"displayName": "Dimension No. 1",
"deviceType": 2,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX22",
"displayName": "Phantom X",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX16",
"displayName": "Vitality Strawberry",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX29",
"displayName": "Little Magic Box",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX23",
"displayName": "Little Whale",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX25",
"displayName": "Happy Vibrator",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX26",
"displayName": "Xiaobao Beans",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GK03",
"displayName": "Capsule Vibrator",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX36",
"displayName": "Electric Vibrator",
"deviceType": 3,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GX39",
"displayName": "Ice cone miniAV stick",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G311",
"displayName": "Freya",
"deviceType": 4,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GK36",
"displayName": "Little Troublemaker",
"deviceType": 3,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G317",
"displayName": "Zaku Aircraft Cup",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": true,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G312",
"displayName": "Mecha-Original Owner's Aircraft Cup",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": true,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G302",
"displayName": "Little Devil",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G321",
"displayName": "mini ice cream cone",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G304",
"displayName": "Shia's Collar",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G320",
"displayName": "Athena",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": true
}, {
"localName": "G314",
"displayName": "Vitality Octopus II",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G228",
"displayName": "Little Dolphin",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G315",
"displayName": "Unicorn",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G307",
"displayName": "Queen Bee Gun",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": true
}, {
"localName": "K311",
"displayName": "Freya",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G336",
"displayName": "The Second Generation of Vitality Bird",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G331",
"displayName": "Octopus glans massager",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G326",
"displayName": "Alice",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G335",
"displayName": "Unicorn Butt Plug",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GXA3",
"displayName": "Whale Test",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": true,
"isTelescoping": false
}, {
"localName": "A456",
"displayName": "Ace",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G341",
"displayName": "Ace",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G324",
"displayName": "Athena Pulse",
"deviceType": 6,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G339",
"displayName": "Rhino Prostate Massager",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G350",
"displayName": "Vitality Whale",
"deviceType": 5,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G355",
"displayName": "Little cute turtle",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G349",
"displayName": "Little Bullet",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G354",
"displayName": "Double-A Aircraft Cup",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": true,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G303",
"displayName": "Little Dinosaur",
"deviceType": 6,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G407",
"displayName": "Joy Vibrator",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G204",
"displayName": "Bowling",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G171",
"displayName": "Mixin Controller",
"deviceType": 0,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G12D",
"displayName": "Hua Chao Brush",
"deviceType": 0,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G123",
"displayName": "花sai",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G12B",
"displayName": "Flower Season",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G231",
"displayName": "Dream Pulse",
"deviceType": 7,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G23A",
"displayName": "Dream Vibration",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G29C",
"displayName": "Little Rubik's Cube",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G29D",
"displayName": "Small powder cake",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G336",
"displayName": "The Second Generation of Vitality Bird",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GKML",
"displayName": "Milly",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G348",
"displayName": "Rhinoceros Back Court",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G23A",
"displayName": "Dream Vibration",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "A073",
"displayName": "Joy Vibrator",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "GLMT",
"displayName": "Rogue Rabbit",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G901",
"displayName": "Suck the vibrator",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G912",
"displayName": "Donut",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G913",
"displayName": "Unicorn II",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G213",
"displayName": "Phantom",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "TFF1",
"displayName": "F1 Aircraft Cup",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G310",
"displayName": "Scepter AV Stick",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G901",
"displayName": "Suck the vibrator",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G20B",
"displayName": "Ballet Vibrator",
"deviceType": 0,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K112",
"displayName": "Donut",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K113",
"displayName": "Unicorn II",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G202",
"displayName": "Flirting Pen",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K118",
"displayName": "Ball vibrator",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K107",
"displayName": "Cyberpunk Airplane Cup",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G203",
"displayName": "Vitality Cute Pet",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "WSXK",
"displayName": "Starry Sky CUP",
"deviceType": 2,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G228",
"displayName": "Little Dolphin",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G310",
"displayName": "Scepter AV Stick",
"deviceType": 1,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "TFF1",
"displayName": "F1 Aircraft Cup",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": true
}, {
"localName": "TXHL",
"displayName": "Little gourd vibrating egg",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "TXMM",
"displayName": "little kitten",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "TXKL",
"displayName": "Little Dinosaur",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "D358",
"displayName": "Classic vibration-absorbing AV state",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K108",
"displayName": "Bell sucking",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K109",
"displayName": "Ring vibration",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G322",
"displayName": "Unicorn",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "KWL2",
"displayName": "Erection Booster",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "TFHL",
"displayName": "Gyoyo-G (meaning Yue-little gourd)",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "TFMM",
"displayName": "Gyoyo (meaning joy)",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "TFKL",
"displayName": "Gyoyo (meaning joy)",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "D402",
"displayName": "New series of vibrators",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G40A",
"displayName": "New series of vibrators",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G403",
"displayName": "New series of vibrators",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "G43A",
"displayName": "New series of vibrators",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K120",
"displayName": "Pinky stick",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K12A",
"displayName": "Little Turtle Stick",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K12B",
"displayName": "Little Turtle Stick",
"deviceType": 1,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K12C",
"displayName": "Xiao Xian Wan",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K125",
"displayName": "Muscular Man",
"deviceType": 6,
"isHotDevice": true,
"isBleDevice": true,
"madaCount": 2,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "K119",
"displayName": "Feather Point Tide Brush",
"deviceType": 0,
"isHotDevice": true,
"isBleDevice": false,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}, {
"localName": "LL18",
"displayName": "Mitang",
"deviceType": 0,
"isHotDevice": false,
"isBleDevice": true,
"madaCount": 1,
"isStrong": false,
"isNewBroadcast": false,
"isTelescoping": false
}
]
}
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
BT Name: GX29
0x2381bbabd2ecXXX3bba33bYY where
--
BT Name: GK36
Value: 0x2381bbabd24b47202ba33b46
The text was updated successfully, but these errors were encountered: