Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

open62541: add scripts to generate custom servers #7314

Merged
merged 27 commits into from
Oct 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
8ed0ece
feat: add tools files, variables for ua-nodeset
Mo-Tay Sep 16, 2021
0e1d9cf
open62541: add custom server example
madebr Sep 17, 2021
b600461
open62541: rename test package exe + fix path of exe in chmod +x
madebr Sep 20, 2021
b32d483
Merge pull request #1 from madebr/pr7314
Mo-Tay Sep 20, 2021
27da24f
fix: rename nodeset_path to nodeset_dir
Pro Sep 21, 2021
68e9abc
fix: use the correct ua-nodeset version
Mo-Tay Sep 29, 2021
42e14e8
fix: add NAMESPACE_IDX for older versions
Mo-Tay Sep 29, 2021
a597201
fix: minimize custom server for testing
Mo-Tay Oct 7, 2021
9ead67c
fix: add newlines
Mo-Tay Oct 7, 2021
7253235
fix: update modify model csv file
Mo-Tay Oct 7, 2021
69cb41d
fix: add custom DataType for nodeset test server
Mo-Tay Oct 7, 2021
675b0fd
fix: add newline
Mo-Tay Oct 7, 2021
97d7aa4
fix: decrease server runtime for test packages
Mo-Tay Oct 7, 2021
7ab083a
fix: triger build
Mo-Tay Oct 8, 2021
2e7dd55
fix: use different server's port, decrease runtime
Mo-Tay Oct 8, 2021
22ffee6
fix: use NULL instead of nullptr
Mo-Tay Oct 8, 2021
7c0fb6d
fix: disable Windows shared build for 1.2.2
Pro Oct 8, 2021
0b902c0
fix: use C++ for test package
Pro Oct 8, 2021
39dcb20
fix: use c++ for test package
Pro Oct 8, 2021
4a6ae26
Revert "fix: use c++ for test package"
Pro Oct 8, 2021
d5e19e4
Revert "fix: use C++ for test package"
Pro Oct 8, 2021
ee6cb82
fix: remove server default confing
Mo-Tay Oct 8, 2021
db69aae
fix: start test server on different port
Mo-Tay Oct 8, 2021
2d94387
Merge branch 'feat-open62541-ua-nodeset' of https://github.com/Mo-Tay…
Mo-Tay Oct 11, 2021
b81e7d7
fix: remove repeated test, corret port adaptation
Mo-Tay Oct 11, 2021
16a2bdb
fix: older versions issues
Mo-Tay Oct 11, 2021
fa42f53
feat: formating
Mo-Tay Oct 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions recipes/open62541/all/conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,11 @@ def configure(self):
del self.settings.compiler.cppstd
del self.settings.compiler.libcxx

# Due to https://github.com/open62541/open62541/issues/4687 we cannot build with 1.2.2 + Windows + shared
if tools.Version(self.version) >= "1.2.2" and self.settings.os == "Windows" and self.options.shared:
raise ConanInvalidConfiguration("{0} {1} doesn't properly support shared lib on Windows".format(self.name,
self.version))

if self.options.subscription == "With Events":
self.output.warning("`{name}:subscription=With Events` is deprecated. Use `{name}:subscription=events` instead".format(name=self.name)) # Deprecated in 1.2.2
self.options.subscription = "events"
Expand Down Expand Up @@ -326,6 +331,10 @@ def build(self):
cmake = self._configure_cmake()
cmake.build()

@property
def _tools_subfolder(self):
return os.path.join(self._source_subfolder, "tools")

def package(self):
self.copy("LICENSE", dst="licenses", src=self._source_subfolder)
self.copy("LICENSE-CC0", dst="licenses", src=self._source_subfolder)
Expand All @@ -342,6 +351,8 @@ def package(self):
os.remove(cmake_file)
tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig"))
tools.rmdir(os.path.join(self.package_folder, "share"))
self.copy("generate_*.py", src=self._tools_subfolder, dst=os.path.join("res", "tools"))
self.copy("nodeset_compiler/*", src=self._tools_subfolder, dst=os.path.join("res", "tools"))

@property
def _module_subfolder(self):
Expand All @@ -351,6 +362,11 @@ def _module_subfolder(self):
def _module_file_rel_path(self):
return os.path.join(self._module_subfolder, "open62541Macros.cmake")

@staticmethod
def _chmod_plus_x(filename):
if os.name == 'posix':
os.chmod(filename, os.stat(filename).st_mode | 0o111)

