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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e658783e674985e51fa8746d8816e236358b5cc489c7b43c358f508979ae2505
4
- data.tar.gz: 117cf84b0c098589de29493100120b04bbfe3e92faf3c5845f5966eb17a919db
3
+ metadata.gz: a773ade8df621b180e42eeb36e3564210ea19a8213d4e3afb683ddd52aeee30f
4
+ data.tar.gz: b05494405e7d5bcdd8c8b406ab0ee4f51a562aa0e5c84ef508d50b7b23ca1ce0
5
5
  SHA512:
6
- metadata.gz: a0546d8df45474fe1981be5ea5b01bc0dcb1dfcb6890fe62b32fa455c0cff3b27e236b6f8bb77ffb59108d9d63a1314069dc9eb97293e8c54475360c98b3e3c1
7
- data.tar.gz: b682cc246d4080fae51c6adc19dff2924c9583c264a847d83b228276b8bc271d08a116ca375a87377eda58fce42100f74033f3afeb44ea6b0402ca630d8a7e42
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 > 0.4 (master branch as of 2019-04-26)
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 ```.add_Varable_rw``` method.
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 |r|
31
+ task :push => :gem do
32
32
  `gem push pkg/opcua.gem`
33
33
  end
34
34
 
35
- task :install => :gem do |r|
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
@@ -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, 0x3e, 0xa5, 0xc9, 0x94, 0x89, 0x4f, 0x15, 0xee, 0x1b,
4
- 0x82, 0x04, 0xec, 0x09, 0x7e, 0xb7, 0x7a, 0xc7, 0x26, 0x3d, 0x2a, 0x30,
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, 0x30, 0x30, 0x36, 0x33, 0x30, 0x31,
9
- 0x34, 0x32, 0x31, 0x33, 0x34, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x36,
10
- 0x32, 0x30, 0x31, 0x34, 0x32, 0x31, 0x33, 0x34, 0x5a, 0x30, 0x15, 0x31,
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, 0xbd, 0x8e, 0xc3, 0x44, 0xf2, 0x43, 0x2c,
16
- 0xcc, 0x2e, 0xa2, 0x22, 0xd2, 0x31, 0x6e, 0x38, 0x85, 0x53, 0x53, 0x5d,
17
- 0x55, 0x68, 0x39, 0x0e, 0xe6, 0x4c, 0x7d, 0xe5, 0xd0, 0x52, 0x92, 0x31,
18
- 0x1b, 0xb4, 0x4f, 0xde, 0xd7, 0xba, 0x52, 0xbb, 0xdb, 0x27, 0xf7, 0x12,
19
- 0x1f, 0xef, 0x86, 0x2c, 0x41, 0x98, 0xa1, 0xca, 0xd2, 0xfd, 0x01, 0x0a,
20
- 0xc7, 0x98, 0x71, 0x4b, 0xa7, 0x93, 0xa0, 0xf3, 0x6a, 0x62, 0x23, 0xa8,
21
- 0xc3, 0x22, 0x45, 0xac, 0x2c, 0xac, 0x63, 0x95, 0x18, 0x87, 0x6a, 0xd0,
22
- 0xac, 0x3b, 0x09, 0x76, 0xb3, 0xe1, 0x4b, 0x03, 0xb3, 0x94, 0x7a, 0x65,
23
- 0xed, 0x50, 0x03, 0x8c, 0xca, 0x3c, 0xee, 0x96, 0x52, 0xe2, 0x1d, 0xad,
24
- 0x58, 0x49, 0x6f, 0x07, 0x18, 0x9d, 0x49, 0xb4, 0xe2, 0x08, 0xca, 0xe7,
25
- 0x62, 0x30, 0xb6, 0x99, 0xcc, 0x68, 0xe3, 0x85, 0xa5, 0x7f, 0xd2, 0xca,
26
- 0x24, 0x02, 0x26, 0x1c, 0x52, 0x5c, 0xa1, 0x03, 0x81, 0xca, 0x97, 0x84,
27
- 0xbb, 0x4a, 0x27, 0xba, 0x24, 0x9a, 0x3f, 0x5d, 0x31, 0xd6, 0xe2, 0xfd,
28
- 0x02, 0xa8, 0xca, 0xc6, 0x65, 0xd7, 0x09, 0x77, 0x6c, 0x19, 0xf1, 0x8c,
29
- 0x7e, 0x22, 0x6c, 0x35, 0x52, 0x61, 0x53, 0xd8, 0xd3, 0xcc, 0xfc, 0xe5,
30
- 0x26, 0x85, 0xb3, 0x39, 0x1d, 0x2d, 0xf8, 0x02, 0x1a, 0x18, 0x9d, 0x9d,
31
- 0x92, 0x88, 0x1f, 0x4b, 0x96, 0x19, 0x76, 0x22, 0x4b, 0xbf, 0x34, 0x57,
32
- 0x5a, 0xfd, 0x15, 0x22, 0x26, 0xbd, 0x30, 0xae, 0x07, 0x4b, 0x99, 0x02,
33
- 0xb6, 0xf8, 0xc2, 0xc9, 0x9f, 0x1f, 0xff, 0xe1, 0xb4, 0xf6, 0x07, 0xda,
34
- 0x46, 0xf7, 0x14, 0xa3, 0x1c, 0xdb, 0x5c, 0x25, 0x20, 0xf1, 0xa4, 0x9e,
35
- 0xd2, 0x40, 0x0b, 0x91, 0x84, 0x54, 0xb9, 0x55, 0x59, 0x49, 0x92, 0x5e,
36
- 0x3c, 0xeb, 0x55, 0x25, 0x66, 0x4a, 0xae, 0x6d, 0x89, 0x02, 0x03, 0x01,
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, 0x69, 0xb6, 0x74, 0x81, 0xb7, 0x88, 0x44,
39
- 0x9f, 0x6e, 0xb3, 0xd6, 0x1f, 0x3c, 0x06, 0xe4, 0xbd, 0xe3, 0xbe, 0xbe,
40
- 0xe9, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
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
- 0x00, 0xf2, 0x88, 0x0a, 0x87, 0xfe, 0x3f, 0xd7, 0x45, 0x4b, 0x9a, 0xee,
48
- 0x9b, 0x1e, 0xa8, 0x6f, 0x36, 0xcf, 0x7d, 0x3e, 0xd4, 0x34, 0x65, 0xdd,
49
- 0xd7, 0xd2, 0x06, 0x84, 0x0f, 0x10, 0xb2, 0x23, 0x9c, 0xb3, 0x1b, 0xa0,
50
- 0x37, 0x2b, 0x67, 0x1c, 0x76, 0x79, 0xfa, 0xb1, 0x2d, 0xe4, 0x87, 0x26,
51
- 0x98, 0xc5, 0xa7, 0x50, 0x6b, 0x53, 0xe4, 0xb5, 0x36, 0x9b, 0x75, 0x26,
52
- 0x94, 0xec, 0x39, 0x99, 0x21, 0x58, 0xde, 0xf2, 0xf2, 0x7b, 0x43, 0x5c,
53
- 0x96, 0xb4, 0x6a, 0xda, 0xb5, 0xae, 0xad, 0x97, 0x6d, 0xe0, 0xdc, 0x89,
54
- 0xfb, 0x4c, 0xff, 0x1f, 0x80, 0x95, 0x82, 0x5f, 0xb6, 0x47, 0xcd, 0xab,
55
- 0x55, 0xc0, 0x44, 0x48, 0x17, 0xf0, 0x69, 0x3e, 0x0c, 0xe8, 0x78, 0x05,
56
- 0x45, 0x23, 0x61, 0x04, 0xb0, 0x3c, 0x8c, 0xf6, 0x3f, 0x9e, 0xcc, 0xed,
57
- 0xd6, 0x77, 0x4d, 0x5c, 0x8f, 0x9d, 0x1f, 0x89, 0xf1, 0x68, 0xd2, 0x7e,
58
- 0xea, 0x4a, 0xde, 0x3f, 0x50, 0x5f, 0x12, 0x42, 0x01, 0x1a, 0x05, 0x69,
59
- 0x78, 0x49, 0x30, 0xa2, 0xfa, 0xe7, 0x27, 0x6f, 0x6e, 0xe6, 0xbe, 0xa6,
60
- 0x9c, 0x28, 0x98, 0x34, 0x75, 0x27, 0x0b, 0x83, 0xdb, 0x93, 0xcc, 0x25,
61
- 0xa5, 0x6f, 0xa5, 0x0c, 0x56, 0xeb, 0xd5, 0x50, 0x8c, 0x76, 0x16, 0x6b,
62
- 0x44, 0xd5, 0x47, 0x35, 0x46, 0x4c, 0xb0, 0x9c, 0x8f, 0x7c, 0x21, 0x64,
63
- 0x57, 0x35, 0xba, 0x49, 0x8a, 0x1d, 0x12, 0x2c, 0x1d, 0xe0, 0xd8, 0x99,
64
- 0xc6, 0x36, 0xc1, 0x4f, 0x1a, 0x37, 0xd9, 0x6e, 0x95, 0xed, 0x94, 0x75,
65
- 0x3b, 0x3a, 0x21, 0x28, 0x28, 0xb3, 0x25, 0x5b, 0xb7, 0x5b, 0x00, 0x05,
66
- 0x72, 0xeb, 0x09, 0x43, 0x2a, 0x18, 0x17, 0x2b, 0x6d, 0x45, 0xe6, 0xaa,
67
- 0x90, 0xc8, 0x81, 0x61, 0x94, 0x8b, 0xd2, 0x72, 0xc0, 0x57, 0x0b, 0x29,
68
- 0x18, 0x5d, 0x3c, 0x81
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;
@@ -1,103 +1,103 @@
1
1
  unsigned char cert_key_der[] = {
2
- 0x30, 0x82, 0x04, 0xa3, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00,
3
- 0xbd, 0x8e, 0xc3, 0x44, 0xf2, 0x43, 0x2c, 0xcc, 0x2e, 0xa2, 0x22, 0xd2,
4
- 0x31, 0x6e, 0x38, 0x85, 0x53, 0x53, 0x5d, 0x55, 0x68, 0x39, 0x0e, 0xe6,
5
- 0x4c, 0x7d, 0xe5, 0xd0, 0x52, 0x92, 0x31, 0x1b, 0xb4, 0x4f, 0xde, 0xd7,
6
- 0xba, 0x52, 0xbb, 0xdb, 0x27, 0xf7, 0x12, 0x1f, 0xef, 0x86, 0x2c, 0x41,
7
- 0x98, 0xa1, 0xca, 0xd2, 0xfd, 0x01, 0x0a, 0xc7, 0x98, 0x71, 0x4b, 0xa7,
8
- 0x93, 0xa0, 0xf3, 0x6a, 0x62, 0x23, 0xa8, 0xc3, 0x22, 0x45, 0xac, 0x2c,
9
- 0xac, 0x63, 0x95, 0x18, 0x87, 0x6a, 0xd0, 0xac, 0x3b, 0x09, 0x76, 0xb3,
10
- 0xe1, 0x4b, 0x03, 0xb3, 0x94, 0x7a, 0x65, 0xed, 0x50, 0x03, 0x8c, 0xca,
11
- 0x3c, 0xee, 0x96, 0x52, 0xe2, 0x1d, 0xad, 0x58, 0x49, 0x6f, 0x07, 0x18,
12
- 0x9d, 0x49, 0xb4, 0xe2, 0x08, 0xca, 0xe7, 0x62, 0x30, 0xb6, 0x99, 0xcc,
13
- 0x68, 0xe3, 0x85, 0xa5, 0x7f, 0xd2, 0xca, 0x24, 0x02, 0x26, 0x1c, 0x52,
14
- 0x5c, 0xa1, 0x03, 0x81, 0xca, 0x97, 0x84, 0xbb, 0x4a, 0x27, 0xba, 0x24,
15
- 0x9a, 0x3f, 0x5d, 0x31, 0xd6, 0xe2, 0xfd, 0x02, 0xa8, 0xca, 0xc6, 0x65,
16
- 0xd7, 0x09, 0x77, 0x6c, 0x19, 0xf1, 0x8c, 0x7e, 0x22, 0x6c, 0x35, 0x52,
17
- 0x61, 0x53, 0xd8, 0xd3, 0xcc, 0xfc, 0xe5, 0x26, 0x85, 0xb3, 0x39, 0x1d,
18
- 0x2d, 0xf8, 0x02, 0x1a, 0x18, 0x9d, 0x9d, 0x92, 0x88, 0x1f, 0x4b, 0x96,
19
- 0x19, 0x76, 0x22, 0x4b, 0xbf, 0x34, 0x57, 0x5a, 0xfd, 0x15, 0x22, 0x26,
20
- 0xbd, 0x30, 0xae, 0x07, 0x4b, 0x99, 0x02, 0xb6, 0xf8, 0xc2, 0xc9, 0x9f,
21
- 0x1f, 0xff, 0xe1, 0xb4, 0xf6, 0x07, 0xda, 0x46, 0xf7, 0x14, 0xa3, 0x1c,
22
- 0xdb, 0x5c, 0x25, 0x20, 0xf1, 0xa4, 0x9e, 0xd2, 0x40, 0x0b, 0x91, 0x84,
23
- 0x54, 0xb9, 0x55, 0x59, 0x49, 0x92, 0x5e, 0x3c, 0xeb, 0x55, 0x25, 0x66,
24
- 0x4a, 0xae, 0x6d, 0x89, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01,
25
- 0x00, 0x59, 0xe2, 0x2c, 0x2d, 0xb1, 0x42, 0xb1, 0x27, 0x50, 0xa5, 0x89,
26
- 0x25, 0x6a, 0x52, 0xfd, 0x72, 0x1b, 0x04, 0xd8, 0xa8, 0xfa, 0xf6, 0xb3,
27
- 0x5d, 0xf8, 0xbf, 0x6a, 0x0d, 0xd2, 0x59, 0x87, 0xf7, 0xbf, 0x14, 0x70,
28
- 0x72, 0x92, 0xe3, 0x50, 0x38, 0xa7, 0x46, 0xbc, 0xcd, 0x6f, 0xe2, 0x8b,
29
- 0x71, 0xbf, 0x52, 0x58, 0xbe, 0x9b, 0x41, 0xb7, 0x3e, 0xd5, 0xc6, 0x43,
30
- 0x3d, 0x7e, 0xff, 0x3e, 0xed, 0x1f, 0x04, 0x11, 0xae, 0x15, 0xbe, 0x3b,
31
- 0xda, 0x23, 0x14, 0x45, 0x4a, 0x90, 0x4b, 0xd2, 0x0f, 0x19, 0x1f, 0x6f,
32
- 0xad, 0xf4, 0x12, 0x81, 0xfa, 0xd1, 0x59, 0x08, 0xa3, 0xf2, 0xe0, 0xfc,
33
- 0x0d, 0x99, 0xbe, 0xf8, 0x80, 0xec, 0xbf, 0x6d, 0xc7, 0x03, 0x6b, 0x26,
34
- 0x4e, 0x41, 0xa7, 0x05, 0xa2, 0x78, 0xd0, 0xdd, 0xce, 0xed, 0x92, 0x68,
35
- 0x73, 0x48, 0xf9, 0x3a, 0x12, 0x33, 0xfe, 0x5b, 0xe2, 0xcc, 0xfc, 0xfe,
36
- 0x21, 0x3a, 0x18, 0xbd, 0x15, 0xd9, 0xec, 0x5d, 0xd8, 0xdd, 0xba, 0xde,
37
- 0x82, 0x13, 0xb9, 0xc0, 0x68, 0x35, 0x79, 0xbc, 0xb3, 0xf6, 0xd8, 0x7e,
38
- 0x0e, 0x43, 0x9a, 0x8a, 0xe6, 0xa1, 0x3c, 0x8b, 0x26, 0xbd, 0x5b, 0x32,
39
- 0x6c, 0xb0, 0x83, 0x35, 0xee, 0x18, 0xa8, 0xaa, 0x6c, 0xbc, 0x62, 0x38,
40
- 0x17, 0xac, 0x01, 0x0c, 0x56, 0xe9, 0x33, 0xaf, 0x04, 0x90, 0xf2, 0x3a,
41
- 0x34, 0xdb, 0x11, 0xab, 0x08, 0xc3, 0x76, 0x49, 0x68, 0x95, 0xbb, 0x9a,
42
- 0x7c, 0x1a, 0x84, 0x33, 0x7e, 0x87, 0xa6, 0x9e, 0xf9, 0xf1, 0x0b, 0x3b,
43
- 0xcc, 0xde, 0x43, 0x08, 0xd7, 0xdd, 0x15, 0xd4, 0x7b, 0x67, 0x50, 0x3a,
44
- 0x88, 0x75, 0xc2, 0xa2, 0xdc, 0xa8, 0x73, 0x14, 0x5f, 0xd2, 0x29, 0x4e,
45
- 0x77, 0x1b, 0xcb, 0xdf, 0xac, 0x6a, 0x86, 0xb1, 0xb2, 0x39, 0x32, 0xd9,
46
- 0xaf, 0x42, 0x9e, 0xdd, 0x91, 0x02, 0x81, 0x81, 0x00, 0xf6, 0x35, 0x9e,
47
- 0xd1, 0xf2, 0x16, 0x79, 0x78, 0xf1, 0x1b, 0x4c, 0x98, 0x85, 0x61, 0xc1,
48
- 0x60, 0xec, 0x28, 0x1e, 0x70, 0xfa, 0x71, 0x8c, 0xf9, 0x1f, 0xd2, 0x15,
49
- 0xb2, 0x3c, 0x53, 0x68, 0x69, 0x90, 0x17, 0x19, 0xa4, 0xf6, 0x25, 0xf0,
50
- 0x97, 0xaa, 0xb9, 0xcd, 0x13, 0xf0, 0x77, 0xb7, 0x3d, 0x5b, 0x21, 0xaf,
51
- 0x20, 0xe7, 0xa6, 0x45, 0x28, 0x5b, 0xcb, 0xf2, 0x05, 0xd0, 0xd1, 0x83,
52
- 0xcd, 0x93, 0x24, 0xd0, 0x5c, 0xba, 0x61, 0x65, 0x5d, 0x7d, 0x36, 0x31,
53
- 0x70, 0x52, 0x15, 0x5a, 0x9d, 0x9f, 0x62, 0x9b, 0xea, 0xd8, 0x3b, 0x76,
54
- 0xc7, 0x5f, 0x41, 0x6e, 0x30, 0xa9, 0xc5, 0x67, 0x98, 0x52, 0x22, 0x13,
55
- 0x4c, 0xea, 0xf3, 0xca, 0x66, 0x2a, 0x8e, 0x60, 0x0c, 0xdb, 0x44, 0xd5,
56
- 0xa4, 0x2d, 0x26, 0xeb, 0xfc, 0x27, 0x6c, 0x1d, 0x3f, 0xfc, 0xa2, 0x52,
57
- 0x73, 0x0a, 0x7a, 0xd8, 0xb3, 0x02, 0x81, 0x81, 0x00, 0xc5, 0x18, 0x6f,
58
- 0x48, 0x00, 0x5a, 0xf6, 0xc9, 0x3a, 0x79, 0xe1, 0xb1, 0xa6, 0x54, 0x0e,
59
- 0x78, 0xba, 0xe0, 0x9c, 0x49, 0x54, 0xa2, 0x51, 0xd6, 0xf5, 0x4f, 0xe7,
60
- 0xc6, 0x13, 0x92, 0x0e, 0x13, 0xde, 0xad, 0x5e, 0x29, 0x24, 0x59, 0xa5,
61
- 0x4f, 0xa1, 0x37, 0x91, 0x17, 0xe2, 0xec, 0x4a, 0xc3, 0xc6, 0xb3, 0x82,
62
- 0x0f, 0xbf, 0x8a, 0xb5, 0x55, 0x34, 0x93, 0x85, 0x96, 0x67, 0x70, 0x7c,
63
- 0x3b, 0xad, 0xf8, 0x6e, 0xbf, 0x05, 0x5b, 0xea, 0xd9, 0x5b, 0xda, 0x75,
64
- 0x03, 0xe1, 0x09, 0x9d, 0x44, 0x7a, 0x3f, 0xa3, 0xa7, 0x73, 0xb0, 0x3e,
65
- 0x0c, 0xb0, 0x5e, 0x2c, 0xa5, 0xb1, 0xde, 0x32, 0x59, 0xcb, 0xc4, 0x72,
66
- 0x8b, 0xb1, 0xb5, 0x5b, 0x5c, 0x8a, 0xc9, 0xb1, 0x30, 0x09, 0x64, 0x80,
67
- 0x19, 0x24, 0x59, 0xdf, 0x07, 0xf7, 0xfa, 0x97, 0x61, 0x14, 0xbf, 0xa6,
68
- 0xbe, 0xb0, 0xcf, 0xe6, 0xd3, 0x02, 0x81, 0x80, 0x62, 0xb1, 0xe5, 0xe3,
69
- 0x64, 0xf6, 0xeb, 0x64, 0xb6, 0xc9, 0xe9, 0xaf, 0x6e, 0x30, 0x5c, 0x93,
70
- 0x5c, 0xb7, 0x4c, 0x54, 0x9f, 0xa0, 0x2b, 0x11, 0xa6, 0x56, 0xd1, 0xc9,
71
- 0xab, 0xf3, 0x07, 0x74, 0xe1, 0x84, 0xd1, 0x0b, 0xd6, 0x7c, 0x28, 0xf0,
72
- 0xb3, 0x48, 0x5d, 0xd3, 0xf3, 0x5e, 0x19, 0xff, 0x27, 0x6b, 0xde, 0x47,
73
- 0x03, 0x75, 0x1c, 0x5d, 0xec, 0x46, 0x59, 0xd3, 0x48, 0xfc, 0xe3, 0xa7,
74
- 0xe1, 0xa7, 0x2d, 0x3b, 0x2e, 0x9f, 0x62, 0x41, 0xd2, 0xb2, 0x89, 0xa8,
75
- 0xeb, 0xce, 0x91, 0x8f, 0x83, 0xd7, 0xc4, 0x86, 0xa4, 0x7d, 0x59, 0xc4,
76
- 0xdc, 0x03, 0x5f, 0x87, 0x74, 0x56, 0xa4, 0x8b, 0x63, 0xc9, 0x33, 0x11,
77
- 0x6f, 0x51, 0xa0, 0xbd, 0xc9, 0xab, 0x5f, 0x07, 0x68, 0x52, 0x34, 0x8d,
78
- 0xe6, 0x67, 0xa6, 0xcb, 0x62, 0x86, 0x2d, 0x47, 0x7c, 0x1f, 0x19, 0x8b,
79
- 0xf2, 0x14, 0x82, 0x8f, 0x02, 0x81, 0x80, 0x3e, 0xdd, 0xd4, 0x60, 0xfa,
80
- 0xfc, 0x08, 0xcb, 0x96, 0xc3, 0x59, 0xa1, 0xf8, 0x93, 0xc7, 0x29, 0xeb,
81
- 0x31, 0xc9, 0xa7, 0xfa, 0x3e, 0xec, 0x2b, 0xcc, 0x83, 0x78, 0x42, 0x4d,
82
- 0xeb, 0xc0, 0x61, 0xc6, 0x1d, 0x36, 0x73, 0x99, 0x0c, 0x9f, 0x16, 0x0f,
83
- 0x2e, 0x52, 0x31, 0x74, 0x48, 0x3a, 0x70, 0xc7, 0xe8, 0x6a, 0x0b, 0xeb,
84
- 0xe4, 0xaa, 0x82, 0x4b, 0x0a, 0xe3, 0x09, 0x5e, 0x65, 0x1a, 0xbb, 0x4e,
85
- 0x7a, 0x77, 0x98, 0xa6, 0x74, 0xf3, 0x2b, 0xf1, 0x88, 0x74, 0xda, 0x8f,
86
- 0xe5, 0x29, 0x2c, 0xb6, 0x71, 0xa6, 0x19, 0xbb, 0x64, 0xf3, 0xe5, 0xc8,
87
- 0x3b, 0xc1, 0xb1, 0xf8, 0x52, 0x0f, 0x6d, 0x64, 0xf9, 0x7c, 0x2f, 0xe2,
88
- 0xb7, 0x1e, 0x35, 0x1e, 0x6f, 0xc6, 0xfc, 0xb3, 0x82, 0x42, 0xf9, 0xc2,
89
- 0x06, 0x88, 0x85, 0x5a, 0x2b, 0xac, 0x2d, 0x63, 0x18, 0xde, 0x6e, 0xe4,
90
- 0xa6, 0xeb, 0xd1, 0x02, 0x81, 0x81, 0x00, 0xb7, 0x06, 0xa2, 0xda, 0xe6,
91
- 0xb6, 0x9e, 0x24, 0x32, 0x2d, 0x45, 0x98, 0x95, 0xf6, 0x77, 0x7a, 0x5f,
92
- 0xc1, 0x2c, 0x3e, 0x9f, 0x98, 0x0a, 0x3d, 0xdb, 0x16, 0x4e, 0x80, 0x5c,
93
- 0xa5, 0x74, 0x0b, 0xee, 0x43, 0xda, 0xfd, 0x60, 0xff, 0x37, 0x7b, 0xe9,
94
- 0xe4, 0x0b, 0xe1, 0x3e, 0xc0, 0xf5, 0x74, 0xa7, 0x6a, 0x85, 0xcf, 0x53,
95
- 0x15, 0x8e, 0xc6, 0x57, 0xdc, 0xfd, 0xf3, 0x15, 0xd6, 0x4a, 0xbf, 0x67,
96
- 0xf6, 0x03, 0x75, 0x91, 0x83, 0x84, 0x62, 0xf7, 0x39, 0x21, 0x72, 0xa4,
97
- 0x82, 0x98, 0x84, 0x1f, 0x2a, 0x45, 0x34, 0x5e, 0xf1, 0x6f, 0x79, 0x5c,
98
- 0xc9, 0x70, 0x2c, 0xb4, 0x15, 0xe4, 0x62, 0xec, 0x93, 0xf7, 0x71, 0xe6,
99
- 0xfe, 0x54, 0xe9, 0xef, 0xd6, 0xe3, 0x0b, 0x2b, 0xc1, 0x31, 0x24, 0xe1,
100
- 0x17, 0x0b, 0x9c, 0xa4, 0x54, 0x2b, 0xa6, 0x78, 0x70, 0x0b, 0x1e, 0x62,
101
- 0x6e, 0x01, 0x48
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 = 1191;
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!
@@ -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 = UA_Client_connect_username(pss->master, nstr, ustr, pstr);
323
+ retval = UA_Client_connectUsername(pss->master, nstr, ustr, pstr);
324
324
  }
