Compare commits

...
500 Commits
Author SHA1 Message Date
fengzeroz 742f49d681 Merge pull request #2405 from hxy7yx/v2.10-1
[v2.10]allow float-tag to write integers
2025-03-18 11:25:48 +08:00
hxy7yx 9b606cfbb7 allow float-tag to write integers 2025-03-16 20:05:27 -07:00
fengzeroz 9d045d0f22 Merge pull request #2395 from ZhouBox/v2.10
[v2.10]otel:remove duplicate ctx
2025-02-21 13:47:05 +08:00
xiang.zhou 6dc4695974 otel:remove duplicate ctx 2025-02-21 13:26:27 +08:00
fengzeroz 17b89a8145 Merge pull request #2393 from fengzeroz/v2.10
version: 2.10.3
2025-02-21 10:51:55 +08:00
fengzero 402f30cd19 version: 2.10.3 2025-02-21 02:51:18 +00:00
fengzeroz c97f681876 Merge pull request #2386 from ZhouBox/v2.10
[v2.10]fixbug:schema file no match lastest
2025-02-18 14:43:39 +08:00
xiang.zhou f6ddec7e24 fixbug:schema file no match laster 2025-02-18 14:08:36 +08:00
fengzeroz 9f55272665 Merge pull request #2361 from ZhouBox/v2.10
[v2.10]otel:op
2025-01-08 15:23:30 +08:00
fengzeroz 43e6caf76a Merge pull request #2362 from fengzeroz/v2.10
api: comparison type
2025-01-08 15:10:41 +08:00
fengzero 1811c247c6 api: comparison type 2025-01-08 07:10:19 +00:00
xiang.zhou fbc909b4fb otel:op 2025-01-08 14:34:50 +08:00
fengzeroz 0d00efae57 Merge pull request #2359 from fengzeroz/v2.10
value size 1024
2025-01-08 11:31:35 +08:00
fengzero be39ad0e30 value size 1024 2025-01-08 03:31:09 +00:00
fengzeroz 9de63c033d Merge pull request #2358 from fengzeroz/v2.10
Revert "rm file plugin"
2025-01-08 11:29:49 +08:00
fengzero 30916516db Revert "rm file plugin"
This reverts commit 0e89e61d8c.
2025-01-08 03:23:29 +00:00
fengzeroz 4c564e0103 Merge pull request #2354 from ZhouBox/v2.10
[v2.10]fix:build error when using a higher version of the compiler
2024-12-27 15:05:40 +08:00
xiang.zhou f7a6599c4e fix:build error when using a higher version of the compiler 2024-12-27 14:49:37 +08:00
Xiang Zhou 3cb7053726 Merge pull request #2352 from ZhouBox/v2.10
[v2.10]plugin:using copy file replace rename
2024-12-26 11:05:28 +08:00
xiang.zhou c68215db59 plugin:using copy file replace rename 2024-12-26 10:42:42 +08:00
fengzeroz 143edf4e68 Merge pull request #2350 from fengzeroz/v2.10
version: 2.10.2
2024-12-24 10:46:13 +08:00
fengzero 2e881ed2a0 version: 2.10.2 2024-12-24 02:45:01 +00:00
fengzeroz 555241aa80 Merge pull request #2342 from ZhouBox/v2.10
[v2.10]key files into code, no include in package
2024-12-24 09:50:49 +08:00
fengzeroz 2c941f6701 Merge pull request #2346 from hxy7yx/v2.10-1
[v2.10]fix(modbus):clear recv buf before sending
2024-12-24 09:50:22 +08:00
hxy7yx 9169c57ab0 fix(modbus):clear recv buf before sending 2024-12-23 17:16:30 +08:00
xiang.zhou 5a688bdbe3 key files into code, no include in package 2024-12-23 10:51:58 +08:00
fengzeroz bb057f3abc Merge pull request #2323 from ZhouBox/v2.10
[v2.10]fix bug:data memory error
2024-11-28 09:36:59 +08:00
xiang.zhou 5b1cb93ef0 fix bug:data Memory error 2024-11-27 18:20:49 +08:00
fengzeroz a93950ebfc Merge pull request #2316 from hxy7yx/v2.10-2
[v2.10]fix(mqtt):separate MQTT and API for JSON(read resp)
2024-11-19 10:06:59 +08:00
hxy7yx 0c805c4a95 fix(mqtt):separate MQTT and API for JSON(read resp) 2024-11-19 09:36:49 +08:00
fengzeroz 2c885f6ff1 Merge pull request #2313 from fengzeroz/v2.10
version: 2.10.1
2024-11-11 17:07:37 +08:00
fengzero 23f7e51fcf version: 2.10.1 2024-11-11 09:04:43 +00:00
fengzeroz f3966f6c42 Merge pull request #2309 from fengzeroz/v2.10
conn buf size: 8192
2024-11-11 16:31:09 +08:00
fengzero d21a961d57 conn buf size: 8192 2024-11-11 08:29:36 +00:00
fengzeroz 244e4ea012 Merge pull request #2305 from fengzeroz/v2.10
ft array type
2024-11-08 09:59:06 +08:00
fengzero d6d72da7f3 ft array type 2024-11-08 01:58:30 +00:00
fengzeroz cb7e60f136 Merge pull request #2303 from fengzeroz/v2.10
fix value: array bool
2024-11-07 18:11:05 +08:00
fengzero 3c6524f041 fix value: array bool 2024-11-07 10:03:48 +00:00
fengzeroz 824888baac Merge pull request #2301 from fengzeroz/v2.10
json_value: array bool
2024-11-07 15:04:04 +08:00
fengzero 84edea1983 json_value: array bool 2024-11-07 06:56:35 +00:00
fengzeroz 765c54f188 Merge pull request #2298 from fengzeroz/v2.10
fix_value array
2024-11-07 13:49:48 +08:00
fengzero 0c059f46f4 fix_value array 2024-11-07 05:36:22 +00:00
fengzeroz ed4e5ac029 Merge pull request #2296 from fengzeroz/v2.10
db array
2024-11-07 11:42:10 +08:00
fengzero c29aaf5ef0 db array 2024-11-07 03:09:00 +00:00
fengzeroz b5a449bddb Merge pull request #2294 from fengzeroz/v2.10
array type
2024-11-07 10:42:30 +08:00
fengzero 44aada7d38 uint8 array 2024-11-07 02:33:30 +00:00
fengzero 720336d12d support array type 2024-11-07 02:19:46 +00:00
fengzeroz 9369ad6379 Merge pull request #2291 from fengzeroz/v2.10
check decimal/precision/bias when add tags
2024-11-06 14:16:02 +08:00
fengzero fb3fadf992 check decimal/precision/bias when add tags 2024-11-06 06:06:34 +00:00
fengzeroz d6c3336b3a Merge pull request #2287 from ZhouBox/v2.10
[v2.10]plugin:buffer overflow
2024-11-05 09:51:15 +08:00
xiang.zhou 3414bb03c7 plugin:buffer overflow 2024-11-05 08:44:49 +08:00
fengzeroz fc46dbf19f Merge pull request #2284 from fengzeroz/v2.10
mqtt port limit
2024-11-04 16:58:50 +08:00
fengzero c41a695f1d mqtt port limit 2024-11-04 08:54:31 +00:00
fengzeroz 3ca7bfa522 Merge pull request #2277 from fengzeroz/v2.10
update_im: not check subscribe
2024-11-01 11:44:39 +08:00
fengzero 43e81bb5e0 update_im: not check subscribe 2024-11-01 03:44:09 +00:00
fengzeroz f1972717b3 Merge pull request #2273 from hxy7yx/v2.10-2
[2.10]fix(write):correct write value verification
2024-11-01 11:39:07 +08:00
hxy7yx 57dd824eb4 fix(write):correct write value verification 2024-11-01 11:24:08 +08:00
fengzeroz fa91290ada Merge pull request #2262 from hxy7yx/v2.10-1
[v2.10]feat(modbus):support opentelemetry
2024-10-23 14:01:02 +08:00
hxy7yx 2f79a29416 feat(modbus):support opentelemetry 2024-10-22 14:14:40 +08:00
fengzeroz 8a6a8b6cdb Merge pull request #2258 from fengzeroz/v2.10
version: 2.10.0
2024-10-17 11:18:15 +08:00
fengzero 138079c2bc version: 2.10.0 2024-10-17 03:17:14 +00:00
fengzeroz 21f02e50eb Merge pull request #2255 from hxy7yx/v2.10-1
[v2.10]feat(modbus):support device degradation
2024-10-15 10:23:59 +08:00
fengzeroz 56f018497d Merge pull request #2256 from ZhouBox/v2.10
[v2.10]otel:support ns and add span status
2024-10-15 10:10:27 +08:00
xiang.zhou b37d8ab2dc otel:support ns and add span status 2024-10-15 09:10:23 +08:00
hxy7yx 9db92459d0 feat(modbus):support start address base 0 or 1 2024-10-14 17:13:25 +08:00
hxy7yx cfff223907 feat(modbus):supoort configuring endianness in node configuration 2024-10-14 14:07:40 +08:00
hxy7yx 9a63c81c02 feat(modbus):support device degradation 2024-10-14 10:57:41 +08:00
fengzeroz 7698962cc3 Merge pull request #2254 from fengzeroz/v2.10
version: 2.10.0-beta5
2024-10-12 14:51:07 +08:00
fengzero 1e0cf54999 version: 2.10.0-beta5 2024-10-12 06:50:29 +00:00
fengzeroz b24d3506d4 Merge pull request #2253 from ZhouBox/v2.10
[v2.10]otel:add api and use new api
2024-10-12 13:45:39 +08:00
xiang.zhou 32b7424333 otel:add api and use new api 2024-10-12 12:59:13 +08:00
fengzeroz a02390be0c Merge pull request #2249 from ZhouBox/v2.10
[v2.10]plugin:rm so and schema file when remove custom plugin &&  mqtt trace:add resp playload
2024-09-29 15:41:59 +08:00
xiang.zhou 18684d7e93 mqtt trace:add resp playload 2024-09-29 15:34:03 +08:00
fengzeroz 309610a685 Merge pull request #2248 from fengzeroz/v2.10
version: 2.10.0-beta4
2024-09-29 15:14:40 +08:00
xiang.zhou 6554e901b5 plugin:rm so and schema file when remove custom plugin 2024-09-29 15:14:23 +08:00
fengzero 0603eff1f2 version: 2.10.0-beta4 2024-09-29 07:11:39 +00:00
fengzeroz 54ecb33fcd Merge pull request #2246 from ZhouBox/v2.10
[v2.10]plugin:modify schema file path when update plugins
2024-09-29 14:00:48 +08:00
xiang.zhou 963acef468 plugin:modify schema file path when update plugins 2024-09-29 13:30:37 +08:00
fengzeroz 9ac6028408 Merge pull request #2244 from fengzeroz/v2.10
version: 2.10.0-beta3
2024-09-26 14:24:48 +08:00
fengzero 9859b2805f version: 2.10.0-beta3 2024-09-26 06:24:08 +00:00
fengzeroz 3442d4a814 Merge pull request #2243 from hxy7yx/v2.10-1
[v2.10]update mqtt schema
2024-09-26 14:14:24 +08:00
hxy7yx 2acdfcc7ef update mqtt schema 2024-09-26 13:34:56 +08:00
fengzeroz ac9d0011af Merge pull request #2241 from ZhouBox/v2.10
[v2.10]otel:mqtt trace and update uuid imple
2024-09-25 14:57:40 +08:00
xiang.zhou af75cf2dcc otel:mqtt trace and update uuid imple 2024-09-25 13:20:58 +08:00
fengzeroz af6bbf86ed Merge pull request #2240 from fengzeroz/v2.10
version: 2.10.0-beta2
2024-09-24 16:32:39 +08:00
fengzero 661ff5a323 version: 2.10.0-beta2 2024-09-24 08:32:05 +00:00
fengzeroz 5b220cae7d Merge pull request #2239 from ZhouBox/v2.10
[v2.10]otel:rm log
2024-09-24 15:31:09 +08:00
xiang.zhou 7a6dd51747 otel:rm log 2024-09-24 15:22:32 +08:00
fengzeroz 2fcdb66f6f Merge pull request #2237 from ZhouBox/v2.10
[v2.10]otel:del cache
2024-09-23 16:59:58 +08:00
xiang.zhou c11c51938c otel:del cache 2024-09-23 16:51:08 +08:00
fengzeroz e09099eedb Merge pull request #2236 from ZhouBox/v2.10
[v2.10]rm debug log
2024-09-23 16:33:05 +08:00
xiang.zhou 5cf1211437 rm debug log 2024-09-23 16:25:16 +08:00
fengzeroz 2d873cacc7 Merge pull request #2235 from fengzeroz/v2.10
version: 2.10.0-beta1
2024-09-23 15:29:53 +08:00
fengzero d8aa593b01 version: 2.10.0-beta1 2024-09-23 07:29:01 +00:00
fengzeroz 052f5c5f98 Merge pull request #2234 from ZhouBox/v2.10
[v2.10]feat(otel):add sample support
2024-09-23 15:26:10 +08:00
xiang.zhou 127c1a19c1 feat(otel):add sample support 2024-09-23 15:17:39 +08:00
fengzeroz c6ba1b114a Merge pull request #2231 from fengzeroz/v2.10
version: 2.10.0-alpha3
2024-09-20 11:22:42 +08:00
fengzero f06fd84ba0 version: 2.10.0-alpha3 2024-09-20 03:20:36 +00:00
fengzeroz 4a5d32604f Merge pull request #2230 from fengzeroz/v2.10
rm file plugin
2024-09-20 10:52:09 +08:00
fengzero 0e89e61d8c rm file plugin 2024-09-20 02:31:56 +00:00
fengzero d3957d7e32 fix str cpy 2024-09-20 02:01:18 +00:00
fengzeroz 2f2a1eb941 Merge pull request #2227 from fengzeroz/v2.10
meta size 8
2024-09-19 14:39:38 +08:00
fengzero abc9df7fc0 meta size 8 2024-09-19 06:38:29 +00:00
fengzeroz 1f67ee6a8e Merge pull request #2226 from fengzeroz/v2.10
version: 2.10.0-alpha2
2024-09-19 10:22:05 +08:00
fengzero bceb610b6a version: 2.10.0-alpha2 2024-09-19 02:21:26 +00:00
fengzeroz 664cd09024 Merge pull request #2221 from hxy7yx/v2.10-1
[2.10]fix(read paginate):handle only_write tags
2024-09-19 10:16:13 +08:00
hxy7yx f9f86e1f22 fix(read paginate):handle only_write tags 2024-09-18 15:59:50 +08:00
fengzeroz 2a92002eaf Merge pull request #2218 from fengzeroz/v2.10
ci: rm upload cov
2024-09-14 15:51:56 +08:00
fengzero 01a3f20799 ci: rm upload cov 2024-09-14 07:51:12 +00:00
fengzeroz 904a8dda0a Merge pull request #2217 from fengzeroz/v2.10
branch v2.10
2024-09-14 15:43:33 +08:00
fengzero 94bf6a0d40 branch v2.10 2024-09-14 07:33:36 +00:00
fengzeroz ae693ada96 Merge pull request #2216 from ZhouBox/main
otel:add new api and modify old api
2024-09-14 10:38:24 +08:00
xiang.zhou 8301028684 otel:add new api and modify old api 2024-09-14 10:28:03 +08:00
fengzeroz 0f3974e1b6 Merge pull request #2214 from hxy7yx/main-1
ft(mqtt):upload driver states
2024-09-14 10:23:19 +08:00
hxy7yx 402f8b48e9 ft(mqtt):upload driver states 2024-09-12 16:02:22 +08:00
fengzeroz 27d021b972 Merge pull request #2213 from fengzeroz/main
read/write file
2024-09-12 15:30:19 +08:00
fengzero 9c1baebb0d read/write file 2024-09-12 06:59:42 +00:00
fengzeroz 1f0355f8ca Merge pull request #2212 from hxy7yx/mqtt
feat(mqtt):upload driver states
2024-09-12 13:51:17 +08:00
fengzeroz 6dde07b35e Merge pull request #2211 from ZhouBox/main
feat(otel):comm rest api,mqtt,ekuiper
2024-09-12 10:51:46 +08:00
fengzeroz 2f74cba1a2 Merge pull request #2210 from hxy7yx/mqtt5
MQTT plugin defaults to v311, Azure&AWS fixes v311
2024-09-12 10:37:53 +08:00
hxy7yx e4f6409bfa feat(mqtt):upload driver states 2024-09-12 10:09:44 +08:00
xiang.zhou 8ff3dc5f16 otel:api modify 2024-09-11 16:41:12 +08:00
xiang.zhou 9095e3bd32 feat(otel):comm rest api,mqtt,ekuiper 2024-09-10 14:54:29 +08:00
hxy7yx f0638afa3b mqtt default version: V311 2024-09-10 11:23:10 +08:00
fengzeroz b91c10dedb Merge pull request #2204 from fengzeroz/main
ci: clang-format
2024-09-09 10:57:45 +08:00
fengzero 44ee1fcfd0 format 2024-09-09 02:54:13 +00:00
fengzero 3d60180098 ci: clang-format 2024-09-09 02:52:51 +00:00
fengzeroz 85b5211958 Merge pull request #2201 from hxy7yx/mqtt5
MQTT default version v5
2024-09-09 10:38:57 +08:00
hxy7yx a64e844349 MQTT default version v5 2024-09-06 13:50:03 +08:00
fengzeroz bcbdeb3433 Merge pull request #2200 from hxy7yx/mqtt5
mqtt supports otel
2024-09-06 10:07:54 +08:00
hxy7yx ef2099414e mqtt supports otel 2024-09-05 11:56:31 +08:00
fengzeroz 2eb8801db2 Merge pull request #2199 from ZhouBox/main
feat(otel):new api
2024-09-05 10:41:29 +08:00
fengzeroz 8e4c5eba39 Merge pull request #2198 from hxy7yx/main-1
feat(mqtt): support mqtt v5 for otel tracing
2024-09-05 10:24:29 +08:00
xiang.zhou b17274917c feat(otel):new api 2024-09-04 17:41:31 +08:00
hxy7yx 4981173cee feat(mqtt): support mqtt v5 for otel tracing 2024-09-04 16:46:52 +08:00
fengzeroz 79f6c300cb Merge pull request #2197 from emqx/QQDQ-patch-1
Update README.md
2024-09-03 16:38:32 +08:00
QQDQ 7f981841b8 Update README.md 2024-09-03 16:18:27 +08:00
fengzeroz d8f51626bf Merge pull request #2195 from ZhouBox/main
add api about doing with basic data type
2024-08-30 16:56:39 +08:00
fengzeroz 7f63995367 Merge pull request #2194 from ZhouBox/feat-otel
feat(otel):add traces
2024-08-30 15:32:06 +08:00
xiang.zhou d4b2feebe4 add api about doing with basic data type 2024-08-29 14:28:41 +08:00
xiang.zhou fe772b6e63 feat(otel):add traces 2024-08-29 10:50:48 +08:00
fengzeroz 2364e82861 Merge pull request #2184 from hxy7yx/main-1
chore(mqtt): add reason for connection & disconnection
2024-08-20 16:20:08 +08:00
hxy7yx 49a1f7891e chore(mqtt): add reason for connection & disconnection 2024-08-20 14:40:02 +08:00
fengzeroz cbb3f3e8b5 Merge pull request #2176 from hxy7yx/main-1
guard against empty mqtt subscription topic
2024-08-15 10:03:25 +08:00
hxy7yx 2b162b8479 guard against empty mqtt subscription topic 2024-08-14 14:46:49 +08:00
fengzeroz 2f13b1f97a Merge pull request #2173 from hxy7yx/main-1
fix(modbus):clear value when update
2024-08-07 10:11:39 +08:00
fengzeroz 824cb12678 Merge pull request #2171 from eeff/main
feat(mqtt): remove mqtt cache db when node deleted
2024-08-07 10:11:19 +08:00
hxy7yx 7a7ff99e60 fix(modbus):clear value when update 2024-08-02 17:14:52 +08:00
eeff bd0f786406 feat(mqtt): remove mqtt cache db when node deleted 2024-08-01 15:50:49 +08:00
fengzeroz 333d4398c6 Merge pull request #2168 from hxy7yx/main-2
feat(modbus tcp):configure optional message header verification
2024-07-29 14:31:12 +08:00
fengzeroz ac664f90fc Merge pull request #2150 from hxy7yx/main-1
feat:core subscription supports filtering error tags
2024-07-29 14:30:13 +08:00
hxy7yx 5eb09ce853 feat(modbus tcp):configure optional message header verification 2024-07-29 10:58:35 +08:00
fengzeroz b74e23fc14 Merge pull request #2167 from eeff/main
chore: clean setting description
2024-07-29 10:00:41 +08:00
eeff cc84c7f620 chore(mqtt): clean setting description 2024-07-28 23:25:09 +08:00
eeff 5cf55b8a71 chore(modbus): clean setting description 2024-07-28 23:19:54 +08:00
hxy7yx 8e3ee3fde4 feat:core subscription supports filtering error messages 2024-07-26 15:30:51 +08:00
fengzeroz 384676b522 Merge pull request #2166 from fengzeroz/main
Revert "cyclic reporting does not detect change"
2024-07-26 15:24:39 +08:00
fengzero c107ea22fc Revert "cyclic reporting does not detect change"
This reverts commit b819021a6f.
2024-07-26 07:22:35 +00:00
fengzeroz 59f814134f Merge pull request #2164 from fengzeroz/main
2.10.0 alpha
2024-07-24 16:07:00 +08:00
fengzero 0c644d39e7 fix plugin ut 2024-07-24 08:00:47 +00:00
fengzeroz 4b333976a7 Merge pull request #2163 from ZhouBox/main
feat(rest):add api about configure status
2024-07-24 13:59:30 +08:00
fengzero b819021a6f cyclic reporting does not detect change 2024-07-24 05:58:28 +00:00
fengzero 81a742ac00 2.10.0 alpha 2024-07-24 05:57:01 +00:00
xiang.zhou 0108a36236 feat(rest):add api about configure status 2024-07-24 13:29:17 +08:00
fengzeroz c2656ae4f0 Merge pull request #2159 from hxy7yx/main-3
fix:correction of field name length detection
2024-07-24 10:25:00 +08:00
fengzeroz f831468ade Merge pull request #2155 from hxy7yx/main-2
fix(modbus):reconnect when recv error messages
2024-07-24 10:24:22 +08:00
hxy7yx e108f9d543 fix:correction of field name length detection 2024-07-23 17:24:39 +08:00
hxy7yx 824f856b85 fix(modbus):reconnect when recv error messages 2024-07-23 16:30:03 +08:00
fengzeroz d653145ac8 Merge pull request #2142 from hxy7yx/main-1
refactor(read paginate): optimize efficiency without filtering errors
2024-07-18 10:12:13 +08:00
hxy7yx 216d02e35f refactor(read paginate): optimize efficiency without filtering errors 2024-07-15 14:35:05 +08:00
fengzeroz c723a113dc Merge pull request #2141 from gc87/scan-tags
fix(scan): add ctx field to scan ft api
2024-07-15 14:21:09 +08:00
gc87 1acd50c821 fix(scan): add ctx field to scan api 2024-07-15 13:58:16 +08:00
fengzeroz cdd4ff8ae0 Merge pull request #2137 from gc87/scan-tags
fix(scan): rm tags type field
2024-07-12 09:42:58 +08:00
gc87 b7f6512b84 fix(scan): rm tags type field 2024-07-11 17:04:22 +08:00
fengzeroz 0624437afb Merge pull request #2132 from gc87/scan-tags
fix(scan): add ctx field
2024-07-10 16:02:53 +08:00
fengzeroz 34bfac36af Merge pull request #2133 from eeff/main
fix(core): set metric to init value when reset
2024-07-10 10:08:48 +08:00
gc87 3f72cfbed2 fix(scan): tag type 2024-07-09 23:02:10 +08:00
eeff 3e0ba09495 fix(core): set metric to init value when reset 2024-07-09 15:17:58 +08:00
fengzeroz 1c8bac3721 Merge pull request #2130 from eeff/main
fix(core): event loop check stop flag
2024-07-09 11:33:07 +08:00
gc87 005439c1da fix(scan): add ctx field 2024-07-08 17:16:56 +08:00
eeff 501d68a78e fix(core): event loop check stop flag 2024-07-08 10:17:39 +08:00
fengzeroz 5e25f90556 Merge pull request #2120 from eeff/main
chore: add error code `NEU_ERR_BODY_TOO_BIG`
2024-07-01 09:56:57 +08:00
eeff 12c93d175c chore: add error code NEU_ERR_BODY_TOO_BIG 2024-06-27 00:03:01 +08:00
fengzeroz 1ebafcc429 Merge pull request #2116 from hxy7yx/main-2
refactor(modbus)
2024-06-25 14:21:37 +08:00
fengzeroz 6c16dae529 Merge pull request #2105 from hxy7yx/main-1
modbus: support read sync
2024-06-25 14:20:55 +08:00
hxy7yx 6c508f9f00 refactor(modbus) 2024-06-21 16:18:57 +08:00
fengzeroz 9b861fadc8 Merge pull request #2114 from ZhouBox/main
add notice log about node,group,sub
2024-06-21 10:09:14 +08:00
xiang.zhou 40b87e1605 add notice log about node,group,sub 2024-06-18 17:00:00 +08:00
fengzeroz cdf3b4af31 Merge pull request #2106 from hxy7yx/main-2
rename precision when read floating-tag
2024-06-18 13:59:47 +08:00
hxy7yx cf6bf33a2c rename precision when read floating-tag 2024-06-18 13:46:54 +08:00
hxy7yx 997ac04c63 modbus: support read sync 2024-06-17 15:59:05 +08:00
fengzeroz e0ea70ddc6 Merge pull request #2099 from hxy7yx/main-2
fix(test read): stop group timer while testing
2024-06-14 15:29:51 +08:00
fengzeroz 412003f9db Merge pull request #2101 from hxy7yx/main-1
fix(manager): exit after sending uninit msg failed
2024-06-14 15:28:39 +08:00
hxy7yx 18e0d51373 fix(manager): exit even if send uninit msg failed 2024-06-14 14:58:42 +08:00
hxy7yx 12d53feb9c fix(test read): stop group timer while testing 2024-06-14 11:12:29 +08:00
fengzeroz ee589eeb7f Merge pull request #2094 from ZhouBox/main
display optimization for float and double types when setting bias
2024-06-14 09:52:25 +08:00
fengzeroz 0ee05461fd Merge pull request #2092 from eeff/main
fix(core): read_report_group add tag bias
2024-06-14 09:51:57 +08:00
eeff cd4daa52b9 fix(core): read_report_group add tag bias 2024-06-13 14:57:13 +08:00
xiang.zhou 682b499279 display optimization for float and double types when setting bias 2024-06-13 14:55:19 +08:00
fengzeroz a872ad3460 Merge pull request #2089 from hxy7yx/main-1
fix(write): write *.0
2024-06-13 13:46:06 +08:00
hxy7yx 62de43327a fix(write): write *.0 2024-06-13 10:54:50 +08:00
fengzeroz 492bafa0d7 Merge pull request #2087 from hxy7yx/main-1
ft(test read)
2024-06-12 09:40:52 +08:00
fengzeroz 5a548ff634 Merge pull request #2088 from eeff/main
feat(core): add `interval` field to struct neu_plugin_group
2024-06-12 09:40:36 +08:00
eeff d8f7980586 feat(core): add interval field to struct neu_plugin_group 2024-06-12 01:02:39 +08:00
hxy7yx 71216aeceb ft(test read) 2024-06-11 17:57:19 +08:00
fengzeroz f51e8817ff Merge pull request #2086 from gc87/jwt-exp
fix(jwt): add jwt encode for test
2024-06-11 16:15:35 +08:00
gc87 46ba471c9b fix(jwt): add jwt encode for test 2024-06-11 15:33:04 +08:00
fengzeroz 6689c31f72 Merge pull request #2076 from hxy7yx/main-1
feat(core & modbus tcp): test read tag
2024-06-11 14:35:42 +08:00
fengzeroz 6eaf49957b Merge pull request #2082 from gc87/jwt-exp
fix(jwt): replacing expired tokens
2024-06-11 14:33:22 +08:00
gc87 14aeaa0688 fix(jwt): replacing expired tokens 2024-06-11 14:17:36 +08:00
fengzeroz a09b0f773c Merge pull request #2080 from ZhouBox/main
async queue:add api about length
2024-06-07 15:44:00 +08:00
xiang.zhou 64fe2e1994 async queue:add api about length 2024-06-07 15:24:55 +08:00
hxy7yx 5925bf257a feat(core & modbus tcp): test read tag 2024-06-07 14:51:25 +08:00
fengzeroz 4b0532fedc Merge pull request #2054 from hxy7yx/main-3
feat(read):support pagination and filter(error) when reading tags
2024-06-05 15:42:21 +08:00
fengzeroz f5a3e0fc3b Merge pull request #2070 from fengzeroz/main
set node start if loading node state is ready
2024-06-05 14:54:18 +08:00
fengzero f9770052c2 fix init msg state init 2024-06-05 06:36:13 +00:00
fengzero 13a953a8cb start node if node state is ready 2024-06-05 06:30:26 +00:00
fengzeroz 584cd3c77d Merge pull request #2067 from eeff/main
feat(mqtt): schema client-id and write req/resp topic default value
2024-06-05 10:43:26 +08:00
eeff 2a686ed283 feat(mqtt): schema client-id and write req/resp topic default value 2024-06-05 10:40:02 +08:00
hxy7yx 411cdc4f02 feat(read):support pagination and filter(error) when reading tags 2024-06-04 15:53:12 +08:00
fengzeroz a5f912b658 Merge pull request #2058 from ZhouBox/main
display optimization for float and double types
2024-06-03 17:24:14 +08:00
xiang.zhou c768652274 display optimization for float and double types 2024-06-03 17:09:24 +08:00
fengzeroz d71610da30 Merge pull request #2050 from hxy7yx/main-3
fix: memory leak
2024-05-31 15:12:56 +08:00
hxy7yx c7c60e461d fix: memory leak 2024-05-31 14:40:22 +08:00
fengzeroz 085f9dcc33 Merge pull request #2044 from fengzeroz/main
fix(update): update error when value is error
2024-05-30 11:24:24 +08:00
fengzero ac779c9f87 fix(update): update error when value is error 2024-05-30 03:11:27 +00:00
fengzeroz bcf21ab507 Merge pull request #2039 from hxy7yx/main-1
check and handle NaN for float and double in read and report operations
2024-05-29 17:29:50 +08:00
hxy7yx 8b5bd7f92a check and handle NaN for float and double in read and report operations 2024-05-29 16:55:02 +08:00
fengzeroz 859c84ceae Merge pull request #2033 from hxy7yx/main-3
metric: reset send&recv bytes when restart node
2024-05-29 14:48:14 +08:00
fengzeroz c48ce41298 Merge pull request #2035 from eeff/main
fix: update trans_data metric only when plugin is started
2024-05-29 14:47:36 +08:00
eeff ffd149a970 fix(mqtt): update trans_data metric only when plugin is started 2024-05-29 14:27:52 +08:00
eeff 2b3f2f94d4 fix(ekuiper): update trans_data metric only when plugin is started 2024-05-29 14:27:09 +08:00
hxy7yx d851eb1ad5 metric: reset send&recv bytes when restart node 2024-05-29 13:35:05 +08:00
fengzeroz 0c346d0542 Merge pull request #2008 from gc87/scan-tags
feat: add scan tags reqest & response
2024-05-24 09:48:44 +08:00
fengzeroz 4c73f227f7 Merge pull request #2013 from ZhouBox/main
driver:change log level
2024-05-24 09:48:12 +08:00
fengzeroz 75ef81e21c Merge pull request #2016 from hxy7yx/main-2
fix(write): write *.0
2024-05-24 09:47:56 +08:00
hxy7yx eb243d6cfc feat(read): response precision when read float or double tags 2024-05-23 17:55:38 +08:00
hxy7yx c361580254 fix(write): write *.0 2024-05-23 12:01:34 +08:00
xiang.zhou 22ddf97eaa driver:change log level 2024-05-21 15:20:47 +08:00
gc87 1d9d5b2181 feat: add scan tags api 2024-05-20 17:55:55 +08:00
gc87 0effd044d2 feat: add scan tags reqest & response 2024-05-20 16:01:53 +08:00
fengzeroz 7461693cff Merge pull request #2004 from eeff/main
feat(aws-iot): remove config default value
2024-05-17 15:52:37 +08:00
eeff 8dd2d1d9c0 feat(aws-iot): remove config default value 2024-05-17 15:43:22 +08:00
fengzeroz 86e2ed532f Merge pull request #1992 from hxy7yx/main-1
check if the written value conforms to the standard
2024-05-17 10:21:26 +08:00
fengzeroz d1ef1c06ab Merge pull request #1996 from ZhouBox/main
prgfile:add del flag
2024-05-16 14:15:55 +08:00
xiang.zhou 20855be480 prgfile:add del flag 2024-05-16 13:16:45 +08:00
hxy7yx 0b19e0b17b check if the written value conforms to the standard 2024-05-15 17:04:29 +08:00
fengzeroz baf1cbe3d4 Merge pull request #1991 from ZhouBox/main
prgfile:modify msg struct about upload prgfile
2024-05-15 16:35:09 +08:00
xiang.zhou 7183e37d2e prgfile:modify msg struct about upload prgfile 2024-05-15 16:27:41 +08:00
fengzeroz 6bac9517a6 Merge pull request #1990 from ZhouBox/main
dlclose dl when release version
2024-05-15 16:17:44 +08:00
xiang.zhou 11272bcc2a dlclose dl when release version 2024-05-15 15:53:06 +08:00
fengzeroz c86adfb1a9 Merge pull request #1984 from ZhouBox/main
fixbug:no close dl when del node
2024-05-14 16:58:35 +08:00
xiang.zhou df1c7f38e7 check handle 2024-05-14 15:58:57 +08:00
xiang.zhou 7a10c697d0 fixbug:no close dl when del node 2024-05-14 15:38:32 +08:00
fengzeroz 2e7c046116 Merge pull request #1978 from hxy7yx/main-1
ft:test launch configuration
2024-05-10 13:54:47 +08:00
hxy7yx c3309a5a29 ft:test launch configuration 2024-05-09 10:31:41 +08:00
fengzeroz 263c996991 Merge pull request #1977 from eeff/main
test(azure): add ft
2024-05-09 09:45:18 +08:00
eeff 68ca03f197 ci: Azure IoT plugin codecov report 2024-05-07 15:35:40 +08:00
eeff c39747b585 test(azure): add ft 2024-05-07 14:26:52 +08:00
eeff f2d851a5fa fix(azure): clean configuration keys 2024-05-07 14:26:52 +08:00
eeff ea8369ae98 feat(core): mqtt client subscription support wildcard 2024-05-07 14:26:52 +08:00
fengzeroz 3e1e6d0269 Merge pull request #1976 from hxy7yx/main-1
increase test coverage
2024-05-07 09:43:55 +08:00
hxy7yx f9718bc63a increase test coverage 2024-05-06 18:13:48 +08:00
fengzeroz dc041d102c Merge pull request #1966 from eeff/main
feat: add Azure IoT plugin
2024-05-06 09:46:47 +08:00
fengzeroz 8d6696fb78 Merge pull request #1972 from ZhouBox/main
fixbug:incomplete value print
2024-05-06 09:44:48 +08:00
fengzeroz b7205e1309 Merge pull request #1973 from eeff/eeff/dev
fix(restful): invalid free
2024-05-06 09:43:52 +08:00
eeff 8779c6558f fix(restful): invalid free 2024-04-30 16:27:06 +08:00
xiang.zhou bde8459aa2 fixbug:incomplete value print 2024-04-30 16:23:15 +08:00
eeff 19c44a0735 feat(azure): handle data upload 2024-04-29 16:07:43 +08:00
fengzeroz bbbb7c2b1a Merge pull request #1965 from hxy7yx/main-2
increase test coverage
2024-04-29 15:55:31 +08:00
eeff 8b9d275834 feat: add Azure IoT plugin 2024-04-29 15:06:03 +08:00
fengzeroz d724c52cb2 Merge pull request #1963 from eeff/main
fix: reset metrics when node stopped
2024-04-29 09:43:44 +08:00
hxy7yx 407f650fe1 increase test coverage 2024-04-28 17:35:38 +08:00
eeff 0ac0e0aa86 fix: start/stop group timer when driver started/stopped 2024-04-26 15:40:37 +08:00
eeff 2350cb87b0 feat: add metric type no reset flag 2024-04-26 15:34:24 +08:00
fengzeroz 1e30eea3f6 Merge pull request #1958 from fengzeroz/main
change update log level
2024-04-24 14:34:36 +08:00
fengzero 94023446c7 change update log level 2024-04-24 05:50:19 +00:00
fengzeroz 600e5ee56f Merge pull request #1956 from hxy7yx/main-1
test(tag):fix utf8 check & improve ft cov
2024-04-23 13:43:55 +08:00
fengzeroz f0d19af977 Merge pull request #1957 from eeff/main
chore: add AWS IoT to default plugins
2024-04-23 13:43:20 +08:00
eeff 0b4fed4693 chore: add AWS IoT to default plugins 2024-04-23 11:44:43 +08:00
hxy7yx 4c10678318 test(tag):fix utf8 check & improve ft cov 2024-04-22 15:07:43 +08:00
fengzeroz 719653c132 Merge pull request #1950 from hxy7yx/main-1
ft:add api for modbus address_base configuration
2024-04-22 09:38:13 +08:00
fengzeroz 84e0a6554c Merge pull request #1952 from hxy7yx/main-2
locating core dump files
2024-04-22 09:37:54 +08:00
fengzeroz 24789945d5 Merge pull request #1951 from eeff/main
feat(aws-iot): add aws-iot plugin
2024-04-22 09:36:25 +08:00
hxy7yx 8eb945e5f9 locating core dump files, adapting to NeuronEX 2024-04-19 17:56:51 +08:00
hxy7yx ee6199f2e5 ft:add api for modbus address_base configuration 2024-04-18 16:38:18 +08:00
eeff 27113aaeb4 feat(aws-iot): add aws-iot plugin 2024-04-17 18:25:53 +08:00
eeff ad5fa417ca refactor(mqtt): split plugin interface callback into separate translation unit 2024-04-16 15:27:12 +08:00
fengzeroz 7c611fd151 Merge pull request #1946 from eeff/main
fix(restful): read api invalid free
2024-04-15 15:35:34 +08:00
fengzeroz 0cc9631c9d Merge pull request #1944 from hxy7yx/main-2
remove the default values that carry variables in the schema
2024-04-15 11:38:57 +08:00
fengzeroz 8e0cc62c29 Merge pull request #1943 from hxy7yx/main-1
Revert "check if the written value conforms to the standard"
2024-04-15 11:38:13 +08:00
eeff 020026ae04 fix(restful): read api invalid free 2024-04-15 11:29:38 +08:00
hxy7yx 2a05178800 remove the default values that carry variables in the schema 2024-04-15 11:12:43 +08:00
hxy7yx 245a019082 Revert "check if the written value conforms to the standard"
This reverts commit d9157687ed.
2024-04-15 10:41:58 +08:00
fengzeroz 35d34721a4 Merge pull request #1941 from eeff/main
feat(ekuiper): support write multiple tags
2024-04-12 15:19:33 +08:00
eeff 173aa17eb9 test: add eKuiper write tags ft 2024-04-12 09:44:08 +08:00
eeff 0b67a088c1 feat(ekuiper): support write multiple tags 2024-04-12 09:44:08 +08:00
fengzeroz 6c43d599bc Merge pull request #1936 from eeff/main
feat(core): add tag bias field
2024-04-11 10:08:08 +08:00
eeff 1ed9a7d595 test: add ft for reading tag bias value 2024-04-10 14:42:36 +08:00
eeff 43aec2e5f2 feat(core): return bias tag value if needed 2024-04-10 14:42:36 +08:00
eeff 96bebcd81e test: tag bias ft 2024-04-10 14:42:36 +08:00
eeff bb793f6e14 feat(core): add tag bias field 2024-04-10 14:42:36 +08:00
eeff 7f9aa4cfc8 feat(persist): persist tag bias field 2024-04-10 14:42:36 +08:00
eeff 76914637c9 feat(persist): add SQL schema for tag bias field 2024-04-10 14:42:36 +08:00
fengzeroz 6f0ff2a862 Merge pull request #1937 from hxy7yx/main-1
determine whether tag(string) set endianness
2024-04-10 13:42:39 +08:00
hxy7yx 94d4a8db6e determine whether tag(string) set endianness 2024-04-10 11:47:59 +08:00
Rory 5d26cb1d77 ci: add code cov token in workflow (#1940)
Signed-off-by: Rory Z <16801068+Rory-Z@users.noreply.github.com>
2024-04-10 10:33:37 +08:00
fengzeroz 5f20e6dde3 Merge pull request #1932 from hxy7yx/main-1
supoort configuring endianness in node configuration
2024-03-29 16:57:31 +08:00
hxy7yx fbff7e68fd supoort configuring endianness in node configuration 2024-03-29 16:51:39 +08:00
fengzeroz 05d3e324d7 Merge pull request #1929 from hxy7yx/main-1
determine whether tag set endianness
2024-03-29 14:40:53 +08:00
hxy7yx c09b401e4a determine whether tag set endianness 2024-03-29 13:40:53 +08:00
fengzeroz 3d2d169935 Merge pull request #1924 from eeff/main
fix(ekuiper): check received aio NULL msg
2024-03-27 10:02:36 +08:00
eeff f831e71ad3 fix(ekuiper): check received aio data race 2024-03-26 10:29:47 +08:00
fengzeroz 6a13aeed8a Merge pull request #1923 from fengzeroz/main
ft time type
2024-03-25 10:19:45 +08:00
fengzero 76ce5acaf3 ft time type 2024-03-25 02:17:06 +00:00
fengzeroz 0c2c4fa920 Merge pull request #1919 from eeff/main
feat(core): add NEU_TYPE_TIME and NEU_TYPE_DATA_AND_TIME
2024-03-22 16:27:32 +08:00
eeff e76d24cd15 feat(persist): add SQL schema for NEU_TYPE_TIME/NEU_TYPE_DATA_AND_TIME 2024-03-22 16:08:15 +08:00
eeff a98e9ae904 feat(core): add NEU_TYPE_TIME and NEU_TYPE_DATA_AND_TIME 2024-03-22 16:08:15 +08:00
fengzeroz ce1e53d653 Merge pull request #1916 from fengzeroz/main
fix(conn): check offset reset
2024-03-21 09:54:27 +08:00
fengzero bf5fbdb31d fix(conn): check offset reset 2024-03-21 01:37:23 +00:00
fengzeroz ef991d9a6e Merge pull request #1913 from eeff/main
feat(modbus_tty_simlator): enhance command line interface
2024-03-19 15:45:58 +08:00
eeff 3eba902519 feat(modbus_tty_simlator): enhance command line interface 2024-03-19 11:53:41 +08:00
fengzeroz 7f3b698f69 Merge pull request #1910 from hxy7yx/main-1
move MAX_GROUPS check to validate function
2024-03-15 13:49:46 +08:00
hxy7yx 68d5bcec71 move MAX_GROUPS check to validate function 2024-03-15 12:03:53 +08:00
fengzeroz 5019983ce3 Merge pull request #1905 from hxy7yx/main-1
plugin(modbus): fix invalid message check
2024-03-14 16:57:11 +08:00
hxy7yx afd72ce259 plugin(modbus): fix invalid message check 2024-03-14 16:52:41 +08:00
fengzeroz 840f1aac3d Merge pull request #1900 from hxy7yx/main-1
plugin(modbus): fix modbus rtu slave check
2024-03-13 16:37:13 +08:00
hxy7yx 1d5d6de72c plugin(modbus): fix modbus rtu slave check 2024-03-13 16:15:09 +08:00
fengzeroz 7039ec3055 Merge pull request #1899 from hxy7yx/main-1
ft: move robotframework tests to pytest
2024-03-13 10:29:38 +08:00
hxy7yx 2eb52906e9 ft: move robotframework tests to pytest 2024-03-12 13:37:47 +08:00
fengzeroz c14b1e96e6 Merge pull request #1893 from hxy7yx/main-2
fix(add gtags): correct tag count when tag name conflict
2024-03-08 17:48:21 +08:00
hxy7yx d37bb5aa50 fix(add gtags): correct tag count when tag name conflict 2024-03-08 17:38:45 +08:00
fengzeroz 8ad0fdcf73 Merge pull request #1885 from eeff/main
fix(core): eliminate NEU_REQ_ADD_DRIVERS request data race
2024-03-08 13:52:23 +08:00
eeff 5478fd0fc5 fix(core): eliminate NEU_REQ_ADD_DRIVERS request data race 2024-03-08 11:34:26 +08:00
fengzeroz 74b45c91ee Merge pull request #1882 from eeff/main
fix(core): persist group when adding gtags
2024-03-07 17:34:01 +08:00
eeff 79fca4b18f fix(core): persist group when adding gtags 2024-03-07 17:30:47 +08:00
fengzeroz 142f31beff Merge pull request #1878 from eeff/main
feat(core): set domain socket to block mode and 1s timeout
2024-03-07 11:08:14 +08:00
eeff f17ab92e1f feat(core): set domain socket to block mode and 1s timeout 2024-03-07 10:45:15 +08:00
fengzeroz 32b4a251ae Merge pull request #1877 from fengzeroz/main
test
2024-03-06 18:11:59 +08:00
fengzero 8271e93af6 Revert "test"
This reverts commit 0c9c12c0e4.
2024-03-06 09:47:36 +00:00
fengzeroz a117ee2ba4 Merge pull request #1876 from fengzeroz/main
test
2024-03-06 17:20:24 +08:00
fengzero 0c9c12c0e4 test 2024-03-06 09:14:24 +00:00
fengzeroz b3d1b56084 Merge pull request #1875 from ZhouBox/main
check module name when update plugin
2024-03-06 11:20:58 +08:00
xiang.zhou 26e480982d check module name when update plugin 2024-03-06 10:59:59 +08:00
fengzeroz 45fa293fbc Merge pull request #1869 from eeff/main
fix: notify north app about driver group deletion
2024-03-06 09:44:49 +08:00
eeff b996ad1ac5 fix(ekuiper): handle NEU_REQ_DEL_GROUP 2024-03-05 17:59:41 +08:00
eeff 579df5c023 test(mqtt): data upload when driver group deleted 2024-03-05 17:59:41 +08:00
eeff 025fb8c30a fix(mqtt): handle NEU_REQ_DEL_GROUP 2024-03-05 17:59:41 +08:00
eeff f7d0be2e05 fix(core): notify app about driver group deletion 2024-03-05 17:59:41 +08:00
fengzeroz e4f4ec43cc Merge pull request #1865 from ZhouBox/main
remove the SIGSEGV signal handler
2024-02-27 16:54:14 +08:00
xiang.zhou 436e31a19f remove the SIGSEGV signal handler 2024-02-27 15:53:45 +08:00
fengzeroz d948d6f7e1 Merge pull request #1861 from eeff/eeff/dev
chore: remove useless code
2024-02-27 10:28:17 +08:00
fengzeroz 255e0d0e4d Merge pull request #1859 from yzewei/main
add loongarch64 support
2024-02-27 10:25:54 +08:00
fengzeroz 3b042446ed Merge pull request #1860 from hxy7yx/main-1
correct links in README
2024-02-27 10:25:44 +08:00
eeff 67c91ad61b chore: remove useless code 2024-02-26 23:29:28 +08:00
hxy7yx 19085abc3b correct links in README 2024-02-26 10:21:29 +08:00
yzewei fdabb69242 add loongarch64 support
Signed-off-by: yzewei <yangzewei@loongson.cn>
2024-02-26 08:51:55 +08:00
fengzeroz 1747041213 Merge pull request #1856 from hxy7yx/main-2
ft(modbus): add serial port testing
2024-02-22 11:05:56 +08:00
hxy7yx 31112b1a2a ft(modbus): add serial port testing 2024-02-22 10:50:00 +08:00
fengzeroz 821c4095f8 Merge pull request #1857 from eeff/eeff/dev
feat: use abstract domain socket instead of UDP
2024-02-22 10:15:42 +08:00
fengzeroz 0c80221c2a Merge pull request #1855 from hxy7yx/main-1
chore: improve parameter validation for API
2024-02-22 10:11:34 +08:00
hxy7yx cb4d477400 chore: improve parameter validation for API 2024-02-21 16:36:39 +08:00
eeff b0d12b07a5 feat: use abstract domain socket instead of UDP 2024-02-21 16:33:49 +08:00
fengzeroz 91b847dc3e Merge pull request #1853 from ZhouBox/main
riscv64:add build rule
2024-02-19 11:04:57 +08:00
xiang.zhou 40f208f6ad riscv64:add build rule 2024-02-19 10:57:24 +08:00
fengzeroz f233851cfd Merge pull request #1849 from eeff/eeff/dev
fix(restful): force clean stale rolling metrics
2024-02-19 10:40:23 +08:00
eeff 14e7f6f760 fix(restful): force clean stale rolling metrics 2024-02-05 17:17:36 +08:00
eeff e34cbb7c67 refactor(metrics): add lock to avoid data race 2024-02-05 17:17:36 +08:00
eeff e50076dc20 fix: rolling counter integer overflow 2024-02-05 16:53:43 +08:00
fengzeroz e943fe0bb5 Merge pull request #1847 from eeff/eeff/dev
feat(ekuiper): add rolling metrics
2024-02-05 15:49:34 +08:00
eeff 7ce97290bf fix(core): memory leak 2024-02-04 19:51:51 +08:00
eeff e8ab18f025 fix(metrics): correct registered rolling counter entry ref count 2024-02-04 18:46:05 +08:00
eeff f197f574a0 feat(ekuiper): add rolling metrics 2024-02-04 16:49:00 +08:00
fengzeroz 7bfe936ae9 Merge pull request #1838 from KunYi/main
improve crc16 of modbus performance
2024-02-04 10:19:35 +08:00
fengzeroz 8388f11aca Merge pull request #1844 from hxy7yx/main-2
feat: add tag name sql schema
2024-02-04 10:19:24 +08:00
hxy7yx 875d92f012 feat: add tag name sql schema 2024-02-02 17:53:03 +08:00
fengzeroz ce55e8cefc Merge pull request #1839 from eeff/eeff/dev
feat(mqtt): add rolling metrics
2024-02-02 16:17:31 +08:00
KunYi Chen 4133028d90 improve crc16 of modbus performance
use lookup method to reduce computing cycle
2024-02-02 15:00:55 +08:00
eeff 353dbcd18c feat(mqtt): add rolling metrics 2024-02-02 12:00:47 +08:00
eeff 6bea8c254e feat(metrics): support distribution counter 2024-02-02 12:00:47 +08:00
eeff 5ef9abfa5d test: rolling counter unit tests 2024-02-02 12:00:47 +08:00
eeff c81d40d351 feat: add rolling counter utility 2024-02-01 23:54:46 +08:00
fengzeroz 50ee1d759f Merge pull request #1833 from hxy7yx/main-1
update tag name length max to 128
2024-01-31 10:34:57 +08:00
hxy7yx c0ea9d15fe update tag name length max to 128 2024-01-30 17:44:25 +08:00
fengzeroz d8901f85dd Merge pull request #1832 from eeff/eeff/dev
build: cmake link libatomic
2024-01-30 17:27:56 +08:00
eeff 8278fa98d4 build: cmake link libatomic 2024-01-30 17:09:17 +08:00
fengzeroz d11ae338ab Merge pull request #1831 from hxy7yx/main-1
cleanup(parser): remove unused functions
2024-01-30 14:10:34 +08:00
hxy7yx 0a05ef50bc fix(json): fix parser errored out while processing string types 2024-01-29 18:13:01 +08:00
hxy7yx 9c6a90662c cleanup(parser): remove unused functions 2024-01-29 18:01:46 +08:00
fengzeroz 7b1de308ba Merge pull request #1830 from ZhouBox/main
modify reciver
2024-01-29 15:34:54 +08:00
xiang.zhou ba79454502 modify reciver 2024-01-29 15:06:13 +08:00
fengzeroz fc786bf4d5 Merge pull request #1827 from ZhouBox/main
judge cache type when report group
2024-01-29 13:52:11 +08:00
xiang.zhou 760858bafc feat:judge cache type when report group 2024-01-29 13:43:54 +08:00
fengzeroz 766897532a Merge pull request #1825 from ZhouBox/main
feat(prgfile):add prgfile api
2024-01-29 13:40:24 +08:00
xiang.zhou 5d29fb6a45 feat(prgfile):add prgfile api 2024-01-29 11:45:07 +08:00
fengzeroz 0bf39bbe3e Merge pull request #1824 from hxy7yx/main-1
test(ut):add async queue ut
2024-01-25 10:37:17 +08:00
hxy7yx e27ee0bd49 remove http_proxy 2024-01-25 10:07:20 +08:00
hxy7yx e25d408259 test(ut):add async queue ut 2024-01-24 11:33:03 +08:00
fengzeroz a677f9331c Merge pull request #1823 from eeff/eeff/dev
fix(persit): neu_sqlite_persister_create free non-malloc memory
2024-01-23 17:43:33 +08:00
eeff e11af94900 fix(persit): neu_sqlite_persister_create free non-malloc memory 2024-01-23 17:39:50 +08:00
fengzeroz 1ab37d97bc Merge pull request #1819 from hxy7yx/main-1
adjusting ut coverage
2024-01-23 10:00:01 +08:00
fengzeroz 4285a98751 Merge pull request #1820 from eeff/main
fix: PUT drivers api
2024-01-23 09:55:08 +08:00
fengzeroz cf17c7fc4e Merge pull request #1821 from eeff/eeff/dev
refactor: move SSL cert files to data diretory
2024-01-23 09:54:20 +08:00
hxy7yx d293f38db9 adjusting ut coverage 2024-01-23 09:49:56 +08:00
eeff 2a656feb91 refactor: move SSL cert files to data directory 2024-01-22 17:24:18 +08:00
eeff d871f6c203 fix: PUT drivers api 2024-01-22 16:42:13 +08:00
fengzeroz c8f7c0a974 Merge pull request #1818 from eeff/eeff/dev
feat(restful): add GET drivers api
2024-01-19 09:48:03 +08:00
eeff 8711212ce0 test: GET drivers api ft 2024-01-17 16:17:10 +08:00
eeff 93bbcd3a6a refactor(restful): PUT drivers handler reduce duplicate code 2024-01-17 16:17:10 +08:00
eeff 26ffce35e3 feat(restful): GET drivers api support name query parameter 2024-01-17 16:17:10 +08:00
eeff 7395f9bf13 feat: add neu_strset_t utility data structure 2024-01-17 16:17:10 +08:00
eeff b7221e701d feat(restful): add GET drivers api 2024-01-17 16:17:10 +08:00
eeff 5baf46bb18 feat: add driver json enconder 2024-01-17 16:17:10 +08:00
fengzeroz e9a3778ca1 Merge pull request #1816 from eeff/eeff/dev
feat(restful): put drivers api
2024-01-16 15:05:39 +08:00
eeff 0e2a10463c test: put drivers ft 2024-01-13 22:12:53 +08:00
eeff 2b4ea8c0bd feat(restful): put drivers api 2024-01-12 19:04:08 +08:00
eeff e871363d70 feat(core): support NEU_REQ_ADD_DRIVERS request 2024-01-12 18:51:55 +08:00
fengzeroz a55ddade3a Merge pull request #1813 from hxy7yx/main-1
fix(add gtag): memory overflow
2024-01-12 17:03:06 +08:00
hxy7yx 596b54f73c fix(add gtag): memory overflow 2024-01-12 16:56:13 +08:00
fengzeroz d74721620b Merge pull request #1808 from eeff/eeff/fix
fix: enlarge plugin lib length
2024-01-11 16:05:54 +08:00
eeff fa63962575 fix: enlarge plugin lib length 2024-01-11 15:39:00 +08:00
eeff e89a23ec59 feat: add driver request json parser 2024-01-10 18:03:43 +08:00
fengzeroz 20a3d6bc5a Merge pull request #1807 from hxy7yx/main-1
fix(add_gtag): parser memory free
2024-01-10 17:31:35 +08:00
hxy7yx 7bb4cfbf0d fix(add_gtag): parser memory free 2024-01-10 17:24:00 +08:00
fengzeroz d6ba5e371f Merge pull request #1805 from eeff/main
feat(restful): add node api support setting
2024-01-10 09:52:56 +08:00
eeff dd33b42a32 test: add node with setting ft 2024-01-09 16:11:30 +08:00
eeff dbe72f50bc feat(restful): add node api support setting 2024-01-09 15:37:13 +08:00
eeff 5584722dbd feat(core): add node request support setting 2024-01-09 15:36:39 +08:00
fengzeroz 56af317b74 Merge pull request #1804 from eeff/eeff/dev
feat(persist): abstract sqlite persister implementation
2024-01-09 10:47:10 +08:00
eeff 59f06f1836 feat(persist): abstract sqlite persister implementation 2024-01-05 16:05:10 +08:00
eeff c662e835d6 feat(persist): remove node/tag count 2024-01-05 15:00:44 +08:00
fengzeroz 4240f313e2 Merge pull request #1799 from hxy7yx/main-2
limit the number of groups to a maximum of 512
2024-01-04 16:20:56 +08:00
hxy7yx 9a12f36731 limit the number of groups to a maximum of 512 2024-01-04 16:11:47 +08:00
fengzeroz 623f2f7672 Merge pull request #1797 from eeff/eeff/dev
feat(core): get subscribe group request support filter
2024-01-04 14:54:14 +08:00
eeff 55e09d9a64 test: get subscribe info ft 2024-01-04 14:13:29 +08:00
eeff 3a76d3cef5 feat(restful): get subscribe group api support filtering 2024-01-04 14:13:29 +08:00
eeff ccb6a79a8e feat(core): get subscribe group request support filtering 2024-01-04 14:13:29 +08:00
fengzeroz 08eebcbca0 Merge pull request #1795 from fengzeroz/main
get tags: query description
2024-01-04 11:20:09 +08:00
fengzero 6dd4b0f2df get tags: query description 2024-01-04 03:10:20 +00:00
fengzeroz aa3462efe5 Merge pull request #1792 from eeff/eeff/dev
feat(core): read group support filter
2024-01-03 17:47:12 +08:00
eeff b4041b0be3 test: read group query ft 2024-01-03 17:17:09 +08:00
eeff b08869f404 feat(restful): read group handler support query 2024-01-03 17:13:42 +08:00
fengzeroz 595d7d4456 Merge pull request #1791 from eeff/eeff/dev
feat: remove template
2024-01-03 11:11:57 +08:00
eeff 284bf0446f feat(ft): remove template ft 2024-01-03 10:56:07 +08:00
eeff ccccc0889f feat(core): remove template 2024-01-03 10:27:42 +08:00
fengzeroz aaff4e4bac Merge pull request #1787 from hxy7yx/main-1
increase the size of EVENT_SIZE
2024-01-03 10:04:09 +08:00
fengzeroz 832b081cf8 Merge pull request #1784 from fengzeroz/main
msg q
2024-01-03 10:03:32 +08:00
hxy7yx e1db8f05b6 increase the size of EVENT_SIZE 2024-01-02 18:05:58 +08:00
eeff fe3bc96256 feat(core): read group support query matching 2024-01-02 17:12:00 +08:00
fengzero f1e4bed876 msg q 2023-12-29 06:53:00 +00:00
fengzeroz 5737511f22 Merge pull request #1782 from fengzeroz/main
lock tag table
2023-12-29 11:06:47 +08:00
fengzero 660a01c4cd lock tag table 2023-12-29 02:03:24 +00:00
fengzeroz 1a5ced01a9 Merge pull request #1780 from hxy7yx/main-1
adapter: removing unused code and enhancing test coverage
2023-12-25 15:27:10 +08:00
hxy7yx b7615ae955 adapter: removing unused code and enhancing test coverage 2023-12-25 14:42:21 +08:00
fengzeroz d23c67efec Merge pull request #1777 from fengzeroz/main
fix event leak
2023-12-25 11:19:34 +08:00
fengzero 2791128642 event log 2023-12-25 02:46:15 +00:00
fengzero 6db4a324d8 fix(event): timer/io index set 2023-12-25 02:44:44 +00:00
fengzeroz 25e7569be9 Merge pull request #1773 from eeff/eeff/dev
fix(core): replace path separator char in adapter log category
2023-12-22 14:51:06 +08:00
eeff 4b6b788b75 fix(core): replace path separator char in adapter log category 2023-12-22 14:38:03 +08:00
fengzeroz 0a53a1d761 Merge pull request #1768 from hxy7yx/main-1
test: add validation for uptime_seconds metric
2023-12-21 09:42:31 +08:00
hxy7yx a71e1c2fbc test: add validation for uptime_seconds metric 2023-12-20 11:45:15 +08:00
fengzeroz 68789bed4d Merge pull request #1767 from hxy7yx/main-1
check if the written value conforms to the standard
2023-12-19 17:16:38 +08:00
hxy7yx d9157687ed check if the written value conforms to the standard 2023-12-19 17:07:39 +08:00
fengzeroz b3f1e47b18 Merge pull request #1766 from hxy7yx/main-1
fix(add_gtags):license tag count
2023-12-19 14:23:03 +08:00
hxy7yx 79be7286d3 fix(add_gtags):license tag count 2023-12-19 14:16:59 +08:00
fengzeroz 077a216988 Merge pull request #1764 from eeff/eeff/dev
revert: ndriver code
2023-12-19 09:52:02 +08:00
eeff 0c5d96deef test: remove ndriver ft 2023-12-18 21:34:21 +08:00
eeff 862b195139 revert: ndriver code 2023-12-18 21:32:09 +08:00
fengzeroz 45c7d51446 Merge pull request #1762 from hxy7yx/main-1
fix http status
2023-12-18 18:10:45 +08:00
hxy7yx 128609cbab fix http status 2023-12-18 18:07:14 +08:00
hxy7yx 6e856b0346 fix http status 2023-12-18 18:06:17 +08:00
fengzeroz ec43e8ad88 Merge pull request #1760 from hxy7yx/main-1
fix: add_tags&add_gtags http resp code
2023-12-18 17:08:49 +08:00
hxy7yx 7a4ccb459d fix:add_tags and add_gtags http resp code 2023-12-18 16:47:52 +08:00
fengzeroz 603be49982 Merge pull request #1758 from fengzeroz/main
fix(conn): lock conn buf
2023-12-18 16:10:37 +08:00
fengzeroz 6573ff1af2 Merge pull request #1757 from ZhouBox/main
fix:add library update fail error code
2023-12-18 15:38:20 +08:00
fengzero aac982fb62 fix(conn): lock conn buf 2023-12-18 07:32:39 +00:00
xiang.zhou ade333526b fix:add library update fail error code 2023-12-18 15:00:14 +08:00
fengzeroz 1af7ead362 Merge pull request #1755 from eeff/eeff/dev
test(ekuiper): add ft
2023-12-18 09:54:58 +08:00
eeff 5cb0927ff2 ci: ekuiper codecov report 2023-12-15 18:51:26 +08:00
eeff 3658fdeb99 fix(ekuiper): configuration validation 2023-12-15 18:51:26 +08:00
eeff ab8c1569bc test(ekuiper): add ft 2023-12-15 18:51:26 +08:00
eeff 1d34e73dd6 fix(ekuiper): json parser memory leak 2023-12-15 18:44:16 +08:00
fengzeroz 9a8740214c Merge pull request #1753 from ZhouBox/main
fixbug:no update plugin when update plugin library
2023-12-15 09:29:33 +08:00
xiang.zhou 12c5b6a76f fixbug:no update plugin when update plugin library 2023-12-14 18:56:09 +08:00
fengzeroz babee89528 Merge pull request #1751 from eeff/eeff/dev
fix(test): ft setup.py packaging
2023-12-13 18:12:22 +08:00
eeff 1f1a4397e0 fix(test): ft setup.py packaging 2023-12-13 18:04:46 +08:00
eeff 85d5701a63 fix(test): make ft mqtt mocker more robust 2023-12-13 18:04:46 +08:00
fengzeroz 1ef66414b0 Merge pull request #1746 from hxy7yx/main-1
fix(NEU_REQ_ADD_GTAG): del added tags when add failed
2023-12-13 10:00:09 +08:00
hxy7yx 5836ec2ade fix(NEU_REQ_ADD_GTAG): del all tags when add failed 2023-12-12 15:52:35 +08:00
fengzeroz 2d1768c9ae Merge pull request #1748 from fengzeroz/main
event: log
2023-12-12 15:34:04 +08:00
fengzero cfbb91637e event: log 2023-12-12 07:21:50 +00:00
fengzeroz a399c494ab Merge pull request #1743 from fengzeroz/main
fix write tag in arm64
2023-12-12 10:30:49 +08:00
fengzero f51a028e3f fix write tag 2023-12-12 02:01:45 +00:00
fengzero 89f7e237a2 fix write tag in arm64 2023-12-11 10:35:38 +00:00
fengzeroz d6ef7da766 Merge pull request #1738 from fengzeroz/main
reg sigkill
2023-12-11 17:10:37 +08:00
fengzero 1e60faf3ae reg sigkill 2023-12-11 09:04:11 +00:00
fengzeroz 315101a862 Merge pull request #1734 from hxy7yx/main-1
add ft case for negative decimal
2023-12-11 16:17:35 +08:00
fengzeroz 81535fc2ee Merge pull request #1736 from fengzeroz/main
Revert "fix(conn): lock conn buf"
2023-12-11 16:00:20 +08:00
fengzero 3c6f9ca096 Revert "fix(conn): lock conn buf"
This reverts commit 1151bb43b8.
2023-12-11 07:47:48 +00:00
hxy7yx 34ee5ad644 add ft case for negative decimal 2023-12-11 14:42:55 +08:00
396 changed files with 25925 additions and 448855 deletions
+19 -91
View File
@@ -18,12 +18,12 @@ jobs:
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'
style: file
clangFormatVersion: 10
cppcheck:
runs-on: ubuntu-20.04
@@ -36,13 +36,12 @@ jobs:
- name: cppcheck
run: |
sudo apt install cppcheck
cppcheck --enable=all --error-exitcode=2 --inline-suppr --suppress=missingInclude --suppress=unusedFunction ./plugins ./src
cppcheck --enable=all --error-exitcode=2 --inline-suppr --suppress=missingInclude --suppress=unusedFunction --suppress=variableScope ./simulator
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
container: ghcr.io/neugates/build:x86_64-v2.10
steps:
- uses: actions/checkout@v4
@@ -59,75 +58,14 @@ jobs:
- name: unit test
run: |
cd build
sudo apt-get update
sudo apt install -y lcov
ctest --output-on-failure -O tests/ut/reports/ut.log --output-junit tests/ut/reports/output.xml
lcov --capture --directory . --output-file testneuron.info --test-name testneuron
genhtml -o result testneuron.info
- uses: actions/upload-artifact@v3
with:
name: ut_result
path: |
build/tests/ut/reports/ut.log
build/tests/ut/reports/output.xml
build/result/index.html
build/neuron.log
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
gcov: true
fail_ci_if_error: true
gcov_include: include plugins src
gcov_ignore: tests simulator
ft:
runs-on: ubuntu-20.04
container: ghcr.io/neugates/build:x86_64-main
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: compile
run: |
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
- name: function test
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
- uses: actions/upload-artifact@v3
with:
name: ft_result
path: |
ft/reports/log.html
ft/reports/output.xml
ft/reports/report.html
build/neuron.log
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
gcov: true
gcov_include: include plugins src
gcov_ignore: tests simulator
ctest --output-on-failure
pft:
runs-on: ubuntu-20.04
container: ghcr.io/neugates/build:x86_64-main
container: ghcr.io/neugates/build:x86_64-v2.10
strategy:
matrix:
plugin: [core, modbus, mqtt, metrics]
plugin: [core, ekuiper, modbus, mqtt, azure, metrics]
steps:
- uses: actions/checkout@v4
@@ -136,11 +74,9 @@ jobs:
- name: setup dependencies
run: |
if [ "${{ matrix.plugin }}" = "mqtt" ]; then
sudo apt-get install -y mosquitto
pip install -U gmqtt
fi
pip install -U pytest requests prometheus-client
sudo apt-get install -y mosquitto
pip install -U pytest requests prometheus-client gmqtt pynng sniffio
sudo apt-get install -y socat
- name: compile
run: |
@@ -153,27 +89,19 @@ jobs:
run: |
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
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"
else
pytest -s -v tests/ft/metrics/"test_metrics.py"
fi
- name: create cov report
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@v3
with:
verbose: true
directory: ./cov_report/
files: cov-${{ matrix.plugin }}.info
fi
+4 -4
View File
@@ -8,9 +8,9 @@ on:
- published
env:
VERSION: 2.7.0
VERSION: 2.10.3
UI_VERSION: 2.6.1
BRANCH: main
BRANCH: v2.10
jobs:
cross-build:
@@ -21,7 +21,7 @@ jobs:
- [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.10
steps:
- uses: actions/checkout@v4
@@ -64,7 +64,7 @@ jobs:
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.10
steps:
- uses: actions/checkout@v4
+13 -9
View File
@@ -66,8 +66,10 @@ 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
@@ -75,7 +77,6 @@ set(NEURON_BASE_SOURCES
src/base/group.c
src/base/metrics.c
src/base/msg.c
src/base/template.c
src/connection/connection.c
src/connection/connection_eth.c
src/connection/mqtt_client.c
@@ -85,7 +86,6 @@ 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
@@ -103,14 +103,19 @@ if (CLIB)
add_definitions(-DNEU_CLIB=${CLIB})
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})
${CMAKE_THREAD_LIBS_INIT} -lm protobuf-c)
add_dependencies(neuron-base neuron-version)
# dependency imposed by nng
@@ -126,8 +131,8 @@ 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
@@ -138,13 +143,13 @@ set(NEURON_SOURCES
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/rest.c
plugins/restful/user.c)
@@ -161,8 +166,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)
@@ -170,6 +173,7 @@ 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(simulator)
+18
View File
@@ -55,3 +55,21 @@ $ 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 && 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 && make install
```
+4 -3
View File
@@ -20,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.
@@ -43,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 -1
View File
@@ -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.10/libs)
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
+1 -1
View File
@@ -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.10/libs)
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
+1 -1
View File
@@ -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.10/libs)
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
+7
View File
@@ -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 -1
View File
@@ -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.10/libs)
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
+8
View File
@@ -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
+22
View File
@@ -11,6 +11,24 @@ function gen_trace () {
}
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
@@ -21,6 +39,10 @@ case $1 in
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;;
+5 -2
View File
@@ -1,8 +1,11 @@
{
"plugins": [
"libplugin-mqtt.so",
"libplugin-aws-iot.so",
"libplugin-azure-iot.so",
"libplugin-ekuiper.so",
"libplugin-modbus-tcp.so",
"libplugin-modbus-rtu.so"
"libplugin-modbus-rtu.so",
"libplugin-file.so"
]
}
}
-258
View File
@@ -1,258 +0,0 @@
import asyncio
import time
from collections import defaultdict, deque
from robot.api import logger
from robot.api.deco import keyword, library
from gmqtt import Client as MQTTClient, Subscription
from gmqtt.mqtt.constants import MQTTv311
ROBOT_AUTO_KEYWORDS = False
@library
class Client:
"""A keyword library for Robot Framework. It provides keywords for
performing various operations on an MQTT broker. See http://mqtt.org/
for more details on MQTT specification.
This library uses gmqtt: Python async MQTT client. For more information
on underlying methods and documentation, see:
https://github.com/wialon/gmqtt
"""
ROBOT_LIBRARY_SCOPE = "GLOBAL"
ROBOT_LIBRARY_VERSION = "0.1.0"
def __init__(self, reconnect_retries=5, reconnect_delay=0):
"""
`reconnect_retries` number of reconnect attempt in case of lost
connections, default to 5
`reconnect_delay` delay between reconnect attemps in seconds,
default to 0
"""
self._client = None
self._reconnect_retries = reconnect_retries
self._reconnect_delay = reconnect_delay
self._messages = defaultdict(deque)
self._subcribed = asyncio.Event()
self._unsubcribed = asyncio.Event()
self._recved = asyncio.Event()
self._run = asyncio.get_event_loop().run_until_complete
@keyword
def connect(
self,
host,
port=1883,
client_id="",
username="",
password="",
keepalive=60,
clean_session=True,
):
"""Connect to an MQTT broker. This is a pre-requisite step for publish
and subscribe keywords.
`host` MQTT broker host
`port` broker port (default 1883)
`client_id` if not specified, a random id is generated
`username` user name, default to ""
`password` user password, default to ""
`keepalive` keepalive in seconds
`clean_session` specifies the clean session flag for the connection
Examples:
Connect to a broker with default port and client id
| Connect | 127.0.0.1 |
Connect to a broker by specifying the port and client id explicitly
| Connect | 127.0.0.1 | 1883 | test.client |
Connect to a broker with clean session flag set to false
| Connect | 127.0.0.1 | clean_session=${false} |
"""
client = MQTTClient(client_id, clean_session=clean_session)
client.on_connect = self._on_connect
client.on_message = self._on_message
client.on_disconnect = self._on_disconnect
client.on_subscribe = self._on_subscribe
client.on_unsubscribe = self._on_unsubscribe
client.set_config(
{
"reconnect_retries": self._reconnect_retries,
"reconnect_delay": self._reconnect_delay,
}
)
self._client = client
self._run(self._client.connect(host, port, version=MQTTv311))
@keyword
def disconnect(self):
"""Disconnect from MQTT Broker.
Example:
| Disconnect |
"""
self._run(self._client.disconnect())
self._messages.clear()
@keyword
def unsubscribe_all_and_clear_messages(self):
"""Unsubscribe all subscriptions and clear all messages in queue."""
for topic in self._messages:
self.unsubscribe(topic)
self._messages.clear()
@keyword
def subscribe(self, topic, qos=0, timeout=1):
"""Subscribe to a topic and return a message payload received
within the specified time.
`topic` topic to subscribe to
`qos` quality of service for the subscription, default to QoS 0
`timeout` duration of subscription, default to 1 second
Examples:
Subscribe and get a list of all messages received within 5 seconds
| ${messages}= | Subscribe | test/test | qos=1 | timeout=5 |
"""
timeout = 1 if timeout < 1 else timeout
self._client.subscribe(Subscription(topic, qos))
if self._wait(self._subcribed, timeout=timeout):
raise Exception(
"MQTT client subscribe timeout topic=%s qos=%s" % (topic, qos))
logger.info("MQTT client subscribed to topic=%s qos=%s" % (topic, qos))
@keyword
def unsubscribe(self, topic, timeout=1):
"""Unsubscribe the client from the specified topic.
`topic` topic to unsubscribe from
`timeout` duration of unsubscription, default to 1 second
Example:
| Unsubscribe | test/mqtt_test |
"""
timeout = 1 if timeout < 1 else timeout
self._client.unsubscribe(topic)
if self._wait(self._unsubcribed, timeout=timeout):
raise Exception("MQTT client unsubscribe timeout topic=%s" % topic)
logger.info("MQTT client unsubscribed topic=%s" % topic)
@keyword
def publish(self, topic, payload, qos=0, retain=False):
"""Publish a message to a topic with specified qos and retained flag.
It is required that a connection has been established using `Connect`
keyword before using this keyword.
`topic` topic to which the message will be published
`paylod` message payload to publish
`qos` qos of the message, default to QoS 0
`retain` retained flag
Examples:
| Publish | test/test | test message | 1 | ${false} |
"""
self._client.publish(topic, payload, qos=qos, retain=retain)
@keyword
def listen(self, topic, timeout=1):
"""Listen to a topic and return a message payload received within the
specified time. Requires an Subscribe to have been called previously.
`topic` topic to listen to
`timeout` duration to listen, default to 1 second
Examples:
Listen and get a message received within 5 seconds
| ${messages}= | Listen | test/test | timeout=5 |
"""
timeout = 1 if timeout < 1 else timeout
start = time.time()
while True:
if topic in self._messages and self._messages[topic]:
msg = self._messages[topic].popleft()
return msg
if (
self._wait(self._recved, timeout=timeout)
or (time.time() - start) >= timeout
):
break
def _wait(self, event, timeout):
"""Waits for the given event within timeout.
Returns true on timeout, false otherwise."""
try:
self._run(asyncio.wait_for(event.wait(), timeout))
event.clear()
except asyncio.TimeoutError:
return True
return False
def _on_connect(self, client, flags, rc, properties):
logger.info("MQTT client connected")
def _on_message(self, client, topic, payload, qos, properties):
logger.info("MQTT client received: topic=%s qos=%s payload=%s" %
(topic, qos, payload))
self._messages[topic].append(payload.decode())
self._recved.set()
return 0
def _on_disconnect(self, client, packet, exc=None):
logger.info("MQTT client disconnected")
def _on_subscribe(self, client, mid, qos, properties):
self._subcribed.set()
def _on_unsubscribe(self, client, mid, granted_qos):
self._unsubcribed.set()
if __name__ == "__main__":
# import logging
# logging.basicConfig(level=logging.DEBUG)
host = "127.0.0.1"
topic = "test/test_mqtt"
client = Client()
client.connect(host)
client.subscribe(topic)
for i in range(3):
client.publish(topic, "hello world %s" % i)
msg = client.listen(topic)
print("MQTT client receive: topic=%s msg=%s" % (topic, msg))
client.unsubscribe(topic)
client.disconnect()
-235
View File
@@ -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
-35
View File
@@ -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"
}
@@ -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"
}
@@ -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": []
}
-124
View File
@@ -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"
}
@@ -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"
}
@@ -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"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0001",
"adapter_name": "modbus-tcp-0001"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0002",
"adapter_name": "modbus-tcp-0001"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0003",
"adapter_name": "modbus-tcp-0001"
}
@@ -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"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0001",
"adapter_name": "modbus-tcp-0002"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0002",
"adapter_name": "modbus-tcp-0002"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0003",
"adapter_name": "modbus-tcp-0002"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0004",
"adapter_name": "modbus-tcp-0002"
}
@@ -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"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0001",
"adapter_name": "modbus-tcp-0003"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0002",
"adapter_name": "modbus-tcp-0003"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0003",
"adapter_name": "modbus-tcp-0003"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0004",
"adapter_name": "modbus-tcp-0003"
}
@@ -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"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0001",
"adapter_name": "modbus-tcp-0004"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0002",
"adapter_name": "modbus-tcp-0004"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0003",
"adapter_name": "modbus-tcp-0004"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0004",
"adapter_name": "modbus-tcp-0004"
}
@@ -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"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0001",
"adapter_name": "modbus-tcp-0005"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0002",
"adapter_name": "modbus-tcp-0005"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0003",
"adapter_name": "modbus-tcp-0005"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0004",
"adapter_name": "modbus-tcp-0005"
}
@@ -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"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0001",
"adapter_name": "modbus-tcp-0006"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0002",
"adapter_name": "modbus-tcp-0006"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0003",
"adapter_name": "modbus-tcp-0006"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0004",
"adapter_name": "modbus-tcp-0006"
}
@@ -1,7 +0,0 @@
{
"params": {
"host":"127.0.0.1",
"port":60502,
"connection_mode":0
}
}

Some files were not shown because too many files have changed in this diff Show More