Compare commits

...
196 Commits
Author SHA1 Message Date
fengzeroz 93effef50a Merge pull request #2170 from fengzeroz/v2.9
version: 2.9.2
2024-07-30 15:03:14 +08:00
fengzero c7fd967d89 version: 2.9.2 2024-07-30 07:02:39 +00:00
fengzeroz 3fd7670ff1 Merge pull request #2169 from hxy7yx/v2.9-2
[v2.9]feat(modbus tcp):configure optional message header verification
2024-07-30 15:01:43 +08:00
hxy7yx b64f323fcc feat(modbus tcp):configure optional message header verification 2024-07-29 14:38:01 +08:00
fengzeroz beb19a14dc Merge pull request #2152 from hxy7yx/v2.9-1
[v2.9]feat:core subscription supports filtering error tags
2024-07-29 14:30:22 +08:00
hxy7yx 67c32c6f15 feat:core subscription supports filtering error messages 2024-07-26 14:55:53 +08:00
fengzeroz 4d952e2ea0 Merge pull request #2162 from ZhouBox/v2.9
[v2.9]feat(rest):add api about configure status
2024-07-24 13:59:09 +08:00
xiang.zhou bb3b17faf2 feat(rest):add api about configure status 2024-07-24 11:38:30 +08:00
fengzeroz 4b0ee30be8 Merge pull request #2156 from hxy7yx/v2.9-2
[v2.9]fix(modbus):reconnect when recv error messages
2024-07-24 10:23:41 +08:00
hxy7yx f3cfadd3e8 fix(modbus):reconnect when recv error messages 2024-07-23 16:49:36 +08:00
hxy7yx 6ff4ad52d8 feat:core subscription supports filtering error messages 2024-07-23 15:53:09 +08:00
fengzeroz d39aa057bd Merge pull request #2146 from fengzeroz/v2.9
Revert "cyclic reporting does not detect change"
2024-07-18 10:15:04 +08:00
fengzero 55c2a05d03 Revert "cyclic reporting does not detect change"
This reverts commit 458af374bb.
2024-07-18 02:14:28 +00:00
fengzeroz d07735be93 Merge pull request #2143 from hxy7yx/v2.9-1
refactor(read paginate): optimize efficiency without filtering errors
2024-07-18 10:11:56 +08:00
hxy7yx 1db02f1573 refactor(read paginate): optimize efficiency without filtering errors 2024-07-15 14:55:09 +08:00
fengzeroz 707029bee2 Merge pull request #2140 from fengzeroz/v2.9
cyclic reporting does not detect change
2024-07-15 10:20:57 +08:00
fengzero 458af374bb cyclic reporting does not detect change 2024-07-15 02:20:25 +00:00
fengzeroz 09da1cdab6 Merge pull request #2138 from fengzeroz/v2.9
version: 2.9.1
2024-07-12 09:43:05 +08:00
fengzero 35849a00a9 version: 2.9.1 2024-07-12 01:42:11 +00:00
fengzeroz 305cb7449a Merge pull request #2134 from eeff/v2.9
Pick to v2.9 fix(core): set metric to init value when reset
2024-07-10 10:08:23 +08:00
eeff 9467bdaa36 fix(core): set metric to init value when reset 2024-07-10 10:01:02 +08:00
fengzeroz 79dde6ecf4 Merge pull request #2129 from eeff/v2.9
Pick to v2.9 fix(core): event loop check stop flag
2024-07-04 16:17:48 +08:00
eeff d71f240ec7 fix(core): event loop check stop flag 2024-07-04 16:15:19 +08:00
fengzeroz 47af1617a8 Merge pull request #2126 from fengzeroz/v2.9
version: 2.9.0
2024-07-01 11:18:16 +08:00
fengzero 4b54f98177 version: 2.9.0 2024-07-01 03:17:32 +00:00
fengzeroz ad3ad077b2 Merge pull request #2121 from eeff/v2.9
Pick to v2.9 chore: add error code `NEU_ERR_BODY_TOO_BIG`
2024-07-01 09:56:45 +08:00
eeff a50d3416ee chore: add error code NEU_ERR_BODY_TOO_BIG 2024-06-27 00:17:35 +08:00
fengzeroz fbe538ed91 Merge pull request #2113 from ZhouBox/v2.9
[v2.9]add notice log about node,group,sub
2024-06-25 14:18:43 +08:00
xiang.zhou 0f8d70d024 add notice log about node,group,sub 2024-06-18 16:59:55 +08:00
fengzeroz 7a534bc95e Merge pull request #2110 from fengzeroz/v2.9
version: 2.9.0-beta3
2024-06-18 15:58:37 +08:00
fengzero bf094f2731 version: 2.9.0-beta3 2024-06-18 07:47:25 +00:00
fengzeroz 9e99a662ba Merge pull request #2107 from hxy7yx/v2.9-2
[v2.9]rename precision when read floating-tag
2024-06-18 13:59:02 +08:00
hxy7yx 9e4ba7e51d rename precision when read floating-tag 2024-06-18 13:49:35 +08:00
fengzeroz c3a198270d Merge pull request #2104 from fengzeroz/v2.9
version: 2.9.0-beta2
2024-06-14 15:45:24 +08:00
fengzero 202dc73e25 version: 2.9.0-beta2 2024-06-14 07:42:23 +00:00
fengzeroz db8a95d99e Merge pull request #2100 from hxy7yx/v2.9-2
[v2.9]fix(test read): stop group timer while testing
2024-06-14 15:28:01 +08:00
fengzeroz c3e85e8f45 Merge pull request #2102 from hxy7yx/v2.9-1
[v2.9]fix(manager): exit after sending uninit msg failed
2024-06-14 15:27:40 +08:00
hxy7yx 921c2d6c57 fix(manager): exit even if send uninit msg failed 2024-06-14 15:03:22 +08:00
hxy7yx ab7f39b63f fix(test read): stop group timer while testing 2024-06-14 11:18:04 +08:00
fengzeroz 49f4cccc2a Merge pull request #2091 from ZhouBox/v2.9
[v2.9]display optimization for float and double types when setting bias
2024-06-14 09:52:08 +08:00
fengzeroz 9a6c7c427a Merge pull request #2093 from eeff/v2.9
Pick to v2.9 feat(core): add `interval` field to struct neu_plugin_group
2024-06-14 09:51:40 +08:00
fengzeroz 9226da5f60 Merge pull request #2098 from eeff/eeff/fix
Pick to v2.9 fix(core): read_report_group add tag bias
2024-06-14 09:51:21 +08:00
eeff a13bb136c4 fix(core): read_report_group add tag bias 2024-06-13 15:17:03 +08:00
eeff 0ac53e159f feat(core): add interval field to struct neu_plugin_group 2024-06-13 15:00:46 +08:00
xiang.zhou cf10ec0ad9 display optimization for float and double types when setting bias 2024-06-13 13:59:47 +08:00
fengzeroz 0ad6f4fe56 Merge pull request #2090 from hxy7yx/v2.9-1
fix(write): write *.0
2024-06-13 13:45:48 +08:00
hxy7yx d96413b83c fix(write): write *.0 2024-06-13 10:55:37 +08:00
fengzeroz 3fb0388dfa Merge pull request #2083 from gc87/jwt-exp-v2.9
[v2.9]fix(jwt): replacing expired tokens
2024-06-11 16:16:00 +08:00
gc87 3799af3569 fix(jwt): replacing expired tokens 2024-06-11 14:53:27 +08:00
fengzeroz 9dde3e8b84 Merge pull request #2079 from ZhouBox/v2.9
[v2.9]async queue:add api about length
2024-06-07 15:43:15 +08:00
fengzeroz a803228ded Merge pull request #2081 from fengzeroz/v2.9
2.9.0-beta1
2024-06-07 15:42:56 +08:00
fengzero bf4f176f39 2.9.0-beta1 2024-06-07 07:42:09 +00:00
xiang.zhou 1c7a91394f async queue:add api about length 2024-06-07 15:24:22 +08:00
fengzeroz dc07471634 Merge pull request #2077 from hxy7yx/v2.9-1
[v2.9]ft(modbus):test read tag
2024-06-07 14:58:32 +08:00
hxy7yx 5f4fed39a1 ft(modbus):test read tag 2024-06-07 14:48:33 +08:00
fengzeroz 7f66db88c9 Merge pull request #2074 from hxy7yx/v2.9-1
[v2.9]feat(core & modbus tcp): test read tag
2024-06-07 10:10:54 +08:00
hxy7yx 4a0835cf40 feat(core & modbus tcp): test read tag 2024-06-06 17:25:48 +08:00
fengzeroz 830d670358 Merge pull request #2073 from fengzeroz/v2.9
set node start if loading node state is ready
2024-06-05 14:50:44 +08:00
fengzero b6cefdb5fa fix init msg state init 2024-06-05 06:36:32 +00:00
fengzero c00d085d85 start node if node state is ready 2024-06-05 06:29:30 +00:00
fengzeroz 1a972f57f4 Merge pull request #2068 from eeff/v2.9
Pick to v2.9 feat(mqtt): schema client-id and write req/resp topic default value
2024-06-05 10:43:33 +08:00
eeff fcbbacfd31 feat(mqtt): schema client-id and write req/resp topic default value 2024-06-05 10:41:06 +08:00
fengzeroz 9f291833f1 Merge pull request #2062 from hxy7yx/v2.9-3
[v2.9]read(filter): name(name || desc)
2024-06-04 15:55:19 +08:00
hxy7yx 76b6df700d read(filter): name(name || desc) 2024-06-04 15:43:03 +08:00
fengzeroz b9c2739abb Merge pull request #2059 from hxy7yx/v2.9-3
[v2.9]feat(read):support pagination and filter(error) when reading tags
2024-06-04 09:51:15 +08:00
hxy7yx 301c92bee7 feat(read):support pagination and filter(error) when reading tags 2024-06-03 18:07:39 +08:00
fengzeroz 05f21357b7 Merge pull request #2051 from hxy7yx/v2.9-3
[v2.9]fix: memory leak
2024-05-31 15:12:40 +08:00
hxy7yx eab24cf1b5 fix: memory leak 2024-05-31 14:43:18 +08:00
fengzeroz 8d72fc9e31 Merge pull request #2047 from fengzeroz/v2.9
fix(update): update error when value is error
2024-05-30 11:20:11 +08:00
fengzero bd36224fba fix(update): update error when value is error 2024-05-30 03:11:47 +00:00
fengzeroz 3f884cf6ba Merge pull request #2040 from hxy7yx/v2.9-2
[v2.9]check and handle NaN for float and double in read and report operations
2024-05-29 17:29:31 +08:00
hxy7yx df2f6b74e5 check and handle NaN for float and double in read and report operations 2024-05-29 16:56:08 +08:00
fengzeroz bc4a23688b Merge pull request #2032 from hxy7yx/v2.9-2
[v2.9]metric: reset send&recv bytes when restart node
2024-05-29 14:48:26 +08:00
fengzeroz d29996506a Merge pull request #2036 from eeff/v2.9
Pick to v2.9 fix: update trans_data metric only when plugin is started
2024-05-29 14:47:18 +08:00
eeff 34f071a8ee fix(mqtt): update trans_data metric only when plugin is started 2024-05-29 14:38:30 +08:00
eeff a3557cd0af fix(ekuiper): update trans_data metric only when plugin is started 2024-05-29 14:38:30 +08:00
hxy7yx 31ece9eecc metric: reset send&recv bytes when restart node 2024-05-29 13:34:53 +08:00
fengzeroz 0512edbb52 Merge pull request #2009 from gc87/scan-tags-v2.9
[v2.9]feat: add scan tags reqest & response
2024-05-24 09:48:28 +08:00
fengzeroz 87acec1ede Merge pull request #2020 from ZhouBox/v2.9
[v2.9]display optimization for float and double types
2024-05-24 09:47:21 +08:00
xiang.zhou 144a925932 display optimization for float and double types 2024-05-23 16:47:15 +08:00
gc87 ba07160fc5 feat: add scan tags api 2024-05-20 18:00:56 +08:00
gc87 8927be9f81 feat: add scan tags reqest & response 2024-05-20 17:02:53 +08:00
fengzeroz c08e3b314a Merge pull request #2005 from eeff/v2.9
Pick to v2.9 feat(aws-iot): remove config default value
2024-05-17 15:58:49 +08:00
eeff abbe8a8847 feat(aws-iot): remove config default value 2024-05-17 15:55:07 +08:00
fengzeroz de4a53635c Merge pull request #2001 from ZhouBox/v2.9
[v2.9]driver:change log level
2024-05-17 14:59:57 +08:00
xiang.zhou cb997d9cf6 driver:change log level 2024-05-17 14:33:10 +08:00
fengzeroz af900bb0d4 Merge pull request #2000 from ZhouBox/v2.9
[v2.9]ft(plugin):update version
2024-05-17 14:00:14 +08:00
xiang.zhou 050cf5aafe ft(plugin):update version 2024-05-17 12:05:43 +08:00
fengzeroz 4f1f49de0f Merge pull request #1998 from fengzeroz/v2.9
branch v2.9
2024-05-17 11:10:14 +08:00
fengzero 22339ee248 branch v2.9 2024-05-17 03:05:54 +00: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
302 changed files with 8941 additions and 437385 deletions
+8 -81
View File
@@ -41,7 +41,7 @@ jobs:
ut:
runs-on: ubuntu-20.04
container: ghcr.io/neugates/build:x86_64-main
container: ghcr.io/neugates/build:x86_64-v2.9
steps:
- uses: actions/checkout@v4
@@ -60,72 +60,12 @@ jobs:
cd build
ctest --output-on-failure
- name: create cov report
run: |
sudo apt-get update
sudo apt-get -y install lcov
mkdir -p cov_report
./create_cov_report.sh ut
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
verbose: true
fail_ci_if_error: true
directory: ./cov_report/
files: cov-ut.info
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: |
build/neuron.log
- name: create cov report
run: |
sudo apt-get update
sudo apt-get -y install lcov
mkdir -p cov_report
./create_cov_report.sh ft
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
verbose: true
fail_ci_if_error: true
directory: ./cov_report/
files: cov-ft.info
pft:
runs-on: ubuntu-20.04
container: ghcr.io/neugates/build:x86_64-main
container: ghcr.io/neugates/build:x86_64-v2.9
strategy:
matrix:
plugin: [core, ekuiper, modbus, mqtt, metrics]
plugin: [core, ekuiper, modbus, mqtt, azure, metrics]
steps:
- uses: actions/checkout@v4
@@ -134,9 +74,7 @@ jobs:
- name: setup dependencies
run: |
if [ "${{ matrix.plugin }}" = "mqtt" ]; then
sudo apt-get install -y mosquitto
fi
sudo apt-get install -y mosquitto
pip install -U pytest requests prometheus-client gmqtt pynng sniffio
sudo apt-get install -y socat
@@ -153,6 +91,7 @@ jobs:
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
@@ -161,20 +100,8 @@ jobs:
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.9.2
UI_VERSION: 2.6.1
BRANCH: main
BRANCH: v2.9
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.9
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.9
steps:
- uses: actions/checkout@v4
+7 -1
View File
@@ -102,6 +102,11 @@ 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})
@@ -109,7 +114,7 @@ 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)
add_dependencies(neuron-base neuron-version)
# dependency imposed by nng
@@ -142,6 +147,7 @@ set(NEURON_SOURCES
plugins/restful/group_config_handle.c
plugins/restful/plugin_handle.c
plugins/restful/version_handle.c
plugins/restful/scan_handle.c
plugins/restful/rest.c
plugins/restful/user.c)
+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.9/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.9/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.9/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 x86_64-linux-gnu)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(LIBRARY_DIR /home/neuron/main/libs)
set(LIBRARY_DIR /home/neuron/v2.9/libs)
set(CMAKE_C_COMPILER ${COMPILER_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}-g++)
+4
View File
@@ -39,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;;
+2
View File
@@ -1,6 +1,8 @@
{
"plugins": [
"libplugin-mqtt.so",
"libplugin-aws-iot.so",
"libplugin-azure-iot.so",
"libplugin-ekuiper.so",
"libplugin-modbus-tcp.so",
"libplugin-modbus-rtu.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
}
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0000",
"adapter_name": "modbus-tcp-0007"
}
@@ -1,5 +0,0 @@
{
"read_interval": 1000,
"group_config_name": "group-0001",
"adapter_name": "modbus-tcp-0007"
}

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