opcua 0.19 → 0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +15 -2
- data/Rakefile +8 -2
- data/cert/cert.h +52 -52
- data/cert/cert_key.h +101 -101
- data/example/server_values_callback.rb +37 -0
- data/ext/opcua/client/client.c +1 -1
- data/ext/opcua/helpers/values.c +9 -5
- data/ext/opcua/server/server.c +97 -17
- data/lib/opcua/server.rb +16 -4
- data/opcua.gemspec +2 -2
- metadata +9 -13
- data/example/server_browse.rb +0 -6
- data/example/test +0 -22
- data/example/test.mpf +0 -85
- data/example/test1 +0 -12
- data/example/tester.mpf +0 -85
- data/example/turm.rb +0 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a773ade8df621b180e42eeb36e3564210ea19a8213d4e3afb683ddd52aeee30f
|
|
4
|
+
data.tar.gz: b05494405e7d5bcdd8c8b406ab0ee4f51a562aa0e5c84ef508d50b7b23ca1ce0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fcf198c760dd0bcad8d4c6718091ec245b49d9c12269f51a5b762e0d130ed6a69b0249058026a49a21ba2dfe72f3b471f01b564704baa2b19e752b9d15f9ca44
|
|
7
|
+
data.tar.gz: 30b46a888f2dcb39ec2bca5980c33eeab744c77c8ced4579b10b1b17bbba04b451963ddbca4014eaff0218d690e800c648b022f62494c417930ae67bf710a91f
|
data/README.md
CHANGED
|
@@ -38,7 +38,7 @@ apt install build-essential cmake-curses-gui libmbedtls-dev libxml2-dev libxslt-
|
|
|
38
38
|
dnf install @buildsys-build @development-tools cmake libxml2-devel libxslt-devel zlib-devel libicu-devel mbedtls-devel
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Dependency: https://github.com/open62541/open62541 >
|
|
41
|
+
Dependency: https://github.com/open62541/open62541 > 1.1 (master branch as of 2020-06-04)
|
|
42
42
|
|
|
43
43
|
```sh
|
|
44
44
|
git clone https://github.com/open62541/open62541.git
|
|
@@ -122,11 +122,24 @@ Multible variables can be defined at once with the ```.add_variables``` command.
|
|
|
122
122
|
t.add_variables :TestVar1, :TestVar2
|
|
123
123
|
```
|
|
124
124
|
By default variables are read-only.
|
|
125
|
-
If you want to add a variable with read/write support you must use the ```.
|
|
125
|
+
If you want to add a variable with read/write support you must use the ```.add_variable_rw``` method.
|
|
126
126
|
```ruby
|
|
127
127
|
t.add_variable_rw :TestVar1
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
+
It is also possible to add a block to the variable. The block is called
|
|
131
|
+
whenever the variable is changed. Each block gets three parameters passed:
|
|
132
|
+
nodeid, new value, and if the value has been changed through a client (true) or
|
|
133
|
+
internally in the server (false).
|
|
134
|
+
|
|
135
|
+
```ruby
|
|
136
|
+
t.add_variable_rw :Value do |node,value,external|
|
|
137
|
+
p node.id # ObjectVarNode object, which has properties such as #id, #value
|
|
138
|
+
p value # new content of the variable
|
|
139
|
+
p external # true || false
|
|
140
|
+
end
|
|
141
|
+
```
|
|
142
|
+
|
|
130
143
|
##### Add Object
|
|
131
144
|
|
|
132
145
|
With ```.add_object(:TestObject)``` a new object named _TestObject_ is added. The second parameter is optional and definies of which type the new object is. Default the object is from _BaseObjectType_. In this example the created object is from _FolderType_. All child nodes of the object can be definded in the ```tap{}``` area.
|
data/Rakefile
CHANGED
|
@@ -28,10 +28,16 @@ Gem::PackageTask.new(spec) do |pkg|
|
|
|
28
28
|
FileUtils.ln_sf "#{pkg.name}.gem", "pkg/#{spec.name}.gem"
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
task :push => :gem do
|
|
31
|
+
task :push => :gem do
|
|
32
32
|
`gem push pkg/opcua.gem`
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
task :install => :gem do
|
|
35
|
+
task :install => :gem do
|
|
36
36
|
`gem install pkg/opcua.gem`
|
|
37
37
|
end
|
|
38
|
+
|
|
39
|
+
task :clean do
|
|
40
|
+
FileUtils.rm_rf(File.join(__dir__,'tmp'))
|
|
41
|
+
FileUtils.rm_rf(File.join(__dir__,'lib','opcua','client.so'))
|
|
42
|
+
FileUtils.rm_rf(File.join(__dir__,'lib','opcua','server.so'))
|
|
43
|
+
end
|
data/cert/cert.h
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
1
|
unsigned char cert_der[] = {
|
|
2
2
|
0x30, 0x82, 0x03, 0x18, 0x30, 0x82, 0x02, 0x00, 0xa0, 0x03, 0x02, 0x01,
|
|
3
|
-
0x02, 0x02, 0x14,
|
|
4
|
-
|
|
3
|
+
0x02, 0x02, 0x14, 0x31, 0x37, 0xdf, 0x4f, 0xb2, 0x68, 0xb3, 0xa9, 0x8c,
|
|
4
|
+
0x9d, 0x5a, 0xea, 0x41, 0x14, 0x36, 0xea, 0xaf, 0x82, 0x1c, 0xf8, 0x30,
|
|
5
5
|
0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
|
|
6
6
|
0x05, 0x00, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
|
|
7
7
|
0x03, 0x0c, 0x0a, 0x72, 0x75, 0x62, 0x79, 0x2d, 0x6f, 0x70, 0x63, 0x75,
|
|
8
|
-
0x61, 0x30, 0x1e, 0x17, 0x0d, 0x32,
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
0x61, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x31, 0x32, 0x35, 0x31,
|
|
9
|
+
0x32, 0x30, 0x35, 0x31, 0x34, 0x5a, 0x17, 0x0d, 0x32, 0x32, 0x30, 0x31,
|
|
10
|
+
0x31, 0x35, 0x31, 0x32, 0x30, 0x35, 0x31, 0x34, 0x5a, 0x30, 0x15, 0x31,
|
|
11
11
|
0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0a, 0x72, 0x75,
|
|
12
12
|
0x62, 0x79, 0x2d, 0x6f, 0x70, 0x63, 0x75, 0x61, 0x30, 0x82, 0x01, 0x22,
|
|
13
13
|
0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
|
|
14
14
|
0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
|
|
15
|
-
0x02, 0x82, 0x01, 0x01, 0x00,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
15
|
+
0x02, 0x82, 0x01, 0x01, 0x00, 0xcf, 0xf9, 0x2b, 0x1f, 0x72, 0x42, 0xf5,
|
|
16
|
+
0xfc, 0x0f, 0xbf, 0x6d, 0xf7, 0x5e, 0xd2, 0xf1, 0x2f, 0xfb, 0xe9, 0x09,
|
|
17
|
+
0xdc, 0x79, 0xca, 0xbe, 0x8e, 0xf0, 0x78, 0xca, 0xe8, 0x6a, 0xf6, 0xaa,
|
|
18
|
+
0xbf, 0x05, 0x7f, 0x1f, 0xb8, 0xa9, 0xd7, 0xf8, 0x3b, 0x4e, 0xdb, 0xd8,
|
|
19
|
+
0x10, 0x18, 0xa6, 0x43, 0x4b, 0xac, 0x9e, 0xf4, 0xcd, 0x35, 0x81, 0xb4,
|
|
20
|
+
0xff, 0x6d, 0xa1, 0xe1, 0x30, 0xff, 0x68, 0x5f, 0x69, 0x75, 0x66, 0xe1,
|
|
21
|
+
0xf7, 0xf0, 0x1e, 0x05, 0x7d, 0x54, 0x29, 0x16, 0x0f, 0x74, 0xf6, 0xad,
|
|
22
|
+
0x6f, 0x2b, 0x71, 0x99, 0x1f, 0xfd, 0x32, 0xb0, 0x90, 0xb2, 0x2f, 0x01,
|
|
23
|
+
0x2e, 0x1d, 0xa6, 0xbc, 0x04, 0x3e, 0x99, 0x1e, 0x49, 0x5f, 0xe1, 0x54,
|
|
24
|
+
0xc8, 0x9e, 0x29, 0x10, 0x94, 0xab, 0xfd, 0x00, 0xee, 0xc4, 0x8b, 0x73,
|
|
25
|
+
0xde, 0x2d, 0x23, 0x7e, 0x91, 0x0b, 0x09, 0xd5, 0x61, 0x76, 0x49, 0x89,
|
|
26
|
+
0x1a, 0x7d, 0x03, 0x44, 0xbf, 0xc5, 0xa1, 0x04, 0xdb, 0x70, 0x2a, 0xf2,
|
|
27
|
+
0x81, 0x63, 0x80, 0x34, 0x6b, 0xd9, 0x33, 0x5b, 0x76, 0x1d, 0x6a, 0xc6,
|
|
28
|
+
0x1d, 0xb0, 0xc2, 0x64, 0x0b, 0x0e, 0x02, 0x19, 0x2f, 0x37, 0x34, 0xa3,
|
|
29
|
+
0x3c, 0x67, 0xcb, 0xc5, 0x26, 0x97, 0xe4, 0x20, 0xe3, 0xe8, 0x81, 0x81,
|
|
30
|
+
0x77, 0x61, 0xae, 0x80, 0xba, 0x6c, 0x02, 0x76, 0xef, 0x19, 0xd3, 0xc9,
|
|
31
|
+
0xd7, 0xc3, 0x96, 0xa8, 0x0a, 0xcc, 0x6a, 0x7b, 0xf0, 0x7e, 0x94, 0x58,
|
|
32
|
+
0x26, 0xfc, 0xb2, 0xfe, 0x5d, 0xed, 0x44, 0x3c, 0xe9, 0x5b, 0xda, 0xc4,
|
|
33
|
+
0x01, 0xdc, 0x03, 0x64, 0xd6, 0xc7, 0x8c, 0x3d, 0xfe, 0xdc, 0x63, 0x70,
|
|
34
|
+
0x13, 0xd6, 0x44, 0x74, 0x0f, 0x45, 0xeb, 0x5a, 0x38, 0x62, 0x87, 0xb3,
|
|
35
|
+
0xdd, 0x45, 0x51, 0x0d, 0x1f, 0x75, 0x60, 0x6c, 0xcb, 0xb2, 0xfc, 0x14,
|
|
36
|
+
0x7e, 0xb0, 0xca, 0x45, 0xe6, 0x2d, 0x7b, 0xda, 0x23, 0x02, 0x03, 0x01,
|
|
37
37
|
0x00, 0x01, 0xa3, 0x60, 0x30, 0x5e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
|
|
38
|
-
0x0e, 0x04, 0x16, 0x04, 0x14,
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
0x0e, 0x04, 0x16, 0x04, 0x14, 0x1f, 0xb3, 0xf0, 0x21, 0x4d, 0x7a, 0x2d,
|
|
39
|
+
0x84, 0x13, 0x33, 0xda, 0xa4, 0x1a, 0x78, 0xae, 0x8b, 0x5a, 0x64, 0x0d,
|
|
40
|
+
0x4e, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
|
|
41
41
|
0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x1d,
|
|
42
42
|
0x11, 0x04, 0x15, 0x30, 0x13, 0x86, 0x11, 0x72, 0x75, 0x62, 0x79, 0x2d,
|
|
43
43
|
0x6f, 0x70, 0x63, 0x75, 0x61, 0x3a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
|
44
44
|
0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
|
|
45
45
|
0x03, 0x02, 0x05, 0xa0, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
|
|
46
46
|
0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
47
|
+
0xc2, 0x8e, 0x63, 0x4a, 0xf0, 0x09, 0xa4, 0xa7, 0x39, 0x6e, 0x15, 0xbd,
|
|
48
|
+
0xbe, 0x65, 0xf3, 0x2d, 0x18, 0xaa, 0x26, 0x61, 0xc8, 0xfa, 0xec, 0xb4,
|
|
49
|
+
0x27, 0xfe, 0x20, 0x65, 0xc7, 0xf8, 0x34, 0xd4, 0x84, 0x8b, 0xf9, 0x1c,
|
|
50
|
+
0x35, 0xd2, 0xae, 0x69, 0x93, 0x1c, 0xaf, 0x8d, 0x79, 0xb1, 0x9a, 0x1d,
|
|
51
|
+
0x42, 0xa8, 0x84, 0x78, 0x75, 0x2d, 0xc8, 0x9e, 0x99, 0xa7, 0x6a, 0xff,
|
|
52
|
+
0xad, 0x75, 0xac, 0x8b, 0x34, 0xb1, 0xc8, 0x9e, 0x5e, 0xfe, 0x4f, 0x7a,
|
|
53
|
+
0xb8, 0x38, 0x24, 0xff, 0xa9, 0x20, 0xfd, 0x7a, 0x44, 0xf1, 0x21, 0xc6,
|
|
54
|
+
0x93, 0x09, 0x14, 0x97, 0xfa, 0xb4, 0xd2, 0x93, 0x58, 0x95, 0x3e, 0x17,
|
|
55
|
+
0xdc, 0xc7, 0x6b, 0xd6, 0x6a, 0xc8, 0x03, 0x1c, 0x51, 0x78, 0x43, 0x74,
|
|
56
|
+
0x3e, 0xbb, 0xc1, 0xdb, 0x1b, 0x0b, 0xf1, 0xc3, 0xea, 0x3e, 0x5a, 0xa8,
|
|
57
|
+
0x83, 0xcc, 0xf4, 0xff, 0x4a, 0x59, 0xa7, 0x95, 0x13, 0x21, 0x71, 0x79,
|
|
58
|
+
0x03, 0xa3, 0x49, 0x05, 0xef, 0x70, 0x98, 0x38, 0x2e, 0x05, 0x82, 0xe8,
|
|
59
|
+
0xa4, 0xe3, 0x12, 0x11, 0xd0, 0x8e, 0xa6, 0x4a, 0x41, 0x7d, 0x04, 0xf1,
|
|
60
|
+
0xec, 0x32, 0xf2, 0x3c, 0xe1, 0xe1, 0xd3, 0x6d, 0x4f, 0x35, 0xd1, 0xb9,
|
|
61
|
+
0xe9, 0x8a, 0x5b, 0x9a, 0x6a, 0xe1, 0x3b, 0x4a, 0xfd, 0xe1, 0x2d, 0x1c,
|
|
62
|
+
0x0f, 0x48, 0x4d, 0xd6, 0x65, 0xfb, 0x0c, 0x0d, 0x1c, 0xfd, 0xb5, 0x12,
|
|
63
|
+
0xf6, 0x98, 0xf4, 0x26, 0xb5, 0x48, 0xb4, 0x10, 0x80, 0x1e, 0xe2, 0x63,
|
|
64
|
+
0xba, 0x61, 0x3c, 0x78, 0x26, 0x6d, 0x6f, 0x75, 0x86, 0x01, 0xea, 0x88,
|
|
65
|
+
0x81, 0x44, 0x8d, 0x72, 0x97, 0xf0, 0xd4, 0xa1, 0x40, 0x93, 0xf1, 0xc3,
|
|
66
|
+
0xb3, 0x6e, 0x94, 0x83, 0xb4, 0xc4, 0x33, 0xea, 0x7b, 0x1a, 0x29, 0xa1,
|
|
67
|
+
0x79, 0x57, 0xc6, 0xb5, 0x61, 0x90, 0x20, 0x43, 0xc9, 0x2f, 0x5d, 0x97,
|
|
68
|
+
0x28, 0x9b, 0x77, 0xc6
|
|
69
69
|
};
|
|
70
70
|
unsigned int cert_der_len = 796;
|
data/cert/cert_key.h
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
1
|
unsigned char cert_key_der[] = {
|
|
2
|
-
0x30, 0x82, 0x04,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
0x00,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
2
|
+
0x30, 0x82, 0x04, 0xa4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00,
|
|
3
|
+
0xcf, 0xf9, 0x2b, 0x1f, 0x72, 0x42, 0xf5, 0xfc, 0x0f, 0xbf, 0x6d, 0xf7,
|
|
4
|
+
0x5e, 0xd2, 0xf1, 0x2f, 0xfb, 0xe9, 0x09, 0xdc, 0x79, 0xca, 0xbe, 0x8e,
|
|
5
|
+
0xf0, 0x78, 0xca, 0xe8, 0x6a, 0xf6, 0xaa, 0xbf, 0x05, 0x7f, 0x1f, 0xb8,
|
|
6
|
+
0xa9, 0xd7, 0xf8, 0x3b, 0x4e, 0xdb, 0xd8, 0x10, 0x18, 0xa6, 0x43, 0x4b,
|
|
7
|
+
0xac, 0x9e, 0xf4, 0xcd, 0x35, 0x81, 0xb4, 0xff, 0x6d, 0xa1, 0xe1, 0x30,
|
|
8
|
+
0xff, 0x68, 0x5f, 0x69, 0x75, 0x66, 0xe1, 0xf7, 0xf0, 0x1e, 0x05, 0x7d,
|
|
9
|
+
0x54, 0x29, 0x16, 0x0f, 0x74, 0xf6, 0xad, 0x6f, 0x2b, 0x71, 0x99, 0x1f,
|
|
10
|
+
0xfd, 0x32, 0xb0, 0x90, 0xb2, 0x2f, 0x01, 0x2e, 0x1d, 0xa6, 0xbc, 0x04,
|
|
11
|
+
0x3e, 0x99, 0x1e, 0x49, 0x5f, 0xe1, 0x54, 0xc8, 0x9e, 0x29, 0x10, 0x94,
|
|
12
|
+
0xab, 0xfd, 0x00, 0xee, 0xc4, 0x8b, 0x73, 0xde, 0x2d, 0x23, 0x7e, 0x91,
|
|
13
|
+
0x0b, 0x09, 0xd5, 0x61, 0x76, 0x49, 0x89, 0x1a, 0x7d, 0x03, 0x44, 0xbf,
|
|
14
|
+
0xc5, 0xa1, 0x04, 0xdb, 0x70, 0x2a, 0xf2, 0x81, 0x63, 0x80, 0x34, 0x6b,
|
|
15
|
+
0xd9, 0x33, 0x5b, 0x76, 0x1d, 0x6a, 0xc6, 0x1d, 0xb0, 0xc2, 0x64, 0x0b,
|
|
16
|
+
0x0e, 0x02, 0x19, 0x2f, 0x37, 0x34, 0xa3, 0x3c, 0x67, 0xcb, 0xc5, 0x26,
|
|
17
|
+
0x97, 0xe4, 0x20, 0xe3, 0xe8, 0x81, 0x81, 0x77, 0x61, 0xae, 0x80, 0xba,
|
|
18
|
+
0x6c, 0x02, 0x76, 0xef, 0x19, 0xd3, 0xc9, 0xd7, 0xc3, 0x96, 0xa8, 0x0a,
|
|
19
|
+
0xcc, 0x6a, 0x7b, 0xf0, 0x7e, 0x94, 0x58, 0x26, 0xfc, 0xb2, 0xfe, 0x5d,
|
|
20
|
+
0xed, 0x44, 0x3c, 0xe9, 0x5b, 0xda, 0xc4, 0x01, 0xdc, 0x03, 0x64, 0xd6,
|
|
21
|
+
0xc7, 0x8c, 0x3d, 0xfe, 0xdc, 0x63, 0x70, 0x13, 0xd6, 0x44, 0x74, 0x0f,
|
|
22
|
+
0x45, 0xeb, 0x5a, 0x38, 0x62, 0x87, 0xb3, 0xdd, 0x45, 0x51, 0x0d, 0x1f,
|
|
23
|
+
0x75, 0x60, 0x6c, 0xcb, 0xb2, 0xfc, 0x14, 0x7e, 0xb0, 0xca, 0x45, 0xe6,
|
|
24
|
+
0x2d, 0x7b, 0xda, 0x23, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01,
|
|
25
|
+
0x00, 0x48, 0xee, 0x31, 0xc7, 0x17, 0x44, 0x90, 0x0a, 0x52, 0x63, 0x68,
|
|
26
|
+
0xe6, 0xa4, 0x64, 0x08, 0x9c, 0x31, 0x14, 0xa9, 0x96, 0x9d, 0x47, 0x11,
|
|
27
|
+
0xc8, 0x02, 0x5f, 0xf9, 0x97, 0xc3, 0x5a, 0xb8, 0xc9, 0xbf, 0xdd, 0xb2,
|
|
28
|
+
0x7c, 0x09, 0x63, 0x68, 0xf3, 0x33, 0x56, 0x38, 0xd0, 0x7c, 0x34, 0x61,
|
|
29
|
+
0xc8, 0xf9, 0xc1, 0xcc, 0x4a, 0xe2, 0x06, 0x98, 0x38, 0x32, 0x73, 0xe0,
|
|
30
|
+
0x0a, 0x54, 0xa6, 0x7f, 0x3e, 0xf6, 0x22, 0x9b, 0xff, 0x5c, 0x3e, 0xca,
|
|
31
|
+
0xe2, 0x06, 0x4f, 0x5a, 0x23, 0x15, 0x7b, 0x23, 0x9a, 0xa6, 0x7b, 0x71,
|
|
32
|
+
0x9d, 0x1c, 0x27, 0x58, 0x6f, 0x85, 0x6c, 0xa2, 0x57, 0x4f, 0xa2, 0x96,
|
|
33
|
+
0xb0, 0x4e, 0x5b, 0x57, 0x99, 0x97, 0x7b, 0xe7, 0x45, 0x6a, 0xe1, 0x2f,
|
|
34
|
+
0xa5, 0x53, 0x22, 0xa7, 0xdf, 0x13, 0x21, 0x6c, 0x02, 0x6f, 0x85, 0xd0,
|
|
35
|
+
0xee, 0x80, 0x16, 0x74, 0xb3, 0x76, 0xcd, 0x96, 0xbc, 0x06, 0xe0, 0x60,
|
|
36
|
+
0xc4, 0xdf, 0x83, 0x4a, 0x30, 0xca, 0x3d, 0x8e, 0x6f, 0x1a, 0xcf, 0xfe,
|
|
37
|
+
0x1f, 0x53, 0x7b, 0xa5, 0x14, 0x3d, 0x7d, 0x4c, 0x6f, 0x13, 0xee, 0x73,
|
|
38
|
+
0xc5, 0x90, 0xa4, 0x86, 0x58, 0xf1, 0x9d, 0x9d, 0x16, 0xfb, 0xe0, 0xf8,
|
|
39
|
+
0xc9, 0x6d, 0xb8, 0xc0, 0x75, 0xd7, 0xe5, 0x28, 0x95, 0x7c, 0x48, 0x0a,
|
|
40
|
+
0x84, 0x36, 0x6a, 0x04, 0x2a, 0x68, 0x40, 0x91, 0xa5, 0x15, 0x87, 0x1c,
|
|
41
|
+
0xff, 0x01, 0xe2, 0xb4, 0x8f, 0x58, 0x74, 0x18, 0x4d, 0x5a, 0x08, 0xa9,
|
|
42
|
+
0x67, 0x4d, 0xd6, 0xea, 0xd1, 0x63, 0x7d, 0x07, 0x85, 0xcc, 0xd7, 0xac,
|
|
43
|
+
0xa4, 0x6b, 0xe2, 0xe1, 0xba, 0xc2, 0x43, 0x74, 0x26, 0x1e, 0x21, 0x83,
|
|
44
|
+
0x3f, 0xb5, 0xba, 0xcc, 0x0a, 0xa7, 0x8c, 0xed, 0x91, 0xa9, 0x70, 0x49,
|
|
45
|
+
0x93, 0x5a, 0x08, 0xa0, 0x49, 0x62, 0x51, 0x10, 0x50, 0xe3, 0x3b, 0xf8,
|
|
46
|
+
0xc0, 0x32, 0x72, 0x9f, 0x81, 0x02, 0x81, 0x81, 0x00, 0xf9, 0xbc, 0x08,
|
|
47
|
+
0xff, 0xae, 0xa7, 0x5a, 0xe4, 0xee, 0x49, 0xc3, 0x02, 0x34, 0x31, 0x7c,
|
|
48
|
+
0x84, 0x4f, 0x36, 0x4f, 0xe1, 0x8c, 0x5c, 0x8f, 0xe6, 0x27, 0x27, 0xde,
|
|
49
|
+
0xb9, 0xbe, 0x7c, 0xb0, 0x6c, 0x6f, 0xe7, 0x9e, 0x17, 0x16, 0x77, 0x2c,
|
|
50
|
+
0x74, 0x3f, 0x02, 0x93, 0x18, 0x58, 0xdf, 0xa4, 0xb4, 0xa3, 0x6b, 0x47,
|
|
51
|
+
0xa7, 0x40, 0xff, 0x75, 0x86, 0x00, 0x17, 0xd5, 0x17, 0x25, 0xb4, 0x2f,
|
|
52
|
+
0x99, 0x51, 0xee, 0x0a, 0xf1, 0x49, 0xff, 0x53, 0x3d, 0x68, 0x07, 0x86,
|
|
53
|
+
0x01, 0x95, 0x82, 0x84, 0x32, 0xe2, 0x52, 0x38, 0x24, 0xe9, 0x08, 0x86,
|
|
54
|
+
0x62, 0x1c, 0x83, 0x30, 0x22, 0x98, 0x30, 0x06, 0x63, 0x7e, 0x57, 0x7c,
|
|
55
|
+
0x61, 0x7e, 0x09, 0x21, 0x89, 0xd9, 0x3a, 0x16, 0xdf, 0x17, 0x14, 0x04,
|
|
56
|
+
0x97, 0x21, 0xbe, 0x84, 0xb9, 0xe5, 0x2d, 0x7d, 0x59, 0x47, 0x33, 0xdb,
|
|
57
|
+
0x77, 0xa8, 0xec, 0x32, 0x43, 0x02, 0x81, 0x81, 0x00, 0xd5, 0x30, 0xea,
|
|
58
|
+
0x1b, 0xd4, 0x23, 0x76, 0x19, 0x1f, 0x7e, 0xa9, 0xd1, 0xd2, 0xcb, 0xb6,
|
|
59
|
+
0x26, 0xec, 0xd9, 0x48, 0x44, 0x89, 0x5f, 0xe8, 0x3d, 0x1a, 0x5f, 0x8d,
|
|
60
|
+
0xab, 0xfa, 0x8c, 0xf9, 0x0a, 0x83, 0xdb, 0xb4, 0x6c, 0xc0, 0xe0, 0xe0,
|
|
61
|
+
0x23, 0x83, 0xeb, 0xb5, 0xf4, 0xd1, 0x07, 0xbc, 0x56, 0xaf, 0x0d, 0x41,
|
|
62
|
+
0x89, 0xad, 0xa0, 0x7c, 0x00, 0xdb, 0x0d, 0xf0, 0xfd, 0xc1, 0xf3, 0x76,
|
|
63
|
+
0x86, 0xa7, 0xc2, 0x41, 0xb3, 0x11, 0xb3, 0x54, 0xe0, 0x1b, 0xd5, 0x06,
|
|
64
|
+
0x84, 0xda, 0x6a, 0xa0, 0xd9, 0x6d, 0x0d, 0x89, 0x5b, 0xd1, 0xec, 0xc0,
|
|
65
|
+
0x11, 0x2a, 0xd4, 0xdc, 0x40, 0x29, 0x93, 0x6d, 0x80, 0xd2, 0x1a, 0x9f,
|
|
66
|
+
0x66, 0x08, 0xa4, 0x1c, 0xaf, 0x1e, 0xc0, 0x2d, 0x98, 0x44, 0xb7, 0xc0,
|
|
67
|
+
0xd2, 0x9b, 0x5e, 0x6c, 0x06, 0x19, 0xe1, 0xe6, 0x0e, 0x72, 0xd2, 0xcf,
|
|
68
|
+
0xf9, 0x6e, 0x95, 0xea, 0xa1, 0x02, 0x81, 0x80, 0x00, 0xaf, 0x97, 0x86,
|
|
69
|
+
0xbc, 0x40, 0x11, 0x6b, 0xd7, 0x8b, 0xb4, 0x51, 0x69, 0x3b, 0x49, 0x90,
|
|
70
|
+
0x43, 0x77, 0x6e, 0xb8, 0xbb, 0xdd, 0xf5, 0x37, 0x38, 0x9c, 0x4f, 0x6c,
|
|
71
|
+
0x4b, 0x2d, 0xa4, 0x7e, 0x67, 0xc0, 0x47, 0x1a, 0xe1, 0x20, 0xea, 0xaa,
|
|
72
|
+
0x57, 0x11, 0xf6, 0xbd, 0x76, 0x61, 0x06, 0xde, 0xc8, 0x24, 0x1f, 0x4a,
|
|
73
|
+
0x42, 0x4f, 0x71, 0x4f, 0x30, 0xe8, 0xdf, 0xd8, 0xf4, 0x6d, 0x8e, 0x43,
|
|
74
|
+
0xe9, 0x89, 0xb1, 0xd5, 0xff, 0xd2, 0x07, 0xb4, 0x7f, 0x78, 0xa5, 0xd1,
|
|
75
|
+
0x93, 0x4b, 0x8c, 0x79, 0x67, 0x4d, 0xba, 0x81, 0xbf, 0x72, 0x1a, 0x8c,
|
|
76
|
+
0x62, 0x6f, 0xa9, 0xce, 0x2e, 0x84, 0xd3, 0x3f, 0xaa, 0xb5, 0x2a, 0xce,
|
|
77
|
+
0x49, 0xbe, 0x54, 0xad, 0x40, 0x3f, 0x7c, 0x98, 0x98, 0x43, 0xa1, 0xcf,
|
|
78
|
+
0x98, 0x74, 0x21, 0x81, 0x31, 0x33, 0xf2, 0xc8, 0x2f, 0xfd, 0xe0, 0x78,
|
|
79
|
+
0x6f, 0xaa, 0x56, 0x69, 0x02, 0x81, 0x81, 0x00, 0xc4, 0x31, 0xb7, 0xc0,
|
|
80
|
+
0xd4, 0x81, 0xad, 0xf5, 0x80, 0xde, 0x78, 0x39, 0xf8, 0xdc, 0x30, 0x4d,
|
|
81
|
+
0xb2, 0x3a, 0x64, 0x1f, 0x6e, 0xad, 0x2c, 0x74, 0xcf, 0x08, 0x90, 0xc0,
|
|
82
|
+
0x6c, 0x5b, 0xbf, 0xf4, 0xc5, 0x54, 0x33, 0xbe, 0xc1, 0xe2, 0x31, 0x63,
|
|
83
|
+
0x7d, 0xcc, 0x36, 0x2f, 0x8f, 0x0e, 0xa7, 0x6c, 0xbe, 0xbc, 0x5c, 0x4b,
|
|
84
|
+
0xef, 0xd5, 0x79, 0x48, 0xf0, 0x4e, 0xec, 0x31, 0x1b, 0x84, 0x8a, 0xd7,
|
|
85
|
+
0x71, 0x1b, 0x7c, 0x8a, 0xe7, 0x07, 0x3a, 0x5c, 0xe4, 0x40, 0x2f, 0x37,
|
|
86
|
+
0xa4, 0x29, 0xec, 0xcd, 0x2b, 0x67, 0x01, 0xb9, 0xd6, 0x7f, 0x22, 0x62,
|
|
87
|
+
0xaa, 0x20, 0x2a, 0x71, 0x81, 0xd1, 0x83, 0x3c, 0xc2, 0x1e, 0x6e, 0x02,
|
|
88
|
+
0xe0, 0x80, 0xe7, 0x44, 0xe1, 0xef, 0xca, 0x06, 0x0f, 0x77, 0x6b, 0xa4,
|
|
89
|
+
0x66, 0x07, 0x87, 0x32, 0x36, 0x2f, 0x86, 0x20, 0x55, 0xdb, 0x5c, 0x3a,
|
|
90
|
+
0x18, 0x63, 0x2f, 0x01, 0x02, 0x81, 0x81, 0x00, 0xc7, 0x14, 0x72, 0x77,
|
|
91
|
+
0xdb, 0xac, 0xa5, 0x0b, 0x4e, 0x1a, 0x96, 0xeb, 0x7e, 0x9e, 0x7b, 0x41,
|
|
92
|
+
0xb3, 0x1a, 0x02, 0x7b, 0x09, 0xf4, 0xdd, 0xb4, 0xd4, 0xec, 0x9a, 0x1c,
|
|
93
|
+
0x13, 0x92, 0x35, 0x75, 0x2b, 0x17, 0xba, 0xf9, 0x05, 0x7a, 0x45, 0xc6,
|
|
94
|
+
0x87, 0xd0, 0xe3, 0x37, 0xd3, 0x91, 0x86, 0x48, 0xca, 0x24, 0xbb, 0x08,
|
|
95
|
+
0x61, 0x24, 0x61, 0x1d, 0x95, 0x1c, 0xec, 0xb5, 0x0e, 0x7c, 0x80, 0x49,
|
|
96
|
+
0x70, 0x97, 0xf8, 0x42, 0x3c, 0xb3, 0x21, 0xe6, 0xf5, 0xce, 0x08, 0xa1,
|
|
97
|
+
0x9a, 0x89, 0x03, 0xc3, 0x4a, 0x68, 0x1d, 0xed, 0xa1, 0x4c, 0xc6, 0xf4,
|
|
98
|
+
0xf7, 0x54, 0x20, 0xc6, 0xcd, 0x7c, 0x0b, 0xd1, 0x0d, 0x3c, 0x18, 0x24,
|
|
99
|
+
0xde, 0xd4, 0xdd, 0xd7, 0xd8, 0xa9, 0x67, 0xf2, 0xa7, 0xe0, 0x80, 0x52,
|
|
100
|
+
0xec, 0x8a, 0x69, 0xf5, 0x2e, 0x15, 0x3a, 0xca, 0xa6, 0x03, 0xcd, 0x43,
|
|
101
|
+
0xb5, 0x79, 0x9f, 0x6e
|
|
102
102
|
};
|
|
103
|
-
unsigned int cert_key_der_len =
|
|
103
|
+
unsigned int cert_key_der_len = 1192;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
require_relative '../lib/opcua/server'
|
|
3
|
+
#require 'opcua/server'
|
|
4
|
+
|
|
5
|
+
Daemonite.new do
|
|
6
|
+
on startup do |opts|
|
|
7
|
+
opts['server'] = OPCUA::Server.new
|
|
8
|
+
opts['server'].add_namespace "https://centurio.work/kelch"
|
|
9
|
+
|
|
10
|
+
t = opts['server'].types.add_object_type(:Test).tap{ |t|
|
|
11
|
+
t.add_variable_rw :Wert do |node,value,external|
|
|
12
|
+
p node.id
|
|
13
|
+
p value
|
|
14
|
+
p external
|
|
15
|
+
end
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
v = opts['server'].objects.manifest(:Tester, t)
|
|
19
|
+
|
|
20
|
+
opts['value'] = v.find :Wert
|
|
21
|
+
rescue => e
|
|
22
|
+
puts e.message
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
run do |opts|
|
|
26
|
+
opts['server'].run
|
|
27
|
+
opts['value'].value = rand
|
|
28
|
+
sleep 1
|
|
29
|
+
rescue => e
|
|
30
|
+
puts e.message
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
on exit do
|
|
34
|
+
# we could disconnect here, but OPCUA::Server does not have an explicit disconnect
|
|
35
|
+
puts 'bye.'
|
|
36
|
+
end
|
|
37
|
+
end.loop!
|
data/ext/opcua/client/client.c
CHANGED
|
@@ -320,7 +320,7 @@ static VALUE client_init(VALUE self,VALUE url,VALUE user,VALUE pass) { //{{{
|
|
|
320
320
|
}
|
|
321
321
|
char *pstr = (char *)StringValuePtr(vpstr);
|
|
322
322
|
|
|
323
|
-
retval =
|
|
323
|
+
retval = UA_Client_connectUsername(pss->master, nstr, ustr, pstr);
|
|
324
324
|
}
|
|
325
325
|
if (retval != UA_STATUSCODE_GOOD) {
|
|
326
326
|
pss->started = false;
|
data/ext/opcua/helpers/values.c
CHANGED
|
@@ -154,13 +154,15 @@ bool value_to_variant(VALUE value, UA_Variant *variant, UA_UInt32 proposal) { //
|
|
|
154
154
|
case T_SYMBOL:
|
|
155
155
|
{
|
|
156
156
|
VALUE str = rb_obj_as_string(value);
|
|
157
|
-
if (proposal ==
|
|
158
|
-
UA_String tmp = UA_STRING(StringValuePtr(str));
|
|
159
|
-
UA_Variant_setScalarCopy(variant, &tmp, &UA_TYPES[UA_TYPES_STRING]);
|
|
160
|
-
} else if (proposal == UA_TYPES_BYTESTRING) {
|
|
161
|
-
printf("rrrrr\n");
|
|
157
|
+
if (proposal == UA_TYPES_BYTESTRING) {
|
|
162
158
|
UA_ByteString tmp = UA_BYTESTRING(StringValuePtr(str));
|
|
163
159
|
UA_Variant_setScalarCopy(variant, &tmp, &UA_TYPES[UA_TYPES_BYTESTRING]);
|
|
160
|
+
} else if (proposal == UA_TYPES_NODEID) {
|
|
161
|
+
UA_NodeId tmp = UA_NODEID(StringValuePtr(str));
|
|
162
|
+
UA_Variant_setScalarCopy(variant, &tmp, &UA_TYPES[UA_TYPES_NODEID]);
|
|
163
|
+
} else {
|
|
164
|
+
UA_String tmp = UA_STRING(StringValuePtr(str));
|
|
165
|
+
UA_Variant_setScalarCopy(variant, &tmp, &UA_TYPES[UA_TYPES_STRING]);
|
|
164
166
|
}
|
|
165
167
|
done = true;
|
|
166
168
|
break;
|
|
@@ -188,6 +190,8 @@ void Init_types(VALUE mOPCUA) {/*{{{*/
|
|
|
188
190
|
rb_define_const(mTYPES, "UINT32", INT2NUM(UA_TYPES_UINT32 ));
|
|
189
191
|
rb_define_const(mTYPES, "UINT16", INT2NUM(UA_TYPES_UINT16 ));
|
|
190
192
|
rb_define_const(mTYPES, "STRING", INT2NUM(UA_TYPES_STRING ));
|
|
193
|
+
rb_define_const(mTYPES, "BYTESTRING", INT2NUM(UA_TYPES_BYTESTRING ));
|
|
194
|
+
rb_define_const(mTYPES, "NODEID", INT2NUM(UA_TYPES_NODEID ));
|
|
191
195
|
}/*}}}*/
|
|
192
196
|
|
|
193
197
|
static VALUE UA_TYPES_DATETIME_to_value(UA_DateTime data) { //{{{
|
data/ext/opcua/server/server.c
CHANGED
|
@@ -335,11 +335,56 @@ static VALUE node_add_method(int argc, VALUE* argv, VALUE self) { //{{{
|
|
|
335
335
|
return node_wrap(CLASS_OF(self),node_alloc(parent->master,node_add_method_ua_simple(nstr,parent,opts,blk)));
|
|
336
336
|
} //}}}
|
|
337
337
|
|
|
338
|
-
static
|
|
338
|
+
static void node_add_variable_callback( //{{{
|
|
339
|
+
UA_Server *server,
|
|
340
|
+
const UA_NodeId *sessionId, void *sessionContext,
|
|
341
|
+
const UA_NodeId *nodeId, void *nodeContext,
|
|
342
|
+
const UA_NumericRange *range, const UA_DataValue *data
|
|
343
|
+
) {
|
|
344
|
+
node_struct *me = (node_struct *)nodeContext;
|
|
345
|
+
UA_Guid internal = UA_GUID("00000001-0000-0000-0000-000000000000");
|
|
346
|
+
|
|
347
|
+
// if (sessionId->identifierType == UA_NODEIDTYPE_NUMERIC) {
|
|
348
|
+
// printf("sessionId ns=%d;i=%d\n", sessionId->namespaceIndex, sessionId->identifier.numeric);
|
|
349
|
+
// } else if(sessionId->identifierType == UA_NODEIDTYPE_STRING) {
|
|
350
|
+
// printf("sessionId ns=%d;s=%.*s\n", sessionId->namespaceIndex, (int)sessionId->identifier.string.length, sessionId->identifier.string.data);
|
|
351
|
+
// } else if(sessionId->identifierType == UA_NODEIDTYPE_GUID) {
|
|
352
|
+
// if (UA_Guid_equal(&(sessionId->identifier.guid),&internal)) {
|
|
353
|
+
// printf("sessionId internal session\n");
|
|
354
|
+
// } else {
|
|
355
|
+
// printf("sessionId ns=%d;g=%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x\n",sessionId->namespaceIndex,UA_PRINTF_GUID_DATA(sessionId->identifier.guid));
|
|
356
|
+
// }
|
|
357
|
+
// } else if(sessionId->identifierType == UA_NODEIDTYPE_BYTESTRING) {
|
|
358
|
+
// printf("sessionId ns=%d;b=%.*s\n", sessionId->namespaceIndex, (int)sessionId->identifier.string.length, sessionId->identifier.string.data);
|
|
359
|
+
// } else if(UA_NodeId_isNull(sessionId)) {
|
|
360
|
+
// printf("sessionId is null");
|
|
361
|
+
// } else {
|
|
362
|
+
// printf("sessionId ns=%d;unsupported\n",sessionId->namespaceIndex);
|
|
363
|
+
// }
|
|
364
|
+
|
|
365
|
+
VALUE args = rb_ary_new();
|
|
366
|
+
rb_ary_push(args, Data_Wrap_Struct(cVarNode,NULL,NULL,me));
|
|
367
|
+
VALUE para = extract_value(data->value);
|
|
368
|
+
rb_ary_push(args,rb_ary_entry(para,0));
|
|
369
|
+
if (UA_Guid_equal(&(sessionId->identifier.guid),&internal)) {
|
|
370
|
+
rb_ary_push(args,Qfalse);
|
|
371
|
+
} else {
|
|
372
|
+
rb_ary_push(args,Qtrue);
|
|
373
|
+
}
|
|
374
|
+
if (me->method != Qnil) {
|
|
375
|
+
rb_proc_call(me->method,args);
|
|
376
|
+
}
|
|
377
|
+
} //}}}
|
|
378
|
+
static UA_NodeId node_add_variable_ua(UA_Int32 type, UA_NodeId n, UA_LocalizedText dn, UA_QualifiedName qn, node_struct *parent, UA_Byte accesslevelmask, VALUE blk) { //{{{
|
|
339
379
|
UA_VariableAttributes vAttr = UA_VariableAttributes_default;
|
|
340
380
|
vAttr.displayName = dn;
|
|
341
381
|
vAttr.accessLevel = accesslevelmask;
|
|
342
382
|
|
|
383
|
+
node_struct *me = node_alloc(parent->master,n);
|
|
384
|
+
me->method = blk;
|
|
385
|
+
rb_gc_register_address(&blk);
|
|
386
|
+
rb_gc_register_address(&me->method);
|
|
387
|
+
|
|
343
388
|
UA_Server_addVariableNode(parent->master->master,
|
|
344
389
|
n,
|
|
345
390
|
parent->id,
|
|
@@ -347,9 +392,13 @@ static UA_NodeId node_add_variable_ua(UA_Int32 type, UA_NodeId n, UA_LocalizedTe
|
|
|
347
392
|
qn,
|
|
348
393
|
UA_NODEID_NUMERIC(0, type),
|
|
349
394
|
vAttr,
|
|
350
|
-
|
|
395
|
+
(void *)me,
|
|
351
396
|
NULL);
|
|
352
397
|
|
|
398
|
+
UA_ValueCallback callback ;
|
|
399
|
+
callback.onWrite = node_add_variable_callback;
|
|
400
|
+
UA_Server_setVariableNode_valueCallback(parent->master->master, n, callback);
|
|
401
|
+
|
|
353
402
|
UA_Server_addReference(parent->master->master,
|
|
354
403
|
n,
|
|
355
404
|
UA_NODEID_NUMERIC(0, UA_NS0ID_HASMODELLINGRULE),
|
|
@@ -357,15 +406,28 @@ static UA_NodeId node_add_variable_ua(UA_Int32 type, UA_NodeId n, UA_LocalizedTe
|
|
|
357
406
|
true);
|
|
358
407
|
|
|
359
408
|
return n;
|
|
360
|
-
}
|
|
361
|
-
static UA_NodeId node_add_variable_ua_simple(UA_Int32 type,
|
|
409
|
+
} //}}}
|
|
410
|
+
static UA_NodeId node_add_variable_ua_simple(UA_Int32 type, VALUE str, node_struct *parent, UA_Byte accesslevelmask, bool numeric, VALUE blk) { //{{{
|
|
411
|
+
int nodeid = nodecounter++;
|
|
412
|
+
char *nstr = (char *)StringValuePtr(str);
|
|
413
|
+
|
|
414
|
+
UA_NodeId n;
|
|
415
|
+
if (numeric) {
|
|
416
|
+
n = UA_NODEID_NUMERIC(parent->master->default_ns,nodeid);
|
|
417
|
+
rb_hash_aset(parent->master->methods,INT2NUM(nodeid),blk);
|
|
418
|
+
} else {
|
|
419
|
+
n = UA_NODEID_STRING(parent->master->default_ns,nstr);
|
|
420
|
+
rb_hash_aset(parent->master->methods,str,blk);
|
|
421
|
+
}
|
|
422
|
+
rb_gc_register_address(&blk);
|
|
362
423
|
return node_add_variable_ua(
|
|
363
424
|
type,
|
|
364
|
-
|
|
425
|
+
n,
|
|
365
426
|
UA_LOCALIZEDTEXT("en-US", nstr),
|
|
366
427
|
UA_QUALIFIEDNAME(parent->master->default_ns, nstr),
|
|
367
428
|
parent,
|
|
368
|
-
accesslevelmask
|
|
429
|
+
accesslevelmask,
|
|
430
|
+
blk
|
|
369
431
|
);
|
|
370
432
|
} //}}}
|
|
371
433
|
static VALUE node_add_variable_wrap(int argc, VALUE* argv, VALUE self, UA_Byte accesslevelmask, bool numeric) { //{{{
|
|
@@ -375,22 +437,28 @@ static VALUE node_add_variable_wrap(int argc, VALUE* argv, VALUE self, UA_Byte a
|
|
|
375
437
|
rb_raise(rb_eArgError, "wrong number of arguments");
|
|
376
438
|
}
|
|
377
439
|
|
|
440
|
+
Data_Get_Struct(self, node_struct, parent);
|
|
441
|
+
if (!parent->exists) rb_raise(rb_eRuntimeError, "Node does not exist anymore.");
|
|
442
|
+
|
|
443
|
+
VALUE name;
|
|
444
|
+
VALUE ttype;
|
|
445
|
+
VALUE blk;
|
|
446
|
+
rb_gc_register_address(&blk);
|
|
447
|
+
|
|
448
|
+
rb_scan_args(argc, argv, "11&", &name, &ttype, &blk);
|
|
449
|
+
|
|
378
450
|
UA_UInt32 type;
|
|
379
|
-
if (
|
|
380
|
-
type = NUM2INT(argv[1]);
|
|
381
|
-
} else {
|
|
451
|
+
if (NIL_P(ttype)) {
|
|
382
452
|
type = UA_NS0ID_BASEDATAVARIABLETYPE;
|
|
453
|
+
} else {
|
|
454
|
+
type = NUM2INT(ttype);
|
|
383
455
|
}
|
|
384
456
|
|
|
385
|
-
|
|
386
|
-
if (!parent->exists) rb_raise(rb_eRuntimeError, "Node does not exist anymore.");
|
|
387
|
-
|
|
388
|
-
VALUE str = rb_obj_as_string(argv[0]);
|
|
457
|
+
VALUE str = rb_obj_as_string(name);
|
|
389
458
|
if (NIL_P(str) || TYPE(str) != T_STRING)
|
|
390
459
|
rb_raise(rb_eTypeError, "cannot convert obj to string");
|
|
391
|
-
char *nstr = (char *)StringValuePtr(str);
|
|
392
460
|
|
|
393
|
-
return node_wrap(cVarNode,node_alloc(parent->master,node_add_variable_ua_simple(type,
|
|
461
|
+
return node_wrap(cVarNode,node_alloc(parent->master,node_add_variable_ua_simple(type,str,parent,accesslevelmask,numeric,blk)));
|
|
394
462
|
} //}}}
|
|
395
463
|
static VALUE node_add_variable(int argc, VALUE* argv, VALUE self) { //{{{
|
|
396
464
|
return node_add_variable_wrap(argc,argv,self,UA_ACCESSLEVELMASK_READ,true);
|
|
@@ -564,10 +632,22 @@ static UA_StatusCode node_manifest_iter(UA_NodeId child_id, UA_Boolean is_invers
|
|
|
564
632
|
UA_BrowsePathResult property = node_browse_path(parent->master->master, child_id, UA_NODEID_NUMERIC(0, UA_NS0ID_HASTYPEDEFINITION), pqn, false);
|
|
565
633
|
UA_QualifiedName_clear(&pqn);
|
|
566
634
|
|
|
635
|
+
VALUE blk;
|
|
636
|
+
if (child_id.identifierType == UA_NODEIDTYPE_NUMERIC) {
|
|
637
|
+
blk = rb_hash_aref(parent->master->methods,INT2NUM(child_id.identifier.numeric));
|
|
638
|
+
} else if (child_id.identifierType == UA_NODEIDTYPE_STRING) {
|
|
639
|
+
blk = rb_hash_aref(parent->master->methods,rb_str_new((const char *)child_id.identifier.string.data,child_id.identifier.string.length));
|
|
640
|
+
} else if (child_id.identifierType == UA_NODEIDTYPE_BYTESTRING) {
|
|
641
|
+
blk = rb_hash_aref(parent->master->methods,rb_str_new((const char *)child_id.identifier.byteString.data,child_id.identifier.byteString.length));
|
|
642
|
+
} else {
|
|
643
|
+
blk = Qnil;
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
|
|
567
647
|
if (property.statusCode == UA_STATUSCODE_GOOD) {
|
|
568
|
-
node_add_variable_ua(UA_NS0ID_PROPERTYTYPE,UA_NODEID_STRING(parent->master->default_ns,buffer),dn,qn,newnode,al);
|
|
648
|
+
node_add_variable_ua(UA_NS0ID_PROPERTYTYPE,UA_NODEID_STRING(parent->master->default_ns,buffer),dn,qn,newnode,al,blk);
|
|
569
649
|
} else {
|
|
570
|
-
node_add_variable_ua(UA_NS0ID_BASEDATAVARIABLETYPE,UA_NODEID_STRING(parent->master->default_ns,buffer),dn,qn,newnode,al);
|
|
650
|
+
node_add_variable_ua(UA_NS0ID_BASEDATAVARIABLETYPE,UA_NODEID_STRING(parent->master->default_ns,buffer),dn,qn,newnode,al,blk);
|
|
571
651
|
}
|
|
572
652
|
|
|
573
653
|
UA_BrowsePathResult_clear(&property);
|
data/lib/opcua/server.rb
CHANGED
|
@@ -46,11 +46,23 @@ module OPCUA
|
|
|
46
46
|
def add_property_rw(*item)
|
|
47
47
|
item.each { |e| add_property_rw e }
|
|
48
48
|
end
|
|
49
|
-
def add_variables(*item)
|
|
50
|
-
item.each
|
|
49
|
+
def add_variables(*item,&blk)
|
|
50
|
+
item.each do |e|
|
|
51
|
+
if blk.nil?
|
|
52
|
+
add_variable e
|
|
53
|
+
else
|
|
54
|
+
add_variable e, &blk
|
|
55
|
+
end
|
|
56
|
+
end
|
|
51
57
|
end
|
|
52
|
-
def add_variables_rw(*item)
|
|
53
|
-
item.each
|
|
58
|
+
def add_variables_rw(*item,&blk)
|
|
59
|
+
item.each do |e|
|
|
60
|
+
if blk.nil?
|
|
61
|
+
add_variable_rw e
|
|
62
|
+
else
|
|
63
|
+
add_variable_rw e, &blk
|
|
64
|
+
end
|
|
65
|
+
end
|
|
54
66
|
end
|
|
55
67
|
end
|
|
56
68
|
end
|
data/opcua.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = "opcua"
|
|
3
|
-
s.version = "0.
|
|
3
|
+
s.version = "0.24"
|
|
4
4
|
s.platform = Gem::Platform::RUBY
|
|
5
5
|
s.license = "LGPL-3.0"
|
|
6
6
|
s.summary = "Preliminary release of opcua (open62541) ruby bindings. C performance, Ruby elegance, simplicity, and productivity."
|
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
|
15
15
|
|
|
16
16
|
s.required_ruby_version = '>=2.5.0'
|
|
17
17
|
|
|
18
|
-
s.authors = ['Juergen eTM Mangler','Florian Pauker']
|
|
18
|
+
s.authors = ['Juergen eTM Mangler','Florian Pauker','Matthias Ehrendorfer']
|
|
19
19
|
|
|
20
20
|
s.email = 'juergen.mangler@gmail.com'
|
|
21
21
|
s.homepage = 'https://github.com/etm/opcua-smart'
|
metadata
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: opcua
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: '0.
|
|
4
|
+
version: '0.24'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Juergen eTM Mangler
|
|
8
8
|
- Florian Pauker
|
|
9
|
-
|
|
9
|
+
- Matthias Ehrendorfer
|
|
10
|
+
autorequire:
|
|
10
11
|
bindir: tools
|
|
11
12
|
cert_chain: []
|
|
12
|
-
date:
|
|
13
|
+
date: 2021-01-25 00:00:00.000000000 Z
|
|
13
14
|
dependencies:
|
|
14
15
|
- !ruby/object:Gem::Dependency
|
|
15
16
|
name: daemonite
|
|
@@ -63,8 +64,8 @@ description: see https://github.com/etm/opcua-smart
|
|
|
63
64
|
email: juergen.mangler@gmail.com
|
|
64
65
|
executables: []
|
|
65
66
|
extensions:
|
|
66
|
-
- ext/opcua/client/extconf.rb
|
|
67
67
|
- ext/opcua/server/extconf.rb
|
|
68
|
+
- ext/opcua/client/extconf.rb
|
|
68
69
|
extra_rdoc_files:
|
|
69
70
|
- README.md
|
|
70
71
|
files:
|
|
@@ -82,16 +83,11 @@ files:
|
|
|
82
83
|
- example/client_subscription.rb
|
|
83
84
|
- example/kelch.KMT
|
|
84
85
|
- example/server.rb
|
|
85
|
-
- example/server_browse.rb
|
|
86
86
|
- example/server_deep.rb
|
|
87
87
|
- example/server_values.rb
|
|
88
|
+
- example/server_values_callback.rb
|
|
88
89
|
- example/server_xml.rb
|
|
89
|
-
- example/test
|
|
90
|
-
- example/test.mpf
|
|
91
90
|
- example/test.rb
|
|
92
|
-
- example/test1
|
|
93
|
-
- example/tester.mpf
|
|
94
|
-
- example/turm.rb
|
|
95
91
|
- ext/opcua/client/client.c
|
|
96
92
|
- ext/opcua/client/client.h
|
|
97
93
|
- ext/opcua/client/extconf.rb
|
|
@@ -129,7 +125,7 @@ homepage: https://github.com/etm/opcua-smart
|
|
|
129
125
|
licenses:
|
|
130
126
|
- LGPL-3.0
|
|
131
127
|
metadata: {}
|
|
132
|
-
post_install_message:
|
|
128
|
+
post_install_message:
|
|
133
129
|
rdoc_options: []
|
|
134
130
|
require_paths:
|
|
135
131
|
- lib
|
|
@@ -144,8 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
144
140
|
- !ruby/object:Gem::Version
|
|
145
141
|
version: '0'
|
|
146
142
|
requirements: []
|
|
147
|
-
rubygems_version: 3.1.
|
|
148
|
-
signing_key:
|
|
143
|
+
rubygems_version: 3.1.4
|
|
144
|
+
signing_key:
|
|
149
145
|
specification_version: 4
|
|
150
146
|
summary: Preliminary release of opcua (open62541) ruby bindings. C performance, Ruby
|
|
151
147
|
elegance, simplicity, and productivity.
|
data/example/server_browse.rb
DELETED
data/example/test
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
class Types
|
|
2
|
-
NAME = [ :TYPES ]
|
|
3
|
-
def self::defined?
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
def self::const_missing(name)
|
|
7
|
-
kelf = self
|
|
8
|
-
c = Class.new(Types) do
|
|
9
|
-
const_set :NAME, kelf::NAME << name
|
|
10
|
-
end
|
|
11
|
-
c
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
1.upto 5000000 do |i|
|
|
17
|
-
a = Types::B::C::D
|
|
18
|
-
a::NAME
|
|
19
|
-
if i % 1000 == 0
|
|
20
|
-
GC::start
|
|
21
|
-
end
|
|
22
|
-
end
|
data/example/test.mpf
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
F_HEAD(1120403455,25,0.2,,120,1,1,8.5,-8.2,390,200,0.4,4000,6000,71,0,43663,,60,,20,6,6,100,100,100,1,205.5,,8650751,16015,2,0,6,120,0,,-100,-80,6,100,100,100,10,10,0,0,,200,50,720);*RO*
|
|
2
|
-
MSG("JUERGEN43")
|
|
3
|
-
$MAS_SPINDLE_PARAMETER[1,AX6]=31.5
|
|
4
|
-
F_ROUGH("SCHRUPPER-A-L","",1,0.1,3,250,2,0,54273,5,25,90,0.5,90,-0.8,90,0,90,-0.8,90,0,90,0,0,0,0,0.8,0,0.1,0,90,90,0,0,0);*RO*
|
|
5
|
-
F_TS("FRAESER-10-AXHS",,1,1000,1,2,5,,,0,0,0,0);*RO*
|
|
6
|
-
F_DRILL("FRAESER-10-AXHS","",1,200,1,3500,1,0,40,0.5,90,-2.2,90,50,85,3,5,0,17,0,100);*RO*
|
|
7
|
-
F_CON("HS_BOHR",4,"E_LAB_A_HS_BOHR","E_LAB_E_HS_BOHR");*RO*
|
|
8
|
-
F_ROU_Z("BOHRSTANGE-10/12L","",1,0.12,3,200,2,0,0,,,,"202006301043360",,,,"202006301043361",321321,0.05,10,0.2,1.5,2,0.2,0.05,0.1,0,0,0,1,10,90,0.1,90,110,,,10,,,,2,2,,,,,0,,,,0,0,0,1,1,0,0.08);*RO*
|
|
9
|
-
F_CON("HS",4,"E_LAB_A_HS","E_LAB_E_HS");*RO*
|
|
10
|
-
F_ROU_Z("SCHRUPPER-A-L","",1,0.15,3,250,2,0,0,,,,"202006301047382",,,,"202006301047383",321111,0.1,10,0.2,2,2,4.711,0.2,0.1,0,0,0,1,25,90,0.1,90,110,,,10,,,,2,2,,,,,0,,,,0,0,0,1,1,0);*RO*
|
|
11
|
-
F_ROU_Z("SCHLICHTER-A-L","",1,0.15,3,250,2,10,0,,,,"202006301051164","202006301047383",,,"202006301051165",311111,0.05,0.2,0.07,1,6,4.711,0.1,0.1,0,0.2,0,1,0,91,0,91,31,,1,,-41.5,,,2,2,,,,,0,,,,0,0,0,1,1,0);*RO*
|
|
12
|
-
F_ROU_Z("EINSTI_2N-LR-HS","",1,0.1,3,200,2,12,0,,,,"2020063011000810","202006301051165",,,"2020063011000811",301111,0.08,0.1,0.1,0.8,6,0.2,1,0.1,0,0,0,1,0,91,0,91,30,,-8,,-5,,,2,2,1,30,,,0,,,,0,0,0,1,1,0);*RO*
|
|
13
|
-
F_ROU_Z("EINSTI_2N-LR-HS","",1,0.1,3,200,2,12,0,,,,"2020063011011512","2020063011000811",,,"2020063011011513",301211,0.08,0.1,0.1,1,6,0.2,0.5,0.1,0,0,0,1,0,91,0,91,31,,-41.1,,-46.9,,,2,2,1,30,,,0,,,,0,0,0,1,1,0);*RO*
|
|
14
|
-
F_ROU_Z("SCHLICHTER-A-L","",1,0.471,3,250,2,0,0,,,,"2020063011091716",,,,"2020063011091717",311211,0.1,10,0.2,1.5,2,0.2,0.2,0.1,0,0,0,1,25,90,0.1,90,31,,1,,-41.8,,,2,2,,,,,0,,,,0,0,0,1,1,0);*RO*
|
|
15
|
-
F_ROU_Z("SCHLICHTER-A-L","",1,0.471,3,250,2,0,0,,,,"2020063011113318",,,,"2020063011113319",311211,0.1,10,0.2,1.5,2,0.2,0.2,0.1,0,0,0,1,25,90,0.1,90,23,21,-46,,-53,,,2,2,,,,,0,,,,0,0,0,1,1,0);*RO*
|
|
16
|
-
F_TS("EINSTICH-ABSTICH3",,1,,0,1,5,,,0,0,0,0);*RO*
|
|
17
|
-
F_SUB_SP(11004,3,50,0,-29,1,90,1500,2000,2,-50,0,720,100,-50,,2,,0);*RO*
|
|
18
|
-
F_PARTOF("EINSTICH-ABSTICH3","",1,0.08,3,200,2,0,22,-50.1,1,90,0,90,0,1500,0.04,0.2,0,4000,0,0,0,1);*RO*
|
|
19
|
-
F_ROUGH("SCHLICHTER-A-R","",1,0.08,3,250,2,0,46082,5,22,90,0.2,90,-1,90,0,90,-1,90,0,90,0,0,0,0.4,0.2,0.1,0,1,90,90,0,0,0);*RO*
|
|
20
|
-
F_TS("SCHRUPPER-A-R",,1,,0,1,5,,,0,0,0,0);*RO*
|
|
21
|
-
M9
|
|
22
|
-
G0 D0 G53 X431.4;X431.4
|
|
23
|
-
G53 D0 Z601.5 C2=0;Z601.5
|
|
24
|
-
;M2=25 M9 ;M2=71
|
|
25
|
-
G04 F1
|
|
26
|
-
ENDE:M30
|
|
27
|
-
F_END(0,1,0);*RO*
|
|
28
|
-
M30 ;#SM;*RO*
|
|
29
|
-
E_LAB_A_HS: ;#SM Z:2
|
|
30
|
-
;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
|
|
31
|
-
G18 G90 DIAM90;*GP*
|
|
32
|
-
G0 Z0 X16 ;*GP*
|
|
33
|
-
G1 X22 RND=.4 ;*GP*
|
|
34
|
-
Z-5.2 RND=.4 ;*GP*
|
|
35
|
-
G2 Z-24.8 K=AC(-15) I=AC(67.998) RND=.4 ;*GP*
|
|
36
|
-
G1 Z-30.67 RND=.4 ;*GP*
|
|
37
|
-
Z-35 X17 RND=.8 ;*GP*
|
|
38
|
-
Z-39.33 X22 RND=.4 ;*GP*
|
|
39
|
-
Z-41.5 RND=.04 ;*GP*
|
|
40
|
-
X16 RND=.4 ;*GP*
|
|
41
|
-
Z-46.5 RND=.4 ;*GP*
|
|
42
|
-
X22 RND=.4 ;*GP*
|
|
43
|
-
Z-53.3 ;*GP*
|
|
44
|
-
X25 ;*GP*
|
|
45
|
-
;CON,V64,2,0.0000,12,12,MST:3,2,AX:Z,X,K,I,TRANS:0;*GP*;*RO*;*HD*
|
|
46
|
-
;S,EX:0,EY:16,ASE:90;*GP*;*RO*;*HD*
|
|
47
|
-
;R,RROUND:0;*GP*;*RO*;*HD*
|
|
48
|
-
;LU,EY:22;*GP*;*RO*;*HD*
|
|
49
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
50
|
-
;LL,EX:-5.2;*GP*;*RO*;*HD*
|
|
51
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
52
|
-
;ACW,DIA:0/235,EX:-24.8,EY:22,RAD:25;*GP*;*RO*;*HD*
|
|
53
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
54
|
-
;LL,EX:-30.67;*GP*;*RO*;*HD*
|
|
55
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
56
|
-
;LA,EX:-35,EY:17;*GP*;*RO*;*HD*
|
|
57
|
-
;R,RROUND:.8;*GP*;*RO*;*HD*
|
|
58
|
-
;LA,EX:-39.33,EY:22;*GP*;*RO*;*HD*
|
|
59
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
60
|
-
;LL,EX:-41.5;*GP*;*RO*;*HD*
|
|
61
|
-
;R,RROUND:.04;*GP*;*RO*;*HD*
|
|
62
|
-
;LD,EY:16;*GP*;*RO*;*HD*
|
|
63
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
64
|
-
;LL,EX:-46.5;*GP*;*RO*;*HD*
|
|
65
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
66
|
-
;LU,EY:22;*GP*;*RO*;*HD*
|
|
67
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
68
|
-
;LL,EX:-53.3;*GP*;*RO*;*HD*
|
|
69
|
-
;LU,EY:25;*GP*;*RO*;*HD*
|
|
70
|
-
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
|
|
71
|
-
E_LAB_E_HS:
|
|
72
|
-
E_LAB_A_HS_BOHR: ;#SM Z:2
|
|
73
|
-
;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
|
|
74
|
-
G18 G90 DIAM90;*GP*
|
|
75
|
-
G0 Z0 X17.8 ;*GP*
|
|
76
|
-
G1 X17 RND=.4 ;*GP*
|
|
77
|
-
Z-2 ;*GP*
|
|
78
|
-
X9 ;*GP*
|
|
79
|
-
;CON,V64,2,0.0000,2,2,MST:3,2,AX:Z,X,K,I,TRANS:0;*GP*;*RO*;*HD*
|
|
80
|
-
;S,EX:0,EY:17,ASE:270;*GP*;*RO*;*HD*
|
|
81
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
82
|
-
;LL,EX:-2;*GP*;*RO*;*HD*
|
|
83
|
-
;LD,EY:9;*GP*;*RO*;*HD*
|
|
84
|
-
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
|
|
85
|
-
E_LAB_E_HS_BOHR:
|
data/example/test1
DELETED
data/example/tester.mpf
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
F_HEAD(1120403455,25,0.2,,120,1,1,8.5,-8.2,390,200,0.4,4000,6000,71,0,43663,,60,,20,6,6,100,100,100,1,205.5,,8650751,16015,2,0,6,120,0,,-100,-80,6,100,100,100,10,10,0,0,,200,50,720);*RO*
|
|
2
|
-
MSG("JUERGEN1")
|
|
3
|
-
$MAS_SPINDLE_PARAMETER[1,AX6]=31.5
|
|
4
|
-
F_ROUGH("SCHRUPPER-A-L","",1,0.1,3,250,2,0,54273,5,25,90,0.5,90,-0.8,90,0,90,-0.8,90,0,90,0,0,0,0,0.8,0,0.1,0,90,90,0,0,0);*RO*
|
|
5
|
-
F_TS("FRAESER-10-AXHS",,1,1000,1,2,5,,,0,0,0,0);*RO*
|
|
6
|
-
F_DRILL("FRAESER-10-AXHS","",1,200,1,3500,1,0,40,0.5,90,-2.2,90,50,85,3,5,0,17,0,100);*RO*
|
|
7
|
-
F_CON("HS_BOHR",4,"E_LAB_A_HS_BOHR","E_LAB_E_HS_BOHR");*RO*
|
|
8
|
-
F_ROU_Z("BOHRSTANGE-10/12L","",1,0.12,3,200,2,0,0,,,,"202006301043360",,,,"202006301043361",321321,0.05,10,0.2,1.5,2,0.2,0.05,0.1,0,0,0,1,10,90,0.1,90,110,,,10,,,,2,2,,,,,0,,,,0,0,0,1,1,0,0.08);*RO*
|
|
9
|
-
F_CON("HS",4,"E_LAB_A_HS","E_LAB_E_HS");*RO*
|
|
10
|
-
F_ROU_Z("SCHRUPPER-A-L","",1,0.15,3,250,2,0,0,,,,"202006301047382",,,,"202006301047383",321111,0.1,10,0.2,2,2,4.711,0.2,0.1,0,0,0,1,25,90,0.1,90,110,,,10,,,,2,2,,,,,0,,,,0,0,0,1,1,0);*RO*
|
|
11
|
-
F_ROU_Z("SCHLICHTER-A-L","",1,0.15,3,250,2,10,0,,,,"202006301051164","202006301047383",,,"202006301051165",311111,0.05,0.2,0.07,1,6,4.711,0.1,0.1,0,0.2,0,1,0,91,0,91,31,,1,,-41.5,,,2,2,,,,,0,,,,0,0,0,1,1,0);*RO*
|
|
12
|
-
F_ROU_Z("EINSTI_2N-LR-HS","",1,0.1,3,200,2,12,0,,,,"2020063011000810","202006301051165",,,"2020063011000811",301111,0.08,0.1,0.1,0.8,6,0.2,1,0.1,0,0,0,1,0,91,0,91,30,,-8,,-5,,,2,2,1,30,,,0,,,,0,0,0,1,1,0);*RO*
|
|
13
|
-
F_ROU_Z("EINSTI_2N-LR-HS","",1,0.1,3,200,2,12,0,,,,"2020063011011512","2020063011000811",,,"2020063011011513",301211,0.08,0.1,0.1,1,6,0.2,0.5,0.1,0,0,0,1,0,91,0,91,31,,-41.1,,-46.9,,,2,2,1,30,,,0,,,,0,0,0,1,1,0);*RO*
|
|
14
|
-
F_ROU_Z("SCHLICHTER-A-L","",1,0.471,3,250,2,0,0,,,,"2020063011091716",,,,"2020063011091717",311211,0.1,10,0.2,1.5,2,0.2,0.2,0.1,0,0,0,1,25,90,0.1,90,31,,1,,-41.8,,,2,2,,,,,0,,,,0,0,0,1,1,0);*RO*
|
|
15
|
-
F_ROU_Z("SCHLICHTER-A-L","",1,0.471,3,250,2,0,0,,,,"2020063011113318",,,,"2020063011113319",311211,0.1,10,0.2,1.5,2,0.2,0.2,0.1,0,0,0,1,25,90,0.1,90,23,21,-46,,-53,,,2,2,,,,,0,,,,0,0,0,1,1,0);*RO*
|
|
16
|
-
F_TS("EINSTICH-ABSTICH3",,1,,0,1,5,,,0,0,0,0);*RO*
|
|
17
|
-
F_SUB_SP(11004,3,50,0,-29,1,90,1500,2000,2,-50,0,720,100,-50,,2,,0);*RO*
|
|
18
|
-
F_PARTOF("EINSTICH-ABSTICH3","",1,0.08,3,200,2,0,22,-50.1,1,90,0,90,0,1500,0.04,0.2,0,4000,0,0,0,1);*RO*
|
|
19
|
-
F_ROUGH("SCHLICHTER-A-R","",1,0.08,3,250,2,0,46082,5,22,90,0.2,90,-1,90,0,90,-1,90,0,90,0,0,0,0.4,0.2,0.1,0,1,90,90,0,0,0);*RO*
|
|
20
|
-
F_TS("SCHRUPPER-A-R",,1,,0,1,5,,,0,0,0,0);*RO*
|
|
21
|
-
M9
|
|
22
|
-
G0 D0 G53 X431.4;X431.4
|
|
23
|
-
G53 D0 Z601.5 C2=0;Z601.5
|
|
24
|
-
;M2=25 M9 ;M2=71
|
|
25
|
-
G04 F1
|
|
26
|
-
ENDE:M30
|
|
27
|
-
F_END(0,1,0);*RO*
|
|
28
|
-
M30 ;#SM;*RO*
|
|
29
|
-
E_LAB_A_HS: ;#SM Z:2
|
|
30
|
-
;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
|
|
31
|
-
G18 G90 DIAM90;*GP*
|
|
32
|
-
G0 Z0 X16 ;*GP*
|
|
33
|
-
G1 X22 RND=.4 ;*GP*
|
|
34
|
-
Z-5.2 RND=.4 ;*GP*
|
|
35
|
-
G2 Z-24.8 K=AC(-15) I=AC(67.998) RND=.4 ;*GP*
|
|
36
|
-
G1 Z-30.67 RND=.4 ;*GP*
|
|
37
|
-
Z-35 X17 RND=.8 ;*GP*
|
|
38
|
-
Z-39.33 X22 RND=.4 ;*GP*
|
|
39
|
-
Z-41.5 RND=.04 ;*GP*
|
|
40
|
-
X16 RND=.4 ;*GP*
|
|
41
|
-
Z-46.5 RND=.4 ;*GP*
|
|
42
|
-
X22 RND=.4 ;*GP*
|
|
43
|
-
Z-53.3 ;*GP*
|
|
44
|
-
X25 ;*GP*
|
|
45
|
-
;CON,V64,2,0.0000,12,12,MST:3,2,AX:Z,X,K,I,TRANS:0;*GP*;*RO*;*HD*
|
|
46
|
-
;S,EX:0,EY:16,ASE:90;*GP*;*RO*;*HD*
|
|
47
|
-
;R,RROUND:0;*GP*;*RO*;*HD*
|
|
48
|
-
;LU,EY:22;*GP*;*RO*;*HD*
|
|
49
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
50
|
-
;LL,EX:-5.2;*GP*;*RO*;*HD*
|
|
51
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
52
|
-
;ACW,DIA:0/235,EX:-24.8,EY:22,RAD:25;*GP*;*RO*;*HD*
|
|
53
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
54
|
-
;LL,EX:-30.67;*GP*;*RO*;*HD*
|
|
55
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
56
|
-
;LA,EX:-35,EY:17;*GP*;*RO*;*HD*
|
|
57
|
-
;R,RROUND:.8;*GP*;*RO*;*HD*
|
|
58
|
-
;LA,EX:-39.33,EY:22;*GP*;*RO*;*HD*
|
|
59
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
60
|
-
;LL,EX:-41.5;*GP*;*RO*;*HD*
|
|
61
|
-
;R,RROUND:.04;*GP*;*RO*;*HD*
|
|
62
|
-
;LD,EY:16;*GP*;*RO*;*HD*
|
|
63
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
64
|
-
;LL,EX:-46.5;*GP*;*RO*;*HD*
|
|
65
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
66
|
-
;LU,EY:22;*GP*;*RO*;*HD*
|
|
67
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
68
|
-
;LL,EX:-53.3;*GP*;*RO*;*HD*
|
|
69
|
-
;LU,EY:25;*GP*;*RO*;*HD*
|
|
70
|
-
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
|
|
71
|
-
E_LAB_E_HS:
|
|
72
|
-
E_LAB_A_HS_BOHR: ;#SM Z:2
|
|
73
|
-
;#7__DlgK contour definition begin - Don't change!;*GP*;*RO*;*HD*
|
|
74
|
-
G18 G90 DIAM90;*GP*
|
|
75
|
-
G0 Z0 X17.8 ;*GP*
|
|
76
|
-
G1 X17 RND=.4 ;*GP*
|
|
77
|
-
Z-2 ;*GP*
|
|
78
|
-
X9 ;*GP*
|
|
79
|
-
;CON,V64,2,0.0000,2,2,MST:3,2,AX:Z,X,K,I,TRANS:0;*GP*;*RO*;*HD*
|
|
80
|
-
;S,EX:0,EY:17,ASE:270;*GP*;*RO*;*HD*
|
|
81
|
-
;R,RROUND:.4;*GP*;*RO*;*HD*
|
|
82
|
-
;LL,EX:-2;*GP*;*RO*;*HD*
|
|
83
|
-
;LD,EY:9;*GP*;*RO*;*HD*
|
|
84
|
-
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
|
|
85
|
-
E_LAB_E_HS_BOHR:
|
data/example/turm.rb
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/ruby
|
|
2
|
-
require_relative '../lib/opcua/client'
|
|
3
|
-
#require 'opcua/client'
|
|
4
|
-
|
|
5
|
-
### username & pass in url (e.g. siemens)
|
|
6
|
-
client = OPCUA::Client.new("opc.tcp://OpcUaClient:SUNRISE1@localhost:4840")
|
|
7
|
-
|
|
8
|
-
#node = client.get 2, '/Methods/CopyFileToServer'
|
|
9
|
-
#prog = File.read('test.mpf')
|
|
10
|
-
#p node.call 'Sinumerik/FileSystem/Work Pieces/CDP/TURM_PSC.MPF', prog, true
|
|
11
|
-
|
|
12
|
-
node = client.get 2, '/Methods/CopyFileFromServer '
|
|
13
|
-
puts node.call 'Sinumerik/FileSystem/Work Pieces/CDP/TURM_PSC.MPF'
|