Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
922e010
Started websocket support
wsobel Apr 2, 2024
233e64c
updated copyright and added validations
wsobel Apr 6, 2024
071baa5
first version of validation transform with pipeline
wsobel Apr 6, 2024
367a694
added log once logic
wsobel Apr 6, 2024
ffbf9b4
Merge pull request #435 from mtconnect/434_add_validation_to_observat…
wsobel Apr 6, 2024
11a6e6b
Added validation header tests
wsobel Apr 6, 2024
e99d86d
Added validation header tests
wsobel Apr 6, 2024
556f87a
Added deprecated support for observations
wsobel Apr 6, 2024
ca2d039
removed version markers in agent test
wsobel Apr 6, 2024
76b8be5
Do not validate tables or data sets.
wsobel Apr 6, 2024
0c48e45
Formatted files
wsobel Apr 6, 2024
1e9f542
Added some documentation
wsobel Apr 6, 2024
23f95c3
Added documentation for validation namespace
wsobel Apr 6, 2024
f4dac69
Merge branch 'main-dev' into 434_add_validation_to_observations
wsobel Apr 6, 2024
2b72506
Skip docker build for RC tags
wsobel Apr 6, 2024
4dd0602
upgraded to boost 1.84
wsobel Apr 6, 2024
053cf42
Merge pull request #436 from mtconnect/434_add_validation_to_observat…
wsobel Apr 6, 2024
bca1706
checkpoint with initial parsing of json
wsobel Apr 8, 2024
e999962
Merge branch 'main-dev' into 431_websockets_subscriptions
wsobel Apr 9, 2024
7003e19
First steps to adding routing support to websocket request.
wsobel Apr 11, 2024
49fe506
Merge branch 'main' into 431_websockets_subscriptions
wsobel Apr 12, 2024
211f691
Changed from command to request
wsobel Apr 12, 2024
e6b4f15
working to the point of response
wsobel Apr 16, 2024
f7802f7
checkpoint with write response
wsobel Apr 16, 2024
51c57b9
Handled threading issues and send queue
wsobel Apr 19, 2024
558d625
fixed expiry timeout
wsobel Apr 19, 2024
70f1ec1
Formatted new code
wsobel Apr 19, 2024
8877c03
Working version with error handling
wsobel Apr 19, 2024
20ce83a
Added request id to the printers for XML
wsobel Apr 19, 2024
ac8dbeb
Added format to all the requests
wsobel Apr 19, 2024
64fa6a2
Fixed session leak with observer circular ref in handler.
wsobel Apr 24, 2024
3bd86f4
Added code to session impl as well.
wsobel Apr 24, 2024
6201b2c
Fixed test issues
wsobel Apr 24, 2024
bbad3dc
fixed bug in dispatch
wsobel Apr 24, 2024
a89c4c7
refactored mqtt sinks and tests. Added cancel to websockets
wsobel Apr 25, 2024
4e8f8fd
fixed cancel
wsobel Apr 25, 2024
350a031
refactored async observer and created abstract async response to canc…
wsobel Apr 25, 2024
2e324a0
Fixed race in change observer destructor.
wsobel Apr 25, 2024
8b24f2e
fixed requests in websockets
wsobel Apr 27, 2024
538a9a6
use new uuid to check for device with * uuid shdr command
wsobel Apr 6, 2024
d940959
Version 2.3.0.6
wsobel Apr 6, 2024
4d0ea09
Fixed port in url for MQTT service.
wsobel Apr 11, 2024
2e09bb4
fixed crash when closing mqtt client. set close handler to nullptr if…
wsobel Apr 12, 2024
1025b39
Added initial value handling
wsobel Apr 28, 2024
e8e0fc0
use brew on mac to install conan 2
wsobel Apr 28, 2024
f59f4bc
Fixed initial value. Changed to string.
wsobel Apr 28, 2024
afa411c
version 2.3.0.8
wsobel Apr 28, 2024
12da91e
generic ubuntu deb package creation on release and add it to the rele…
johnathan-arsenault Apr 18, 2024
8f23034
remove extra quotes
johnathan-arsenault Apr 18, 2024
7d27744
Merge branch 'main-dev' into 431_websockets_subscriptions
wsobel Apr 29, 2024
1ee15c1
merged main-dev
wsobel Apr 29, 2024
a6f5f8f
Removed extra character
wsobel Apr 29, 2024
45e37cb
removed exta characters
wsobel Apr 29, 2024
3a9d54a
Merge branch 'main-dev' into 431_websockets_subscriptions
wsobel Apr 29, 2024
389aa9f
Added initial websocket test
wsobel May 2, 2024
dfdf1d9
cast to parameter value
wsobel May 3, 2024
e80975b
windows port of websockets
wsobel May 3, 2024
eb350cb
removed named scope from websocket session
wsobel May 3, 2024
8c92d73
Added BOOST_USE_WINAPI_VERSION for boost 1.84
wsobel May 3, 2024
b23b28b
added boost windows api version for windows 1.84 porting
wsobel May 3, 2024
ca11039
removed legacy mqtt service
wsobel May 3, 2024
eb94b8f
Merge pull request #451 from mtconnect/431_websockets_subscriptions
wsobel May 3, 2024
e0d4251
Merged in main branch to main-dev
wsobel May 13, 2024
ef30913
Vesion 2.5.0.0 RC 4
wsobel May 13, 2024
2b5a5e8
Merge pull request #455 from mtconnect/merge_main_to_main_dev
wsobel May 13, 2024
3b2eae0
Changed conanfile to 2.5
wsobel May 15, 2024
28a6d56
Merge branch 'main' into main-dev
wsobel Jun 21, 2024
7385451
Fixed conanfile
wsobel Jun 21, 2024
958b7f7
Transpiled observation_validations.hpp
tbm0115 Sep 22, 2024
ea6b00c
Update observation_validations.hpp
tbm0115 Sep 22, 2024
d04b27c
Merge pull request #488 from mtconnect/main-dev-transpiled-observatio…
wsobel Sep 23, 2024
8970926
Update observation_validations.hpp
tbm0115 Sep 25, 2024
5d28970
Started websocket support
wsobel Apr 2, 2024
6ea1d38
checkpoint with initial parsing of json
wsobel Apr 8, 2024
faa2f53
updated copyright and added validations
wsobel Apr 6, 2024
d273388
first version of validation transform with pipeline
wsobel Apr 6, 2024
06434b4
added log once logic
wsobel Apr 6, 2024
5b07ed1
Added validation header tests
wsobel Apr 6, 2024
0adfe74
Added validation header tests
wsobel Apr 6, 2024
2b65de3
Added deprecated support for observations
wsobel Apr 6, 2024
a439f99
removed version markers in agent test
wsobel Apr 6, 2024
f587676
Do not validate tables or data sets.
wsobel Apr 6, 2024
e73ae12
Formatted files
wsobel Apr 6, 2024
bc6585e
Added some documentation
wsobel Apr 6, 2024
0f1d445
Added documentation for validation namespace
wsobel Apr 6, 2024
e7b8b13
Skip docker build for RC tags
wsobel Apr 6, 2024
2d6f949
First steps to adding routing support to websocket request.
wsobel Apr 11, 2024
bf9f8b4
Changed from command to request
wsobel Apr 12, 2024
a4472b1
working to the point of response
wsobel Apr 16, 2024
060dd0b
checkpoint with write response
wsobel Apr 16, 2024
5ea6024
Handled threading issues and send queue
wsobel Apr 19, 2024
c1e0774
fixed expiry timeout
wsobel Apr 19, 2024
18ff96a
Formatted new code
wsobel Apr 19, 2024
c1c4b8d
Working version with error handling
wsobel Apr 19, 2024
4fc1d7a
Added request id to the printers for XML
wsobel Apr 19, 2024
17f7f37
Added format to all the requests
wsobel Apr 19, 2024
71f28ca
Fixed session leak with observer circular ref in handler.
wsobel Apr 24, 2024
4f3cca4
Added code to session impl as well.
wsobel Apr 24, 2024
dff313d
Fixed test issues
wsobel Apr 24, 2024
c0aebe2
fixed bug in dispatch
wsobel Apr 24, 2024
3abfb5e
refactored mqtt sinks and tests. Added cancel to websockets
wsobel Apr 25, 2024
9274527
fixed cancel
wsobel Apr 25, 2024
ed4fe9e
refactored async observer and created abstract async response to canc…
wsobel Apr 25, 2024
3710a92
Fixed race in change observer destructor.
wsobel Apr 25, 2024
31ce248
fixed requests in websockets
wsobel Apr 27, 2024
07d1ef0
Version 2.3.0.6
wsobel Apr 6, 2024
da0f664
Fixed port in url for MQTT service.
wsobel Apr 11, 2024
2d7a5b2
fixed crash when closing mqtt client. set close handler to nullptr if…
wsobel Apr 12, 2024
d738b6d
Added initial value handling
wsobel Apr 28, 2024
0536124
version 2.3.0.8
wsobel Apr 28, 2024
03d2550
merged main-dev
wsobel Apr 29, 2024
56f9cf1
Removed extra character
wsobel Apr 29, 2024
bee2907
Added initial websocket test
wsobel May 2, 2024
d6ffc00
cast to parameter value
wsobel May 3, 2024
491e9b2
windows port of websockets
wsobel May 3, 2024
ace5a2f
removed named scope from websocket session
wsobel May 3, 2024
c159a55
Added BOOST_USE_WINAPI_VERSION for boost 1.84
wsobel May 3, 2024
27633ac
added boost windows api version for windows 1.84 porting
wsobel May 3, 2024
192698b
removed legacy mqtt service
wsobel May 3, 2024
e09d8d7
Merged in main branch to main-dev
wsobel May 13, 2024
e54f680
Vesion 2.5.0.0 RC 4
wsobel May 13, 2024
182e9e4
Changed conanfile to 2.5
wsobel May 15, 2024
52bf9ec
Transpiled observation_validations.hpp
tbm0115 Sep 22, 2024
a650425
Update observation_validations.hpp
tbm0115 Sep 22, 2024
2fc6c4c
Merge branch 'main-dev-rebased' into main-dev
wsobel Oct 7, 2024
379c3ea
First set of merges with main
wsobel Oct 7, 2024
f2cca5d
Re-merged readme
wsobel Oct 7, 2024
c70b920
Merge branch 'main-dev' into main-dev-transpiled-observations-validation
wsobel Oct 7, 2024
672c3f3
Merged changes from main-dev and added support for introduced.
wsobel Oct 7, 2024
3901dc4
Merge pull request #491 from mtconnect/main-dev-transpiled-observatio…
wsobel Oct 8, 2024
bea5c13
Exit when agent encounters malformed url in configuration file
wsobel Oct 3, 2024
0914558
Added access to agent hooks in sink contract
wsobel Nov 18, 2024
cd9408d
Added after start hook
wsobel Nov 18, 2024
02c09de
Use log channel to divide traffic for various plugin logging and clea…
simonyg Nov 19, 2024
28d05c7
update tests
simonyg Nov 19, 2024
54bb902
define CHANNEL_LOGGER_INIT
simonyg Nov 19, 2024
db21246
fix a regression exception
simonyg Nov 19, 2024
d54a31e
remove getLogger()
simonyg Nov 20, 2024
6f5088b
Merge branch 'main' into merge_main_2.4.0.8_to_main_dev
wsobel Jan 13, 2025
c1fc73a
Merge pull request #512 from mtconnect/merge_main_2.4.0.8_to_main_dev
wsobel Jan 14, 2025
5c87f6b
Added physical asset
wsobel Jan 15, 2025
9d68909
Added pallet and fixture
wsobel Jan 15, 2025
6e1375c
Refactored cutting tool touse common measurement
wsobel Jan 15, 2025
735e032
Merge pull request #516 from mtconnect/add_new_assets_for_2.5
wsobel Jan 16, 2025
da1f531
Merge branch 'main' into main-dev
wsobel Jan 16, 2025
d211a3b
Merge branch 'main' into main-dev
wsobel Feb 24, 2025
a4a52a3
Changes for 2.5 release
wsobel Feb 25, 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
3 changes: 3 additions & 0 deletions .github/workflows/build-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ on:
jobs:
# this workflow contains a single job called "build"
build:
# Do not build if it is an RC build
if: ${{ ! contains(github.ref_name, "RC") }}

