Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
217 commits
Select commit Hold shift + click to select a range
eb389b8
Initial commit
Oct 16, 2023
87c3b20
Improve stability (openDAQ/openDAQ#8)
nilsRoettger Oct 19, 2023
d6e6559
Enable setting of name property on tms signal
dejancrn Oct 21, 2023
9ac3ea3
Fix unit test
dejancrn Oct 23, 2023
d101b16
Temporary fix for disabled ws streaming on server (openDAQ/openDAQ#19)
dejancrn Oct 24, 2023
2437067
Add server side implementation for node order
JakaMohorko Oct 23, 2023
feeba88
Add node order support on OPC UA client
JakaMohorko Oct 24, 2023
af6a6e5
Add node order for function-type properties
JakaMohorko Oct 24, 2023
5b39d90
Refactor NumberInList on OPC UA server
JakaMohorko Oct 24, 2023
292bb74
Add OPC UA node order tests
JakaMohorko Oct 25, 2023
1a72c0b
Update default component IDs to capital case
JakaMohorko Nov 3, 2023
87b6223
Fix OPC UA client function property error
JakaMohorko Nov 6, 2023
12495a5
Add package version to OPC UA client device
JakaMohorko Nov 6, 2023
f258d6a
Add explicit domain rule via opcua
JakaMohorko Nov 10, 2023
7e3c177
Fix websocket streaming compatibility issues:
NikolaiShipilov Nov 7, 2023
924a597
Add automatic signal subscribing:
NikolaiShipilov Oct 21, 2023
b54f4ad
<SWCORE-12188> Add a MultiReader option to return values without scal…
Unsttopabull Nov 13, 2023
86ebbf9
Fix unorderedProps not being passed as reference
JakaMohorko Nov 27, 2023
5d0141f
<TBBAS-1061> Integrate control interface into websocket streaming:
NikolaiShipilov Nov 23, 2023
b894426
Add name and description getter/setters to component
JakaMohorko Nov 22, 2023
a1318e9
Add support for setting/getting name/description to OPC UA
JakaMohorko Nov 23, 2023
542c8d5
Add tests for component get/set name
JakaMohorko Nov 23, 2023
d307e9a
<TBBAS-1200> Implement opcua attribute reader (openDAQ/openDAQ#54)
janm-dw Dec 5, 2023
b2491b4
Rework how interface inheritance and queryInterface work to hopefully…
Unsttopabull Dec 4, 2023
374bdc0
<TBBAS-903> Utilize signal subscribing within the websocket streaming:
NikolaiShipilov Nov 28, 2023
a709c88
Change timeout handling for streaming integration tests
NikolaiShipilov Nov 29, 2023
564f496
Integrate subscription ack event handling into streaming tests
NikolaiShipilov Dec 6, 2023
011f777
Feature/OPC-UA Vendor Supports (openDAQ/openDAQ#67)
nilsRoettger Dec 14, 2023
273526d
Fix open62541 CMake configure under aarch64 cross-compiler
Unsttopabull Dec 14, 2023
6398579
<TBBAS-1199> Add implementation of cached reference browser
janm-dw Dec 5, 2023
303fe52
<TBBAS-1199> Replace ReferenceUtils with CachedReferenceBrowser
janm-dw Dec 7, 2023
bbea971
<TBBAS-1199> Add support for max nodes per browse to reference browser
janm-dw Dec 7, 2023
e44a85f
<TBBAS-1199> Pass continuation point by reference
janm-dw Dec 8, 2023
c3d8ab9
<TBBAS-1199> Fix build errors
janm-dw Dec 8, 2023
ef840c1
<TBBAS-1199> Fix build errors
janm-dw Dec 11, 2023
46f8655
<TBBAS-1199> Fix linux build errors
janm-dw Dec 11, 2023
17cf3b5
<TBBAS-1199> Fix merge conflicts
janm-dw Dec 27, 2023
498fcff
<TBBAS-1199> Replace ReferenceUtils with CachedReferenceBrowser
janm-dw Dec 7, 2023
749e29d
<TBBAS-1199> Implement opcua attribute collector
janm-dw Dec 21, 2023
4edca72
<TBBAS-1199> Fix merge conflicts
janm-dw Dec 27, 2023
886ba48
<TBBAS-1199> Raise log level
janm-dw Dec 27, 2023
9b1fc8f
<TBBAS-1199> Batch nodes across multiple browse requests
janm-dw Dec 28, 2023
29366b4
<TBBAS-1199> Correctly browse StreamingOptions node
janm-dw Jan 3, 2024
4df95ee
<TBBAS-1199> Add try statement when reading number in list
janm-dw Jan 5, 2024
f1423ca
[TBBAS-1058] Add method getLastValue() in ISignal class
denise-opendaq Jan 11, 2024
f7c2520
Correctly collect attributes on objects under OutputSignals node
janm-dw Jan 10, 2024
9d5d368
Fix fusion device connection issues
janm-dw Jan 15, 2024
0f20c31
Add SearchFilter, Visible flag, rework Component attributes
JakaMohorko Nov 29, 2023
ee0ae15
<TBBAS-1215> Add BeginUpdate and EndUpdate function nodes to client p…
janm-dw Jan 10, 2024
7b106de
<TBBAS-1215> Fix code review issues
janm-dw Jan 11, 2024
7ca8d89
<TBBAS-1215> Skip BeginUpdate and EndUpdate when adding method proper…
janm-dw Jan 15, 2024
c7b650d
Log connect time in TmsClient
janm-dw Jan 10, 2024
cc842d1
Change log level
janm-dw Jan 15, 2024
029b46f
Do not write property value when it's equal to the previous
JakaMohorko Jan 16, 2024
a523807
Fix/hbk nodeset include (openDAQ/openDAQ#96)
nilsRoettger Jan 17, 2024
0c9f595
Update the minimum required CMake version to avoid deprecation warnings
Unsttopabull Jan 18, 2024
c0aabef
Add a work around for properties which are missing a default value.
nilsRoettger Jan 17, 2024
0cf6a7f
Add Unit test for HBK Devices.
nilsRoettger Jan 17, 2024
51fc759
Correctly skip properties without read access on opcua
janm-dw Jan 18, 2024
dcf7a7c
Improve Logging and use unused local variable.
nilsRoettger Jan 18, 2024
67414af
Format code
janm-dw Jan 18, 2024
16a2e93
Add native configuration protocol library
dejancrn Jan 22, 2024
99f8c40
Freeze and clone object-type properties on add
JakaMohorko Jan 15, 2024
4e11c45
Split tags into Tags and TagsPrivate
JakaMohorko Jan 16, 2024
cc60a68
Fix openDAQ component (static) libraries linking
Unsttopabull Jan 30, 2024
28761f8
Bugfix: Float Type not supported in Structures (openDAQ/openDAQ#114)
nilsRoettger Jan 31, 2024
583d7a7
[TBBAS-939] Error recovery and logging in OPC UA client. Add debug lo…
denise-opendaq Feb 5, 2024
cefd18e
Support core events in Native Config Client
JakaMohorko Jan 25, 2024
932b763
Enable multiple device types per single mDNS service
NikolaiShipilov Feb 6, 2024
8bf14e5
Update open62541 to opendaq-4 version
JakaMohorko Feb 8, 2024
5980d85
<TBBAS-1117> Add support for adding and removing function blocks over…
janm-dw Jan 25, 2024
88965fc
<TBBAS-1117> Fix compiler warnings
janm-dw Jan 26, 2024
aadb143
<TBBAS-1117> Fix code review issues
janm-dw Feb 1, 2024
5cb7a2f
<TBBAS-1117> Add ITmsClientComponent interface
janm-dw Feb 7, 2024
8a60b12
Fix TMS client template issues
JakaMohorko Feb 12, 2024
818b274
<TBBAS-1117> Expose input port connect() and disconnect() methods ove…
janm-dw Feb 12, 2024
a918150
<TBBAS-1117> Use findComponent() in TmsServerInputPort, add localId p…
janm-dw Feb 13, 2024
b67e582
<TBBAS-1117> Remove tms input port connect test as they are now cover…
janm-dw Feb 13, 2024
dc19bc7
Fix Visual Studio 2017 compilation
Unsttopabull Feb 12, 2024
423ff35
Fix first call of TmsClientDevice::GetTickSinceOrigin
anzeskerjancDS Feb 14, 2024
808411d
implement logic for signal.setPublic(...)
denise-opendaq Feb 21, 2024
9cd10d1
<TBBAS-1228> Add support for adding function blocks with config object
janm-dw Feb 16, 2024
79e3914
<TBBAS-1228> Correctly handle missing signals on input port connect m…
janm-dw Feb 19, 2024
76b4e45
<TBBAS-1228> Add list serialization test for property object
janm-dw Feb 21, 2024
1d5d44a
<TBBAS-1228> Return empty list if AvailableTypes node is missing
janm-dw Feb 21, 2024
42217ee
Add struct sample type
dejancrn Feb 23, 2024
640e252
Refactoring of the streaming framework:
NikolaiShipilov Feb 14, 2024
e309c7d
Disable failing tests
NikolaiShipilov Feb 16, 2024
1a1a945
Fix TMS Server core event callback
JakaMohorko Feb 23, 2024
ecceaab
Copy node ids in BeginUpdate and EndUpdate methods
janm-dw Feb 27, 2024
11faf56
Add sdk version to device info
JakaMohorko Feb 27, 2024
5e215f9
[TBBAS-1306] Example of using the config provider options in a refere…
denise-opendaq Mar 4, 2024
55014c8
getLastValue update (openDAQ/openDAQ#186)
aljazfrancic Mar 6, 2024
ae02ade
ToDaqObject returns nullptr instead of throwing an exception. (openDA…
nilsRoettger Mar 6, 2024
57c9b8a
<DSRT-23> Change `ITagsPrivate.set()` to `ITagsPrivate.replace()` as …
Unsttopabull Feb 20, 2024
6b1056f
<DSRT-23> MSVC 2017 compatibility fixes
Unsttopabull Feb 29, 2024
1a8d199
Gate integration tests behind and option and fix ConfigProtocol tests…
Unsttopabull Mar 13, 2024
00de946
Fix MinGW GCC and fix GCC 10 bug causing spurious warning
Unsttopabull Mar 13, 2024
2015999
Added support for EnumerationType properties in OPC UA (openDAQ/openD…
dduraesdebarros Mar 18, 2024
b845431
Allow convertible openDAQ structs over OPC UA
JakaMohorko Mar 18, 2024
080161b
Make DeviceDomain a standalone object in DeviceImpl
JakaMohorko Mar 18, 2024
552a1db
Make type manager thread safe (openDAQ/openDAQ#214)
aljazfrancic Mar 21, 2024
a4a3fef
Fixed InvalidParameterException exception when trying to set Enumerat…
dduraesdebarros Mar 21, 2024
95264d1
Do not allow devices with same local ID
JakaMohorko Mar 21, 2024
29ff5f0
Fix failing tests
JakaMohorko Mar 21, 2024
899228c
Update license year from 2023 to 2024 (openDAQ/openDAQ#235)
aljazfrancic Mar 26, 2024
f44176e
Ask config for descriptor if mirrored streaming desc is not yet avail…
JakaMohorko Mar 22, 2024
a53df79
Integrate streaming-lt changes for shared domain signals:
NikolaiShipilov Mar 20, 2024
82f79e0
Support lists in getLastValue (openDAQ/openDAQ#232)
aljazfrancic Mar 27, 2024
1a7bbed
Reset mirrored descriptor on unsubscribe
JakaMohorko Mar 27, 2024
5ca9df8
Rework constant data rule
dejancrn Mar 25, 2024
f8b716d
[TBBAS-1291] Grouping of discovered devices via serial number (openDA…
denise-opendaq Apr 5, 2024
df59943
Fix MSVC Win32 build
Unsttopabull Apr 8, 2024
4acd699
[Bug]: websocket mdns discovery backward competitivity (openDAQ/openD…
denise-opendaq Apr 10, 2024
019c5ad
Update module and library versions to 3.0.0
janm-dw Apr 10, 2024
ce5019d
Prepare interfaces for core role management
janm-dw Mar 8, 2024
1f8f950
Implement permisison manager and integrate it into property object an…
janm-dw Mar 19, 2024
ebd3741
Rename IPermissionConfig to IPermissions
janm-dw Mar 29, 2024
93417d7
Move security files into coreobjects
janm-dw Apr 2, 2024
baf9c80
rename server capability protocol type
denise-opendaq Apr 12, 2024
79f3dd7
Supporting connection with ipv6 connection string (openDAQ/openDAQ#281)
denise-opendaq Apr 25, 2024
3f8d101
<TBBAS-1396> Move streaming creation from device impl to the module m…
NikolaiShipilov Apr 25, 2024
426324f
init
denise-opendaq Apr 30, 2024
4848524
Clone property object to create default config from type
NikolaiShipilov Apr 25, 2024
75f8c4d
Bump version from 3.0.0 to 3.1.0
aljazfrancic May 7, 2024
c251bdb
Fix unit tests
dejancrn May 6, 2024
9a6fd9c
NodeId as String not as numeric for Properties
nilsRoettger May 2, 2024
9ac8e61
Update shared/libraries/opcua/opcuaserver/src/opcuaserver.cpp
nilsRoettger May 10, 2024
c553724
Add support for username authentication to OpcUa server and client
janm-dw Apr 22, 2024
2d3bc8c
Add authentication provider to Context object
janm-dw Apr 23, 2024
475fe1f
Move allow anonymous flag to authentication provider
janm-dw Apr 25, 2024
6092957
Pass authentication provider to TmsServer
janm-dw Apr 25, 2024
3d8a298
Add authentication parameters to opcua client module
janm-dw Apr 25, 2024
a6ccecb
Refactor opcua client connect() method to throw an exception on faile…
janm-dw May 13, 2024
d64a636
Fix merge conflicts
janm-dw May 13, 2024
a9dcbcb
Fix gcc build errors
janm-dw May 13, 2024
1d52b15
Fix MSVC 2017 compilation
dejancrn May 16, 2024
905c9eb
Streaming connection/configuration updates:
NikolaiShipilov Apr 29, 2024
9871ddd
Sync location and name between device and device info
JakaMohorko May 10, 2024
e8db049
[TBBAS-1313] mDNS discovery service in SDK (openDAQ/openDAQ#294)
denise-opendaq May 28, 2024
8f12c7a
Add client connection configuration info in the device info (openDAQ/…
denise-opendaq May 31, 2024
903d586
opendaq component merge
JakaMohorko May 15, 2024
b5c2f0f
Close all connections on device removal:
NikolaiShipilov May 30, 2024
520660c
Other/config object rework (openDAQ/openDAQ#326)
JakaMohorko Jun 20, 2024
7dc90ca
Modify discovery capability merge
JakaMohorko Jun 21, 2024
e0e842a
<TBBAS-1425> Enable streaming for signals of FB added via OpcUa:
NikolaiShipilov Jun 25, 2024
04ab4c5
Re-add check for signal parent component
JakaMohorko Jul 4, 2024
c8a79f4
Remove acceptsConnectionParameters from module
JakaMohorko Jul 4, 2024
240ca83
Change company name from `Blueberry d.o.o.` to `openDAQ d.o.o.` (open…
aljazfrancic Jul 10, 2024
34207fd
General CMake and testing and discovery fixes (openDAQ/openDAQ#375)
Unsttopabull Jul 16, 2024
d917cc3
Bugfix: Parameter Object has Numeric Id (openDAQ/openDAQ#384)
nilsRoettger Jul 16, 2024
e8cbf9c
Standardize cases to PascalCase (openDAQ/openDAQ#355)
aljazfrancic Jul 23, 2024
896e60e
Bump sdk version to 3.2
JakaMohorko Jul 24, 2024
f68e6af
Bump version to 3.3
JakaMohorko Jul 24, 2024
013ed12
Add IProperty get/setValue
JakaMohorko Aug 8, 2024
106f14e
Sync components Implementation (openDAQ/openDAQ#361)
denise-opendaq Aug 13, 2024
a52f35f
Fix opcua warnings
JakaMohorko Aug 13, 2024
849acc3
Sync component improvements
denise-opendaq Aug 19, 2024
53ca62d
fix connection string regexp with % and path. fix sync component cmake
denise-opendaq Aug 20, 2024
ce924af
Add ipv6 link local interface to connection string when available
JakaMohorko Aug 20, 2024
3fe384e
Fix regex
JakaMohorko Aug 20, 2024
564e574
Increase version to 3.4
JakaMohorko Aug 23, 2024
ab71fa2
Add Reference Domain Info (openDAQ/openDAQ#411)
aljazfrancic Aug 23, 2024
1adf371
Use correct namespace name for open library, so that find_package works.
JakaMohorko Aug 21, 2024
5528386
Catch exceptions when calling opcua methods
janm-dw Aug 28, 2024
ea8c63e
[TBBAS-1592] Instance save/load fixes (openDAQ/openDAQ#450)
denise-opendaq Sep 5, 2024
b115de0
Enable openDAQ servers to be added to the component tree under the de…
NikolaiShipilov Aug 26, 2024
65f316f
Enable protected write calls over OPC UA
JakaMohorko Oct 3, 2024
16bdffe
Inject openDAQ version from a single file (openDAQ/openDAQ#550)
aljazfrancic Oct 18, 2024
e1d28ea
[TBBAS-1825] Fix device username/location properties case in opcua (o…
denise-opendaq Oct 21, 2024
6d5fdd8
Complete the missing changes for event packet triggering on setting a…
NikolaiShipilov Oct 8, 2024
15ff9db
[openDAQ] OPC UA - Add missing namepaceUri field in EUInformationWith…
dduraesdebarros Oct 23, 2024
a17ea8d
Implement LogFileInfo interface (openDAQ/openDAQ#544)
denise-opendaq Oct 24, 2024
1ebe9e1
[TBBAS-1850]: Implement communication protocol version info (openDAQ/…
denise-opendaq Oct 29, 2024
d6cf26a
Add Module Info (openDAQ/openDAQ#609)
aljazfrancic Nov 26, 2024
d1594dc
Add "onAny" property value read and write events (openDAQ/openDAQ#631)
JakaMohorko Dec 5, 2024
6601b9c
Fix onGetLogFileInfos case (openDAQ/openDAQ#630)
JakaMohorko Dec 5, 2024
d3494fe
Other/merge 3.10 main (openDAQ/openDAQ#652)
JakaMohorko Dec 30, 2024
9eaa933
Bump year in license, etc. to 2025 (openDAQ/openDAQ#656)
aljazfrancic Jan 6, 2025
a69b69d
Implement configurable device info fields on core (openDAQ/openDAQ#607)
denise-opendaq Jan 27, 2025
d50852d
<TBBAS-2054> Resolve CMake dependency issues (openDAQ/openDAQ#680)
NikolaiShipilov Jan 28, 2025
85b913c
IP modification mechanism (openDAQ/openDAQ#642)
NikolaiShipilov Jan 30, 2025
33f8488
fix CI tests (openDAQ/openDAQ#683)
denise-opendaq Jan 30, 2025
29c3ae5
Fixed unknown std::chrono namespace issue introduced in VS2022 17.13.…
Daniel-BB Feb 13, 2025
1253be8
Device info `setName` changed device name + setting owner prevents wr…
JakaMohorko Feb 18, 2025
e62b038
Fix selection value dot access (openDAQ/openDAQ#719)
JakaMohorko Mar 4, 2025
eb59a67
Device operation modes (openDAQ/openDAQ#704)
denise-opendaq Mar 7, 2025
a08a3a7
Logging improvement (openDAQ/openDAQ#721)
denise-opendaq Mar 14, 2025
b0f15be
Nested property object cleanup (openDAQ/openDAQ#731)
JakaMohorko Mar 17, 2025
2437c56
Add function to name threads (openDAQ/openDAQ#737)
dejancrn Mar 21, 2025
ce0afb9
Name additional threads (openDAQ/openDAQ#742)
dejancrn Mar 25, 2025
550e16b
Replaced WORKING_DIRECTORY by full path for all tests (openDAQ/openDA…
Daniel-BB Apr 4, 2025
a46adbf
OPC-UA client: warn and ignore duplicate properties (openDAQ/openDAQ#…
dvnrrs Apr 7, 2025
af95c00
Fix IPv6 addresses discovering on windows (openDAQ/openDAQ#751)
NikolaiShipilov Apr 7, 2025
4220cd1
Provide list of connected clients via DeviceInfo (openDAQ/openDAQ#730)
NikolaiShipilov Apr 10, 2025
d93774d
Merge discovery info and device info based on SN and manufacturer (op…
JakaMohorko Apr 11, 2025
5be6b15
`hasProperty` extension for nested property object paths (openDAQ/ope…
JakaMohorko Apr 18, 2025
a6022b4
Improving device operation mode (openDAQ/openDAQ#771)
denise-opendaq Apr 26, 2025
70b695d
Using component config while loading configuration for the devices an…
denise-opendaq Apr 29, 2025
a357bfc
Support restoring device info fields (openDAQ/openDAQ#764)
denise-opendaq Apr 29, 2025
be66aa2
Creating error info for error codes (openDAQ/openDAQ#768)
denise-opendaq Apr 30, 2025
56ea109
Increase cmake min version to 3.10 (openDAQ/openDAQ#817)
denise-opendaq Jun 11, 2025
a2aaea5
Allow IP connection with scheduler notification (openDAQ/openDAQ#834)
JakaMohorko Jun 16, 2025
5b03a73
Remove opendaq_dev library (openDAQ/openDAQ#835)
JakaMohorko Jun 18, 2025
89d4331
Parallel device connection (openDAQ/openDAQ#828)
NikolaiShipilov Jun 23, 2025
f053832
Gracefully handle operation mode getters when not supported on server…
JakaMohorko Jun 27, 2025
52fb50b
Exclude ComponentConfig from OPC UA Component Properties (openDAQ/ope…
denise-opendaq Jun 20, 2025
7ebe18a
Add support for list and dictionary item/key type identification in A…
JakaMohorko Jul 16, 2025
26fce28
Improving error logging and implementing an error guard (openDAQ/open…
denise-opendaq Aug 2, 2025
902c729
onRead events over native + Suggested/Selection values onRead (openD…
JakaMohorko Aug 18, 2025
848b16f
Opcua warnings (openDAQ/openDAQ#880)
viacheslauK Aug 20, 2025
7a3dcc3
Generalized client-to-device streaming (openDAQ/openDAQ#867)
NikolaiShipilov Sep 1, 2025
97d26bc
Other/merge 3.30 rc (openDAQ/openDAQ#928)
JakaMohorko Sep 23, 2025
28cca72
Other/merge rc (openDAQ/openDAQ#947)
JakaMohorko Oct 9, 2025
b0811d0
Modifications required for module extraction (openDAQ/openDAQ#979)
NikolaiShipilov Dec 22, 2025
d2c445e
Fix OPC UA Value and AnalogValue node data types for signals (openDAQ…
denise-opendaq Jan 5, 2026
53ff1ac
CI workflow: add 32-bit build support on Linux (openDAQ/openDAQ#1031)
alexadereyko Jan 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
220 changes: 220 additions & 0 deletions external/opcua_daq_types/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
set_cmake_folder_context(TARGET_FOLDER_NAME)
project(opcua_daq_types VERSION 1.0.0 DESCRIPTION "DAQ types" LANGUAGES C)

option(HBK_NODESET "Adds an HBK Nodeset on top of the DAQ ESP spec" ON)

# Define empty list of nodeset dependencies
list(APPEND OPC_UA_NODESET_DEPENDENCIES)
set(OPCUA_NODESET_NAMES)
set(OPCUA_NODESET_URIS)


#
# Fetch the openDAQ OPC-UA Companion Specification NodeSet
#
set(daq_spec_REQUIREDVERSION "3.0.2")
get_custom_fetch_content_params(daqspec FC_PARAMS)

FetchContent_Declare(daqspec
GIT_REPOSITORY https://github.com/openDAQ/opc-ua-companion-spec.git
GIT_TAG v${daq_spec_REQUIREDVERSION}
${FC_PARAMS}
)
FetchContent_GetProperties(daqspec)
if(NOT daqspec_POPULATED)
message(STATUS "Fetching daq specification ${daq_spec_REQUIREDVERSION}...")
FetchContent_MakeAvailable(daqspec)
set(COMPANION_SPECIFICATIONS_DIRPREFIX "${daqspec_SOURCE_DIR}/opendaq")
endif()

# python interpreter is required for the code genaration process
find_package(Python3 REQUIRED)
set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})

set(DI_NAME_SPACE_INDEX 2)
set(NAME_SPACE_INDEX ${DI_NAME_SPACE_INDEX})
set(GENERATE_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated/open62541")

# Define some empty list necessary for code generation
list(APPEND OPC_UA_NODESET_COMPILE_FLAGS)
list(APPEND OPC_UA_NODESET_SOURCES)
list(APPEND OPC_UA_NODESET_HEADERS)

#
# Generate DI nodeset
#
message(STATUS "Generating DI nodeset...")
ua_generate_nodeset_and_datatypes(
NAME "di"
TARGET_PREFIX "${PROJECT_NAME}"
IMPORT_BSD "UA_TYPES#${open62541_NODESET_DIR}/Schema/Opc.Ua.Types.bsd"
FILE_CSV "${open62541_NODESET_DIR}/DI/OpcUaDiModel.csv"
FILE_BSD "${open62541_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
NAMESPACE_MAP "${NAME_SPACE_INDEX}:http://opcfoundation.org/UA/DI/"
FILE_NS "${open62541_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
INTERNAL
)
list(APPEND OPC_UA_NODESET_DEPENDENCIES ${PROJECT_NAME}-ns-di)
list(APPEND OPC_UA_NODESET_SOURCES ${UA_NODESET_DI_SOURCES} ${UA_TYPES_DI_SOURCES})
list(APPEND OPC_UA_NODESET_HEADERS ${UA_NODESET_DI_HEADERS} ${UA_TYPES_DI_HEADERS} ${GENERATE_OUTPUT_DIR}/di_nodeids.h)
list(APPEND OPC_UA_NODESET_COMPILE_FLAGS NAMESPACE_DI=${NAME_SPACE_INDEX})
list(APPEND OPCUA_NODESET_NAMES "di")
list(APPEND OPCUA_NODESET_URIS "http://opcfoundation.org/UA/DI/")

MATH(EXPR NAME_SPACE_INDEX "${NAME_SPACE_INDEX}+1")


#
# Generate DAQ Base Types (BT) nodeset if needed
#
message(STATUS "Generating DAQ BT nodeset...")
ua_generate_nodeset_and_datatypes(
NAME "daqbt"
TARGET_PREFIX "${PROJECT_NAME}"
IMPORT_BSD "UA_TYPES#${open62541_NODESET_DIR}/Schema/Opc.Ua.Types.bsd"
FILE_CSV "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bt.NodeIds.csv"
FILE_BSD "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bt.Types.bsd"
OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
NAMESPACE_MAP "${NAME_SPACE_INDEX}:https://docs.opendaq.io/specifications/opc-ua/daq/bt"
FILE_NS "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bt.NodeSet2.xml"
DEPENDS "di"
INTERNAL
)
list(APPEND OPC_UA_NODESET_DEPENDENCIES ${PROJECT_NAME}-ns-daqbt)
list(APPEND OPC_UA_NODESET_SOURCES ${UA_NODESET_DAQBT_SOURCES} ${UA_TYPES_DAQBT_SOURCES})
list(APPEND OPC_UA_NODESET_HEADERS ${UA_NODESET_DAQBT_HEADERS} ${UA_TYPES_DAQBT_HEADERS} ${GENERATE_OUTPUT_DIR}/daqbt_nodeids.h)
list(APPEND OPC_UA_NODESET_COMPILE_FLAGS NAMESPACE_DAQBT=${NAME_SPACE_INDEX})
list(APPEND OPCUA_NODESET_NAMES "daqbt")
list(APPEND OPCUA_NODESET_URIS "https://docs.opendaq.io/specifications/opc-ua/daq/bt")
MATH(EXPR NAME_SPACE_INDEX "${NAME_SPACE_INDEX}+1")

#
# Generate DAQ Basic Signal Processing (BSP) nodeset if needed
#
message(STATUS "Generating DAQ BSP nodeset...")
ua_generate_nodeset_and_datatypes(
NAME "daqbsp"
TARGET_PREFIX "${PROJECT_NAME}"
IMPORT_BSD "UA_TYPES#${open62541_NODESET_DIR}/Schema/Opc.Ua.Types.bsd"
IMPORT_BSD "UA_TYPES_DAQBT#${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bt.Types.bsd"
FILE_CSV "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bsp.NodeIds.csv"
FILE_BSD "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bsp.Types.bsd"
OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
NAMESPACE_MAP "${NAME_SPACE_INDEX}:https://docs.opendaq.io/specifications/opc-ua/daq/bsp"
FILE_NS "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bsp.NodeSet2.xml"
DEPENDS "daqbt"
INTERNAL
)
list(APPEND OPC_UA_NODESET_DEPENDENCIES ${PROJECT_NAME}-ns-daqbsp)
list(APPEND OPC_UA_NODESET_SOURCES ${UA_NODESET_DAQBSP_SOURCES} ${UA_TYPES_DAQBSP_SOURCES})
list(APPEND OPC_UA_NODESET_HEADERS ${UA_NODESET_DAQBSP_HEADERS} ${UA_TYPES_DAQBSP_HEADERS} ${GENERATE_OUTPUT_DIR}/daqbsp_nodeids.h)
list(APPEND OPC_UA_NODESET_COMPILE_FLAGS NAMESPACE_DAQBSP=${NAME_SPACE_INDEX})
list(APPEND OPCUA_NODESET_NAMES "daqbsp")
list(APPEND OPCUA_NODESET_URIS "https://docs.opendaq.io/specifications/opc-ua/daq/bsp")
MATH(EXPR NAME_SPACE_INDEX "${NAME_SPACE_INDEX}+1")

#
# Generate DAQ Device nodeset if needed
#
message(STATUS "Generating DAQ Device nodeset...")
ua_generate_nodeset_and_datatypes(
NAME "daqdevice"
TARGET_PREFIX "${PROJECT_NAME}"
IMPORT_BSD "UA_TYPES#${open62541_NODESET_DIR}/Schema/Opc.Ua.Types.bsd"
IMPORT_BSD "UA_TYPES_DAQBT#${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bt.Types.bsd"
IMPORT_BSD "UA_TYPES_DAQBSP#${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bsp.Types.bsd"
FILE_CSV "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Device.NodeIds.csv"
FILE_BSD "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Device.Types.bsd"
OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
NAMESPACE_MAP "${NAME_SPACE_INDEX}:https://docs.opendaq.io/specifications/opc-ua/daq/device"
FILE_NS "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Device.NodeSet2.xml"
DEPENDS "daqbsp"
INTERNAL
)
list(APPEND OPC_UA_NODESET_DEPENDENCIES ${PROJECT_NAME}-ns-daqdevice)
list(APPEND OPC_UA_NODESET_SOURCES ${UA_NODESET_DAQDEVICE_SOURCES} ${UA_TYPES_DAQDEVICE_SOURCES})
list(APPEND OPC_UA_NODESET_HEADERS ${UA_NODESET_DAQDEVICE_HEADERS} ${UA_TYPES_DAQDEVICE_HEADERS} ${GENERATE_OUTPUT_DIR}/daqdevice_nodeids.h)
list(APPEND OPC_UA_NODESET_COMPILE_FLAGS NAMESPACE_DAQDEVICE=${NAME_SPACE_INDEX})
list(APPEND OPCUA_NODESET_NAMES "daqdevice")
list(APPEND OPCUA_NODESET_URIS "https://docs.opendaq.io/specifications/opc-ua/daq/device")
MATH(EXPR NAME_SPACE_INDEX "${NAME_SPACE_INDEX}+1")

#
# Generate DAQ ESP nodeset if needed
#
message(STATUS "Generating DAQ ESP nodeset...")
ua_generate_nodeset_and_datatypes(
NAME "daqesp"
TARGET_PREFIX "${PROJECT_NAME}"
IMPORT_BSD "UA_TYPES#${open62541_NODESET_DIR}/Schema/Opc.Ua.Types.bsd"
IMPORT_BSD "UA_TYPES_DAQBT#${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bt.Types.bsd"
IMPORT_BSD "UA_TYPES_DAQBSP#${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Bsp.Types.bsd"
IMPORT_BSD "UA_TYPES_DAQDEVICE#${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Device.Types.bsd"
FILE_CSV "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Esp.NodeIds.csv"
FILE_BSD "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Esp.Types.bsd"
OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
NAMESPACE_MAP "${NAME_SPACE_INDEX}:https://docs.opendaq.io/specifications/opc-ua/daq/esp"
FILE_NS "${COMPANION_SPECIFICATIONS_DIRPREFIX}/Opc.Ua.Daq.Esp.NodeSet2.xml"
DEPENDS "daqdevice"
INTERNAL
)
list(APPEND OPC_UA_NODESET_DEPENDENCIES ${PROJECT_NAME}-ns-daqesp)
list(APPEND OPC_UA_NODESET_SOURCES ${UA_NODESET_DAQESP_SOURCES} ${UA_TYPES_DAQESP_SOURCES})
list(APPEND OPC_UA_NODESET_HEADERS ${UA_NODESET_DAQESP_HEADERS} ${UA_TYPES_DAQESP_HEADERS} ${GENERATE_OUTPUT_DIR}/daqesp_nodeids.h)
list(APPEND OPC_UA_NODESET_COMPILE_FLAGS NAMESPACE_DAQESP=${NAME_SPACE_INDEX})
list(APPEND OPCUA_NODESET_NAMES "daqesp")
list(APPEND OPCUA_NODESET_URIS "https://docs.opendaq.io/specifications/opc-ua/daq/esp")
MATH(EXPR NAME_SPACE_INDEX "${NAME_SPACE_INDEX}+1")

# Add Vendor Specs if wanted
if(HBK_NODESET)
include(hbk/CMakeLists.txt)
endif()
#
# Create custom target that will also execute the node compilations (because of the ALL keyword below)
#
list(LENGTH OPC_UA_NODESET_DEPENDENCIES OPC_UA_NODESET_DEPENDENCY_LENGTH)

set(OPCUA_NODESET_INCLUDES "")
set(OPCUA_ENDPOINT_REGISTRATIONS "")
set(LOOP_RUN_INDEX 0)
foreach(NODESET_NAME ${OPCUA_NODESET_NAMES})
list(GET OPCUA_NODESET_URIS ${LOOP_RUN_INDEX} OPCUA_NODESET_URI)
set(OPCUA_NODESET_INCLUDES "${OPCUA_NODESET_INCLUDES}#include<open62541/types_${NODESET_NAME}_generated.h>\n")
string(TOUPPER ${NODESET_NAME} OPCUA_NODESET_NAME_UPPERCASE)
if(LOOP_RUN_INDEX EQUAL 0)
set(OPCUA_ENDPOINT_REGISTRATIONS "${OPCUA_ENDPOINT_REGISTRATIONS} if(nameSpace == \"${OPCUA_NODESET_URI}\")\n endpoint.registerCustomTypes(UA_TYPES_${OPCUA_NODESET_NAME_UPPERCASE}_COUNT, UA_TYPES_${OPCUA_NODESET_NAME_UPPERCASE});\n")
else()
set(OPCUA_ENDPOINT_REGISTRATIONS "${OPCUA_ENDPOINT_REGISTRATIONS} else if(nameSpace == \"${OPCUA_NODESET_URI}\")\n endpoint.registerCustomTypes(UA_TYPES_${OPCUA_NODESET_NAME_UPPERCASE}_COUNT, UA_TYPES_${OPCUA_NODESET_NAME_UPPERCASE});\n")
endif()
MATH(EXPR LOOP_RUN_INDEX "${LOOP_RUN_INDEX}+1")
endforeach()

message(STATUS "Generating opcua nodeset include methods at ${GENERATE_OUTPUT_DIR}/daq_opcua_nodesets.h")
configure_file("daq_opcua_nodesets.h.in" ${GENERATE_OUTPUT_DIR}/daq_opcua_nodesets.h)
list(APPEND OPC_UA_NODESET_HEADERS ${GENERATE_OUTPUT_DIR}/daq_opcua_nodesets.h)

add_library(${PROJECT_NAME}
STATIC
${OPC_UA_NODESET_SOURCES}
${OPC_UA_NODESET_HEADERS}
)

add_library(${SDK_TARGET_NAMESPACE}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

target_link_libraries(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:open62541>)

# Make sure that generation is run before but don't link libraries
add_dependencies(${PROJECT_NAME} ${OPC_UA_NODESET_DEPENDENCIES})

target_compile_definitions(${PROJECT_NAME} PUBLIC ${OPC_UA_NODESET_COMPILE_FLAGS})

# Ignore warnings defined in "external/bbopen62541"
target_compile_options(${PROJECT_NAME} PRIVATE ${OPEN62541_DISABLED_WARNINGS})

# Let libraries linking to us know where to find the generated headers
target_include_directories(${PROJECT_NAME} INTERFACE
$<BUILD_INTERFACE:${GENERATE_OUTPUT_DIR}/..>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
15 changes: 15 additions & 0 deletions external/opcua_daq_types/daq_opcua_nodesets.h.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#pragma once
#include <opcuashared/opcuaendpoint.h>
@OPCUA_NODESET_INCLUDES@

BEGIN_NAMESPACE_OPENDAQ_OPCUA

static void registerDaqTypes(OpcUaEndpoint& endpoint, ListPtr<IString> nameSpaces)
{
for (auto nameSpace : nameSpaces)
{
@OPCUA_ENDPOINT_REGISTRATIONS@
}
}

END_NAMESPACE_OPENDAQ_OPCUA
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
diff --git a/opendaq/hbk/Opc.Ua.Daq.Vendor.Hbk.NodeSet2.xml b/opendaq/hbk/Opc.Ua.Daq.Vendor.Hbk.NodeSet2.xml
index fec43da..61474e8 100644
--- a/opendaq/hbk/Opc.Ua.Daq.Vendor.Hbk.NodeSet2.xml
+++ b/opendaq/hbk/Opc.Ua.Daq.Vendor.Hbk.NodeSet2.xml
@@ -3596,6 +3596,9 @@
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5127</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="EUInformation" ParentNodeId="ns=1;i=7117" NodeId="ns=1;i=7118" BrowseName="EngineeringUnits">
<DisplayName>EngineeringUnits</DisplayName>
@@ -3687,6 +3690,9 @@
<Reference ReferenceType="HasProperty">ns=1;i=7162</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5127</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Number" ParentNodeId="ns=1;i=7094" ValueRank="-2" NodeId="ns=1;i=7095" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -5103,6 +5109,9 @@
<Reference ReferenceType="HasTypeDefinition">ns=2;i=2004</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5013</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=6858" NodeId="ns=1;i=6859" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -5203,6 +5212,9 @@
<Reference ReferenceType="HasTypeDefinition">ns=2;i=2004</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5013</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=6862" NodeId="ns=1;i=6863" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -6186,6 +6198,9 @@
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5134</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="EUInformation" ParentNodeId="ns=1;i=7226" NodeId="ns=1;i=7227" BrowseName="EngineeringUnits">
<DisplayName>EngineeringUnits</DisplayName>
@@ -6277,6 +6292,9 @@
<Reference ReferenceType="HasProperty">ns=1;i=7202</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5134</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Number" ParentNodeId="ns=1;i=7199" ValueRank="-2" NodeId="ns=1;i=7200" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -7926,6 +7944,9 @@
<Reference ReferenceType="HasModellingRule">i=80</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=1003</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=6090" NodeId="ns=1;i=6096" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -9496,6 +9517,9 @@
<Reference ReferenceType="HasModellingRule">i=80</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=6072</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=6073" NodeId="ns=1;i=6529" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -9729,6 +9753,9 @@
<Reference ReferenceType="HasProperty">ns=1;i=6912</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=1005</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=6085" NodeId="ns=1;i=6106" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -9821,6 +9848,9 @@
<Reference ReferenceType="HasProperty">ns=1;i=6913</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=1005</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=6086" NodeId="ns=1;i=6109" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -9868,6 +9898,9 @@
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=1048</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="EUInformation" ParentNodeId="ns=1;i=6316" NodeId="ns=1;i=6377" BrowseName="EngineeringUnits">
<DisplayName>EngineeringUnits</DisplayName>
@@ -10193,6 +10226,9 @@
<Reference ReferenceType="HasTypeDefinition">ns=2;i=2004</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=1048</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Double" ParentNodeId="ns=1;i=6692" NodeId="ns=1;i=6894" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
@@ -16552,6 +16588,9 @@
<Reference ReferenceType="HasProperty">ns=1;i=7455</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5098</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="EUInformation" ParentNodeId="ns=1;i=7453" NodeId="ns=1;i=7454" BrowseName="EngineeringUnits">
<DisplayName>EngineeringUnits</DisplayName>
@@ -16643,6 +16682,9 @@
<Reference ReferenceType="HasTypeDefinition">ns=2;i=2004</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5098</Reference>
</References>
+ <Value>
+ <uax:Double>0</uax:Double>
+ </Value>
</UAVariable>
<UAVariable DataType="Number" ParentNodeId="ns=1;i=7462" ValueRank="-2" NodeId="ns=1;i=7463" BrowseName="2:DefaultValue">
<DisplayName>DefaultValue</DisplayName>
Loading