Skip to content

Commit d6395b6

Browse files
Add 718EC (#984)
* r718pa,r718pa4,r718pb,rp02 insert,r718n * add r718pa,r718pa4,r718pb,rp02,r718n3 support * add r718pa,r718pa4,r718pb,rp02,r718n3 support * add photos * R312A、R312FunctionKeyTrigger * photo submission * photo submission * Report type 0x11,0x12 support * RA02G R603 * ra02g,r603,r718pa,r718pb update * modify r603,add r315la * r315la modify * r211 update * ra02a,ra02c modify * r900pb02,r900pb02o1,r900pb03,r900pb03o1,ra02d1 add * add r900pd01, r900pd01o1 * add r602b * add r900nac1,r900nac3,r900nac6,r900ndc * add r900a01,r900a01o1 * add r900a02,r900a02o1,r900a03,r900a03o1 * add r718pba15,r71832a01 * add R718EC * Update file Temporarily disable the r718ec entry in vendor/netvox/index.yaml by commenting it out from the endDevices list. This removes the device from the active list while keeping the entry in place for possible future reference. --------- Co-authored-by: Jaime Trinidad <81958808+Jaime-Trinidad@users.noreply.github.com> Co-authored-by: Jaime Trinidad <jaimetv4@gmail.com>
1 parent d960d60 commit d6395b6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+6557
-0
lines changed

vendor/netvox/index.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ endDevices:
3232
- r31510
3333
- r315la
3434
- r602a
35+
- r602b
3536
- r603
3637
- r711
3738
- r711a
@@ -53,6 +54,7 @@ endDevices:
5354
- r718e
5455
- r718ea
5556
- r718eb
57+
# - r718ec
5658
- r718f
5759
- r718f2
5860
- r718g
@@ -83,6 +85,7 @@ endDevices:
8385
- r718pa22
8486
- r718pe
8587
- r718pb
88+
- r718pb15a
8689
- r718q
8790
- r718qa
8891
- r718t2
@@ -109,6 +112,7 @@ endDevices:
109112
- r72615a
110113
- r72616
111114
- r72616a
115+
- r72632a01
112116
- r72716
113117
- r730ck2
114118
- r730ct2
@@ -121,6 +125,16 @@ endDevices:
121125
- r831b
122126
- r831c
123127
- r831d
128+
- r900a01
129+
- r900a01o1
130+
- r900a02
131+
- r900a02o1
132+
- r900a03
133+
- r900a03o1
134+
- r900nac1
135+
- r900nac3
136+
- r900nac6
137+
- r900ndc
124138
- r900pb02
125139
- r900pb02o1
126140
- r900pb03

vendor/netvox/payload/r602b.js

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
function getCfgCmd(cfgcmd){
2+
var cfgcmdlist = {
3+
1: "ConfigReportReq",
4+
129: "ConfigReportRsp",
5+
2: "ReadConfigReportReq",
6+
130: "ReadConfigReportRsp",
7+
3: "StartWarningWithAckReq",
8+
131: "StartWarningWithAckRsp",
9+
144: "StartWarning"
10+
};
11+
return cfgcmdlist[cfgcmd];
12+
}
13+
14+
function getDeviceName(dev){
15+
var deviceName = {
16+
105: "R602B"
17+
};
18+
return deviceName[dev];
19+
}
20+
21+
function getCmdToID(cmdtype){
22+
if (cmdtype == "ConfigReportReq")
23+
return 1;
24+
else if (cmdtype == "ConfigReportRsp")
25+
return 129;
26+
else if (cmdtype == "ReadConfigReportReq")
27+
return 2;
28+
else if (cmdtype == "ReadConfigReportRsp")
29+
return 130;
30+
else if (cmdtype == "StartWarningWithAckReq")
31+
return 3;
32+
else if (cmdtype == "StartWarningWithAckRsp")
33+
return 131;
34+
else if (cmdtype == "StartWarning")
35+
return 144;
36+
}
37+
38+
function getDeviceID(devName){
39+
if (devName == "R602B")
40+
return 105;
41+
}
42+
43+
function padLeft(str, len) {
44+
str = '' + str;
45+
if (str.length >= len) {
46+
return str;
47+
} else {
48+
return padLeft("0" + str, len);
49+
}
50+
}
51+
52+
function decodeUplink(input) {
53+
var data = {};
54+
switch (input.fPort) {
55+
case 6:
56+
if (input.bytes[2] === 0x00)
57+
{
58+
data.Device = getDeviceName(input.bytes[1]);
59+
data.SWver = input.bytes[3]/10;
60+
data.HWver = input.bytes[4];
61+
data.Datecode = padLeft(input.bytes[5].toString(16), 2) + padLeft(input.bytes[6].toString(16), 2) + padLeft(input.bytes[7].toString(16), 2) + padLeft(input.bytes[8].toString(16), 2);
62+
63+
return {
64+
data: data,
65+
};
66+
}
67+
68+
data.Device = getDeviceName(input.bytes[1]);
69+
data.HeartBeatTime = (input.bytes[3]<<8 | input.bytes[4]);
70+
data.WarningStatus = (input.bytes[5] === 0x00) ? 'No warning' : 'Warning';
71+
if (input.bytes[6] & 0x80)
72+
{
73+
var tmp_v = input.bytes[6] & 0x7F;
74+
data.Battery = (tmp_v / 10).toString() + '(low battery)';
75+
}
76+
else
77+
data.Battery = input.bytes[6]/10;
78+
79+
80+
break;
81+
82+
case 7:
83+
data.Cmd = getCfgCmd(input.bytes[0]);
84+
data.Device = getDeviceName(input.bytes[1]);
85+
if ((input.bytes[0] === getCmdToID("ConfigReportRsp")) || (input.bytes[0] === getCmdToID("StartWarningWithAckRsp")))
86+
{
87+
data.Status = (input.bytes[2] === 0x00) ? 'Success' : 'Failure';
88+
}
89+
else if (input.bytes[0] === getCmdToID("ReadConfigReportRsp"))
90+
{
91+
data.MinTime = (input.bytes[2]<<8 | input.bytes[3]);
92+
data.MaxTime = (input.bytes[4]<<8 | input.bytes[5]);
93+
}
94+
95+
break;
96+
97+
default:
98+
return {
99+
errors: ['unknown FPort'],
100+
};
101+
102+
}
103+
104+
return {
105+
data: data,
106+
};
107+
}
108+
109+
function encodeDownlink(input) {
110+
var ret = [];
111+
var devid;
112+
var getCmdID;
113+
114+
getCmdID = getCmdToID(input.data.Cmd);
115+
devid = getDeviceID(input.data.Device);
116+
117+
if (input.data.Cmd == "ConfigReportReq")
118+
{
119+
var mint = input.data.MinTime;
120+
var maxt = input.data.MaxTime;
121+
122+
ret = ret.concat(getCmdID, devid, (mint >> 8), (mint & 0xFF), (maxt >> 8), (maxt & 0xFF), 0x00, 0x00, 0x00, 0x00, 0x00);
123+
}
124+
else if ((input.data.Cmd == "ReadConfigReportReq"))
125+
{
126+
ret = ret.concat(getCmdID, devid, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
127+
}
128+
else if ((input.data.Cmd == "StartWarningWithAckReq") || (input.data.Cmd == "StartWarning"))
129+
{
130+
var warning_mode = input.data.WarningMode;
131+
var strobe_mode = input.data.StrobeMode;
132+
var warning_dur = input.data.WarningDuration;
133+
ret = ret.concat(getCmdID, devid, warning_mode, strobe_mode, (warning_dur >> 8), (warning_dur & 0xFF), 0x00, 0x00, 0x00, 0x00, 0x00);
134+
}
135+
136+
return {
137+
fPort: 7,
138+
bytes: ret
139+
};
140+
}
141+
142+
function decodeDownlink(input) {
143+
var data = {};
144+
switch (input.fPort) {
145+
case 7:
146+
data.Cmd = getCfgCmd(input.bytes[0]);
147+
data.Device = getDeviceName(input.bytes[1]);
148+
if (input.bytes[0] === getCmdToID("ConfigReportReq"))
149+
{
150+
data.MinTime = (input.bytes[2]<<8 | input.bytes[3]);
151+
data.MaxTime = (input.bytes[4]<<8 | input.bytes[5]);
152+
}
153+
else if ((input.bytes[0] === getCmdToID("StartWarningWithAckReq")) || (input.bytes[0] === getCmdToID("StartWarning")))
154+
{
155+
data.WarningMode = input.bytes[2];
156+
data.StrobeMode = input.bytes[3];
157+
data.WarningDuration = (input.bytes[4]<<8 | input.bytes[5]);
158+
}
159+
160+
break;
161+
162+
default:
163+
return {
164+
errors: ['invalid FPort'],
165+
};
166+
}
167+
168+
return {
169+
data: data,
170+
};
171+
}

0 commit comments

Comments
 (0)