def package_info(self):
self.cpp_info.names["cmake_find_package"] = "open62541"
self.cpp_info.names["cmake_find_package_multi"] = "open62541"
Expand All @@ -361,6 +377,10 @@ def package_info(self):
os.path.join("include", "plugin")
]

# required for creating custom servers from ua-nodeset
self.user_info.tools_dir = os.path.join(self.package_folder, "res", "tools")
self._chmod_plus_x(os.path.join(self.package_folder, "res", "tools", "generate_nodeid_header.py"))

if self.options.single_header:
self.cpp_info.defines.append("UA_ENABLE_AMALGAMATION")
if self.settings.os == "Windows":
Expand Down
32 changes: 28 additions & 4 deletions recipes/open62541/all/test_package/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,36 @@
cmake_minimum_required(VERSION 3.1)
project(test_package CXX)
project(test_package C)

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)

find_package(open62541 REQUIRED CONFIG)
find_package(Threads REQUIRED)

add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} open62541::open62541 Threads::Threads)
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11)
find_package(PythonInterp REQUIRED)

# Output directory for Nodeset Compiler
set(GENERATE_OUTPUT_DIR "${CMAKE_BINARY_DIR}/src_generated/")
file(MAKE_DIRECTORY "${GENERATE_OUTPUT_DIR}")
include_directories("${GENERATE_OUTPUT_DIR}")
ua_generate_nodeset_and_datatypes(
NAME "foo_flt"
TARGET_PREFIX "${PROJECT_NAME}"
FILE_CSV "${PROJECT_SOURCE_DIR}/FooFltModel.csv"
FILE_BSD "${PROJECT_SOURCE_DIR}/FooFlt.Types.bsd"
OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
NAMESPACE_IDX 2 # This namespace index must match the order in which you are adding the nodeset in the source code
#NAMESPACE_MAP "2:http://opcfoundation.org/UA/DI/"
NAMESPACE_MAP "2:https://new.foo.com/zebra-compression/flattening-and-subspacefolding/UA/"
FILE_NS "${PROJECT_SOURCE_DIR}/FooFlt.NodeSet2.xml"
INTERNAL
)
# Previous macro automatically sets some variables which hold the generated source code files using the provided NAME
add_executable(${PROJECT_NAME}_nodeset
${UA_NODESET_FOO_FLT_SOURCES}
${UA_TYPES_FOO_FLT_SOURCES}
test_package_nodeset.c
)
# Make sure the nodeset compiler is executed before compiling the main file
add_dependencies(${PROJECT_NAME}_nodeset ${PROJECT_NAME}-ns-foo_flt)
target_link_libraries(${PROJECT_NAME}_nodeset PRIVATE open62541::open62541)
282 changes: 282 additions & 0 deletions recipes/open62541/all/test_package/FooFlt.NodeSet2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8"?>
<UANodeSet xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" LastModified="2020-05-01T00:00:00Z" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
<NamespaceUris>
<Uri>https://new.foo.com/zebra-compression/flattening-and-subspacefolding/UA/</Uri>
</NamespaceUris>
<Models>
<Model ModelUri="https://new.foo.com/zebra-compression/flattening-and-subspacefolding/UA/" Version="0.9.0" PublicationDate="2020-05-01T00:00:00Z">
<RequiredModel ModelUri="http://opcfoundation.org/UA/" Version="1.03" PublicationDate="2013-12-02T00:00:00Z" />
</Model>
</Models>
<Aliases>
<Alias Alias="Boolean">i=1</Alias>
<Alias Alias="SByte">i=2</Alias>
<Alias Alias="Byte">i=3</Alias>
<Alias Alias="Int16">i=4</Alias>
<Alias Alias="UInt16">i=5</Alias>
<Alias Alias="Int32">i=6</Alias>
<Alias Alias="UInt32">i=7</Alias>
<Alias Alias="Int64">i=8</Alias>
<Alias Alias="UInt64">i=9</Alias>
<Alias Alias="Float">i=10</Alias>
<Alias Alias="Double">i=11</Alias>
<Alias Alias="DateTime">i=13</Alias>
<Alias Alias="String">i=12</Alias>
<Alias Alias="ByteString">i=15</Alias>
<Alias Alias="Guid">i=14</Alias>
<Alias Alias="XmlElement">i=16</Alias>
<Alias Alias="NodeId">i=17</Alias>
<Alias Alias="ExpandedNodeId">i=18</Alias>
<Alias Alias="QualifiedName">i=20</Alias>
<Alias Alias="LocalizedText">i=21</Alias>
<Alias Alias="StatusCode">i=19</Alias>
<Alias Alias="Structure">i=22</Alias>
<Alias Alias="Number">i=26</Alias>
<Alias Alias="Integer">i=27</Alias>
<Alias Alias="UInteger">i=28</Alias>
<Alias Alias="HasComponent">i=47</Alias>
<Alias Alias="HasProperty">i=46</Alias>
<Alias Alias="Organizes">i=35</Alias>
<Alias Alias="HasEventSource">i=36</Alias>
<Alias Alias="HasNotifier">i=48</Alias>
<Alias Alias="HasSubtype">i=45</Alias>
<Alias Alias="HasTypeDefinition">i=40</Alias>
<Alias Alias="HasModellingRule">i=37</Alias>
<Alias Alias="HasEncoding">i=38</Alias>
<Alias Alias="HasDescription">i=39</Alias>
</Aliases>
<UAObjectType NodeId="ns=1;i=1" BrowseName="1:ApeType">
<DisplayName>ApeType</DisplayName>
<Description>The Automatic Surface Tabulator. It represents a single hardware unit.</Description>
<References>
<Reference ReferenceType="HasProperty">ns=1;i=2</Reference>
<Reference ReferenceType="HasProperty">ns=1;i=3</Reference>
<Reference ReferenceType="HasComponent">ns=1;i=4</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
</References>
</UAObjectType>
<UAVariable NodeId="ns=1;i=2" BrowseName="1:Name" ParentNodeId="ns=1;i=1" DataType="String">
<DisplayName>Name</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=1</Reference>
</References>
</UAVariable>
<UAVariable NodeId="ns=1;i=3" BrowseName="1:Number" ParentNodeId="ns=1;i=1" DataType="Double">
<DisplayName>Number</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=1</Reference>
</References>
</UAVariable>
<UAVariable NodeId="ns=1;i=4" BrowseName="1:MyVariable" ParentNodeId="ns=1;i=1" DataType="Double">
<DisplayName>MyVariable</DisplayName>
<References>
<Reference ReferenceType="HasProperty">ns=1;i=8</Reference>
<Reference ReferenceType="HasTypeDefinition">i=2368</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=1</Reference>
</References>
</UAVariable>
<UAVariable NodeId="ns=1;i=8" BrowseName="EURange" ParentNodeId="ns=1;i=4" DataType="i=884">
<DisplayName>EURange</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=4</Reference>
</References>
</UAVariable>
<UAVariableType NodeId="ns=1;i=10" BrowseName="1:FooAnalogItemType" DataType="Number" ValueRank="-2">
<DisplayName>FooAnalogItemType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">i=2368</Reference>
</References>
</UAVariableType>
<UADataType NodeId="ns=1;i=16" BrowseName="1:TestDataType">
<DisplayName>TestDataType</DisplayName>
<References>
<Reference ReferenceType="HasSubtype" IsForward="false">i=22</Reference>
</References>
<Definition Name="1:TestDataType">
<Field Name="testInt" DataType="i=6" IsOptional="true" />
</Definition>
</UADataType>
<UAObject NodeId="ns=1;i=17" BrowseName="1:Ape">
<DisplayName>Ape</DisplayName>
<Description>Instance of the APE.</Description>
<References>
<Reference ReferenceType="HasProperty">ns=1;i=18</Reference>
<Reference ReferenceType="HasProperty">ns=1;i=19</Reference>
<Reference ReferenceType="HasComponent">ns=1;i=20</Reference>
<Reference ReferenceType="Organizes" IsForward="false">i=85</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1</Reference>
</References>
</UAObject>
<UAVariable NodeId="ns=1;i=18" BrowseName="1:Name" ParentNodeId="ns=1;i=17" DataType="String">
<DisplayName>Name</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=17</Reference>
</References>
</UAVariable>
<UAVariable NodeId="ns=1;i=19" BrowseName="1:Number" ParentNodeId="ns=1;i=17" DataType="Double">
<DisplayName>Number</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=17</Reference>
</References>
</UAVariable>
<UAVariable NodeId="ns=1;i=20" BrowseName="1:MyVariable" ParentNodeId="ns=1;i=17" DataType="Double">
<DisplayName>MyVariable</DisplayName>
<References>
<Reference ReferenceType="HasProperty">ns=1;i=24</Reference>
<Reference ReferenceType="HasTypeDefinition">i=2368</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=17</Reference>
</References>
</UAVariable>
<UAVariable NodeId="ns=1;i=24" BrowseName="EURange" ParentNodeId="ns=1;i=20" DataType="i=884">
<DisplayName>EURange</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=20</Reference>
</References>
</UAVariable>
<UAObject NodeId="ns=1;i=26" BrowseName="Default Binary" SymbolicName="DefaultBinary">
<DisplayName>Default Binary</DisplayName>
<References>
<Reference ReferenceType="HasEncoding" IsForward="false">ns=1;i=16</Reference>
<Reference ReferenceType="HasDescription">ns=1;i=31</Reference>
<Reference ReferenceType="HasTypeDefinition">i=76</Reference>
</References>
</UAObject>
<UAVariable NodeId="ns=1;i=27" BrowseName="1:FooFlt" SymbolicName="FooZbrFlt_BinarySchema" DataType="ByteString">
<DisplayName>FooFlt</DisplayName>
<References>
<Reference ReferenceType="HasProperty">ns=1;i=29</Reference>
<Reference ReferenceType="HasProperty">ns=1;i=30</Reference>
<Reference ReferenceType="HasComponent">ns=1;i=31</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">i=93</Reference>
<Reference ReferenceType="HasTypeDefinition">i=72</Reference>
</References>
<Value>
<ByteString xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">PG9wYzpUeXBlRGljdGlvbmFyeQ0KICB4bWxuczpvcGM9Imh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9y
Zy9CaW5hcnlTY2hlbWEvIg0KICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M
U2NoZW1hLWluc3RhbmNlIg0KICB4bWxuczp1YT0iaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VB
LyINCiAgeG1sbnM6dG5zPSJodHRwczovL25ldy5mb28uY29tL3plYnJhLWNvbXByZXNzaW9uL2Zs
YXR0ZW5pbmctYW5kLXN1YnNwYWNlZm9sZGluZy9VQS8iDQogIERlZmF1bHRCeXRlT3JkZXI9Ikxp
dHRsZUVuZGlhbiINCiAgVGFyZ2V0TmFtZXNwYWNlPSJodHRwczovL25ldy5mb28uY29tL3plYnJh
LWNvbXByZXNzaW9uL2ZsYXR0ZW5pbmctYW5kLXN1YnNwYWNlZm9sZGluZy9VQS8iDQo+DQogIDxv
cGM6SW1wb3J0IE5hbWVzcGFjZT0iaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBLyIgTG9jYXRp
b249Ii5CaW5hcnlTY2hlbWEuYnNkIi8+DQoNCiAgPG9wYzpTdHJ1Y3R1cmVkVHlwZSBOYW1lPSJU
ZXN0RGF0YVR5cGUiIEJhc2VUeXBlPSJ1YTpFeHRlbnNpb25PYmplY3QiPg0KICAgIDxvcGM6Rmll
bGQgTmFtZT0idGVzdEludCIgVHlwZU5hbWU9Im9wYzpJbnQzMiIgLz4NCiAgPC9vcGM6U3RydWN0
dXJlZFR5cGU+DQoNCjwvb3BjOlR5cGVEaWN0aW9uYXJ5Pg==</ByteString>
</Value>
</UAVariable>
<UAVariable NodeId="ns=1;i=29" BrowseName="NamespaceUri" ParentNodeId="ns=1;i=27" DataType="String">
<DisplayName>NamespaceUri</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=27</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">https://new.foo.com/zebra-compression/flattening-and-subspacefolding/UA/</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=1;i=30" BrowseName="Deprecated" ParentNodeId="ns=1;i=27" DataType="Boolean">
<DisplayName>Deprecated</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=27</Reference>
</References>
<Value>
<Boolean xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">true</Boolean>
</Value>
</UAVariable>
<UAVariable NodeId="ns=1;i=31" BrowseName="1:TestDataType" ParentNodeId="ns=1;i=27" DataType="String">
<DisplayName>TestDataType</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=69</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=27</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">TestDataType</String>
</Value>
</UAVariable>
<UAObject NodeId="ns=1;i=34" BrowseName="Default XML" SymbolicName="DefaultXml">
<DisplayName>Default XML</DisplayName>
<References>
<Reference ReferenceType="HasEncoding" IsForward="false">ns=1;i=16</Reference>
<Reference ReferenceType="HasDescription">ns=1;i=39</Reference>
<Reference ReferenceType="HasTypeDefinition">i=76</Reference>
</References>
</UAObject>
<UAVariable NodeId="ns=1;i=35" BrowseName="1:FooFlt" SymbolicName="FooZbrFlt_XmlSchema" DataType="ByteString">
<DisplayName>FooFlt</DisplayName>
<References>
<Reference ReferenceType="HasProperty">ns=1;i=37</Reference>
<Reference ReferenceType="HasProperty">ns=1;i=38</Reference>
<Reference ReferenceType="HasComponent">ns=1;i=39</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">i=92</Reference>
<Reference ReferenceType="HasTypeDefinition">i=72</Reference>
</References>
<Value>
<ByteString xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">PHhzOnNjaGVtYQ0KICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEi
DQogIHhtbG5zOnVhPSJodHRwOi8vb3BjZm91bmRhdGlvbi5vcmcvVUEvMjAwOC8wMi9UeXBlcy54
c2QiDQogIHhtbG5zOnRucz0iaHR0cHM6Ly9uZXcuZm9vLmNvbS96ZWJyYS1jb21wcmVzc2lvbi9m
bGF0dGVuaW5nLWFuZC1zdWJzcGFjZWZvbGRpbmcvVUEvIg0KICB0YXJnZXROYW1lc3BhY2U9Imh0
dHBzOi8vbmV3LmZvby5jb20vemVicmEtY29tcHJlc3Npb24vZmxhdHRlbmluZy1hbmQtc3Vic3Bh
Y2Vmb2xkaW5nL1VBLyINCiAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiDQo+DQogIDx4
czppbXBvcnQgbmFtZXNwYWNlPSJodHRwOi8vb3BjZm91bmRhdGlvbi5vcmcvVUEvIiAvPg0KDQog
IDx4czpjb21wbGV4VHlwZSBuYW1lPSJUZXN0RGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4N
CiAgICAgIDx4czplbGVtZW50IG5hbWU9InRlc3RJbnQiIHR5cGU9InhzOmludCIgbWluT2NjdXJz
PSIwIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4czpl
bGVtZW50IG5hbWU9IlRlc3REYXRhVHlwZSIgdHlwZT0idG5zOlRlc3REYXRhVHlwZSIgLz4NCg0K
ICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iTGlzdE9mVGVzdERhdGFUeXBlIj4NCiAgICA8eHM6c2Vx
dWVuY2U+DQogICAgICA8eHM6ZWxlbWVudCBuYW1lPSJUZXN0RGF0YVR5cGUiIHR5cGU9InRuczpU
ZXN0RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG5pbGxhYmxl
PSJ0cnVlIiAvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogIDwveHM6Y29tcGxleFR5cGU+DQogIDx4
czplbGVtZW50IG5hbWU9Ikxpc3RPZlRlc3REYXRhVHlwZSIgdHlwZT0idG5zOkxpc3RPZlRlc3RE
YXRhVHlwZSIgbmlsbGFibGU9InRydWUiPjwveHM6ZWxlbWVudD4NCg0KPC94czpzY2hlbWE+</ByteString>
</Value>
</UAVariable>
<UAVariable NodeId="ns=1;i=37" BrowseName="NamespaceUri" ParentNodeId="ns=1;i=35" DataType="String">
<DisplayName>NamespaceUri</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=35</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">https://new.foo.com/zebra-compression/flattening-and-subspacefolding/UA/</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=1;i=38" BrowseName="Deprecated" ParentNodeId="ns=1;i=35" DataType="Boolean">
<DisplayName>Deprecated</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=35</Reference>
</References>
<Value>
<Boolean xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">true</Boolean>
</Value>
</UAVariable>
<UAVariable NodeId="ns=1;i=39" BrowseName="1:TestDataType" ParentNodeId="ns=1;i=35" DataType="String">
<DisplayName>TestDataType</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=69</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=35</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">//xs:element[@name='TestDataType']</String>
</Value>
</UAVariable>
<UAObject NodeId="ns=1;i=42" BrowseName="Default JSON" SymbolicName="DefaultJson">
<DisplayName>Default JSON</DisplayName>
<References>
<Reference ReferenceType="HasEncoding" IsForward="false">ns=1;i=16</Reference>
<Reference ReferenceType="HasTypeDefinition">i=76</Reference>
</References>
</UAObject>
</UANodeSet>
15 changes: 15 additions & 0 deletions recipes/open62541/all/test_package/FooFlt.Types.bsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<opc:TypeDictionary
xmlns:opc="http://opcfoundation.org/BinarySchema/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ua="http://opcfoundation.org/UA/"
xmlns:tns="https://new.foo.com/zebra-compression/flattening-and-subspacefolding/UA/"
DefaultByteOrder="LittleEndian"
TargetNamespace="https://new.foo.com/zebra-compression/flattening-and-subspacefolding/UA/"
>
<opc:Import Namespace="http://opcfoundation.org/UA/" Location=".BinarySchema.bsd"/>

<opc:StructuredType Name="TestDataType" BaseType="ua:ExtensionObject">
<opc:Field Name="testInt" TypeName="opc:Int32" />
</opc:StructuredType>

</opc:TypeDictionary>
Loading