Instead of setting the global compile options, add the compile options
needed for spdlog to `ADDITIONAL_PUBLIC_COMPILE_OPTIONS`, which is used
by every target. This ensures that the compile option is exported
correctly.
This also slightly changes the signature of the function. Instead of
expecting the name of the pc file, it expects the target name. This is
necessary to fetch the respective flags from the target.
Several requested changes of pull requests revised, compatibility
* make it compile with gcc < 4.9 again
* compile with newer boost versions (vmatare)
* cmake update for python (vmatare)
* compile flags (maartendemunck)
* strict ordering of sequence numbers (martinhaefner)
* passwort encryption strategy (martinhaefner)
* close sockets (DennisLemmers)
* GUID format (DennisLemmers)
* use ${CMAKE_INSTALL_LIBDIR} for install (morxa)
With the current implementation, reading multi-dimensional values
does not work as expected, the ArrayDimensions information is missing.
This is caused by the Dimensions vector being ignored when creating
a Variant from another Variant.
This patch fixes the issue by copying the Dimensions vector in
Variant(const Variant &) and operator=(const Variant &).
- generate address space create blocks for each created node
- unfortunately compilers are not forced reuse stack frames of
blocks which are already done
- as a result llvm created tremendously huge stack frames for
generate address space
- this commit creates separate functions to create nodes, which
results in an extremly reduced stack usage
- OpcUa::Variant allows const char* to be stored
- Variant::Type() is not able to deal with const char* as value
- while initializing OpcUa node tree we add const char* as Value
attribute
- it is not easily possible to traverse our own tree because of that
- so force const char* to be stored as std::string in Variant to fix
our node tree
hunting down an event subscription problem I added further debug
capabilities
* add ToString() for VariantType
* moved Event ToString() to all the other ToString's()
hunting down an event subscription problem I added further debug
capabilities
* add ToString() for VariantType
* moved Event ToString() to all the other ToString's()
- Softing example OPC UA server is a bit sloppy with its answers to event
subscriptions. Instead of mirroring SelectClauses it simply returns
status GOOD with an empty SelectClauses list. We can now deal with that.
- When generating events the example server can send NULL values for some
default properties of events. Do not fail in that case and let the
application handle such events.
- add ToString() for AttributeId
- add ToString() for ObjectId
- add ToHexDump() for const char*
- make codegen.py to create correctly formated files
- make codegen.py to create ObjectId and AttributeId strings
- tune log messages/levels
- fix raw message dumps
- fix naming of KeepAliveThread in log
When intruducing spdlog I tried to keep the external interface
compatible with the old style debug approach.
For multiple instances of clients or servers this failed, as spdlog
keeps track of the names of instanciated loggers and denies to create
duplicate logger names. To allow to use the classic interface with
multiple instances, check if there already is a logger with the name
we want to create.
- fix getParent() to not seg fault when called on default constructed
node
- fix getProperties() to not collect parent properties if node is not
of NodeClass::ObjectType
- add further convenience method to node to access NodeClass attribute
- add Set/Get AccessLevel, UserAccessLevel, WriteMask and
UserWriteMask attributes on node
- possibly found a bug when initializing Variable nodes - need advice
here for the values set to WriteMask and UserWriteMask in core/node.cpp