Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
db486a3
Initial commit
Oct 16, 2023
c7287f3
Fix remaining licences
JakaMohorko Oct 18, 2023
3447a51
<TBBAS-1022> Fix WebSocket streaming compatibility issues:
NikolaiShipilov Oct 25, 2023
1c6ab49
Add integration tests which use the websocket streaming library signa…
NikolaiShipilov Nov 2, 2023
870bfdc
Fix websocket streaming compatibility issues:
NikolaiShipilov Nov 7, 2023
b71af39
Use signal name instead of descriptor name for ws streaming metadata
NikolaiShipilov Nov 13, 2023
6952c74
Add automatic signal subscribing:
NikolaiShipilov Oct 21, 2023
54af0c2
Add streaming modifications:
NikolaiShipilov Nov 16, 2023
5a731ba
Add 'streamed' setting for ISignal:
NikolaiShipilov Nov 17, 2023
aea4a0c
Increase streaming-lt version
JakaMohorko Nov 20, 2023
556ed21
<TBBAS-1061> Integrate control interface into websocket streaming:
NikolaiShipilov Nov 23, 2023
845ee41
Add name and description getter/setters to component
JakaMohorko Nov 22, 2023
07104af
Add support for raw tcp socket streaming connection:
NikolaiShipilov Nov 30, 2023
cdcb58c
Rework how interface inheritance and queryInterface work to hopefully…
Unsttopabull Dec 4, 2023
e61b22c
<TBBAS-903> Utilize signal subscribing within the websocket streaming:
NikolaiShipilov Nov 28, 2023
cde718c
Add subscribe/unsubscribe completion acknowledgement Events
NikolaiShipilov Nov 30, 2023
c1343ca
Modify the management of readers for streaming servers:
NikolaiShipilov Dec 4, 2023
bbb59c3
Add subscription completion acknowledgement processing for websocket …
NikolaiShipilov Dec 6, 2023
66ca4dd
[TBBAS-1170] IInstance update: support argument struct in constructor
denise-opendaq Jan 11, 2024
f9943f5
Add SearchFilter, Visible flag, rework Component attributes
JakaMohorko Nov 29, 2023
157f083
Update the minimum required CMake version to avoid deprecation warnings
Unsttopabull Jan 18, 2024
97b09c4
Add native configuration protocol library
dejancrn Jan 22, 2024
ed11b61
<TBBAS-1210> Enable support of shared domain signals in websocket str…
NikolaiShipilov Jan 12, 2024
4ee7ff1
Optimize streaming servers' lookup of connected clients
NikolaiShipilov Jan 25, 2024
53db7fc
Fix openDAQ component (static) libraries linking
Unsttopabull Jan 30, 2024
e29552f
Add MSVC /bigobj build flag for websocket streaming module
NikolaiShipilov Jan 24, 2024
d586f83
Support core events in Native Config Client
JakaMohorko Jan 25, 2024
58fc9d6
<TBBAS-1185> Add module implementations for device based on the nativ…
NikolaiShipilov Jan 24, 2024
7006154
Transfer available signal info as serialized signal in native streaming
NikolaiShipilov Feb 6, 2024
906d0b6
Enable multiple device types per single mDNS service
NikolaiShipilov Feb 6, 2024
cece728
implement logic for signal.setPublic(...)
denise-opendaq Feb 21, 2024
0616a78
Add struct sample type
dejancrn Feb 23, 2024
897b52b
Refactoring of the streaming framework:
NikolaiShipilov Feb 14, 2024
db54f85
<TBBAS-1224> Handle signals removal in native modules
NikolaiShipilov Feb 15, 2024
72b4a11
Change StreamingLT git ref
JakaMohorko Feb 27, 2024
b8967fa
[TBBAS-1306] Example of using the config provider options in a refere…
denise-opendaq Mar 4, 2024
d283eca
hiding not public signals in streaming lt
denise-opendaq Mar 5, 2024
3079fbd
<TBBAS-1453> Streaming-lt: write start domain value only upon signal …
NikolaiShipilov Mar 7, 2024
e59d848
[TBBAS-1232]: use filtered signals as available in Streaming Server
denise-opendaq Mar 11, 2024
ce17983
Update FMT to v10.2.1 and SpdLog to v1.13.0
Unsttopabull Mar 7, 2024
71ea366
Update license year from 2023 to 2024 (openDAQ/openDAQ#235)
aljazfrancic Mar 26, 2024
0aaeda8
Ask config for descriptor if mirrored streaming desc is not yet avail…
JakaMohorko Mar 22, 2024
f82dc60
Change interface methods to pure ptrs
JakaMohorko Mar 25, 2024
7a546d4
Integrate streaming-lt changes for shared domain signals:
NikolaiShipilov Mar 20, 2024
117cd21
Fix mock signal generator:
NikolaiShipilov Mar 27, 2024
6b88b88
Reset mirrored descriptor on unsubscribe
JakaMohorko Mar 27, 2024
393973d
Revert signal generator change
JakaMohorko Mar 28, 2024
ee06bab
Rework constant data rule
dejancrn Mar 25, 2024
7621670
Enable adding of unavailable signals to streaming:
NikolaiShipilov Mar 29, 2024
4e1c169
Skip domain signal subscribing for websocket streaming-lt
NikolaiShipilov Apr 3, 2024
d8b037c
Forward only changed descriptors in streaming LT
JakaMohorko Apr 4, 2024
98210be
[TBBAS-1291] Grouping of discovered devices via serial number (openDA…
denise-opendaq Apr 5, 2024
a2f87e8
[Bug]: websocket mdns discovery backward competitivity (openDAQ/openD…
denise-opendaq Apr 10, 2024
898c1d9
Update module and library versions to 3.0.0
janm-dw Apr 10, 2024
d427eaf
Remove the creation of event packets within streaming
NikolaiShipilov Apr 11, 2024
57fdd7c
rename server capability protocol type
denise-opendaq Apr 12, 2024
76a77b0
Add support for constant rule signals in the streaming-lt protocol:
NikolaiShipilov Apr 5, 2024
b083983
Refactor Input signal wrappers:
NikolaiShipilov Apr 10, 2024
1be50e8
Cleanup CMake install
Unsttopabull Apr 23, 2024
b0f76fe
Supporting connection with ipv6 connection string (openDAQ/openDAQ#281)
denise-opendaq Apr 25, 2024
fb1dbe7
<TBBAS-1396> Move streaming creation from device impl to the module m…
NikolaiShipilov Apr 25, 2024
b6811db
Clone property object to create default config from type
NikolaiShipilov Apr 25, 2024
78fead1
Bump version from 3.0.0 to 3.1.0
aljazfrancic May 7, 2024
8b1d838
Fix - set start time param of linear rule to 0 for streaming-lt signals
NikolaiShipilov May 8, 2024
4588576
Add authentication provider to Context object
janm-dw Apr 23, 2024
ed029c5
Streaming connection/configuration updates:
NikolaiShipilov Apr 29, 2024
88f292c
Increase version for streaming protocol.
nilsRoettger May 15, 2024
0d01e2b
Fix streaming-lt compatibility issues
NikolaiShipilov May 16, 2024
46f00f5
Sync location and name between device and device info
JakaMohorko May 10, 2024
2587419
<TBBAS-1468> Integrate streaming-LT range and post scaling metadata:
NikolaiShipilov May 23, 2024
697bd16
[TBBAS-1313] mDNS discovery service in SDK (openDAQ/openDAQ#294)
denise-opendaq May 28, 2024
2341ae1
Add client connection configuration info in the device info (openDAQ/…
denise-opendaq May 31, 2024
221a985
opendaq component merge
JakaMohorko May 15, 2024
8168cdd
Close all connections on device removal:
NikolaiShipilov May 30, 2024
a0fb738
Other/config object rework (openDAQ/openDAQ#326)
JakaMohorko Jun 20, 2024
431a73d
Modify discovery capability merge
JakaMohorko Jun 21, 2024
e3d5f6e
Fix race condition within LT-streaming on signal unsubscribe:
NikolaiShipilov Jun 26, 2024
58aecd3
Update streaming protocol LT
dejancrn Jun 30, 2024
ae854ec
Change streaming protocol req version
JakaMohorko Jul 2, 2024
414cd50
Remove acceptsConnectionParameters from module
JakaMohorko Jul 4, 2024
85499ca
Change company name from `Blueberry d.o.o.` to `openDAQ d.o.o.` (open…
aljazfrancic Jul 10, 2024
a11a605
General CMake and testing and discovery fixes (openDAQ/openDAQ#375)
Unsttopabull Jul 16, 2024
dfd8a5c
<TBBAS-1714> / <ARTBB-138> Handle client disconnection on the LT-stre…
NikolaiShipilov Jul 12, 2024
483098a
Standardize cases to PascalCase (openDAQ/openDAQ#355)
aljazfrancic Jul 23, 2024
984285d
Bump sdk version to 3.2
JakaMohorko Jul 24, 2024
7891aa1
Bump version to 3.3
JakaMohorko Jul 24, 2024
a7c3743
<TBBAS-1523> Enable signal addition and removal within LT-streaming
NikolaiShipilov Jul 1, 2024
ac4160c
<TBBAS-1523> Apply code review suggestions:
NikolaiShipilov Jul 25, 2024
9272fbe
Sync components Implementation (openDAQ/openDAQ#361)
denise-opendaq Aug 13, 2024
119ffad
fix connection string regexp with % and path. fix sync component cmake
denise-opendaq Aug 20, 2024
d6df5d1
Add ipv6 link local interface to connection string when available
JakaMohorko Aug 20, 2024
fd0527b
Fix regex
JakaMohorko Aug 20, 2024
0b34377
Increase version to 3.4
JakaMohorko Aug 23, 2024
ad94cb6
[TBBAS-1592] Instance save/load fixes (openDAQ/openDAQ#450)
denise-opendaq Sep 5, 2024
38dbc0f
Enable openDAQ servers to be added to the component tree under the de…
NikolaiShipilov Aug 26, 2024
59511c0
Inject openDAQ version from a single file (openDAQ/openDAQ#550)
aljazfrancic Oct 18, 2024
8aa9bd3
Complete the missing changes for event packet triggering on setting a…
NikolaiShipilov Oct 8, 2024
1a4deb4
Refactor repetitive processing patterns for event packets into separa…
NikolaiShipilov Oct 21, 2024
3f2311b
Skip LT tests which use subscribe ack on MacOs
NikolaiShipilov Oct 22, 2024
ec6f5cc
[TBBAS-1850]: Implement communication protocol version info (openDAQ/…
denise-opendaq Oct 29, 2024
41d1c1a
Mark some skipped tests as [SKIPPED] in GTest results:
NikolaiShipilov Nov 6, 2024
72a5f82
Enable test listeners for packet_streaming and LT libs
NikolaiShipilov Nov 6, 2024
6e41f0a
Add Module Info (openDAQ/openDAQ#609)
aljazfrancic Nov 26, 2024
cb656cf
Fix thread sanitizer warnings in streaming read threads (openDAQ/open…
NikolaiShipilov Nov 29, 2024
afe57ef
Bump year in license, etc. to 2025 (openDAQ/openDAQ#656)
aljazfrancic Jan 6, 2025
90d3b59
Implement configurable device info fields on core (openDAQ/openDAQ#607)
denise-opendaq Jan 27, 2025
c9cf166
IP modification mechanism (openDAQ/openDAQ#642)
NikolaiShipilov Jan 30, 2025
57d3a32
Fixed unknown std::chrono namespace issue introduced in VS2022 17.13.…
Daniel-BB Feb 13, 2025
fcf8819
Device info `setName` changed device name + setting owner prevents wr…
JakaMohorko Feb 18, 2025
d4cd5a3
Merge release 3.10 fixes to main (openDAQ/openDAQ#710)
NikolaiShipilov Feb 24, 2025
1ac6dd1
Logging improvement (openDAQ/openDAQ#721)
denise-opendaq Mar 14, 2025
0ed78c4
Replaced WORKING_DIRECTORY by full path for all tests (openDAQ/openDA…
Daniel-BB Apr 4, 2025
a563f53
Fix IPv6 addresses discovering on windows (openDAQ/openDAQ#751)
NikolaiShipilov Apr 7, 2025
370fa6c
Provide list of connected clients via DeviceInfo (openDAQ/openDAQ#730)
NikolaiShipilov Apr 10, 2025
d9611dd
Merge discovery info and device info based on SN and manufacturer (op…
JakaMohorko Apr 11, 2025
5fc0ffd
Improving device operation mode (openDAQ/openDAQ#771)
denise-opendaq Apr 26, 2025
60f7075
high-performance WebSocket streaming server (openDAQ/openDAQ#743)
dvnrrs May 5, 2025
abb00fb
Use LT streaming client lib release version 1.4.0 (openDAQ/openDAQ#800)
NikolaiShipilov May 14, 2025
a750945
Increase cmake min version to 3.10 (openDAQ/openDAQ#817)
denise-opendaq Jun 11, 2025
f240482
Revert faulty LT changes (openDAQ/openDAQ#832)
JakaMohorko Jun 4, 2025
063eb54
Bump LT version to 1.2.6 (openDAQ/openDAQ#840)
JakaMohorko Jun 18, 2025
bc4d5ae
Circular buffer implementation (openDAQ/openDAQ#726)
alien588 Jul 16, 2025
cb367f2
Improving error logging and implementing an error guard (openDAQ/open…
denise-opendaq Aug 2, 2025
1f964f3
[TBBAS-2555] Upgrade nlohmann-json 3.10.2 To 3.11.3 (openDAQ/openDAQ#…
Yarikk26 Sep 1, 2025
5b8affe
Other/merge 3.30 rc (openDAQ/openDAQ#928)
JakaMohorko Sep 23, 2025
23dde37
Other/merge rc (openDAQ/openDAQ#947)
JakaMohorko Oct 9, 2025
638f616
Merge 3.30 release to main (openDAQ/openDAQ#970)
JakaMohorko Nov 7, 2025
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
13 changes: 13 additions & 0 deletions external/streaming_protocol/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
set(STREAMING_PROTOCOL_ALWAYS_FETCH_DEPS ON CACHE BOOL "" FORCE)

if (OPENDAQ_ENABLE_WS_SIGGEN_INTEGRATION_TESTS)
set(STREAMING_PROTOCOL_TOOLS ON CACHE BOOL "" FORCE)
endif()

opendaq_dependency(
NAME streaming_protocol
REQUIRED_VERSION 1.2.7
GIT_REPOSITORY https://github.com/openDAQ/streaming-protocol-lt.git
GIT_REF v1.2.7
EXPECT_TARGET daq::streaming_protocol
)
21 changes: 21 additions & 0 deletions modules/websocket_streaming_client_module/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
cmake_minimum_required(VERSION 3.10)
set_cmake_folder_context(TARGET_FOLDER_NAME)
project(WebsocketStreamingClientModule VERSION ${OPENDAQ_PACKAGE_VERSION} LANGUAGES C CXX)

if (MSVC)
# loss of data / precision, unsigned <--> signed
#
# 'argument' : conversion from 'type1' to 'type2', possible loss of data
# https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-2-c4244
add_compile_options(/wd4244)

# 'var' : conversion from 'size_t' to 'type', possible loss of data
# https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4267
add_compile_options(/wd4267)
endif()

add_subdirectory(src)

if (OPENDAQ_ENABLE_TESTS)
add_subdirectory(tests)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/*
* Copyright 2022-2025 openDAQ d.o.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#pragma once
#include <coretypes/common.h>

#define BEGIN_NAMESPACE_OPENDAQ_WEBSOCKET_STREAMING_CLIENT_MODULE BEGIN_NAMESPACE_OPENDAQ_MODULE(websocket_streaming_client_module)
#define END_NAMESPACE_OPENDAQ_WEBSOCKET_STREAMING_CLIENT_MODULE END_NAMESPACE_OPENDAQ_MODULE
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Copyright 2022-2025 openDAQ d.o.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#pragma once
#include <opendaq/module_exports.h>

DECLARE_MODULE_EXPORTS(WebsocketStreamingClientModule)
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/*
* Copyright 2022-2025 openDAQ d.o.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#pragma once
#include <websocket_streaming_client_module/common.h>
#include <opendaq/module_impl.h>
#include <daq_discovery/daq_discovery_client.h>

BEGIN_NAMESPACE_OPENDAQ_WEBSOCKET_STREAMING_CLIENT_MODULE

class WebsocketStreamingClientModule final : public Module
{
public:
WebsocketStreamingClientModule(ContextPtr context);

ListPtr<IDeviceInfo> onGetAvailableDevices() override;
DictPtr<IString, IDeviceType> onGetAvailableDeviceTypes() override;
DictPtr<IString, IStreamingType> onGetAvailableStreamingTypes() override;
DevicePtr onCreateDevice(const StringPtr& connectionString,
const ComponentPtr& parent,
const PropertyObjectPtr& config) override;
bool acceptsConnectionParameters(const StringPtr& connectionString, const PropertyObjectPtr& config);
bool acceptsStreamingConnectionParameters(const StringPtr& connectionString, const PropertyObjectPtr& config);
StreamingPtr onCreateStreaming(const StringPtr& connectionString, const PropertyObjectPtr& config) override;
Bool onCompleteServerCapability(const ServerCapabilityPtr& source, const ServerCapabilityConfigPtr& target) override;

private:
static DeviceTypePtr createWebsocketDeviceType(bool useOldPrefix);
static StringPtr createUrlConnectionString(const StringPtr& host,
const IntegerPtr& port,
const StringPtr& path);
static StreamingTypePtr createWebsocketStreamingType();
static PropertyObjectPtr createDefaultConfig();
static StringPtr formConnectionString(const StringPtr& connectionString, const PropertyObjectPtr& config);
static DeviceInfoPtr populateDiscoveredDevice(const discovery::MdnsDiscoveredDevice& discoveredDevice);

std::mutex sync;
size_t deviceIndex;
discovery::DiscoveryClient discoveryClient;
};

END_NAMESPACE_OPENDAQ_WEBSOCKET_STREAMING_CLIENT_MODULE
47 changes: 47 additions & 0 deletions modules/websocket_streaming_client_module/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Windows NSIS package manager limits lenght of variables
# "openDAQ_[MODULE_NAME]_[SUFFIX]" with 60 characters max
# The suffix with max lenght is [Development_was_installed]
# so the shorter module name [ws_stream_cl_module] should be used instead of full name:
# [websocket_streaming_client_module]
set(LIB_NAME ws_stream_cl_module)
set(MODULE_HEADERS_DIR ../include/${TARGET_FOLDER_NAME})

set(SRC_Include common.h
module_dll.h
websocket_streaming_client_module_impl.h
)

set(SRC_Srcs module_dll.cpp
websocket_streaming_client_module_impl.cpp
)

prepend_include(${TARGET_FOLDER_NAME} SRC_Include)

source_group("module" FILES ${MODULE_HEADERS_DIR}/websocket_streaming_client_module_impl.h
${MODULE_HEADERS_DIR}/module_dll.h
module_dll.cpp
websocket_streaming_client_module_impl.cpp
)


add_library(${LIB_NAME} SHARED ${SRC_Include}
${SRC_Srcs}
)
add_library(${SDK_TARGET_NAMESPACE}::${LIB_NAME} ALIAS ${LIB_NAME})

if (MSVC)
target_compile_options(${LIB_NAME} PRIVATE /bigobj)
endif()

target_link_libraries(${LIB_NAME} PUBLIC daq::opendaq
PRIVATE daq::discovery
daq::websocket_streaming
)

target_include_directories(${LIB_NAME} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../include>
$<INSTALL_INTERFACE:include>
)

opendaq_set_module_properties(${LIB_NAME} ${PROJECT_VERSION_MAJOR})
create_version_header(${LIB_NAME})
8 changes: 8 additions & 0 deletions modules/websocket_streaming_client_module/src/module_dll.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#include <websocket_streaming_client_module/module_dll.h>
#include <websocket_streaming_client_module/websocket_streaming_client_module_impl.h>

#include <opendaq/module_factory.h>

using namespace daq::modules::websocket_streaming_client_module;

DEFINE_MODULE_EXPORTS(WebsocketStreamingClientModule)
Loading