# the type of runner that the job will run on
runs-on: ubuntu-latest
strategy:
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# The version number.
set(AGENT_VERSION_MAJOR 2)
set(AGENT_VERSION_MINOR 4)
set(AGENT_VERSION_MINOR 5)
set(AGENT_VERSION_PATCH 0)
set(AGENT_VERSION_BUILD 9)
set(AGENT_VERSION_BUILD 1)
set(AGENT_VERSION_RC "")

# This minimum version is to support Visual Studio 2019 and C++ feature checking and FetchContent
Expand Down
27 changes: 18 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

MTConnect C++ Agent Version 2.3
MTConnect C++ Agent Version 2.5
--------
[![Build MTConnect C++ Agent](https://github.com/mtconnect/cppagent/actions/workflows/build.yml/badge.svg)](https://github.com/mtconnect/cppagent/actions/workflows/build.yml)

Expand All @@ -13,6 +13,10 @@ the devices and the location of the adapter.

Pre-built binary releases for Windows are available from [Releases](https://github.com/mtconnect/cppagent/releases) for those who do not want to build the agent themselves. For *NIX users, you will need libxml2, cppunit, and cmake as well as build essentials.

Version 2.5.0 Support for version 2.5. Added validation of observations in the stream and WebSockets support.

Version 2.4.0 Added support for version 2.4

Version 2.3.0 Support for all Version 2.3 standard changes and JSON ingress to MQTT adapter.

Version 2.2.0 Support for all Version 2.2 standard changes and dynamic configuration from adapters. Upgrade to conan 2.
Expand Down Expand Up @@ -667,6 +671,10 @@ Configuration Parameters
* `VersionDeviceXml` - Create a new versioned file every time the Device.xml file changes from an external source.

*Default*: `false`

* `Validation` - Turns on validation of model components and observations

*Default*: `false`

* `WorkerThreads` - The number of operating system threads dedicated to the Agent

Expand Down Expand Up @@ -741,14 +749,12 @@ These can be overridden on a per-adapter basis

* `HttpHeaders` - Additional headers to add to the HTTP Response for CORS Security

Example:
```
HttpHeaders {
Access-Control-Allow-Origin = *
Access-Control-Allow-Methods = GET
Access-Control-Allow-Headers = Content-Type
}
```
> Example: ```
> HttpHeaders {
> Access-Control-Allow-Origin = *
> Access-Control-Allow-Methods = GET
> Access-Control-Allow-Headers = Content-Type
> }```

* `Port` - The port number the agent binds to for requests.

Expand Down Expand Up @@ -1036,6 +1042,9 @@ Sinks {

*Default*: Auto-generated

> **⚠️Note:** Mqtt Sinks and Mqtt Adapters create separate connections to their respective brokers, but currently use the same client ID by default. Because of this, when using a single broker for source and sink, best practice is to explicitly specify their respective `MqttClientId`
>

Example mqtt adapter block:
```json
mydevice {
Expand Down
2 changes: 1 addition & 1 deletion agent/cppagent.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright Copyright 2009-2022, AMT – The Association For Manufacturing Technology (“AMT”)
// Copyright Copyright 2009-2024, AMT – The Association For Manufacturing Technology (“AMT”)
// All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
22 changes: 17 additions & 5 deletions agent_lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ set(AGENT_SOURCES
"${SOURCE_DIR}/asset/raw_material.hpp"
"${SOURCE_DIR}/asset/qif_document.hpp"
"${SOURCE_DIR}/asset/component_configuration_parameters.hpp"
"${SOURCE_DIR}/asset/physical_asset.hpp"
"${SOURCE_DIR}/asset/fixture.hpp"
"${SOURCE_DIR}/asset/pallet.hpp"

# src/asset SOURCE_FILES_ONLY

Expand All @@ -34,6 +37,9 @@ set(AGENT_SOURCES
"${SOURCE_DIR}/asset/raw_material.cpp"
"${SOURCE_DIR}/asset/qif_document.cpp"
"${SOURCE_DIR}/asset/component_configuration_parameters.cpp"
"${SOURCE_DIR}/asset/physical_asset.cpp"
"${SOURCE_DIR}/asset/fixture.cpp"
"${SOURCE_DIR}/asset/pallet.cpp"

# src/buffer HEADER_FILES_ONLY

Expand Down Expand Up @@ -183,6 +189,7 @@ set(AGENT_SOURCES
"${SOURCE_DIR}/pipeline/topic_mapper.hpp"
"${SOURCE_DIR}/pipeline/transform.hpp"
"${SOURCE_DIR}/pipeline/upcase_value.hpp"
"${SOURCE_DIR}/pipeline/validator.hpp"

# src/pipeline SOURCE_FILES_ONLY

Expand Down Expand Up @@ -243,13 +250,11 @@ set(AGENT_SOURCES

# src/sink/mqtt_sink HEADER_FILE_ONLY

"${SOURCE_DIR}/sink/mqtt_sink/mqtt_service.hpp"
"${SOURCE_DIR}/sink/mqtt_sink/mqtt2_service.hpp"
"${SOURCE_DIR}/sink/mqtt_sink/mqtt_service.hpp"

#src/sink/mqtt_sink SOURCE_FILES_ONLY

"${SOURCE_DIR}/sink/mqtt_sink/mqtt_service.cpp"
"${SOURCE_DIR}/sink/mqtt_sink/mqtt2_service.cpp"
"${SOURCE_DIR}/sink/mqtt_sink/mqtt_service.cpp"

# src/sink/rest_sink HEADER_FILE_ONLY

Expand All @@ -264,13 +269,21 @@ set(AGENT_SOURCES
"${SOURCE_DIR}/sink/rest_sink/session.hpp"
"${SOURCE_DIR}/sink/rest_sink/session_impl.hpp"
"${SOURCE_DIR}/sink/rest_sink/tls_dector.hpp"
"${SOURCE_DIR}/sink/rest_sink/websocket_session.hpp"

# src/sink/rest_sink SOURCE_FILES_ONLY

"${SOURCE_DIR}/sink/rest_sink/file_cache.cpp"
"${SOURCE_DIR}/sink/rest_sink/rest_service.cpp"
"${SOURCE_DIR}/sink/rest_sink/server.cpp"
"${SOURCE_DIR}/sink/rest_sink/session_impl.cpp"

# validation HEADER_FILES_ONLY
"${SOURCE_DIR}/validation/observations.hpp"
"${SOURCE_DIR}/validation/observation_validations.hpp"

# validation SOURCE_FILES_ONLY
"${SOURCE_DIR}/validation/observations.cpp"
)

if(WITH_RUBY)
Expand Down Expand Up @@ -325,7 +338,6 @@ if(MSVC)
# The modules including Beast required the /bigobj option in Windows
set_property(SOURCE
"${SOURCE_DIR}/sink/mqtt_sink/mqtt_service.cpp"
"${SOURCE_DIR}/sink/mqtt_sink/mqtt2_service.cpp"
"${SOURCE_DIR}/sink/rest_sink/session_impl.cpp"
"${SOURCE_DIR}/source/adapter/mqtt/mqtt_adapter.cpp"
"${SOURCE_DIR}/source/adapter/agent_adapter/agent_adapter.cpp"
Expand Down
3 changes: 2 additions & 1 deletion conan/profiles/vs32
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ compiler.runtime=static
compiler.runtime_type=Release
build_type=Release


[options]
winver=0x0600
2 changes: 2 additions & 0 deletions conan/profiles/vs32debug
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ compiler.runtime=static
compiler.runtime_type=Debug
build_type=Debug

[options]
winver=0x0600
1 change: 1 addition & 0 deletions conan/profiles/vs32shared
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ build_type=Release

[options]
shared=True
winver=0x0600
5 changes: 4 additions & 1 deletion conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

class MTConnectAgentConan(ConanFile):
name = "mtconnect_agent"
version = "2.4"
version = "2.5"
url = "https://github.com/mtconnect/cppagent.git"
license = "Apache License 2.0"
settings = "os", "compiler", "arch", "build_type"
Expand Down Expand Up @@ -143,6 +143,9 @@ def configure(self):
if is_msvc(self):
self.options["boost/*"].extra_b2_flags = ("define=BOOST_USE_WINAPI_VERSION=" + str(self.options.winver))

if is_msvc(self):
self.options["boost/*"].extra_b2_flags = ("define=BOOST_USE_WINAPI_VERSION=" + str(self.options.winver))

# Make sure shared builds use shared boost
if is_msvc(self) and self.options.shared:
print("**** Making boost, libxml2, gtest, and openssl shared")
Expand Down
2 changes: 1 addition & 1 deletion docker/ubuntu/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ RUN apt-get update \
rake \
ruby \
&& rm -rf /var/lib/apt/lists/* \
&& pip install conan
&& pip install conan

# make an agent directory and cd into it
WORKDIR /root/agent
Expand Down
Loading
Loading