325
325
  if (retval != UA_STATUSCODE_GOOD) {
326
326
  pss->started = false;
@@ -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 == UA_TYPES_STRING) {
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) { //{{{
@@ -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 UA_NodeId node_add_variable_ua(UA_Int32 type, UA_NodeId n, UA_LocalizedText dn, UA_QualifiedName qn, node_struct *parent, UA_Byte accesslevelmask) { //{{{
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
- NULL,
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, char* nstr, node_struct *parent, UA_Byte accesslevelmask, bool numeric) { //{{{
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
- numeric ? UA_NODEID_NUMERIC(parent->master->default_ns,nodecounter++) : UA_NODEID_STRING(parent->master->default_ns,nstr),
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 (argc == 2 && argv[1] != Qnil) {
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
- Data_Get_Struct(self, node_struct, parent);
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,nstr,parent,accesslevelmask,numeric)));
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);
@@ -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 { |e| add_variable e }
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 { |e| add_variable_rw e }
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "opcua"
3
- s.version = "0.19"
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.19'
4
+ version: '0.24'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
8
8
  - Florian Pauker
9
- autorequire:
9
+ - Matthias Ehrendorfer
10
+ autorequire:
10
11
  bindir: tools
11
12
  cert_chain: []
12
- date: 2020-07-01 00:00:00.000000000 Z
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.2
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.
@@ -1,6 +0,0 @@
1
- #!/usr/bin/ruby
2
- require_relative '../lib/opcua/server'
3
-
4
- srv = OPCUA::Server.new
5
- srv.add_namespace "https://centurio.work/kelch"
6
- p srv.typens::References
@@ -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
@@ -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:
@@ -1,12 +0,0 @@
1
- class A
2
- Ref = 12
3
-
4
- def initialize
5
-
6
- end
7
- end
8
-
9
- a = A.new
10
-
11
-
12
-
@@ -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:
@@ -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'