blob: 3e05be6f115d6ff4429625ef0d4d7fb9bbff6b3e [file] [log] [blame]
This changelog reports changes to the public API. Internal refactorings and bug
fixes are not reported here.
2018-02-05 pro <profanter at fortiss.org>
* Also pass client to monitoredItem/Events callback
The UA_MonitoredItemHandlingFunction and UA_MonitoredEventHandlingFunction
did not include a reference to the corresponding client used for the call of
processPublishResponse.
This now also allows to get the client context within the monitored item
handling function.
The API changes are detected by the type-matching in the compiler. So there
is little risk for bugs due to unaligned implementations.
2017-09-07 jpfr <julius.pfrommer at web.de>
* Make Client Highlevel Interface consistent
Two methods in the client highlevel interface were not conformant with the
API convention that array sizes are given before the array pointer. This
changes the signature of UA_Client_writeArrayDimensionsAttribute and
UA_Client_readArrayDimensionsAttribute.
The API changes are detected by the type-matching in the compiler. So there
is little risk for bugs due to unaligned implementations.
2017-08-16 jpfr <julius.pfrommer at web.de>
* Default Attribute Values for Node Attributes
The AddNodes service takes a structure with the attributes of the new node as
input. We began checking the consistency of the attributes more closely. You
can now use constant global definitions with default values as a starting
point. For example UA_VariableAttributes_default for adding a variable node.
* All nodes have a context pointer
All nodes now carry a context pointer. The context pointer is initially set
to a user-defined memory location. The context pointer is passed to all
user-visible callbacks involving the node.
* Global and node-type constructor/destructor
The constructors are fine-grained mechanisms to control the instantiation and
deletion of nodes. Constructors receive the node context pointer and can also
replace it.
2017-08-13 Infinity95 <mark.giraud at student.kit.edu>
* New/Delete methods for the server configuration
The default server configuration is no longer a constant global variable.
Instead, it is now handled with a pair of new/delete methods. This enables
the use of malloced members of the server configuration. With this change,
the endpoint descriptions are no longer generated in the server but are
created as part of the server configuration. See the example server
implementations on how to use the configuration generation. The change is a
precursor to the encryption implementation that ties into the generation of
endpoint descriptions in the server config.
The generation of the default server configuration is implemented as a
"plugin". So it comes with CC0 licensing and can be freely adjusted by users.
The TCP port in the default configuration is 4840. This is the recommended
port for OPC UA and now used throughout all examples.
2017-07-04 jpfr <julius.pfrommer at web.de>
* Return partially overlapping ranges
Test the integrity of the range and compute the max index used for every
dimension. The standard says in Part 4, Section 7.22:
When reading a value, the indexes may not speify a range that is within
the bounds of the array. The Server shall return a partial result if some
elements exist within the range.
2017-07-03 jpfr <julius.pfrommer at web.de>
* Implement asynchronous service calls for the client
All OPC UA services are asynchronous in nature. So several service calls can
be made without waiting for a response first. Responess may come in a
different ordering. The client takes a method pointer and a data pointer to
perform an asynchronous callback on the request response.
Synchronous service calls are still supported in the client. Asynchronous
responses are processed in the background until the synchronous response (the
client is waiting for) returns the control flow back to the user.
2017-06-26 janitza-thbe
* Enable IPv6 in the networklayer plugin
The server networklayer listens on several sockets for available networks and
IP versions. IPv4 connections are still supported.
The OPC Foundation ANSI C Stack before 2016 does not fully support IPv6. On
Windows, the 'localhost' target is resolved to IPv6 by default. Old
applications (e.g. the Conformance Testing Tools) need to connect to
127.0.0.1 instead of 'localhost' to force IPv4.
2017-06-16 jpfr <julius.pfrommer at web.de>
* Require the AccessLevel bit UA_ACCESSLEVELMASK_READ for reading
Set the bit by default when adding nodes for a smooth transition to the new
API. This will change at a later point with an additional node settings
argument for the AddNodes methods.
2017-05-03 pro <profanter at fortiss.org>
* Array dimensions are UInt32 also for the highlevel client read service
2017-04-16 jpfr <julius.pfrommer at web.de>
* Refactor UA_parseEndpointUrl to work with UA_String
The output hostname and path now point into the original endpointUrl with an
appropriate length.
2017-04-14 jpfr <julius.pfrommer at web.de>
* Auto-instantiate only child nodes marked as mandatory (fixes #1004)