mirror of
https://github.com/emqx/neuron.git
synced 2026-10-29 23:19:18 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a277e72ae | ||
|
|
6f41467c49 | ||
|
|
0e168159c2 | ||
|
|
11df6a72ef | ||
|
|
e128820073 | ||
|
|
2d6ea94223 | ||
|
|
52e07f194e | ||
|
|
0ab2ffaae6 | ||
|
|
e468084a86 | ||
|
|
ff54153504 | ||
|
|
a6162b296b | ||
|
|
610283c9e4 | ||
|
|
efe07e6692 | ||
|
|
f017a84154 | ||
|
|
835b7b7fa3 | ||
|
|
beb779601a | ||
|
|
30f8b174ab | ||
|
|
d6aefea13a | ||
|
|
4be55c7fec | ||
|
|
a1e4d2c89b | ||
|
|
e3e00a5ee4 | ||
|
|
635aa06dc6 | ||
|
|
b949f43b4a | ||
|
|
9aa7b8fe04 | ||
|
|
8a54a818ae | ||
|
|
394f500748 | ||
|
|
e75cbf854c | ||
|
|
06334b4820 | ||
|
|
46989e0dee | ||
|
|
327490bfb2 | ||
|
|
3626877155 | ||
|
|
54c58567a2 | ||
|
|
b1ed9a9155 | ||
|
|
c05b409aee | ||
|
|
fc7e4bc7d8 | ||
|
|
096bcd3e36 | ||
|
|
4d7de9bdbc | ||
|
|
c1ef351f85 | ||
|
|
e629b9ce35 | ||
|
|
d05da31690 | ||
|
|
a9768b0b5c | ||
|
|
857c95fd11 | ||
|
|
cbe7179569 | ||
|
|
d238c1efb3 | ||
|
|
cac3ee592e | ||
|
|
7287e4e2bf | ||
|
|
41aef8d30a | ||
|
|
ffbd9b336a | ||
|
|
21656149d8 | ||
|
|
eb647d9692 | ||
|
|
71ead18756 | ||
|
|
a127a69d10 | ||
|
|
40e637303c | ||
|
|
1060eb6508 | ||
|
|
9e5702b15b | ||
|
|
5891dc034c | ||
|
|
071e87ac4f | ||
|
|
0a2c6efd1b | ||
|
|
40c7115405 | ||
|
|
9a10abfe3a | ||
|
|
58529e31f8 | ||
|
|
99f02d2e09 | ||
|
|
6cf84fc4a6 | ||
|
|
a668154424 | ||
|
|
4ddd7e9d01 | ||
|
|
79ef5127f6 | ||
|
|
1bb74163f9 | ||
|
|
cb53a6bd33 | ||
|
|
fe48ac8178 | ||
|
|
f564fbf4b2 | ||
|
|
705f618af5 | ||
|
|
4eb1587b8e | ||
|
|
86a1fdf313 | ||
|
|
af8349f830 | ||
|
|
447b96e539 | ||
|
|
3a4bd5eb9d | ||
|
|
45ab9227c1 | ||
|
|
c1835e11eb | ||
|
|
e2ca35b62d | ||
|
|
1c1aa7a704 | ||
|
|
23d4e7d43c | ||
|
|
d6d56500cd | ||
|
|
2f4b016124 | ||
|
|
ec46edbd86 | ||
|
|
3d641d8d26 | ||
|
|
1efdc19b19 | ||
|
|
dc10430e7b | ||
|
|
6ac8443c59 | ||
|
|
001fbcc416 | ||
|
|
7d1c317fb6 | ||
|
|
5c49db7446 | ||
|
|
f7abe05e72 | ||
|
|
9cca71b80a | ||
|
|
6f9fd86457 | ||
|
|
e65a6dd8cc | ||
|
|
50b8da6f80 | ||
|
|
15ec7713a4 | ||
|
|
9371e834e8 | ||
|
|
816ddbe184 | ||
|
|
57b54d799c | ||
|
|
c83c31ddef | ||
|
|
27a68ad136 | ||
|
|
f58eb9f81e | ||
|
|
d4c82bf179 | ||
|
|
fe32656109 | ||
|
|
f8927e6ad4 | ||
|
|
3823226b67 | ||
|
|
05d043f729 | ||
|
|
8ee7ab8a36 | ||
|
|
f0b746a1ab | ||
|
|
afaddb8066 | ||
|
|
9957771212 | ||
|
|
89e1a7da3f | ||
|
|
41c737ba4b | ||
|
|
6a7bea735f | ||
|
|
20098f3845 | ||
|
|
91c3b39e5f | ||
|
|
50771e55b4 | ||
|
|
d1abf23335 | ||
|
|
552827dc16 | ||
|
|
86271ecca8 | ||
|
|
9db3a8e521 | ||
|
|
7e2ee821b2 | ||
|
|
39564dce45 | ||
|
|
13d1ed3f44 | ||
|
|
f49af0f879 | ||
|
|
562c74307e | ||
|
|
3e448e7139 | ||
|
|
5ea8f5531d | ||
|
|
3b6e689e0b | ||
|
|
509c540175 | ||
|
|
dc94545e58 | ||
|
|
e9f958c43c | ||
|
|
0d507761fa | ||
|
|
fb0bcbf116 | ||
|
|
da7623fed1 | ||
|
|
e7a0c2da3e | ||
|
|
1063ed7fd2 | ||
|
|
853cceb63c | ||
|
|
e6f7effeb5 | ||
|
|
b65021a5d4 | ||
|
|
db02f571d9 | ||
|
|
1eb240c5d8 | ||
|
|
8eadd7574f | ||
|
|
a8951c1337 | ||
|
|
ee91c2698a | ||
|
|
1253b182d1 | ||
|
|
2c61ab1436 | ||
|
|
edded61904 | ||
|
|
123f12bfba | ||
|
|
193b4b96e1 | ||
|
|
fdfd008858 | ||
|
|
a999c9f80c | ||
|
|
e38df4cd90 | ||
|
|
dbba047880 | ||
|
|
684598cd46 | ||
|
|
b0063a7a08 | ||
|
|
ab8756dac9 | ||
|
|
73cf93fe40 | ||
|
|
025233a4b6 | ||
|
|
801d43e4a0 | ||
|
|
412016f2b4 | ||
|
|
66d891b032 | ||
|
|
d98392e850 | ||
|
|
cdef60c540 | ||
|
|
39a35f5fe3 | ||
|
|
dd9af2e819 | ||
|
|
90d36bcb12 | ||
|
|
9d8e39cfef | ||
|
|
431c90309b | ||
|
|
8023823b0c | ||
|
|
6de92faa9b | ||
|
|
f4eff32cbf | ||
|
|
66cd4da4d6 | ||
|
|
15ec9992b7 | ||
|
|
6db6cc74de | ||
|
|
37a5d33421 | ||
|
|
25effebb8a | ||
|
|
7c2a8c6b84 | ||
|
|
9c74044305 | ||
|
|
cd315cef25 | ||
|
|
1f447fc9ec | ||
|
|
a523209116 | ||
|
|
df7080e3f5 | ||
|
|
7a778f3871 | ||
|
|
e8dba7a4ac | ||
|
|
f34d3e9d5c | ||
|
|
06e8f77a55 | ||
|
|
6eb98c67f9 | ||
|
|
0833500237 | ||
|
|
530963668d | ||
|
|
e7ca8e62b6 | ||
|
|
78cac4378b | ||
|
|
d83addb61f | ||
|
|
4196ef7c6e | ||
|
|
d937edab9e | ||
|
|
9653512c4a | ||
|
|
70fc46903c | ||
|
|
7e40408f41 | ||
|
|
9c7f41cf79 | ||
|
|
719568cb6c | ||
|
|
33bc59b871 | ||
|
|
5b439064db | ||
|
|
90bd1df4e4 | ||
|
|
219881e48e | ||
|
|
6c12c051c3 | ||
|
|
391632f819 | ||
|
|
d2a049428f | ||
|
|
821af257f3 | ||
|
|
d3b4b3a625 | ||
|
|
bdf142ca22 | ||
|
|
2a7c7edee8 | ||
|
|
1a8868d08c | ||
|
|
4395f03e2b | ||
|
|
10226a1a4f | ||
|
|
db36fc56db | ||
|
|
9ba80017b3 | ||
|
|
11d716eb9b | ||
|
|
1344584aa8 | ||
|
|
3695a50a09 | ||
|
|
6af83d7254 | ||
|
|
21a4cdbd7e | ||
|
|
15627ad9ae | ||
|
|
6dbd8d1a08 | ||
|
|
fa1964304f | ||
|
|
5711d5ca46 | ||
|
|
aba218dade | ||
|
|
392a72bd0b | ||
|
|
9258276aa2 | ||
|
|
d7feb2f514 | ||
|
|
80803c7af6 | ||
|
|
32e3c57601 | ||
|
|
afb5e55aa1 | ||
|
|
cea84c12d5 | ||
|
|
bc6eb48fcb | ||
|
|
06667e0352 | ||
|
|
d4d17f74ff | ||
|
|
f91571f10e | ||
|
|
d33fff5986 | ||
|
|
0c833f0343 | ||
|
|
15a10f5b02 | ||
|
|
2054b8f3b1 | ||
|
|
38c44c4b41 | ||
|
|
bb9d5a71dc | ||
|
|
7dad96261a | ||
|
|
03cfc049e5 | ||
|
|
7889e6b13f | ||
|
|
f547a79900 | ||
|
|
cab2f92e70 | ||
|
|
a087f53d04 | ||
|
|
1b5c8528e2 | ||
|
|
8671b4baaa | ||
|
|
6df00a37d6 | ||
|
|
2499657f8d | ||
|
|
db92a94781 | ||
|
|
12dd8d79fe | ||
|
|
48b935a70b | ||
|
|
154d2783d3 | ||
|
|
702fae369c | ||
|
|
a7b9736380 | ||
|
|
39bbdf882d | ||
|
|
6838811fa7 | ||
|
|
3d6f0d02d0 | ||
|
|
8f3d1ce100 | ||
|
|
a5cb64ccb4 | ||
|
|
b7bb822d16 | ||
|
|
44d3e94088 | ||
|
|
d21131f584 | ||
|
|
68d7b2e1d3 | ||
|
|
1e27430f88 | ||
|
|
eaa6a1bf75 | ||
|
|
119e15974c | ||
|
|
befb48c3b8 | ||
|
|
c8552b167a | ||
|
|
20f04d0a1c | ||
|
|
4573fb5c52 | ||
|
|
d35acb3f12 | ||
|
|
14a50e7824 | ||
|
|
96b169a01d | ||
|
|
4667a4c051 | ||
|
|
aff4a51560 | ||
|
|
a6c3918640 | ||
|
|
00fa869c54 | ||
|
|
f2ef867b61 | ||
|
|
d52ee1bbca | ||
|
|
c0e16f41d4 | ||
|
|
ef6bb14809 | ||
|
|
2ce73e527f | ||
|
|
adaad8d900 | ||
|
|
2e5372d430 | ||
|
|
3b85d2b9cd | ||
|
|
3d6cdf5fe5 | ||
|
|
5575529863 | ||
|
|
b52dbb88f9 | ||
|
|
bf6d7340cb | ||
|
|
abd58afc16 | ||
|
|
d60e9293fb | ||
|
|
b291e49611 | ||
|
|
08eea75ac8 | ||
|
|
a8ba929457 | ||
|
|
c59d557535 | ||
|
|
ebc91b0ce1 | ||
|
|
141b3f56b1 | ||
|
|
9fd7e7687b | ||
|
|
c722ee8624 | ||
|
|
5e4d0ee231 | ||
|
|
a0ffe7eb8c | ||
|
|
d20b810269 | ||
|
|
aee8160291 | ||
|
|
912cf14173 | ||
|
|
a60657bb29 | ||
|
|
065b0179b2 | ||
|
|
12779ef4d4 | ||
|
|
83dfa3a2e6 | ||
|
|
b5784a9d3c | ||
|
|
1982dacbdb | ||
|
|
ec8d7c87f0 | ||
|
|
8d90cb7d08 | ||
|
|
2f04a3478e | ||
|
|
c699d5a156 | ||
|
|
4de5e0ae85 | ||
|
|
3e3a583d72 | ||
|
|
0b6c5bef39 | ||
|
|
dd46b6fe9e | ||
|
|
1e0f51058e | ||
|
|
c9ce39747e | ||
|
|
654a409538 | ||
|
|
8f684e4089 | ||
|
|
d6839f42e3 | ||
|
|
cd5c3900a4 | ||
|
|
5b8c4173df | ||
|
|
11a95166f4 | ||
|
|
a07c042bf6 | ||
|
|
54aa872279 | ||
|
|
cd5f750ce1 | ||
|
|
4d7b3e0d80 | ||
|
|
958e0f30f4 | ||
|
|
efc6cd3761 | ||
|
|
e1b33bc586 | ||
|
|
e85b0be2c8 | ||
|
|
ee5687527a | ||
|
|
cc75d8ce8e | ||
|
|
2a79f11a39 | ||
|
|
ae30128dd3 | ||
|
|
2f3462f46b | ||
|
|
4a608906ad | ||
|
|
5f5a376859 | ||
|
|
51333961d6 | ||
|
|
a4f2671867 | ||
|
|
caec4d1585 | ||
|
|
c22aaf25d4 | ||
|
|
64467a28a7 | ||
|
|
965c4ef081 | ||
|
|
5866f6ac7a | ||
|
|
7a1198014b | ||
|
|
aeee3083aa | ||
|
|
3f5caf1431 | ||
|
|
b3c400782a | ||
|
|
fa70f58562 | ||
|
|
7ede720318 | ||
|
|
d728490a7a | ||
|
|
efefc1233c | ||
|
|
7636aa849c | ||
|
|
737107eae8 | ||
|
|
c4921a0fd4 | ||
|
|
bbe24b812b | ||
|
|
edd062a393 | ||
|
|
6fa636f45d | ||
|
|
3d0d427c81 | ||
|
|
00b82696e8 | ||
|
|
a84414aab5 | ||
|
|
cc5b772819 | ||
|
|
ea772a0517 | ||
|
|
c0c66d2d64 | ||
|
|
24fffc48c1 | ||
|
|
2143f91220 | ||
|
|
ae693ada96 | ||
|
|
8301028684 | ||
|
|
0f3974e1b6 | ||
|
|
402f8b48e9 | ||
|
|
27d021b972 | ||
|
|
9c1baebb0d | ||
|
|
1f0355f8ca | ||
|
|
6dde07b35e | ||
|
|
2f74cba1a2 | ||
|
|
e4f6409bfa | ||
|
|
8ff3dc5f16 | ||
|
|
9095e3bd32 | ||
|
|
f0638afa3b | ||
|
|
b91c10dedb | ||
|
|
44ee1fcfd0 | ||
|
|
3d60180098 | ||
|
|
85b5211958 | ||
|
|
a64e844349 | ||
|
|
bcbdeb3433 | ||
|
|
ef2099414e | ||
|
|
2eb8801db2 | ||
|
|
8e4c5eba39 | ||
|
|
b17274917c | ||
|
|
4981173cee | ||
|
|
79f6c300cb | ||
|
|
7f981841b8 | ||
|
|
d8f51626bf | ||
|
|
7f63995367 | ||
|
|
d4b2feebe4 | ||
|
|
fe772b6e63 | ||
|
|
2364e82861 | ||
|
|
49a1f7891e | ||
|
|
cbb3f3e8b5 | ||
|
|
2b162b8479 | ||
|
|
2f13b1f97a | ||
|
|
824cb12678 | ||
|
|
7a7ff99e60 | ||
|
|
bd0f786406 | ||
|
|
333d4398c6 | ||
|
|
ac664f90fc | ||
|
|
5eb09ce853 | ||
|
|
b74e23fc14 | ||
|
|
cc84c7f620 | ||
|
|
5cf55b8a71 | ||
|
|
8e3ee3fde4 | ||
|
|
384676b522 | ||
|
|
c107ea22fc | ||
|
|
59f814134f | ||
|
|
0c644d39e7 | ||
|
|
4b333976a7 | ||
|
|
b819021a6f | ||
|
|
81a742ac00 | ||
|
|
0108a36236 | ||
|
|
c2656ae4f0 | ||
|
|
f831468ade | ||
|
|
e108f9d543 | ||
|
|
824f856b85 | ||
|
|
d653145ac8 | ||
|
|
216d02e35f | ||
|
|
c723a113dc | ||
|
|
1acd50c821 | ||
|
|
cdd4ff8ae0 | ||
|
|
b7f6512b84 | ||
|
|
0624437afb | ||
|
|
34bfac36af | ||
|
|
3f72cfbed2 | ||
|
|
3e0ba09495 | ||
|
|
1c8bac3721 | ||
|
|
005439c1da | ||
|
|
501d68a78e | ||
|
|
5e25f90556 | ||
|
|
12c93d175c | ||
|
|
1ebafcc429 | ||
|
|
6c16dae529 | ||
|
|
6c508f9f00 | ||
|
|
9b861fadc8 | ||
|
|
40b87e1605 | ||
|
|
cdf3b4af31 | ||
|
|
cf6bf33a2c | ||
|
|
997ac04c63 | ||
|
|
e0ea70ddc6 | ||
|
|
412003f9db | ||
|
|
18e0d51373 | ||
|
|
12d53feb9c | ||
|
|
ee589eeb7f | ||
|
|
0ee05461fd | ||
|
|
cd4daa52b9 | ||
|
|
682b499279 | ||
|
|
a872ad3460 | ||
|
|
62de43327a | ||
|
|
492bafa0d7 | ||
|
|
5a548ff634 | ||
|
|
d8f7980586 | ||
|
|
71216aeceb | ||
|
|
f51e8817ff | ||
|
|
46ba471c9b | ||
|
|
6689c31f72 | ||
|
|
6eaf49957b | ||
|
|
14aeaa0688 | ||
|
|
a09b0f773c | ||
|
|
64fe2e1994 | ||
|
|
5925bf257a | ||
|
|
4b0532fedc | ||
|
|
f5a3e0fc3b | ||
|
|
f9770052c2 | ||
|
|
13a953a8cb | ||
|
|
584cd3c77d | ||
|
|
2a686ed283 | ||
|
|
411cdc4f02 | ||
|
|
a5f912b658 | ||
|
|
c768652274 | ||
|
|
d71610da30 | ||
|
|
c7c60e461d | ||
|
|
085f9dcc33 | ||
|
|
ac779c9f87 | ||
|
|
bcf21ab507 | ||
|
|
8b5bd7f92a | ||
|
|
859c84ceae | ||
|
|
c48ce41298 | ||
|
|
ffd149a970 | ||
|
|
2b3f2f94d4 | ||
|
|
d851eb1ad5 | ||
|
|
0c346d0542 | ||
|
|
4c73f227f7 | ||
|
|
75ef81e21c | ||
|
|
eb243d6cfc | ||
|
|
c361580254 | ||
|
|
22ddf97eaa | ||
|
|
1d9d5b2181 | ||
|
|
0effd044d2 | ||
|
|
7461693cff | ||
|
|
8dd2d1d9c0 | ||
|
|
86e2ed532f | ||
|
|
d1ef1c06ab | ||
|
|
20855be480 | ||
|
|
0b19e0b17b | ||
|
|
baf1cbe3d4 | ||
|
|
7183e37d2e | ||
|
|
6bac9517a6 | ||
|
|
11272bcc2a | ||
|
|
c86adfb1a9 | ||
|
|
df1c7f38e7 | ||
|
|
7a10c697d0 | ||
|
|
2e7c046116 | ||
|
|
c3309a5a29 | ||
|
|
263c996991 | ||
|
|
68ca03f197 | ||
|
|
c39747b585 | ||
|
|
f2d851a5fa | ||
|
|
ea8369ae98 | ||
|
|
3e1e6d0269 | ||
|
|
f9718bc63a | ||
|
|
dc041d102c | ||
|
|
8d6696fb78 | ||
|
|
b7205e1309 | ||
|
|
8779c6558f | ||
|
|
bde8459aa2 | ||
|
|
19c44a0735 | ||
|
|
bbbb7c2b1a | ||
|
|
8b9d275834 | ||
|
|
d724c52cb2 | ||
|
|
407f650fe1 | ||
|
|
0ac0e0aa86 | ||
|
|
2350cb87b0 | ||
|
|
1e30eea3f6 | ||
|
|
94023446c7 | ||
|
|
600e5ee56f | ||
|
|
f0d19af977 | ||
|
|
0b4fed4693 | ||
|
|
4c10678318 | ||
|
|
719653c132 | ||
|
|
84e0a6554c | ||
|
|
24789945d5 | ||
|
|
8eb945e5f9 | ||
|
|
ee6199f2e5 | ||
|
|
27113aaeb4 | ||
|
|
ad5fa417ca | ||
|
|
7c611fd151 | ||
|
|
0cc9631c9d | ||
|
|
8e0cc62c29 | ||
|
|
020026ae04 | ||
|
|
2a05178800 | ||
|
|
245a019082 | ||
|
|
35d34721a4 | ||
|
|
173aa17eb9 | ||
|
|
0b67a088c1 | ||
|
|
6c43d599bc | ||
|
|
1ed9a7d595 | ||
|
|
43aec2e5f2 | ||
|
|
96bebcd81e | ||
|
|
bb793f6e14 | ||
|
|
7f9aa4cfc8 | ||
|
|
76914637c9 | ||
|
|
6f0ff2a862 | ||
|
|
94d4a8db6e | ||
|
|
5d26cb1d77 | ||
|
|
5f20e6dde3 | ||
|
|
fbff7e68fd | ||
|
|
05d3e324d7 | ||
|
|
c09b401e4a | ||
|
|
3d2d169935 | ||
|
|
f831e71ad3 | ||
|
|
6a13aeed8a | ||
|
|
76ce5acaf3 | ||
|
|
0c2c4fa920 | ||
|
|
e76d24cd15 | ||
|
|
a98e9ae904 | ||
|
|
ce1e53d653 | ||
|
|
bf5fbdb31d | ||
|
|
ef991d9a6e | ||
|
|
3eba902519 | ||
|
|
7f3b698f69 | ||
|
|
68d5bcec71 | ||
|
|
5019983ce3 | ||
|
|
afd72ce259 | ||
|
|
840f1aac3d | ||
|
|
1d5d6de72c | ||
|
|
7039ec3055 | ||
|
|
2eb52906e9 | ||
|
|
c14b1e96e6 | ||
|
|
d37bb5aa50 | ||
|
|
8ad0fdcf73 | ||
|
|
5478fd0fc5 | ||
|
|
74b45c91ee | ||
|
|
79fca4b18f | ||
|
|
142f31beff | ||
|
|
f17ab92e1f | ||
|
|
32b4a251ae | ||
|
|
8271e93af6 | ||
|
|
a117ee2ba4 | ||
|
|
0c9c12c0e4 | ||
|
|
b3d1b56084 | ||
|
|
26e480982d | ||
|
|
45fa293fbc | ||
|
|
b996ad1ac5 | ||
|
|
579df5c023 | ||
|
|
025fb8c30a | ||
|
|
f7d0be2e05 | ||
|
|
e4f4ec43cc | ||
|
|
436e31a19f | ||
|
|
d948d6f7e1 | ||
|
|
255e0d0e4d | ||
|
|
3b042446ed | ||
|
|
67c91ad61b | ||
|
|
19085abc3b | ||
|
|
fdabb69242 | ||
|
|
1747041213 | ||
|
|
31112b1a2a | ||
|
|
821c4095f8 | ||
|
|
0c80221c2a | ||
|
|
cb4d477400 | ||
|
|
b0d12b07a5 | ||
|
|
91b847dc3e | ||
|
|
40f208f6ad | ||
|
|
f233851cfd | ||
|
|
14e7f6f760 | ||
|
|
e34cbb7c67 | ||
|
|
e50076dc20 | ||
|
|
e943fe0bb5 | ||
|
|
7ce97290bf | ||
|
|
e8ab18f025 | ||
|
|
f197f574a0 | ||
|
|
7bfe936ae9 | ||
|
|
8388f11aca | ||
|
|
875d92f012 | ||
|
|
ce55e8cefc | ||
|
|
4133028d90 | ||
|
|
353dbcd18c | ||
|
|
6bea8c254e | ||
|
|
5ef9abfa5d | ||
|
|
c81d40d351 | ||
|
|
50ee1d759f | ||
|
|
c0ea9d15fe | ||
|
|
d8901f85dd | ||
|
|
8278fa98d4 | ||
|
|
d11ae338ab | ||
|
|
0a05ef50bc | ||
|
|
9c6a90662c | ||
|
|
7b1de308ba | ||
|
|
ba79454502 | ||
|
|
fc786bf4d5 | ||
|
|
760858bafc | ||
|
|
766897532a | ||
|
|
5d29fb6a45 | ||
|
|
0bf39bbe3e | ||
|
|
e27ee0bd49 | ||
|
|
e25d408259 | ||
|
|
a677f9331c | ||
|
|
e11af94900 | ||
|
|
1ab37d97bc | ||
|
|
4285a98751 | ||
|
|
cf17c7fc4e | ||
|
|
d293f38db9 | ||
|
|
2a656feb91 | ||
|
|
d871f6c203 | ||
|
|
c8f7c0a974 | ||
|
|
8711212ce0 | ||
|
|
93bbcd3a6a | ||
|
|
26ffce35e3 | ||
|
|
7395f9bf13 | ||
|
|
b7221e701d | ||
|
|
5baf46bb18 | ||
|
|
e9a3778ca1 | ||
|
|
0e2a10463c | ||
|
|
2b4ea8c0bd | ||
|
|
e871363d70 | ||
|
|
a55ddade3a | ||
|
|
596b54f73c | ||
|
|
d74721620b | ||
|
|
fa63962575 | ||
|
|
e89a23ec59 | ||
|
|
20a3d6bc5a | ||
|
|
7bb4cfbf0d | ||
|
|
d6ba5e371f | ||
|
|
dd33b42a32 | ||
|
|
dbe72f50bc | ||
|
|
5584722dbd | ||
|
|
56af317b74 | ||
|
|
59f06f1836 | ||
|
|
c662e835d6 | ||
|
|
4240f313e2 | ||
|
|
9a12f36731 | ||
|
|
623f2f7672 | ||
|
|
55e09d9a64 | ||
|
|
3a76d3cef5 | ||
|
|
ccb6a79a8e | ||
|
|
08eebcbca0 | ||
|
|
6dd4b0f2df | ||
|
|
aa3462efe5 | ||
|
|
b4041b0be3 | ||
|
|
b08869f404 | ||
|
|
595d7d4456 | ||
|
|
284bf0446f | ||
|
|
ccccc0889f | ||
|
|
aaff4e4bac | ||
|
|
832b081cf8 | ||
|
|
e1db8f05b6 | ||
|
|
fe3bc96256 | ||
|
|
f1e4bed876 | ||
|
|
5737511f22 | ||
|
|
660a01c4cd | ||
|
|
1a5ced01a9 | ||
|
|
b7615ae955 | ||
|
|
d23c67efec | ||
|
|
2791128642 | ||
|
|
6db4a324d8 | ||
|
|
25e7569be9 | ||
|
|
4b6b788b75 | ||
|
|
0a53a1d761 | ||
|
|
a71e1c2fbc | ||
|
|
68789bed4d | ||
|
|
d9157687ed | ||
|
|
b3f1e47b18 | ||
|
|
79be7286d3 | ||
|
|
077a216988 | ||
|
|
0c5d96deef | ||
|
|
862b195139 | ||
|
|
45c7d51446 | ||
|
|
128609cbab | ||
|
|
6e856b0346 | ||
|
|
ec43e8ad88 | ||
|
|
7a4ccb459d | ||
|
|
603be49982 | ||
|
|
6573ff1af2 | ||
|
|
aac982fb62 | ||
|
|
ade333526b | ||
|
|
1af7ead362 | ||
|
|
5cb0927ff2 | ||
|
|
3658fdeb99 | ||
|
|
ab8c1569bc | ||
|
|
1d34e73dd6 | ||
|
|
9a8740214c | ||
|
|
12c5b6a76f | ||
|
|
babee89528 | ||
|
|
1f1a4397e0 | ||
|
|
85d5701a63 | ||
|
|
1ef66414b0 | ||
|
|
5836ec2ade | ||
|
|
2d1768c9ae | ||
|
|
cfbb91637e | ||
|
|
a399c494ab | ||
|
|
f51a028e3f | ||
|
|
89f7e237a2 | ||
|
|
d6ef7da766 | ||
|
|
1e60faf3ae | ||
|
|
315101a862 | ||
|
|
81535fc2ee | ||
|
|
3c6f9ca096 | ||
|
|
34ee5ad644 | ||
|
|
3e721c9554 | ||
|
|
1151bb43b8 | ||
|
|
7f9842a039 | ||
|
|
583ec8ac79 | ||
|
|
403129560a | ||
|
|
8fc0eef7f0 | ||
|
|
eda26e0034 | ||
|
|
a2d64bf578 | ||
|
|
318c7b7802 | ||
|
|
de0b3a4610 | ||
|
|
e0902f7e53 | ||
|
|
ee8282b8eb | ||
|
|
f1b8d4b37d | ||
|
|
cf01ede2d3 | ||
|
|
1d669c24e5 | ||
|
|
a0e9b7eff3 | ||
|
|
0910f60eb9 | ||
|
|
d552b6bc37 | ||
|
|
13499a925f | ||
|
|
74944e79c2 | ||
|
|
84f7d45c30 | ||
|
|
effd34e08f | ||
|
|
821e7408db | ||
|
|
bec8bce390 | ||
|
|
4aeb5d7b54 | ||
|
|
4aac5571bf | ||
|
|
9cb6d72bc7 | ||
|
|
5cd1cc6ef9 | ||
|
|
617efbb2fa | ||
|
|
4e97b8cbd4 | ||
|
|
93f667843a | ||
|
|
b10b964ab3 | ||
|
|
43a87bcdcd | ||
|
|
7e852118ff | ||
|
|
a89a1b2044 | ||
|
|
2afc8d94b1 | ||
|
|
6ff9613756 | ||
|
|
a8d1aed71c | ||
|
|
18bc31ef90 | ||
|
|
038f8f77cf | ||
|
|
23ec078763 | ||
|
|
c934a1f2c2 | ||
|
|
eb9f721c64 | ||
|
|
73fd1cea34 | ||
|
|
7c0119fce3 | ||
|
|
d6e25331db | ||
|
|
7adb40265f | ||
|
|
8525e83dbd | ||
|
|
4f51d094f3 | ||
|
|
a6f166bbd2 | ||
|
|
a874d4c466 | ||
|
|
4c9a699932 | ||
|
|
f1587359e5 | ||
|
|
fc9cfcf40c | ||
|
|
ad42e626e5 | ||
|
|
c40ba399e0 | ||
|
|
39f7367d2d | ||
|
|
e20af56111 | ||
|
|
402f1ac7a1 | ||
|
|
b2dbd26762 | ||
|
|
12c58fe206 | ||
|
|
e2067bf320 | ||
|
|
7d671eab23 | ||
|
|
ac50ee2e52 | ||
|
|
603e3d8448 | ||
|
|
30d7c98d99 | ||
|
|
a45e2d85de | ||
|
|
c3ee176b05 | ||
|
|
cea0ffaf16 | ||
|
|
44673dab78 | ||
|
|
a99a147b80 | ||
|
|
23523a0047 | ||
|
|
ad6782654d | ||
|
|
52e878c0ac | ||
|
|
6e0455ee64 | ||
|
|
05fe61e58b | ||
|
|
aebc24f162 | ||
|
|
8607d59c4e | ||
|
|
174631e1bc | ||
|
|
e06d8a8e62 | ||
|
|
a2d794d8ed | ||
|
|
1aad6996fb | ||
|
|
ae3ac9b5b0 | ||
|
|
92495c297f | ||
|
|
be13500d24 | ||
|
|
297b9b151d | ||
|
|
ff1400cde6 | ||
|
|
41f77813e1 | ||
|
|
4795a4b97a | ||
|
|
78a61f1198 | ||
|
|
b869590cb9 | ||
|
|
af95067ec7 | ||
|
|
ad3565c19e | ||
|
|
77defca959 | ||
|
|
65ef9e90d0 | ||
|
|
afcd1f88cd | ||
|
|
09c07609d5 | ||
|
|
8dfe65e6f4 | ||
|
|
6b23480717 | ||
|
|
7e34947c8a | ||
|
|
0d37baca83 | ||
|
|
2b5d8efac1 | ||
|
|
b1075213d4 | ||
|
|
bf12859ea9 | ||
|
|
3042b11e88 | ||
|
|
64fe894dbe | ||
|
|
f5a21bf230 | ||
|
|
78825864c3 | ||
|
|
dbf5089f8c | ||
|
|
dae58cdc8a | ||
|
|
c551e667c8 | ||
|
|
8926a1dad7 | ||
|
|
2679214542 | ||
|
|
ed57086b8a | ||
|
|
e4f703396c | ||
|
|
c03642bf1b | ||
|
|
d85f82a898 | ||
|
|
3ee1020860 | ||
|
|
465fff7710 | ||
|
|
ff9ea0109b | ||
|
|
ae69f34769 | ||
|
|
fb9e9cef46 | ||
|
|
18b8cc5408 | ||
|
|
90e81a23f6 | ||
|
|
9d77ccfaab | ||
|
|
71acb2a7df | ||
|
|
611fc6c007 | ||
|
|
d4ae3a6126 | ||
|
|
adbf5ad438 | ||
|
|
9ac533c8c7 | ||
|
|
50842beea7 | ||
|
|
09366ec674 | ||
|
|
26b938927d | ||
|
|
d6963df69d | ||
|
|
b8fcc51702 | ||
|
|
f24cc9c640 | ||
|
|
163ea4a27c | ||
|
|
d172e27275 | ||
|
|
dec7bff1e3 | ||
|
|
14845d0fab | ||
|
|
22745dbdf7 | ||
|
|
ac0559d89b | ||
|
|
8485eaf1da | ||
|
|
2b870976c4 | ||
|
|
32783096b7 | ||
|
|
cd3fab5453 | ||
|
|
bdc6896aa9 | ||
|
|
b96e8ff0cc | ||
|
|
8c8c938b0a | ||
|
|
4b98edef12 | ||
|
|
920c0ade01 | ||
|
|
dae11c6614 | ||
|
|
27155d30a8 | ||
|
|
0cd43030fa | ||
|
|
fb4d8c0a56 | ||
|
|
cfa2d2b119 | ||
|
|
24f173651b | ||
|
|
ec74b1ad57 | ||
|
|
afaff3f2d7 | ||
|
|
0884b88480 | ||
|
|
0a54266374 | ||
|
|
f01ac49d56 | ||
|
|
8a3d502431 | ||
|
|
0219f46ed9 | ||
|
|
2a69ee369a | ||
|
|
22c0d44191 | ||
|
|
41d682c1b4 | ||
|
|
f6b94c0ce3 | ||
|
|
8783bad19e | ||
|
|
7018be06e5 | ||
|
|
d93c699694 | ||
|
|
ddc5b1e69a | ||
|
|
4169265144 | ||
|
|
38c54c5c28 | ||
|
|
79e1e385ae | ||
|
|
d3c4d77e45 | ||
|
|
527309d580 | ||
|
|
99aa0e02aa | ||
|
|
6e4f3e339b | ||
|
|
1824ebb4a9 | ||
|
|
3dd3e54e9c | ||
|
|
91b9eb066d | ||
|
|
2611199aeb | ||
|
|
da05941676 | ||
|
|
96a4158e78 | ||
|
|
fb924091dd | ||
|
|
568100d869 | ||
|
|
968870e662 | ||
|
|
e7bf3c74ca | ||
|
|
00a8849807 | ||
|
|
c2471d7869 | ||
|
|
d81d90c194 | ||
|
|
aa8c32f46f | ||
|
|
e97dc9587d | ||
|
|
0df2a94b3f | ||
|
|
15fcbe2ae3 | ||
|
|
bb52ef5d5f | ||
|
|
71f3b3cb24 | ||
|
|
a70e4a6e78 | ||
|
|
10e281573d | ||
|
|
3af0e237a5 | ||
|
|
ced9eccc14 | ||
|
|
bf4acdfb85 | ||
|
|
ff87cc73b6 | ||
|
|
1c828623aa | ||
|
|
a77403712b | ||
|
|
94290e2a5c | ||
|
|
9e9413d492 | ||
|
|
0d2992257b | ||
|
|
937fd4bb86 | ||
|
|
84887e1d26 | ||
|
|
c123b64f97 | ||
|
|
da9e88cd84 | ||
|
|
a241c3af92 | ||
|
|
b0c7854d12 | ||
|
|
555e77fe5b | ||
|
|
0bdb3ecc5e | ||
|
|
4cc7aaae63 | ||
|
|
e4cb02b072 | ||
|
|
5ca91e1ffb | ||
|
|
36b201879a | ||
|
|
9efaf26dd1 | ||
|
|
e09c37e8f7 | ||
|
|
6fbb4cbb28 | ||
|
|
4a05c1ef52 | ||
|
|
bc67be3386 | ||
|
|
fec04c2b35 | ||
|
|
ed2d350e36 | ||
|
|
df9a9acd72 | ||
|
|
3b19ed280e | ||
|
|
f91a162cce | ||
|
|
36fa7ef959 | ||
|
|
28cd412b97 | ||
|
|
bd6746342c | ||
|
|
c0ada25921 | ||
|
|
1ef64beb7e | ||
|
|
de8ae6e7eb | ||
|
|
37ad27f09f | ||
|
|
87d0d371f0 | ||
|
|
85cb64673c | ||
|
|
6a55e7b79c | ||
|
|
5179eb2005 | ||
|
|
5b79a351fa | ||
|
|
45d0a4ef12 | ||
|
|
e48638340d | ||
|
|
c44d097e78 | ||
|
|
9456c59b2c | ||
|
|
a58dd982d8 | ||
|
|
5372e6b7bb | ||
|
|
b463e856bc | ||
|
|
53de499f56 | ||
|
|
33ac2e7d33 | ||
|
|
512eca2d15 | ||
|
|
87afa777d0 | ||
|
|
9f254665c6 | ||
|
|
eaa9f21c65 | ||
|
|
a2631f1ff6 | ||
|
|
ad5eb939d9 | ||
|
|
d480b51cd6 | ||
|
|
af1f1ecff1 | ||
|
|
eb2b14e680 | ||
|
|
e0979d1759 | ||
|
|
886e1df865 | ||
|
|
639f05687b | ||
|
|
aaaf68ddc3 | ||
|
|
8edbee9f63 | ||
|
|
148cf4d212 | ||
|
|
1c0bfa6263 | ||
|
|
a623b0c522 | ||
|
|
ffc82178a1 | ||
|
|
56c1667210 | ||
|
|
d10677be3a | ||
|
|
bd9f244028 | ||
|
|
c73dbaf966 | ||
|
|
4e61ea9e3e | ||
|
|
675d2d18a8 | ||
|
|
1c605f0046 | ||
|
|
9451a5ceb6 | ||
|
|
7fe5ec735e | ||
|
|
de6f2c118f | ||
|
|
bf2bf43838 | ||
|
|
e6c99ecb82 | ||
|
|
02f90c7780 | ||
|
|
472c655a79 | ||
|
|
fad0311a91 |
@@ -1,28 +0,0 @@
|
||||
name: Check helm version
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- deploy/charts/neuron/templates/**
|
||||
pull_request:
|
||||
paths:
|
||||
- deploy/charts/neuron/templates/**
|
||||
|
||||
jobs:
|
||||
check-helm-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: minikube start
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update helm
|
||||
run: |
|
||||
helm repo add emqx https://repos.emqx.io/charts
|
||||
helm repo update
|
||||
- name: Check helm version
|
||||
run: |
|
||||
old=$(helm show chart emqx/neuron |egrep "^version" | sed -r 's|^version:[[:space:]]([0-9]+.[0-9]+.[0-9]+)$|\1|g')
|
||||
now=$(egrep "^version" deploy/charts/neuron/Chart.yaml | sed -r 's|^version:[[:space:]]([0-9]+.[0-9]+.[0-9]+)$|\1|g')
|
||||
if [ "$old" = "$now" ];then
|
||||
echo "Need update version for Chart.yaml"
|
||||
exit 1
|
||||
fi
|
||||
+123
-79
@@ -9,42 +9,55 @@ on:
|
||||
|
||||
jobs:
|
||||
clang_format_check:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
# checkout
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Run clang-format style check for C/C++ programs.
|
||||
uses: DoozyX/clang-format-lint-action@v0.12
|
||||
uses: DoozyX/clang-format-lint-action@v0.18
|
||||
with:
|
||||
source: 'src plugins include tests'
|
||||
exclude: 'include/neuron/utils/uthash.h include/neuron/utils/utarray.h include/neuron/utils/utlist.h include/neuron/utils/zlog.h'
|
||||
clangFormatVersion: 10
|
||||
exclude: 'include/neuron/utils/uthash.h include/neuron/utils/utarray.h include/neuron/utils/utlist.h include/neuron/utils/zlog.h src/otel/trace.pb-c.h src/otel/trace.pb-c.c src/otel/resource.pb-c.h src/otel/resource.pb-c.c src/otel/common.pb-c.c src/otel/common.pb-c.h plugins/mqtt/ptformat.pb-c.h plugins/mqtt/ptformat.pb-c.c'
|
||||
style: file
|
||||
clangFormatVersion: 10
|
||||
|
||||
cppcheck:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-24.04
|
||||
container: ghcr.io/neugates/build:x86_64-v2.12
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: cppcheck
|
||||
run: |
|
||||
sudo apt install cppcheck
|
||||
cppcheck --enable=all --error-exitcode=2 --inline-suppr --suppress=missingInclude --suppress=unusedFunction ./plugins ./simulator ./src
|
||||
sudo apt install -y cppcheck
|
||||
cppcheck --enable=all --error-exitcode=2 --inline-suppr --suppress=missingInclude --suppress=unusedFunction --suppress=*:src/otel/trace.pb-c.c --suppress=*:src/otel/common.pb-c.c --suppress=*:src/otel/resource.pb-c.c ./plugins ./src
|
||||
cppcheck --enable=all --error-exitcode=2 --inline-suppr --suppress=missingInclude --suppress=variableScope ./simulator
|
||||
|
||||
ut:
|
||||
runs-on: ubuntu-20.04
|
||||
container: ghcr.io/neugates/build:x86_64-main
|
||||
flawfinder:
|
||||
name: Flawfinder Scan
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: flawfinder_scan
|
||||
uses: david-a-wheeler/flawfinder@2.0.20
|
||||
with:
|
||||
arguments: '--minlevel=3 .'
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-24.04
|
||||
container: ghcr.io/neugates/build:x86_64-v2.12
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
@@ -53,89 +66,120 @@ jobs:
|
||||
git config --global --add safe.directory $(pwd)
|
||||
mkdir -p build && cd build
|
||||
cmake -DUSE_GCOV=1 .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-linux-gnu.cmake
|
||||
make -j4
|
||||
make -j4
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: neuron-build
|
||||
path: |
|
||||
build
|
||||
|
||||
|
||||
ut:
|
||||
runs-on: ubuntu-24.04
|
||||
container: ghcr.io/neugates/build:x86_64-v2.12
|
||||
needs: [build]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: neuron-build
|
||||
path: ./build
|
||||
|
||||
- name: unit test
|
||||
run: |
|
||||
chmod -R +x ./build/
|
||||
cd build
|
||||
sudo apt-get update
|
||||
sudo apt install -y lcov
|
||||
ctest --output-on-failure -O tests/reports/ut.log --output-junit tests/reports/output.xml
|
||||
lcov --capture --directory . --output-file testneuron.info --test-name testneuron
|
||||
genhtml -o result testneuron.info
|
||||
cmake -DUSE_GCOV=1 .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-linux-gnu.cmake
|
||||
ctest --output-on-failure
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
- name: create cov report
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install lcov
|
||||
mkdir -p cov_report
|
||||
./create_cov_report.sh ut
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
name: ut_result
|
||||
path: |
|
||||
build/tests/reports/ut.log
|
||||
build/tests/reports/output.xml
|
||||
build/result/index.html
|
||||
build/neuron.log
|
||||
|
||||
ft:
|
||||
runs-on: ubuntu-20.04
|
||||
container: ghcr.io/neugates/build:x86_64-main
|
||||
verbose: true
|
||||
fail_ci_if_error: true
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./cov_report/
|
||||
files: ./cov_report/cov-ut.info
|
||||
|
||||
pft:
|
||||
runs-on: ubuntu-24.04
|
||||
container: ghcr.io/neugates/build:x86_64-v2.12
|
||||
needs: [build]
|
||||
strategy:
|
||||
matrix:
|
||||
plugin: [core, ekuiper, modbus, mqtt, azure, metrics, launch]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: compile
|
||||
run: |
|
||||
git config --global --add safe.directory $(pwd)
|
||||
mkdir -p build && cd build
|
||||
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-linux-gnu.cmake
|
||||
make -j4
|
||||
|
||||
- name: function test
|
||||
- name: setup dependencies
|
||||
run: |
|
||||
sudo apt-get install -y mosquitto
|
||||
mosquitto -v &
|
||||
python3 -m pip install -U pip
|
||||
python3 -m pip install -r ft/requirements.txt
|
||||
python3 -m robot --maxerrorlines=600 -P ft/ -d ft/reports ft
|
||||
pip install -U pytest requests prometheus-client gmqtt pynng sniffio
|
||||
sudo apt-get install -y socat
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ft_result
|
||||
path: |
|
||||
ft/reports/log.html
|
||||
ft/reports/output.xml
|
||||
ft/reports/report.html
|
||||
build/neuron.log
|
||||
|
||||
pyft:
|
||||
runs-on: ubuntu-20.04
|
||||
container: ghcr.io/neugates/build:x86_64-main
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: compile
|
||||
run: |
|
||||
git config --global --add safe.directory $(pwd)
|
||||
mkdir -p build && cd build
|
||||
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-linux-gnu.cmake
|
||||
make -j4
|
||||
|
||||
- name: fetch neu-ft
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: neugates/neu-ft
|
||||
path: neu-ft
|
||||
name: neuron-build
|
||||
path: ./build
|
||||
|
||||
- name: function test
|
||||
run: |
|
||||
pip install -U pytest
|
||||
pip install requests
|
||||
pytest -s neu-ft/neuron
|
||||
chmod -R +x ./build/
|
||||
cd build
|
||||
cmake -DUSE_GCOV=1 .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-linux-gnu.cmake
|
||||
cd ..
|
||||
if [ "${{ matrix.plugin }}" = "core" ]; then
|
||||
pytest -s -v tests/ft \
|
||||
--ignore=tests/ft/app/test_ekuiper.py \
|
||||
--ignore=tests/ft/app/test_mqtt.py \
|
||||
--ignore=tests/ft/app/test_azure.py \
|
||||
--ignore=tests/ft/driver/test_modbus.py \
|
||||
--ignore=tests/ft/metrics/test_metrics.py \
|
||||
--ignore=tests/ft/login/test_launch.py \
|
||||
--ignore=tests/ft/login/test_filter_error.py \
|
||||
--ignore=tests/ft/login/test_login.py
|
||||
elif [ "${{ matrix.plugin }}" = "ekuiper" ]; then
|
||||
pytest -s -v tests/ft/app/"test_ekuiper.py"
|
||||
elif [ "${{ matrix.plugin }}" = "modbus" ]; then
|
||||
pytest -s -v tests/ft/driver/"test_modbus.py"
|
||||
elif [ "${{ matrix.plugin }}" = "mqtt" ]; then
|
||||
pytest -s -v tests/ft/app/"test_mqtt.py"
|
||||
elif [ "${{ matrix.plugin }}" = "azure" ]; then
|
||||
pytest -s -v tests/ft/app/"test_azure.py"
|
||||
#elif [ "${{ matrix.plugin }}" = "launch" ]; then
|
||||
#pytest -s -v tests/ft/login
|
||||
else
|
||||
pytest -s -v tests/ft/metrics/"test_metrics.py"
|
||||
fi
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
- name: create cov report
|
||||
if: ${{ matrix.plugin != 'launch' }}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install lcov
|
||||
mkdir -p cov_report
|
||||
./create_cov_report.sh ${{ matrix.plugin }}
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
if: ${{ matrix.plugin != 'launch' }}
|
||||
with:
|
||||
name: pyft_result
|
||||
path: |
|
||||
neu-ft/neuron/report
|
||||
verbose: true
|
||||
fail_ci_if_error: true
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./cov_report/
|
||||
files: ./cov_report/cov-${{ matrix.plugin }}.info
|
||||
+27
-168
@@ -8,23 +8,21 @@ on:
|
||||
- published
|
||||
|
||||
env:
|
||||
VERSION: 2.6.0
|
||||
UI_VERSION: 2.5.0
|
||||
BRANCH: main
|
||||
VERSION: 2.12.5
|
||||
UI_VERSION: 2.6.1
|
||||
BRANCH: v2.12
|
||||
|
||||
jobs:
|
||||
cross-build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
arch:
|
||||
- [aarch64-linux-gnu, aarch64, arm64]
|
||||
- [arm-linux-gnueabihf, armv4, armhf]
|
||||
- [x86_64-linux-gnu, x86_64, amd64]
|
||||
container: ghcr.io/neugates/build:${{ matrix.arch[1] }}-main
|
||||
container: ghcr.io/neugates/build:${{ matrix.arch[1] }}-v2.12
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
@@ -52,22 +50,22 @@ jobs:
|
||||
run: |
|
||||
./package-sdk.sh -p ${{ matrix.arch[2] }} -n neuron-sdk-$VERSION
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: neuron-sdk-${{ matrix.arch[2] }}
|
||||
path: |
|
||||
neuron-sdk-*.tar.gz
|
||||
|
||||
build-debug-sdk:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
arch:
|
||||
- [x86_64-linux-gnu, x86_64, amd64]
|
||||
container: ghcr.io/neugates/build:${{ matrix.arch[1] }}-main
|
||||
container: ghcr.io/neugates/build:${{ matrix.arch[1] }}-v2.12
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
@@ -83,17 +81,16 @@ jobs:
|
||||
run: |
|
||||
./package-sdk.sh -p ${{ matrix.arch[2] }} -n neuron-sdk-debug-$VERSION
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: neuron-sdk-debug-${{ matrix.arch[2] }}
|
||||
name: neuron-sdk-debug
|
||||
path: |
|
||||
neuron-sdk-debug-*.tar.gz
|
||||
|
||||
create_daily_release:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
create_update_daily_release:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'push'
|
||||
needs: [cross-build, build-debug-sdk]
|
||||
|
||||
steps:
|
||||
- name: delete old daily-pre-release
|
||||
uses: dev-drprasad/delete-tag-and-release@v0.2.1
|
||||
@@ -103,159 +100,21 @@ jobs:
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: create daily-pre-release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: neuron-sdk-debug
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: neuron-sdk-amd64
|
||||
|
||||
- uses: softprops/action-gh-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
name: Daily Release(${{ env.BRANCH }})
|
||||
tag_name: ${{ env.BRANCH }}-daily
|
||||
release_name: Daily Release(${{ env.BRANCH }})
|
||||
draft: false
|
||||
prerelease: true
|
||||
|
||||
- shell: bash
|
||||
run: |
|
||||
echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: release_url
|
||||
path: release_url.txt
|
||||
|
||||
upload_daily_release_asset:
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.event_name == 'push'
|
||||
needs: create_daily_release
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [arm64, armhf, amd64]
|
||||
type: [neuron-sdk]
|
||||
package: [tar.gz]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: release_url
|
||||
|
||||
- id: release_url
|
||||
run: |
|
||||
value=`cat release_url.txt`
|
||||
echo "name=$value" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: ${{ matrix.type }}-${{ matrix.arch }}
|
||||
|
||||
- id: package
|
||||
run: echo "name=${{ matrix.type }}-${{ env.VERSION }}-${{ matrix.arch }}.${{ matrix.package }}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: upload daily release asset
|
||||
id: upload-release-asset
|
||||
uses: actions/upload-release-asset@v1.0.2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.release_url.outputs.name }}
|
||||
asset_path: ./${{ steps.package.outputs.name }}
|
||||
asset_name: ${{ matrix.type }}-${{ env.VERSION }}-daily-linux-${{ matrix.arch }}.${{ matrix.package }}
|
||||
asset_content_type: application/octet-stream
|
||||
|
||||
upload_daily_release_debug_asset:
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.event_name == 'push'
|
||||
needs: create_daily_release
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [amd64]
|
||||
type: [neuron-sdk-debug]
|
||||
package: [tar.gz]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: release_url
|
||||
|
||||
- id: release_url
|
||||
run: |
|
||||
value=`cat release_url.txt`
|
||||
echo "name=$value" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: ${{ matrix.type }}-${{ matrix.arch }}
|
||||
|
||||
- id: package
|
||||
run: echo "name=${{ matrix.type }}-${{ env.VERSION }}-${{ matrix.arch }}.${{ matrix.package }}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: upload daily release asset
|
||||
id: upload-release-asset
|
||||
uses: actions/upload-release-asset@v1.0.2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.release_url.outputs.name }}
|
||||
asset_path: ./${{ steps.package.outputs.name }}
|
||||
asset_name: ${{ matrix.type }}-${{ env.VERSION }}-daily-linux-${{ matrix.arch }}.${{ matrix.package }}
|
||||
asset_content_type: application/octet-stream
|
||||
|
||||
clean:
|
||||
runs-on: ubuntu-20.04
|
||||
needs: [upload_daily_release_asset, upload_daily_release_debug_asset]
|
||||
steps:
|
||||
- uses: geekyeggo/delete-artifact@v1
|
||||
with:
|
||||
name: release_url
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.event_name == 'release'
|
||||
needs: cross-build
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [arm64, armhf, amd64]
|
||||
type: [neuron-sdk]
|
||||
package: [tar.gz]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: ${{ matrix.type }}-${{ matrix.arch }}
|
||||
|
||||
- id: package
|
||||
run: echo "name=${{ matrix.type }}-${{ env.VERSION }}-${{ matrix.arch }}.${{ matrix.package }}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: gen packages sha256
|
||||
run: sudo bash -c "echo $(sha256sum ./${{ steps.package.outputs.name }} | awk '{print $1}') > ./${{ steps.package.outputs.name }}.sha256"
|
||||
|
||||
- uses: actions/upload-release-asset@v1
|
||||
if: github.event_name == 'release'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
with:
|
||||
upload_url: ${{ github.event.release.upload_url }}
|
||||
asset_path: ./${{ steps.package.outputs.name}}.sha256
|
||||
asset_name: ${{ matrix.type }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.${{ matrix.package }}.sha256
|
||||
asset_content_type: application/octet-stream
|
||||
|
||||
- uses: actions/upload-release-asset@v1
|
||||
if: github.event_name == 'release'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
with:
|
||||
upload_url: ${{ github.event.release.upload_url }}
|
||||
asset_path: ./${{ steps.package.outputs.name}}
|
||||
asset_name: ${{ matrix.type }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.${{ matrix.package }}
|
||||
asset_content_type: application/octet-stream
|
||||
files: |
|
||||
neuron-sdk-*
|
||||
@@ -1,44 +0,0 @@
|
||||
name: Release neuron
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "*"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Check appVersion for helm
|
||||
run: |
|
||||
appVersion=$(egrep "^appVersion" deploy/charts/neuron/Chart.yaml | sed -r 's|^appVersion:[[:space:]]([0-9]+.[0-9]+.[0-9]+)$|\1|g')
|
||||
if [ "$appVersion" != "${GITHUB_REF##*/}" ]; then
|
||||
echo "Need update appVersion for Chart.yaml"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
helm:
|
||||
runs-on: self-hosted
|
||||
if: github.repository_owner == 'emqx'
|
||||
needs:
|
||||
- release
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Check appVersion for helm
|
||||
working-directory: deploy/charts/neuron
|
||||
run: |
|
||||
appVersion=$(egrep "^appVersion" Chart.yaml | sed -r 's|^appVersion:[[:space:]]([0-9]+.[0-9]+.[0-9]+)$|\1|g')
|
||||
if [ "$appVersion" != "${GITHUB_REF##*/}" ]; then
|
||||
echo "Need update appVersion for Chart.yaml"
|
||||
exit 1
|
||||
fi
|
||||
- name: Update helm repo
|
||||
uses: emqx/push-helm-action@v1
|
||||
with:
|
||||
charts_dir: "${{ github.workspace }}/deploy/charts/neuron"
|
||||
version: ${{ github.ref_name }}
|
||||
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws_region: "us-west-2"
|
||||
aws_bucket_name: "repos-emqx-io"
|
||||
+2
-1
@@ -19,4 +19,5 @@ neuron-sdk
|
||||
.vscode
|
||||
log.html
|
||||
output.xml
|
||||
report.html
|
||||
report.html
|
||||
*.cache
|
||||
+49
-16
@@ -33,15 +33,20 @@ endif()
|
||||
|
||||
if(USE_GCOV)
|
||||
message(STATUS "using gcov")
|
||||
SET(GCC_COVERAGE_COMPILE_FLAGS "-fprofile-arcs -ftest-coverage")
|
||||
SET(GCC_COVERAGE_COMPILE_FLAGS "-fprofile-arcs -ftest-coverage -O0")
|
||||
SET(GCC_COVERAGE_LINK_FLAGS "-lgcov")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
|
||||
endif(USE_GCOV)
|
||||
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -g")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O1")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=format-truncation")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O0")
|
||||
add_compile_options(-fstack-protector-strong)
|
||||
add_link_options(-fstack-protector-strong)
|
||||
add_link_options(-pie -Wl,-z,relro,-z,now)
|
||||
|
||||
if(NOT DISABLE_ASAN)
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -fsanitize=address")
|
||||
@@ -54,27 +59,32 @@ add_custom_target(neuron-version
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/neuron-version.cmake)
|
||||
|
||||
find_package(nng CONFIG REQUIRED)
|
||||
find_package(LibXml2 REQUIRED)
|
||||
find_package(Threads)
|
||||
|
||||
if (CMAKE_STAGING_PREFIX)
|
||||
include_directories(${CMAKE_STAGING_PREFIX}/include)
|
||||
link_directories(${CMAKE_STAGING_PREFIX}/lib)
|
||||
include_directories(${CMAKE_STAGING_PREFIX}/include/libxml2)
|
||||
else()
|
||||
include_directories(/usr/local/include)
|
||||
link_directories(/usr/local/lib)
|
||||
include_directories(/usr/local/include/libxml2)
|
||||
endif()
|
||||
|
||||
set(PERSIST_SOURCES
|
||||
src/persist/persist.c
|
||||
src/persist/sqlite.c
|
||||
src/persist/json/persist_json_plugin.c)
|
||||
aux_source_directory(src/parser NEURON_SRC_PARSE)
|
||||
aux_source_directory(src/otel NEURON_SRC_OTEL)
|
||||
set(NEURON_BASE_SOURCES
|
||||
src/base/tag.c
|
||||
src/base/neu_plugin_common.c
|
||||
src/base/tag_sort.c
|
||||
src/base/group.c
|
||||
src/base/metrics.c
|
||||
src/base/template.c
|
||||
src/base/msg.c
|
||||
src/connection/connection.c
|
||||
src/connection/connection_eth.c
|
||||
src/connection/mqtt_client.c
|
||||
@@ -84,12 +94,11 @@ set(NEURON_BASE_SOURCES
|
||||
src/utils/json.c
|
||||
src/utils/http.c
|
||||
src/utils/http_handler.c
|
||||
src/utils/http_proxy.c
|
||||
src/utils/neu_jwt.c
|
||||
src/utils/base64.c
|
||||
src/utils/async_queue.c
|
||||
src/utils/mem_cache.c
|
||||
src/utils/log.c
|
||||
src/utils/cid.c
|
||||
${PERSIST_SOURCES})
|
||||
|
||||
if (SMART_LINK)
|
||||
@@ -98,13 +107,30 @@ if (SMART_LINK)
|
||||
set(NEURON_BASE_SOURCES ${NEURON_BASE_SOURCES} src/connection/smart_link.c)
|
||||
endif()
|
||||
|
||||
if (CLIB)
|
||||
message(STATUS "set clib")
|
||||
add_definitions(-DNEU_CLIB=${CLIB})
|
||||
endif()
|
||||
|
||||
|
||||
if (USE_MQTT_SM)
|
||||
message(STATUS "use mqtt sm")
|
||||
add_definitions(-DNEU_USE_MQTT_SM)
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
message(STATUS "build release")
|
||||
add_definitions(-DNEU_RELEASE)
|
||||
endif()
|
||||
|
||||
|
||||
add_library(neuron-base SHARED)
|
||||
target_sources(neuron-base PRIVATE ${NEURON_BASE_SOURCES} ${NEURON_SRC_PARSE})
|
||||
target_sources(neuron-base PRIVATE ${NEURON_BASE_SOURCES} ${NEURON_SRC_PARSE} ${NEURON_SRC_OTEL})
|
||||
target_include_directories(neuron-base
|
||||
PRIVATE include/neuron src)
|
||||
target_link_libraries(neuron-base libssl.a libcrypto.a)
|
||||
target_link_libraries(neuron-base nng libzlog.so jansson jwt
|
||||
${CMAKE_THREAD_LIBS_INIT})
|
||||
target_link_libraries(neuron-base nng libzlog.so jansson jwt xml2
|
||||
${CMAKE_THREAD_LIBS_INIT} -lm protobuf-c)
|
||||
add_dependencies(neuron-base neuron-version)
|
||||
|
||||
# dependency imposed by nng
|
||||
@@ -120,25 +146,28 @@ set(NEURON_SOURCES
|
||||
src/core/subscribe.c
|
||||
src/core/plugin_manager.c
|
||||
src/core/node_manager.c
|
||||
src/core/template_manager.c
|
||||
src/core/storage.c
|
||||
src/adapter/msg_q.c
|
||||
src/adapter/storage.c
|
||||
src/adapter/adapter.c
|
||||
src/adapter/driver/cache.c
|
||||
src/adapter/driver/driver.c
|
||||
plugins/restful/handle.c
|
||||
plugins/restful/log_handle.c
|
||||
plugins/restful/file_handle.c
|
||||
plugins/restful/metric_handle.c
|
||||
plugins/restful/normal_handle.c
|
||||
plugins/restful/rw_handle.c
|
||||
plugins/restful/adapter_handle.c
|
||||
plugins/restful/ndriver_handle.c
|
||||
plugins/restful/datatag_handle.c
|
||||
plugins/restful/global_config_handle.c
|
||||
plugins/restful/group_config_handle.c
|
||||
plugins/restful/plugin_handle.c
|
||||
plugins/restful/template_handle.c
|
||||
plugins/restful/version_handle.c
|
||||
plugins/restful/scan_handle.c
|
||||
plugins/restful/otel_handle.c
|
||||
plugins/restful/cid_handle.c
|
||||
plugins/restful/system_handle.c
|
||||
plugins/restful/datalayers_handle.c
|
||||
plugins/restful/rest.c
|
||||
plugins/restful/user.c)
|
||||
|
||||
@@ -146,7 +175,7 @@ set(CMAKE_BUILD_RPATH ./)
|
||||
add_executable(neuron)
|
||||
target_sources(neuron PRIVATE ${NEURON_SOURCES})
|
||||
target_include_directories(neuron PRIVATE include/neuron src plugins)
|
||||
target_link_libraries(neuron dl neuron-base sqlite3 -lm)
|
||||
target_link_libraries(neuron dl neuron-base sqlite3 -lm xml2)
|
||||
target_link_options(neuron PRIVATE "LINKER:--dynamic-list-data")
|
||||
|
||||
#copy file for run
|
||||
@@ -155,8 +184,6 @@ file(COPY ${CMAKE_SOURCE_DIR}/dev.conf DESTINATION ${CMAKE_BINARY_DIR}/config)
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/neuron.json DESTINATION ${CMAKE_BINARY_DIR}/config)
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/.gitkeep DESTINATION ${CMAKE_BINARY_DIR}/logs)
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/.gitkeep DESTINATION ${CMAKE_BINARY_DIR}/persistence)
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/neuron.key DESTINATION ${CMAKE_BINARY_DIR}/config)
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/neuron.pem DESTINATION ${CMAKE_BINARY_DIR}/config)
|
||||
file(GLOB SQL_SCHEMAS ${CMAKE_SOURCE_DIR}/persistence/*.sql)
|
||||
file(COPY ${SQL_SCHEMAS} DESTINATION ${CMAKE_BINARY_DIR}/config)
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/default_plugins.json DESTINATION ${CMAKE_BINARY_DIR}/config)
|
||||
@@ -164,14 +191,20 @@ file(COPY ${CMAKE_SOURCE_DIR}/default_plugins.json DESTINATION ${CMAKE_BINARY_DI
|
||||
add_subdirectory(plugins/modbus)
|
||||
add_subdirectory(plugins/mqtt)
|
||||
add_subdirectory(plugins/ekuiper)
|
||||
add_subdirectory(plugins/file)
|
||||
add_subdirectory(plugins/monitor)
|
||||
add_subdirectory(plugins/datalayers)
|
||||
|
||||
add_subdirectory(simulator)
|
||||
|
||||
if(NOT DISABLE_UT)
|
||||
add_subdirectory(tests)
|
||||
add_subdirectory(tests/ut)
|
||||
endif()
|
||||
|
||||
add_subdirectory(tests/plugins/c1)
|
||||
add_subdirectory(tests/plugins/s1)
|
||||
add_subdirectory(tests/plugins/sc1)
|
||||
|
||||
# Set sane defaults for multi-lib linux systems
|
||||
include(GNUInstallDirs)
|
||||
if(UNIX)
|
||||
|
||||
@@ -55,3 +55,47 @@ $ tar xzf sqlite3.tar.gz --strip-components=1 -C sqlite3
|
||||
$ cd sqlite3
|
||||
$ ./configure CFLAGS=-fPIC && make && sudo make install
|
||||
```
|
||||
|
||||
[protobuf](https://github.com/protocolbuffers/protobuf)
|
||||
```shell
|
||||
$ wget --no-check-certificate --content-disposition https://github.com/protocolbuffers/protobuf/releases/download/v3.20.1/protobuf-cpp-3.20.1.tar.gz
|
||||
$ tar -xzvf protobuf-cpp-3.20.1.tar.gz
|
||||
$ cd protobuf-3.20.1
|
||||
$ ./configure --enable-shared=no CFLAGS=-fPIC CXXFLAGS=-fPIC
|
||||
$ make && sudo make install
|
||||
```
|
||||
|
||||
[protobuf-c](https://github.com/protobuf-c/protobuf-c.git)
|
||||
```shell
|
||||
$ git clone -b v1.4.0 https://github.com/protobuf-c/protobuf-c.git
|
||||
$ cd protobuf-c
|
||||
$ ./autogen.sh
|
||||
$ ./configure --disable-protoc --enable-shared=no CFLAGS=-fPIC CXXFLAGS=-fPIC
|
||||
$ make && sudo make install
|
||||
```
|
||||
|
||||
[libxml2](https://github.com/GNOME/libxml2.git)
|
||||
```shell
|
||||
$ git clone -b v2.9.14 https://github.com/GNOME/libxml2.git
|
||||
$ cd libxml2
|
||||
$ ./autogen.sh
|
||||
$ ./configure --enable-shared=no CFLAGS=-fPIC CXXFLAGS=-fPIC
|
||||
$ make && sudo make install
|
||||
```
|
||||
|
||||
[arrow](https://github.com/apache/arrow)
|
||||
|
||||
To build Apache Arrow C++ for the datalayers plugin, please refer to the [official Arrow](https://github.com/apache/arrow) for the most up-to-date information on dependencies, configuration, and build steps.
|
||||
|
||||
You must enable the following features at a minimum for the datalayers plugin:
|
||||
|
||||
```cmake
|
||||
-DARROW_FLIGHT=ON \
|
||||
-DARROW_FLIGHT_SQL=ON
|
||||
```
|
||||
|
||||
Required Dependencies:
|
||||
When enabling DARROW_FLIGHT and DARROW_FLIGHT_SQL, you must ensure the following dependencies are installed on your system at least: \
|
||||
gRPC \
|
||||
Boost \
|
||||
Thrift
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
[](https://github.com/emqx/neuron/releases)
|
||||
[](https://hub.docker.com/r/emqx/neuron)
|
||||
[](https://codecov.io/gh/emqx/neuron)
|
||||
[](https://slack-invite.emqx.io/)
|
||||
[](https://discord.gg/xYGf3fQnES)
|
||||
[](https://twitter.com/EMQTech)
|
||||
@@ -19,10 +20,10 @@ The following are some important features of Neuron:
|
||||
- Support numerous protocols for industrial devices, including Modbus, OPCUA, Ethernet/IP, IEC104, BACnet and [more](https://neugates.io/docs/en/latest/configuration/south-devices/south-devices.html).
|
||||
- Support simultaneous connection of a large number of industrial devices with different protocols.
|
||||
- Combine with the rule engine function provided by [eKuiper](https://www.lfedge.org/projects/ekuiper) to quickly implement rule-based device control or AI/ML analytics.
|
||||
- Support data access to industrial applications, such as MES or ERP, SCADA, historian and data analytics software via [SparkplugB](https://neugates.io/docs/en/latest/use-cases/use_cases.html#mqtt-sparkplugb-solution) solution.
|
||||
- Support data access to industrial applications, such as MES or ERP, SCADA, historian and data analytics software via [SparkplugB](https://neugates.io/docs/en/latest/use-cases/sparkplug/sparkplug.html) solution.
|
||||
- Has very low memory footprint, less than 10M, and CPU usage, can run on limited resource hardware like ARM, x86 and RISC-V.
|
||||
- Support installation of native executable or deployed in containerized enviornment.
|
||||
- Control industrial devices, and make changes to the parameters and data tags through [HTTP API](https://neugates.io/docs/en/latest/http-api/http-api.html) and [MQTT API](https://neugates.io/docs/en/latest/configuration/north-apps/mqtt/api.html) services.
|
||||
- Control industrial devices, and make changes to the parameters and data tags through [HTTP API](https://neugates.io/docs/en/latest/api/configuration.html) and [MQTT API](https://neugates.io/docs/en/latest/configuration/north-apps/mqtt/api.html) services.
|
||||
- Highly integrated with other EMQ products, including [EMQX](https://www.emqx.com/en/products/emqx), [NanoMQ](https://nanomq.io/), [eKuiper](https://ekuiper.org/).
|
||||
- The code of the core framework and Modbus, MQTT and eKuiper are licensed under open source LGPLv3. Commercial modules require a [EMQ License](https://neugates.io/docs/en/latest/installation/license-install/license-install.html) to run.
|
||||
|
||||
@@ -42,7 +43,8 @@ Next, please follow the [getting started guide](https://neugates.io/docs/en/late
|
||||
>
|
||||
> Neuron open source edition only includes Modbus and MQTT drivers.
|
||||
>
|
||||
> [Apply for a 15-day trial license](https://www.emqx.com/en/apply-licenses/neuron) to load all drivers.
|
||||
> If you need more driver protocol support and edge computing services, you can choose Neuron's commercial version [NeuronEX](https://www.emqx.com/en/products/neuronex).
|
||||
> NeuronEX comes with a built-in license for 30 data tags that can be applied to all southbound drivers. And NeuronEX also supports edge intelligent analysis of industrial data to enable you to quickly gain business insights. To download NeuronEX, please click [here](https://www.emqx.com/en/downloads-and-install/neuronex).
|
||||
|
||||
#### More installation options
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(COMPILER_PREFIX aarch64-linux-gnu)
|
||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
set(LIBRARY_DIR /home/neuron/main/libs)
|
||||
set(LIBRARY_DIR /home/neuron/v2.12/libs)
|
||||
|
||||
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(COMPILER_PREFIX arm-linux-gnueabi)
|
||||
set(CMAKE_SYSTEM_PROCESSOR armv5tejl)
|
||||
set(LIBRARY_DIR /home/neuron/main/libs)
|
||||
set(LIBRARY_DIR /home/neuron/v2.12/libs)
|
||||
|
||||
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(COMPILER_PREFIX arm-linux-gnueabihf)
|
||||
set(CMAKE_SYSTEM_PROCESSOR armv7l)
|
||||
set(LIBRARY_DIR /home/neuron/main/libs)
|
||||
set(LIBRARY_DIR /home/neuron/v2.12/libs)
|
||||
|
||||
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
|
||||
|
||||
@@ -21,3 +21,10 @@ link_directories(${CMAKE_STAGING_PREFIX})
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "mips32")
|
||||
link_libraries(atomic)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64")
|
||||
link_libraries(atomic)
|
||||
endif()
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64")
|
||||
link_libraries(atomic)
|
||||
endif()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(COMPILER_PREFIX x86_64-linux-gnu)
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
set(LIBRARY_DIR /home/neuron/main/libs)
|
||||
set(LIBRARY_DIR /home/neuron/v2.12/libs)
|
||||
|
||||
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
|
||||
@@ -13,6 +13,11 @@ set(CMAKE_RANLIB ${COMPILER_PREFIX}-ranlib)
|
||||
set(CMAKE_STAGING_PREFIX ${LIBRARY_DIR}/${COMPILER_PREFIX})
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_STAGING_PREFIX})
|
||||
|
||||
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-lto")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-lto")
|
||||
|
||||
include_directories(SYSTEM ${CMAKE_STAGING_PREFIX}/include)
|
||||
include_directories(SYSTEM ${CMAKE_STAGING_PREFIX}/openssl/include)
|
||||
set(CMAKE_FIND_ROOT_PATH ${CMAKE_STAGING_PREFIX})
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
ignore:
|
||||
- "src/otel/*.pb-c.c"
|
||||
coverage:
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
target: auto # the required coverage value
|
||||
threshold: 0.1% # the leniency in hitting the target
|
||||
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
|
||||
# core trace
|
||||
lcov -c -d build/CMakeFiles/neuron-base.dir/src -o cov_report/cov-neuron-base.info
|
||||
lcov -c -d build/CMakeFiles/neuron.dir/src -o cov_report/cov-neuron.info
|
||||
lcov -c -d build/CMakeFiles/neuron.dir/plugins/restful -o cov_report/cov-restful.info
|
||||
|
||||
# always with core trace
|
||||
function gen_trace () {
|
||||
lcov -a cov-neuron-base.info -a cov-neuron.info -a cov-restful.info $@;
|
||||
}
|
||||
|
||||
case $1 in
|
||||
(ut)
|
||||
rm -f cov_report/cov-neuron.info cov_report/cov-restful.info
|
||||
for dir in build/tests/ut/CMakeFiles/*_test.dir; do
|
||||
test_name=$(basename ${dir} "_test.dir")
|
||||
lcov -c -d ${dir} -o "cov_report/cov-${test_name}_test.info"
|
||||
done
|
||||
cd cov_report
|
||||
lcov $(for file in cov-*.info; do echo "-a $file "; done) -a cov-neuron-base.info -o cov-ut.info;;
|
||||
(ft)
|
||||
lcov -c -d build/plugins/mqtt/CMakeFiles/plugin-mqtt.dir -o cov_report/cov-mqtt.info
|
||||
lcov -c -d build/plugins/modbus/CMakeFiles/plugin-modbus-rtu.dir -o cov_report/cov-modbus-rtu.info
|
||||
lcov -c -d build/plugins/modbus/CMakeFiles/plugin-modbus-tcp.dir -o cov_report/cov-modbus-tcp.info
|
||||
cd cov_report
|
||||
gen_trace -a cov-mqtt.info -a cov-modbus-rtu.info -a cov-modbus-tcp.info -o cov-ft.info;;
|
||||
(ekuiper)
|
||||
lcov -c -d build/plugins/ekuiper/CMakeFiles/plugin-ekuiper.dir -o cov_report/cov-ekuiper.info
|
||||
cd cov_report
|
||||
gen_trace -a cov-ekuiper.info -o cov-ekuiper.info;;
|
||||
(modbus)
|
||||
lcov -c -d build/plugins/modbus/CMakeFiles/plugin-modbus-rtu.dir -o cov_report/cov-modbus-rtu.info
|
||||
lcov -c -d build/plugins/modbus/CMakeFiles/plugin-modbus-tcp.dir -o cov_report/cov-modbus-tcp.info
|
||||
lcov -c -d build/simulator/CMakeFiles/modbus_simulator.dir -o cov_report/cov-simulator-modbus.info
|
||||
cd cov_report
|
||||
gen_trace -a cov-simulator-modbus.info -a cov-modbus-rtu.info -a cov-modbus-tcp.info -o cov-modbus.info;;
|
||||
(mqtt)
|
||||
lcov -c -d build/plugins/mqtt/CMakeFiles/plugin-mqtt.dir -o cov_report/cov-mqtt.info
|
||||
cd cov_report
|
||||
gen_trace -a cov-mqtt.info -o cov-mqtt.info;;
|
||||
(azure)
|
||||
lcov -c -d build/plugins/mqtt/CMakeFiles/plugin-azure-iot.dir -o cov_report/cov-azure.info
|
||||
cd cov_report
|
||||
gen_trace -a cov-azure.info -o cov-azure.info;;
|
||||
(core)
|
||||
cd cov_report
|
||||
gen_trace -o cov-core.info;;
|
||||
(metrics)
|
||||
cd cov_report
|
||||
gen_trace -o cov-metrics.info;;
|
||||
(*)
|
||||
lcov -c -d build/plugins/$1/CMakeFiles/plugin-$1.dir -o cov_report/cov-$1.info;;
|
||||
esac
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
"plugins": [
|
||||
"libplugin-mqtt.so",
|
||||
"libplugin-aws-iot.so",
|
||||
"libplugin-azure-iot.so",
|
||||
"libplugin-ekuiper.so",
|
||||
"libplugin-monitor.so",
|
||||
"libplugin-modbus-tcp.so",
|
||||
"libplugin-modbus-rtu.so"
|
||||
"libplugin-modbus-rtu.so",
|
||||
"libplugin-file.so"
|
||||
]
|
||||
}
|
||||
@@ -4,10 +4,11 @@ file perms = 666
|
||||
|
||||
[formats]
|
||||
|
||||
stdout_format = "%d [%V] [%c] %f:%L %m%n"
|
||||
file_format = "%d [%V] %f:%L %m%n"
|
||||
stdout_format = "%d:%ms [%V] [%c] %f:%L %m%n"
|
||||
file_format = "%d:%ms [%V] %f:%L %m%n"
|
||||
syslog = "<P>%d(%Y-%m-%dT%T%z) %H neuron[%p]: level=%v msg="[%c] %m" file="%f:%L"%n"
|
||||
|
||||
[rules]
|
||||
|
||||
*.* "./logs/%c.log", 50MB * 1 ~ "./logs/%c.#2s.log"; file_format
|
||||
*.* "./logs/%c.log", 50MB * 2 ~ "./logs/%c.#2r.log"; file_format
|
||||
*.* >stdout; stdout_format
|
||||
|
||||
@@ -1,235 +0,0 @@
|
||||
from os import remove
|
||||
import os
|
||||
import random
|
||||
import subprocess
|
||||
import shutil
|
||||
import time
|
||||
|
||||
|
||||
def prepare_persistence_dir():
|
||||
os.system("mkdir -p build/persistence")
|
||||
|
||||
|
||||
class Neuron(object):
|
||||
process = 0
|
||||
profiler_process = None
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Start_Neuron(self):
|
||||
prepare_persistence_dir()
|
||||
self.process = subprocess.Popen(['./neuron', '--log'], cwd='build/')
|
||||
return self.process
|
||||
|
||||
def Stop_Neuron(self, remove_persistence_data=True):
|
||||
if self.profiler_process is not None:
|
||||
# wait for plotting
|
||||
time.sleep(5)
|
||||
self.process.kill()
|
||||
if remove_persistence_data:
|
||||
os.system("rm build/persistence/sqlite.db")
|
||||
prepare_persistence_dir()
|
||||
|
||||
def End_Neuron(self, process):
|
||||
process.kill()
|
||||
|
||||
def Remove_Persistence(self):
|
||||
os.system("rm build/persistence/sqlite.db")
|
||||
prepare_persistence_dir()
|
||||
|
||||
def Profile_Neuron(self, interval, result_dir):
|
||||
cmd = [
|
||||
'psrecord', str(self.process.pid),
|
||||
'--interval', str(interval),
|
||||
'--plot', result_dir + '/cpu_mem.svg'
|
||||
]
|
||||
|
||||
self.profiler_process = subprocess.Popen(cmd)
|
||||
|
||||
|
||||
class Tool(object):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Array_Len(self, array):
|
||||
return len(array)
|
||||
|
||||
|
||||
class Plugin(object):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Get_Plugin_By_Name(self, splugins, name):
|
||||
for plugin in splugins:
|
||||
if plugin['name'] == name:
|
||||
return plugin['id']
|
||||
return 0
|
||||
|
||||
def Plugin_With_Name_Sholud_Exist(self, splugins, name):
|
||||
assert 0 != self.Get_Plugin_By_Name(splugins, name)
|
||||
|
||||
def Plugin_With_Name_Should_Not_Exist(self, splugins, name):
|
||||
assert 0 == self.Get_Plugin_By_Name(splugins, name)
|
||||
|
||||
|
||||
class GrpConfig(object):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Get_Interval_In_Group_Config(self, gconfigs, gname):
|
||||
for gconfig in gconfigs[0]:
|
||||
if gconfig['name'] == gname:
|
||||
return gconfig['interval']
|
||||
return 0
|
||||
|
||||
def Group_Config_Size(self, gconfigs):
|
||||
size = 0
|
||||
for gconfig in gconfigs[0]:
|
||||
size = size + 1
|
||||
return size
|
||||
|
||||
def Get_Random_Group_Config(self, gconfigs):
|
||||
return random.choice(gconfigs)['name']
|
||||
|
||||
def Group_Config_Check(self, gconfigs, name, interval):
|
||||
ret = -1
|
||||
for gconfig in gconfigs:
|
||||
if gconfig['name'] == name:
|
||||
if gconfig['interval'] == int(interval):
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
def Get_Group_Config_By_Name(self, sgconfigs, name):
|
||||
for gconfig in sgconfigs:
|
||||
if gconfig['name'] == name:
|
||||
return gconfig['name']
|
||||
return 0
|
||||
|
||||
|
||||
class Node(object):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Get_Node_By_Name(self, snodes, name):
|
||||
for node in snodes:
|
||||
if node['name'] == name:
|
||||
return True
|
||||
return False
|
||||
|
||||
def Node_Should_Exist(self, snodes, name):
|
||||
assert True == self.Get_Node_By_Name(snodes, name)
|
||||
|
||||
def Node_Should_Not_Exist(self, snodes, name):
|
||||
assert False == self.Get_Node_By_Name(snodes, name)
|
||||
|
||||
def Node_With_Name_Should_Not_Exist(self, snodes, name):
|
||||
assert 0 == self.Get_Node_By_Name(snodes, name)
|
||||
|
||||
def Get_Random_Node(self, snodes):
|
||||
return random.choice(snodes)['id']
|
||||
|
||||
|
||||
class Tag(object):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Tag_Check(self, tags, name, type, group_config_name, attribute, address):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
if tag['name'] == name:
|
||||
if tag['type'] == int(type) and tag['group_config_name'] == group_config_name and tag['attribute'] == int(attribute) and tag['address'] == address:
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
def Tag_Find_By_Name(self, tags, name):
|
||||
for tag in tags:
|
||||
if tag['name'] == name:
|
||||
return tag
|
||||
|
||||
return None
|
||||
|
||||
|
||||
class Subscribe(object):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Subscribe_Check(self, groups, node_id, group_config_name):
|
||||
ret = -1
|
||||
for group in groups:
|
||||
if group['node_id'] == int(node_id) and group['group_config_name'] == group_config_name:
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
|
||||
class Read(object):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Compare_Tag_Value_Bool(self, tags, name, value):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
if tag['name'] == name:
|
||||
if isinstance(value, str):
|
||||
if (tag['value'] == False and value.lower() == "false" or
|
||||
tag['value'] == True and value.lower() == "true"):
|
||||
ret = 0
|
||||
elif tag['value'] == int(value):
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
def Compare_Tag_Value_Int(self, tags, name, value):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
if tag['name'] == name:
|
||||
if int(tag['value']) == int(value):
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
def Compare_Tag_Value_Float(self, tags, name, value):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
if tag['name'] == name:
|
||||
if float(tag['value']) <= float(value) + 0.1 and float(tag['value']) >= float(value) - 0.1:
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
def Compare_Tag_Value_String(self, tags, name, value):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
if tag['name'] == name:
|
||||
if tag['value'] == str(value):
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
def Compare_Tag_Value_Strings(self, tags, name, value):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
if tag['name'] == name:
|
||||
if "\"" + tag['value'] + "\"" == str(value):
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
def Check_Tag_Error(self, tags, name, value):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
if tag['name'] == name:
|
||||
if int(tag['error']) == int(value):
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
@@ -1,35 +0,0 @@
|
||||
# Functional test
|
||||
|
||||
Functional testing uses the robotframework automated testing framework, providing templates for each test case of the northbound APP and southbound DRIVER types.
|
||||
|
||||
Testing is divided into the following categories.
|
||||
|Test case|Description|
|
||||
|-----|----------|
|
||||
|Core interface test|Mainly including the addition, deletion, modification, query, subscription, and other operations of the HTTP API interface for core data(PLUGIN, NODE, GROUP, TAG)|
|
||||
|Southbound DRIVER test||
|
||||
|Northbound APP test||
|
||||
|Plugin specific test case|Such as OPC UA specific device discovery, can different devices be connected normally|
|
||||
|
||||
To run all functional testers
|
||||
|
||||
Enter the neuron/build directory.
|
||||
Install Mosquito software.
|
||||
```shell
|
||||
$ sudo apt-get install -y mosquitto
|
||||
```
|
||||
|
||||
Start the mosquitto server.
|
||||
```shell
|
||||
$ mosquitto -v &
|
||||
```
|
||||
|
||||
Install requirements.
|
||||
```shell
|
||||
$ python3 -m pip install -U pip
|
||||
$ python3 -m pip install -r ft/requirements.txt
|
||||
```
|
||||
|
||||
Run functional tests and generate test reports.
|
||||
```shell
|
||||
$ python3 -m robot --maxerroelines=600 -P ft/ -d ft/reports ft
|
||||
```
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0000",
|
||||
"state": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0000"
|
||||
}
|
||||
-60004
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"host": "127.0.0.1",
|
||||
"port": 60502,
|
||||
"connection_mode": 0
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"req-topic": "Neuron/req",
|
||||
"res-topic": "Neuron/resp",
|
||||
"ssl": "false",
|
||||
"host": "127.0.0.1",
|
||||
"port": 1883,
|
||||
"username": "",
|
||||
"password": ""
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"subscriptions": [
|
||||
{
|
||||
"sub_adapter_name": "mqtt-0000",
|
||||
"group_config_name": "group-0000",
|
||||
"src_adapter_name": "modbus-tcp-0000",
|
||||
"read_interval": 1000
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"plugins": []
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0000",
|
||||
"state": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0000"
|
||||
}
|
||||
-6004
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"host": "127.0.0.1",
|
||||
"port": 60502,
|
||||
"connection_mode": 0
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"req-topic": "Neuron/req",
|
||||
"res-topic": "Neuron/resp",
|
||||
"ssl": "false",
|
||||
"host": "127.0.0.1",
|
||||
"port": 1883,
|
||||
"username": "",
|
||||
"password": ""
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"subscriptions": [
|
||||
{
|
||||
"sub_adapter_name": "mqtt-0000",
|
||||
"group_config_name": "group-0000",
|
||||
"src_adapter_name": "modbus-tcp-0000",
|
||||
"read_interval": 1000
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"plugins": []
|
||||
}
|
||||
@@ -1,124 +0,0 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0000",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0001",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0002",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0003",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0004",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0005",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0006",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0007",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0008",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "modbus-tcp",
|
||||
"name": "modbus-tcp-0009",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0000",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0001",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0002",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0003",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0004",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0005",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0006",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0007",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0008",
|
||||
"state": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"plugin_name": "neuron-opcua-plugin",
|
||||
"name": "opcua-0009",
|
||||
"state": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0000"
|
||||
}
|
||||
-604
@@ -1,604 +0,0 @@
|
||||
{
|
||||
"tags": [
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus1",
|
||||
"attribute": 3,
|
||||
"address": "1!400001"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus2",
|
||||
"attribute": 3,
|
||||
"address": "1!400002"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus3",
|
||||
"attribute": 3,
|
||||
"address": "1!400003"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus4",
|
||||
"attribute": 3,
|
||||
"address": "1!400004"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus5",
|
||||
"attribute": 3,
|
||||
"address": "1!400005"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus6",
|
||||
"attribute": 3,
|
||||
"address": "1!400006"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus7",
|
||||
"attribute": 3,
|
||||
"address": "1!400007"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus8",
|
||||
"attribute": 3,
|
||||
"address": "1!400008"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus9",
|
||||
"attribute": 3,
|
||||
"address": "1!400009"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus10",
|
||||
"attribute": 3,
|
||||
"address": "1!400010"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus11",
|
||||
"attribute": 3,
|
||||
"address": "1!400011"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus12",
|
||||
"attribute": 3,
|
||||
"address": "1!400012"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus13",
|
||||
"attribute": 3,
|
||||
"address": "1!400013"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus14",
|
||||
"attribute": 3,
|
||||
"address": "1!400014"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus15",
|
||||
"attribute": 3,
|
||||
"address": "1!400015"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus16",
|
||||
"attribute": 3,
|
||||
"address": "1!400016"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus17",
|
||||
"attribute": 3,
|
||||
"address": "1!400017"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus18",
|
||||
"attribute": 3,
|
||||
"address": "1!400018"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus19",
|
||||
"attribute": 3,
|
||||
"address": "1!400019"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus20",
|
||||
"attribute": 3,
|
||||
"address": "1!400020"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus21",
|
||||
"attribute": 3,
|
||||
"address": "1!400021"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus22",
|
||||
"attribute": 3,
|
||||
"address": "1!400022"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus23",
|
||||
"attribute": 3,
|
||||
"address": "1!400023"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus24",
|
||||
"attribute": 3,
|
||||
"address": "1!400024"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus25",
|
||||
"attribute": 3,
|
||||
"address": "1!400025"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus26",
|
||||
"attribute": 3,
|
||||
"address": "1!400026"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus27",
|
||||
"attribute": 3,
|
||||
"address": "1!400027"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus28",
|
||||
"attribute": 3,
|
||||
"address": "1!400028"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus29",
|
||||
"attribute": 3,
|
||||
"address": "1!400029"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus30",
|
||||
"attribute": 3,
|
||||
"address": "1!400030"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus31",
|
||||
"attribute": 3,
|
||||
"address": "1!400031"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus32",
|
||||
"attribute": 3,
|
||||
"address": "1!400032"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus33",
|
||||
"attribute": 3,
|
||||
"address": "1!400033"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus34",
|
||||
"attribute": 3,
|
||||
"address": "1!400034"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus35",
|
||||
"attribute": 3,
|
||||
"address": "1!400035"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus36",
|
||||
"attribute": 3,
|
||||
"address": "1!400036"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus37",
|
||||
"attribute": 3,
|
||||
"address": "1!400037"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus38",
|
||||
"attribute": 3,
|
||||
"address": "1!400038"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus39",
|
||||
"attribute": 3,
|
||||
"address": "1!400039"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus40",
|
||||
"attribute": 3,
|
||||
"address": "1!400040"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus41",
|
||||
"attribute": 3,
|
||||
"address": "1!400041"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus42",
|
||||
"attribute": 3,
|
||||
"address": "1!400042"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus43",
|
||||
"attribute": 3,
|
||||
"address": "1!400043"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus44",
|
||||
"attribute": 3,
|
||||
"address": "1!400044"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus45",
|
||||
"attribute": 3,
|
||||
"address": "1!400045"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus46",
|
||||
"attribute": 3,
|
||||
"address": "1!400046"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus47",
|
||||
"attribute": 3,
|
||||
"address": "1!400047"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus48",
|
||||
"attribute": 3,
|
||||
"address": "1!400048"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus49",
|
||||
"attribute": 3,
|
||||
"address": "1!400049"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus50",
|
||||
"attribute": 3,
|
||||
"address": "1!400050"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus51",
|
||||
"attribute": 3,
|
||||
"address": "1!400051"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus52",
|
||||
"attribute": 3,
|
||||
"address": "1!400052"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus53",
|
||||
"attribute": 3,
|
||||
"address": "1!400053"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus54",
|
||||
"attribute": 3,
|
||||
"address": "1!400054"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus55",
|
||||
"attribute": 3,
|
||||
"address": "1!400055"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus56",
|
||||
"attribute": 3,
|
||||
"address": "1!400056"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus57",
|
||||
"attribute": 3,
|
||||
"address": "1!400057"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus58",
|
||||
"attribute": 3,
|
||||
"address": "1!400058"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus59",
|
||||
"attribute": 3,
|
||||
"address": "1!400059"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus60",
|
||||
"attribute": 3,
|
||||
"address": "1!400060"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus61",
|
||||
"attribute": 3,
|
||||
"address": "1!400061"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus62",
|
||||
"attribute": 3,
|
||||
"address": "1!400062"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus63",
|
||||
"attribute": 3,
|
||||
"address": "1!400063"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus64",
|
||||
"attribute": 3,
|
||||
"address": "1!400064"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus65",
|
||||
"attribute": 3,
|
||||
"address": "1!400065"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus66",
|
||||
"attribute": 3,
|
||||
"address": "1!400066"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus67",
|
||||
"attribute": 3,
|
||||
"address": "1!400067"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus68",
|
||||
"attribute": 3,
|
||||
"address": "1!400068"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus69",
|
||||
"attribute": 3,
|
||||
"address": "1!400069"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus70",
|
||||
"attribute": 3,
|
||||
"address": "1!400070"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus71",
|
||||
"attribute": 3,
|
||||
"address": "1!400071"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus72",
|
||||
"attribute": 3,
|
||||
"address": "1!400072"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus73",
|
||||
"attribute": 3,
|
||||
"address": "1!400073"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus74",
|
||||
"attribute": 3,
|
||||
"address": "1!400074"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus75",
|
||||
"attribute": 3,
|
||||
"address": "1!400075"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus76",
|
||||
"attribute": 3,
|
||||
"address": "1!400076"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus77",
|
||||
"attribute": 3,
|
||||
"address": "1!400077"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus78",
|
||||
"attribute": 3,
|
||||
"address": "1!400078"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus79",
|
||||
"attribute": 3,
|
||||
"address": "1!400079"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus80",
|
||||
"attribute": 3,
|
||||
"address": "1!400080"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus81",
|
||||
"attribute": 3,
|
||||
"address": "1!400081"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus82",
|
||||
"attribute": 3,
|
||||
"address": "1!400082"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus83",
|
||||
"attribute": 3,
|
||||
"address": "1!400083"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus84",
|
||||
"attribute": 3,
|
||||
"address": "1!400084"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus85",
|
||||
"attribute": 3,
|
||||
"address": "1!400085"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus86",
|
||||
"attribute": 3,
|
||||
"address": "1!400086"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus87",
|
||||
"attribute": 3,
|
||||
"address": "1!400087"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus88",
|
||||
"attribute": 3,
|
||||
"address": "1!400088"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus89",
|
||||
"attribute": 3,
|
||||
"address": "1!400089"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus90",
|
||||
"attribute": 3,
|
||||
"address": "1!400090"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus91",
|
||||
"attribute": 3,
|
||||
"address": "1!400091"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus92",
|
||||
"attribute": 3,
|
||||
"address": "1!400092"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus93",
|
||||
"attribute": 3,
|
||||
"address": "1!400093"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus94",
|
||||
"attribute": 3,
|
||||
"address": "1!400094"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus95",
|
||||
"attribute": 3,
|
||||
"address": "1!400095"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus96",
|
||||
"attribute": 3,
|
||||
"address": "1!400096"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus97",
|
||||
"attribute": 3,
|
||||
"address": "1!400097"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus98",
|
||||
"attribute": 3,
|
||||
"address": "1!400098"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus99",
|
||||
"attribute": 3,
|
||||
"address": "1!400099"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus100",
|
||||
"attribute": 3,
|
||||
"address": "1!400100"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0001",
|
||||
"adapter_name": "modbus-tcp-0000"
|
||||
}
|
||||
-604
@@ -1,604 +0,0 @@
|
||||
{
|
||||
"tags": [
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus101",
|
||||
"attribute": 3,
|
||||
"address": "1!400101"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus102",
|
||||
"attribute": 3,
|
||||
"address": "1!400102"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus103",
|
||||
"attribute": 3,
|
||||
"address": "1!400103"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus104",
|
||||
"attribute": 3,
|
||||
"address": "1!400104"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus105",
|
||||
"attribute": 3,
|
||||
"address": "1!400105"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus106",
|
||||
"attribute": 3,
|
||||
"address": "1!400106"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus107",
|
||||
"attribute": 3,
|
||||
"address": "1!400107"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus108",
|
||||
"attribute": 3,
|
||||
"address": "1!400108"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus109",
|
||||
"attribute": 3,
|
||||
"address": "1!400109"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus110",
|
||||
"attribute": 3,
|
||||
"address": "1!400110"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus111",
|
||||
"attribute": 3,
|
||||
"address": "1!400111"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus112",
|
||||
"attribute": 3,
|
||||
"address": "1!400112"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus113",
|
||||
"attribute": 3,
|
||||
"address": "1!400113"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus114",
|
||||
"attribute": 3,
|
||||
"address": "1!400114"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus115",
|
||||
"attribute": 3,
|
||||
"address": "1!400115"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus116",
|
||||
"attribute": 3,
|
||||
"address": "1!400116"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus117",
|
||||
"attribute": 3,
|
||||
"address": "1!400117"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus118",
|
||||
"attribute": 3,
|
||||
"address": "1!400118"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus119",
|
||||
"attribute": 3,
|
||||
"address": "1!400119"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus120",
|
||||
"attribute": 3,
|
||||
"address": "1!400120"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus121",
|
||||
"attribute": 3,
|
||||
"address": "1!400121"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus122",
|
||||
"attribute": 3,
|
||||
"address": "1!400122"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus123",
|
||||
"attribute": 3,
|
||||
"address": "1!400123"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus124",
|
||||
"attribute": 3,
|
||||
"address": "1!400124"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus125",
|
||||
"attribute": 3,
|
||||
"address": "1!400125"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus126",
|
||||
"attribute": 3,
|
||||
"address": "1!400126"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus127",
|
||||
"attribute": 3,
|
||||
"address": "1!400127"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus128",
|
||||
"attribute": 3,
|
||||
"address": "1!400128"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus129",
|
||||
"attribute": 3,
|
||||
"address": "1!400129"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus130",
|
||||
"attribute": 3,
|
||||
"address": "1!400130"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus131",
|
||||
"attribute": 3,
|
||||
"address": "1!400131"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus132",
|
||||
"attribute": 3,
|
||||
"address": "1!400132"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus133",
|
||||
"attribute": 3,
|
||||
"address": "1!400133"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus134",
|
||||
"attribute": 3,
|
||||
"address": "1!400134"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus135",
|
||||
"attribute": 3,
|
||||
"address": "1!400135"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus136",
|
||||
"attribute": 3,
|
||||
"address": "1!400136"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus137",
|
||||
"attribute": 3,
|
||||
"address": "1!400137"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus138",
|
||||
"attribute": 3,
|
||||
"address": "1!400138"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus139",
|
||||
"attribute": 3,
|
||||
"address": "1!400139"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus140",
|
||||
"attribute": 3,
|
||||
"address": "1!400140"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus141",
|
||||
"attribute": 3,
|
||||
"address": "1!400141"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus142",
|
||||
"attribute": 3,
|
||||
"address": "1!400142"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus143",
|
||||
"attribute": 3,
|
||||
"address": "1!400143"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus144",
|
||||
"attribute": 3,
|
||||
"address": "1!400144"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus145",
|
||||
"attribute": 3,
|
||||
"address": "1!400145"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus146",
|
||||
"attribute": 3,
|
||||
"address": "1!400146"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus147",
|
||||
"attribute": 3,
|
||||
"address": "1!400147"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus148",
|
||||
"attribute": 3,
|
||||
"address": "1!400148"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus149",
|
||||
"attribute": 3,
|
||||
"address": "1!400149"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus150",
|
||||
"attribute": 3,
|
||||
"address": "1!400150"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus151",
|
||||
"attribute": 3,
|
||||
"address": "1!400151"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus152",
|
||||
"attribute": 3,
|
||||
"address": "1!400152"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus153",
|
||||
"attribute": 3,
|
||||
"address": "1!400153"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus154",
|
||||
"attribute": 3,
|
||||
"address": "1!400154"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus155",
|
||||
"attribute": 3,
|
||||
"address": "1!400155"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus156",
|
||||
"attribute": 3,
|
||||
"address": "1!400156"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus157",
|
||||
"attribute": 3,
|
||||
"address": "1!400157"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus158",
|
||||
"attribute": 3,
|
||||
"address": "1!400158"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus159",
|
||||
"attribute": 3,
|
||||
"address": "1!400159"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus160",
|
||||
"attribute": 3,
|
||||
"address": "1!400160"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus161",
|
||||
"attribute": 3,
|
||||
"address": "1!400161"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus162",
|
||||
"attribute": 3,
|
||||
"address": "1!400162"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus163",
|
||||
"attribute": 3,
|
||||
"address": "1!400163"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus164",
|
||||
"attribute": 3,
|
||||
"address": "1!400164"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus165",
|
||||
"attribute": 3,
|
||||
"address": "1!400165"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus166",
|
||||
"attribute": 3,
|
||||
"address": "1!400166"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus167",
|
||||
"attribute": 3,
|
||||
"address": "1!400167"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus168",
|
||||
"attribute": 3,
|
||||
"address": "1!400168"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus169",
|
||||
"attribute": 3,
|
||||
"address": "1!400169"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus170",
|
||||
"attribute": 3,
|
||||
"address": "1!400170"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus171",
|
||||
"attribute": 3,
|
||||
"address": "1!400171"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus172",
|
||||
"attribute": 3,
|
||||
"address": "1!400172"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus173",
|
||||
"attribute": 3,
|
||||
"address": "1!400173"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus174",
|
||||
"attribute": 3,
|
||||
"address": "1!400174"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus175",
|
||||
"attribute": 3,
|
||||
"address": "1!400175"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus176",
|
||||
"attribute": 3,
|
||||
"address": "1!400176"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus177",
|
||||
"attribute": 3,
|
||||
"address": "1!400177"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus178",
|
||||
"attribute": 3,
|
||||
"address": "1!400178"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus179",
|
||||
"attribute": 3,
|
||||
"address": "1!400179"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus180",
|
||||
"attribute": 3,
|
||||
"address": "1!400180"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus181",
|
||||
"attribute": 3,
|
||||
"address": "1!400181"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus182",
|
||||
"attribute": 3,
|
||||
"address": "1!400182"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus183",
|
||||
"attribute": 3,
|
||||
"address": "1!400183"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus184",
|
||||
"attribute": 3,
|
||||
"address": "1!400184"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus185",
|
||||
"attribute": 3,
|
||||
"address": "1!400185"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus186",
|
||||
"attribute": 3,
|
||||
"address": "1!400186"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus187",
|
||||
"attribute": 3,
|
||||
"address": "1!400187"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus188",
|
||||
"attribute": 3,
|
||||
"address": "1!400188"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus189",
|
||||
"attribute": 3,
|
||||
"address": "1!400189"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus190",
|
||||
"attribute": 3,
|
||||
"address": "1!400190"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus191",
|
||||
"attribute": 3,
|
||||
"address": "1!400191"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus192",
|
||||
"attribute": 3,
|
||||
"address": "1!400192"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus193",
|
||||
"attribute": 3,
|
||||
"address": "1!400193"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus194",
|
||||
"attribute": 3,
|
||||
"address": "1!400194"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus195",
|
||||
"attribute": 3,
|
||||
"address": "1!400195"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus196",
|
||||
"attribute": 3,
|
||||
"address": "1!400196"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus197",
|
||||
"attribute": 3,
|
||||
"address": "1!400197"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus198",
|
||||
"attribute": 3,
|
||||
"address": "1!400198"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus199",
|
||||
"attribute": 3,
|
||||
"address": "1!400199"
|
||||
},
|
||||
{
|
||||
"type": 4,
|
||||
"name": "modbus200",
|
||||
"attribute": 3,
|
||||
"address": "1!400200"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"host":"127.0.0.1",
|
||||
"port":60502,
|
||||
"connection_mode":0
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0001"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0001",
|
||||
"adapter_name": "modbus-tcp-0001"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0002",
|
||||
"adapter_name": "modbus-tcp-0001"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0003",
|
||||
"adapter_name": "modbus-tcp-0001"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"host":"127.0.0.1",
|
||||
"port":60502,
|
||||
"connection_mode":0
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0002"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0001",
|
||||
"adapter_name": "modbus-tcp-0002"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0002",
|
||||
"adapter_name": "modbus-tcp-0002"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0003",
|
||||
"adapter_name": "modbus-tcp-0002"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0004",
|
||||
"adapter_name": "modbus-tcp-0002"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"host":"127.0.0.1",
|
||||
"port":60502,
|
||||
"connection_mode":0
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0003"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0001",
|
||||
"adapter_name": "modbus-tcp-0003"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0002",
|
||||
"adapter_name": "modbus-tcp-0003"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0003",
|
||||
"adapter_name": "modbus-tcp-0003"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0004",
|
||||
"adapter_name": "modbus-tcp-0003"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"host":"127.0.0.1",
|
||||
"port":60502,
|
||||
"connection_mode":0
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0004"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0001",
|
||||
"adapter_name": "modbus-tcp-0004"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0002",
|
||||
"adapter_name": "modbus-tcp-0004"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0003",
|
||||
"adapter_name": "modbus-tcp-0004"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0004",
|
||||
"adapter_name": "modbus-tcp-0004"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"host":"127.0.0.1",
|
||||
"port":60502,
|
||||
"connection_mode":0
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0005"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0001",
|
||||
"adapter_name": "modbus-tcp-0005"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0002",
|
||||
"adapter_name": "modbus-tcp-0005"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0003",
|
||||
"adapter_name": "modbus-tcp-0005"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0004",
|
||||
"adapter_name": "modbus-tcp-0005"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"params": {
|
||||
"host":"127.0.0.1",
|
||||
"port":60502,
|
||||
"connection_mode":0
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0000",
|
||||
"adapter_name": "modbus-tcp-0006"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0001",
|
||||
"adapter_name": "modbus-tcp-0006"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0002",
|
||||
"adapter_name": "modbus-tcp-0006"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"read_interval": 1000,
|
||||
"group_config_name": "group-0003",
|
||||
"adapter_name": "modbus-tcp-0006"
|
||||
}
|
||||
-1204
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user