node-opcua

Unlocking the Full Potential of OPC UA with Typescript and NodeJS - http://node-opcua.github.io/

MIT License

Downloads
6.7M
Stars
1.4K
Committers
79
node-opcua - v0.2.0 adding Promise & async/await support

Published by erossignon over 6 years ago

Version 0.2.0 introduces a new way to call asynchronous methods on OPCUAClient and ClientSession objects

  • node style async method with callback
  • async method returning a Promise
    see article

Promised version can be chained more easily. They can also be used with async/await on nodeJS > 8 or Typescript (with ES2015 support enabled)

πŸ’” Breaking changes:

some breaking changes have been necessary to normalize all async function and make sure they only provide a single output value. As such, old code using ClientSession#read, #read #browse #readVariableValue #readHistoryValue #readAllAttributes will have to be fixed.

Each OPCUAClient ClientSession async methods comes in two forms:

  • the first form allow multiple read/write/browse operation to be performed in a single operation.

example form1: reading many dataValue at once

var nodesToRead = [ 
 { nodeId:      "ns=2;s=Furnace_1.Temperature",attributeId: AttributeIds.Value},
 { nodeId:      "ns=2;s=Furnace_2.Temperature",attributeId: AttributeIds.Value}
];
session.read(nodesToRead,function(err,dataValues,diagnosticInfos) {
  if (!err) {
   dataValues.forEach(dataValue=>console.log(dataValue.toString()));
  }
});

or with the Promise version:

session.read(nodesToRead).then(function(dataValues) {
//...
});

or with the async/await version (node >8)

const dataValues = async session.read(nodesToRead); // an Array
  • the second form is used to read/write/browse a single element
    example form2: reading a single node
var nodeToRead = {
    nodeId:      "ns=2;s=Furnace_1.Temperature",
    attributeId: AttributeIds.BrowseName
};
session.read(nodeToRead,function(err,dataValue,diagnosticInfos) {
    if (!err) {
        console.log(dataValue.toString());
    }
});

or with the Promise version:

session.read(nodeToRead).then(function(dataValue) {
//...
});

or with the async/await version (node >8)

const dataValue = async session.read(nodeToRead);

πŸ†• new features:

  • updated typescript declaration file
  • add new async method extension for node 8 & above (896b3237)
  • use thenify to provide Promise version of async methods (c18cdd44)
  • [Breaking Change] fix ClientSession#read callback parameters allow ClientSession#read #browse #readVariableValue #readHistoryValue #readAllAttributes to handle a single element or an array of element.
    #readAllAttributes now return json object with node attributes (649d0a89)

πŸ› bug fixing

  • #413 fix wrong assert (c1afc23e)
  • #416 fix certificate generation issue on MacOS and LibreSLL - use [email protected] (357823ef)
  • add sample images for server simulation (98a29cd8)
  • fix makeBrowsePath access (4f45ff3c)

πŸ‘¬ contributors

  • @bompi88 for adding support for LibreSSL node-opcua-pki
node-opcua - V0.1.1

Published by erossignon almost 7 years ago

πŸ‡ Enhancements:

  • #406 improve stringToQualifiedName (@marcelwinh)
  • improve sessionDiagnostics support 729580312f11b17be92b41bf5b68be1d9c520d76 9e7b4a8f293a4144defb528674fe6f3c8125f798 68cd6cf780c9a2fc67154db7c341b1c1ae9d5cff
  • improve ExtensionObject and sub properties binding 68cd6cf780c9a2fc67154db7c341b1c1ae9d5cff
  • add support for Basic256Sha256
  • improve TS declaration dd496c82505102b9cd99f9ba5a2e0bfdc28a5b85
  • demonstrate ability to declare server side async variable on server 5d3446d7befee48fb55f8a2416c8b0ef2ac3b282
  • add HistoryServerCapabilities support c35d73e91a10f2d9ccf6e5f94c805d57cf2bfa25
  • uses nodeset for OPCUA 1.0.4 0ef9611eb70b900d8bd2fef1155a131082740f2f
  • #314 load EUInformation values from nodeset.xml files
  • improve off normale alarm and discrete alarm be3e44d33666340bd230840332f5c5e4aee55119
  • add cndition.setEnableState 1ca041fbb1953a275a522dd2a10cf44bcbad23d2 f4b15d97c56aacd8937bc160be1611c759325c08
  • improve code so that nw and browerify can be used to pack node-opcua applicatiaons
  • add automatic state trigerring in limit alarms 75c52ab4fccde2197a644ff1a946a61ab25c390c

πŸš€ performance

  • improve unit test stability 4ab6a8e1f9d1feccca5e285162f3e0d7307a6079 d9b404d4cd2fbf923509258bb41d0a70463aefb7 5fdb6eaccab32997715f651f8523c231059879ea
  • split node-opcua into multiple packages using lerna
  • get rid of requirish

πŸ› bug fixes:

  • #403 fix lastDate undefined (@everhardt)
  • #409 fix typo in doc and repair doc generation
  • #410 fix AnalogDataItem ValuePrecision DataType to be "Double" (@niemine)
  • fix sign & encrypt issue with 4096 bits and 3072 bits key size 122188bbb2296897d7ad69b6421b91defbd38ecd
  • fix findVariableType and findObjectType inline documentation (@ipa-mdl)
  • fix issue arose with new nodejs 9.x version 65109340f398dac81db48c586a7a3fea651039b0 5746ede0bd6c8544cc14a40080fe94193e20dbb6
  • #390 fix bug in reconnection code (cannot read derivedClientKeys of undefined) (reported by @biancode)
  • #384 fix event filter error (reported by @awadekaustubh)
  • #382 fix issue that prevent client to connect if server doesn't provide messageSecurity.NONE endpoint (@marcelwinh )
  • #383 updated documentation to reflect that node-opcua samples are now part of node-opcua-samples dedicated node package (reported by @JoshMcguigan) a9cc3cfca8219f0f3b83ebdb8cc0422bee435381
  • #314 fix uninitialized variables when using UAModeler and loading an XML nodeset2.xml file @AlexPeitz
  • #377 fix decoding string NodeID that looks like GUID (reported by @zombinary)
  • #379 fix issue with CallMethod request and null array (reported by @zombinary)
  • #375 fix missing certificate generation introduced in v0.1.0.5 (reported by @lucarv)
  • #372 fix string to nodeId coercing (string can now contain semi column)
  • 4529e31819933d8bcdfccdd4759d22489c1c0ea8 fix A&C issue causing event not to be treated as Condition
  • #381 issue affecting version 0.1.0-??? with yarn is now resolved by installing latest 0.1.1 version

πŸ’” breaking changes:

  • drop support for nodejs 0.10, 0.12, up to 4.0

πŸ‘¬ contributors:

  • @marcelwinh @everhardt @niemine @ipa-mdl @biancode @awadekaustubh @JoshMcguigan @AlexPeitz @zombinary @lucarv @jugglingcats
node-opcua -

Published by erossignon about 7 years ago

πŸ› bug fixes:

  • #337 fixes issue with Matrix Variant
  • #339 fixes default ValueRank value while loading nodeset2.xml files
  • #343 fixes string nodeid automatic generation
  • #344 fixes make_relative_path regex to allow all characters allowed by spec
  • #345 fixes malformed X.509 certificate error by upgrading to latest jsrsasign version
  • #350 fixes TypeError: Cannot read property 'cyan' of undefined
  • #353 fixes exception raised when Cancelling pending transactions
  • #355 fixes uncaughtException: AssertionError: self.nbPendingPublishRequests >0

πŸ‡ Enhancements:

  • 6476c57ec23a79e57684c73132466d86ed0a14ba improve NodeCrawler api
  • 7d9155739c653a6e8980b007a372d2a0b9e68659 improve Typescript definitions
  • f5d6ffd39ed876c6512090b193804a5d49b4e3b3 add ClientMonitoredItemGroup
  • add support to node 8 and drop support for node 0.12
  • 75b9a779e55a75757b0df09e3ebe4e3f6accc098 96c0d127466d848a24ca145808f20953a55243a8 improve sourceTimestamp support

πŸ‘¬ contributors:

  • @marcelwinh @psorowka @TorstenKo @enobufs @finalburner @PiotrDeyna @biancode @i3fox @jugglingcats
node-opcua -

Published by erossignon over 7 years ago

πŸ‡ Enhancement

  • #171 user authorisation (roles&permission) support
  • #332 provide ability to specify a async getter and a async setter for UAVariable
  • #330 simple_client now demonstrate how to enumerate EventTypes
  • 3a20922 node-opcua simple_server now use self-signed certificate by default
  • #136 remove SusbscriptionDiagnostics when Subscription has timed out
  • 47c9adad improve SusbscriptionDiagnostics support
  • #316 add ConditionClass and ConditionName options in alarm and condition factory
  • cb2d8ce add historicalRead to interactive client
  • 17c3548 A&C addComment now raise a internal event

πŸ₯‡ CTT:

  • f897461 lifetimeCount and timeout default parameters updated
  • 3dffcbf3 apply serverTimestamp when accessing variables
  • 1a89c1e control MAX_SUBSCRIPTION in simple server

πŸ› Bug fixing:

  • #328 Fix historical_data store on sourceTimestamp==null (@tomsoftware)
  • #310 fix accessLevel/userAccessLevel when calling installHistoricalDataNode (@tomsoftware)
  • #327 Fix missing applicationUri in findServers response (@enobufs)
  • c3f45fa72 translating an empty browse path shall return BadNothingToDo
  • #298 fix bug where unaccessible tcp address with low port number may cause unexpected delay.

🏷 Typescript support

  • #304 first release of node-opcua.dt.ts file for typescript support (work in progress)

πŸ‘¬ contributors:
@enobufs, @tomsoftware,

node-opcua - v0.0.61

Published by erossignon almost 8 years ago

πŸ› Bug fixing

  • #281 read more nodes as maxNodesPerRead should return an error
  • #282 fix openssl date format error on certificate creation on macOS

πŸ‡ Enhancements

  • #288 improve client reconnexion after break
  • implementation of Alarms & Conditions
  • #278 - Generate OPC AC Events

πŸ‘¬ Contributors

  • @marcelwinh @coussej
node-opcua - v0.0.60

Published by erossignon almost 8 years ago

πŸ› bug fixing

  • #251 remove reference to 'should' package, to prevent error in production environment
node-opcua - v0.0.59

Published by erossignon almost 8 years ago

πŸ› bug fixing

  • #254 fix issue with antivirus preventing openssl.exe to be used for a short while after downloading
  • #256 Update opcua_client.js to document closeSession param
  • #251 exposes OPCUADiscoveryServer
  • #248 remove dependency with collections package to prevent issue with uncompliant find method redefinition
  • #255 #196 fixing unencrypted user/password access when server doesn't provide nonce (kepware for intance)
  • #270 fix issue with UAVariable#readValue and timestamp_get

πŸ‡ Enhancement

  • #238 nodecrawler now crawls for DataType and Value
  • improve ConditionType support

πŸ‘¬ contributors

  • @jdiegogonzales @BLamy @mariocytr @allatrue @zenonpelle
node-opcua - v0.0.58

Published by erossignon about 8 years ago

πŸ› bug fixing

  • #218 :now makeBrowsePath takes into account spaces and parenthesis characters.
  • #246 server now closes secure channel when TCP socket ends with an error
  • #233 serverStatus is not updating.
    πŸ‘¬ contributors

πŸ‡ enhancement

  • #132 Status Codes can be enriched with status bits (Overflow SemanticChange etc...)
    • @prenaux @awcullen
node-opcua - v0.0.57

Published by erossignon about 8 years ago

πŸ› Bug fixing

  • #231 Server not accepting clients with greater version numbers bug
  • #239 Read predefined string values for variables from nodeset xml
  • #230 fix requirish issue
  • [da41a3a5b8b58f8610e8a9ed7d19c1a797a0059a] fix minimumSamplingInterval attribute dataType to Duration
  • [d101b9960968596d6a13927dc6890e7d17a842a1] fix dataChangeFilter PercentDeadBand
  • #213 fixes extractEventField to return null variant if the selected field is not part of the event or an error has occured (as per spec)

πŸ‡ enhancement

  • [f59c35b774b944aca370f9ab02eb47b27327daff] da variable now generate "semantic_changed" event
  • [d101b9960968596d6a13927dc6890e7d17a842a1] add image node for simulation
  • move crypto and pki stuff to dedicated package
  • [8c42c6f42bc60f99c6317bde5e5ab12706b11fd5] BaseNode#getComponents and BaseNode#getProperties now take care of inherited reference types.

πŸ‘¬ Contributors

  • @blamy @phdd @glumb @awcullen
node-opcua - v0.0.56

Published by erossignon over 8 years ago

πŸ› bugs fixing

#224 use utils.isNullOrUndefined to fix behavior on nodejs 0.10.24 (@Alexi16)
#213 event fields shall be null instead of StatusCode.BadNoMatch (@awcullen)
#221 fix DataChange filter check(@awcullen)
#219 Error Handling for Socket Error EPIPE added (@michikuehne)
#209 Fix issue with node-expat in lib/xml2json/lib.js (@sandro-k)

πŸ‡ enhancements:
[ef17e1ab62e54714355e777687529de4ae6f089f] improve subscriptions and monitored items CTT conformance
[55489d2752ca113839dd6b38039fc0bff28c6369] add TransferSubscriptions Service support
[2181982edb9e4baafc0b81580d84b9f12b8977d2][802d011c593fc03e05f2e1c0e7e0695cac2d58a6] add sample image node for simulation
🎨
[450657d6575f7cd78780bae30fcb0ec3cb7b6083] move crypto related routines to dedicated npm packages.

πŸ‘¬ contributors

@awcullen @michikuehne @Alexi16 @sandro-k

node-opcua - v0.0.55

Published by erossignon over 8 years ago

πŸ› bug fixing:

  • #214 fixes issue with DataChangeTrigger.StatusValueTimestamp not bn handled properly in server
  • #212 #210 fixes issues with node v6.2.0
  • #198 server now handle createSessionRequest with sessionName = null
  • #195 client now handle gracefully BadSessionClosed and BadTooManyPublishRequest ServiceFaults.
  • [85b72d084c7c4136d998982997a6e5538c7cd6ef] improve and fix issues with subscriptions and monitored items:
    • use oldest PublishRequest to return BadTooManyRequests rather than current
    • subscription state is CREATING until first Publish is made, fixes also subscription state KEEPALIVE/NORMAL bug.
  • [68a3dd6a04c2517565023328b9db4d1ae08b3ef1] fix issue with ByteArray indexRange access

πŸ‡ enhancement:

  • #200 - fix AddressSpace#addEnumerationType, add UAVariable#readEnumValue & UAVariable#writeEnumValue
  • #205 OPCUAClient: add options.clientName to get more meaningful session names
  • #207 define this in _timestamped_set_func UAVariable callback (@GermanBluefox)
  • [81c029150a6e973003dd54a47daf2891bb131d18] increase default client session timeout to 60 seconds
  • [d47f92dacd908d76ed471a0406b267e413944b53] improive subscription and MonitoredItem conformance (CTT)
  • [ab9a8631133768033a89d5e7dfecf4b2a570aaf5] Server subscription ids are now unique per server instance
  • [fcff5ee8dbd5db828cdd4847c4b2b441202f1e2c] ClientSecureChannel now reuse chunksize negociated during HEL/ACK
  • [c9ad290cd294deb4ea12743cf22961f77e6d1848] Improve server behavior against DOS attack ( as per specification )
  • [59750c81db911bd1004eb5df9ce9734b6947c890] improve UAVariableType#instantiate and UAObjectType#instantiate to replicate "HasEventSource" reference between Object Type and inner instance
  • #187 improve state machine support, and implement boiler example

πŸ’” breaking changes

  • remove support for nodejs 0.10.

πŸ‘¬ contributors
@GermanBluefox @gilesbradshaw @nathanpocock @awcullen @legolassid

node-opcua - v0.0.54

Published by erossignon over 8 years ago

πŸ› bug fixing

  • #193 BUG: fix connection issues with latest UAExpert (v1.4.2 14/04/2016) and OPC Foundation .NET client , caused by invalid security policy spelling.
node-opcua - v0.0.53

Published by erossignon over 8 years ago

🎨 enhancements:

  • 98676d344c3302c11466c744764ca5b347200806 OPCUAServer#constructor: add options.isAuditing flag, to enable Audit Events to be raised
  • 98676d344c3302c11466c744764ca5b347200806 Implements "Close" AuditSessionEvent
  • ba7802314f2c9030f82aa8ca4ef4ef9d93423b06 OPCUAClient#constructor: add options.keepSessionAlive to enable client to periodically send a keep alive Request to prevent session timeout.
  • #135 Server exposes session Diagnostics and currentMonitoredItemsCount
  • #144 allow disconnect to be called while connection is taking place,to abort long connection retry
  • #145 history data read
  • #145 asynchronous user validation
  • #145 event removeMonitoredItem
  • #181 improve client session keepalive mechanism
  • #171 add ability to check user authorization when reading or browsing node (wip)
  • #192 add event handler 'newChannel' and 'closeChannel' on server to detect when channel is created and closed.
  • #192 add channel#remoteAddress and channel#remotePort properties.

πŸ› bug fixing

  • 8f1d7455091ed3768561cad1683322f7d5cc8230 AddressSpace : prevent name clashes in OPCUA properties/components added as javascript properties.
  • #163 fixes bug where Variable does not return to Good State after statusCode was bad.
  • #164 #160 ensure installation works inside folder name containing spaces.
  • #183 fix typos in samples
  • #186 Server rejects secure connection if client provides a clientNonce with unexpected length

πŸ‘¬ contributors

  • @gilesbradshaw @pelis @ja-kh @jdecuyper @SkylarkA @Space69 @raatman @hr83
node-opcua -

Published by erossignon over 8 years ago

🎨 enhancement

  • #144 improve client reconnection after unexpected socket close,[ reconnection reactivate session and try to repair subscription]
  • #141 set appropriate timeoutHint on Publish Request
  • 24250b13ab3e482267715e429ec233edbc359090 enhance enhance BaseNode#browseNodeByTargetName, and ClientSession#translateBrowsePath
  • 845c9246bdf655032037599539214cc1d5101bc1 add utility function to build RelativePath using BNF strings ( as per OPC 1.03 Part 4 appendix A)
    πŸ› bugs fixing
  • #154 [Server] fixing null object exception in lib/server/base_server.js (appeared with Inductive Automation Ignition v7.7)
  • #156 [Server] fixes assert raised when server monitored item sampling rate is faster than variable refresh rate ( async update)
  • #158 [Client] Connection with userName/password and encryption
  • f74ad3e870dbeeacb0c9c8b4c681dfac7a9aee0a improve BaseNode performance ( 10x performance improvement for ObjectType#instantiate and AddressSpace#deleteNode )

πŸ’” breaking changes

  • 3814d483649438baef90162ad1013acd4e00c308 remove deprecated methods on ServerEngine and AddressSpace

πŸ‘¬ contributors

@mikakaraila @pelis @zombinary @gunnarleffler @danners @nestoteles

node-opcua - v0.0.51

Published by erossignon almost 9 years ago

🎨 enhancement

  • #146 add OPCUAClient#changeSessionIdentity
  • 3d0e4d48a68e8e4ae99cdc7eb9d9bc3cdf72ada2 generates string nodeId (based on parent nodeId & browseName ) during node instantiation when parent node is a string nodeId.

πŸ› bug fixing

  • 073accb206c45d2393097c8da3505fb4062e880a 27f4dbd740fa29f8044175a27422f93d2258f987 fix BaseNode#addReference
  • 83d8046133ced1ac58232e01c1a2d0ba0dcde934 fix AddressSpace#deleteNode
  • 3f7f65e0bcce6f579d277b8a11e766be3b12d45a f NumericRange bug causing extract_array_range to return an error when range overlaps with array but when high index is greater than array length
  • b424b0554a084d61effd1a3f63003c58f6ecbec1 add AddressSpace#dispose to prevent memory leakage.

πŸ’” breaking changes

  • 2451b38ad6ed75c203b04cf927e398ac8118e34e rename AddressSpace#findObject as AddressSpace#findNode

  • 43dc35d991477f5032e85f10f0e9dd3625c142de make AddressSpace#findObjectByBrowseName , AddressSpace#addObjectInFolder, AddressSpace#getFolder , ServerEngine#addVariable , ServerEngine#findObject, ServerEngine#addFolder,ServerEngine#addView, ServerEngine#addMethod, ServerEngine#addObjectInFolder deprecated

  • a2a35a633a6194ea3c826d84ae77cf7d9e8e8439 make AddressSpace#findObjectByBrowseName and AddressSpace#getFolder deprecated

  • 485b562384ea54d407fce015a2caa0df79226175 addView now takes a single options arguments, parent object shall be specified with componentOf parameter

    master
    🎯 compliance

🚧 work in progress

  • #31 continue working on Event implementation
  • proxy : 72dce9f02ce8be170147e9ef4aca8912f7811557 improve proxy to deal with missing DataType
  • StateMachine

πŸ‘¬ contributors

@mikakaraila

node-opcua - v0.0.50

Published by erossignon almost 9 years ago

πŸ› bug fixing

  • #141 set appropriate timeoutHint on Publish Request , greater than time between 2 keepalive message
  • 465f271f38d848ae7e48609577574953e35d7b0c fix OPCUAClient.getArgumentDefinition to work with missing InputArguments / OutputArguments property on Method object.
  • #129 handle browse response with null references
  • #128 fix bug in crawler
  • #127 fix explore tbsCertificate
  • #124 [CLient] improve message to inform that non "opc.tcp" transport protocols are not supported.
  • #52 add timeout option on simple_client to control subscription duration.
  • #55 fix browserify script.
  • 4217e257aba2bfa4c6a9b38b01eec6e8d88c39ce fix NodeId max value check
  • 3c7f8e00d082f44041819cbd38bcf2128c50beb0 fix DiagnosticInfo encoding
  • f1ac9ef55f72cb5e5f9cec0f10d847395c8f54db handle certificate Chains

πŸ’” breaking changes

  • drop testing on nodejs 0.11 and io.js, add support for node 4.2 on travis
  • [breaking change] AddressSpace#addVariable now takes only one options argument, parent object can be specified with propertyOf, componentOf, or organizedBy attributes in the options.
  • [breaking change] AddressSpace#addProperty now deprecated, use AddressSpace#addVariable({ propertyOf: node, ...}) instead.
  • engine.address_space renamed as engine.addressSpace

🎨 enhancement

  • #126 add helpers to supprort TwoStateDiscreteType MultiStateDiscreteType MultiStateValueDiscreteType
  • #126 add helper function to create TwoStateDiscreteType property
  • improved certificate generation
  • improved Structure and Extension object handling.
  • 37a3d2827bcc2c30029048cc9fa8d88c5ea765ba UAVariable#bindExtensionObject
  • add the ability to create a Variable containing an array extension object, and exposing elements as components.
  • #136 serverEngine now exposes ServerDiagnosticsSummary , SubscriptionDiagnostics and ServerDiagnostics.SubscriptionDiagnosticsArray
  • bfd6378da44f3d23ef3b5ea18a2b88f7d322338d Variant can now be Matrices and have dimensions
  • 8922361d0a4f6e17ee6429111ed8f83d2d14a9ce Only clone mandatory components/properties when instanciating a ObjectType or a VariableType
  • handle Organizes reference in FunctionalGroup during instantiation
  • 46af8acef4e9200eeac209c9418b4e42a0fc33f6 new services structure node_management , historyUpdate, query and transferSubscriptions
  • 9b415da75347325cdeea91e85b92076f72c61a5e add support for ADI model instantiation
  • de6a225009bbee50c88da0968b161010fdf178e1 add time related engineering units
  • 04d5329d7a17a92664f7f22c5a7808f0dda7ebfb add support for YArrayItemType (Part 8: DA)
  • 9e37a4777c1771a0ffabbd056a29567d5667e18c add readHistoryValue in simple_client
  • b63f58131fc7ac4fe0cc0b06a7b599113bc1e968 add AddressSpace#addVariableType
  • 5b4fb0e813978de110c06d3aaeda70944e17bcd3 export di and adi standard nodeset files
  • 65de0458fce9d2c2decfd15591a49fce9e9791a1 dd optional options.modellingRule on AddressSpace#createNode

🎯 compliance

  • #108 update DI.nodeSet2 and standard Opc.UA.NodeSet2.xml file to version 1.03
  • 0198cec7282b46330c94c4116f68aa23ff77f4a1 add new nodes for conformance testing
  • f29e464f5e750c475ecd6e26e54bc484e08e117e handle NotReadable Variables

🚧 work in progress

  • client proxy object, proxy on state machine

πŸ‘¬ contributors

  • @pelis
node-opcua - v0.0.49

Published by erossignon about 9 years ago

πŸ› bug fixing

  • #121 connect endpoint without a certificate
  • #119 fixed bug whereby server MonitoredItem may report excessive data notification
  • #113 fixed reading default access levels in nodeset2.xml file bug
  • #112 fixed problems with ByteString values in io.js
  • #109 fixed assertions bug in crypto_utils.js
  • #105 fixed UAObjectType.instantiate() bug : it should accept subtypes of FolderType in options.organizedBy
  • #104 fixed bug whereby AddressSpace may use NodeIds twice.
  • #88 fixed Interop issue with OPC Foundation standard Client 1.02.335
  • #73 fixed bug whereby Server resets sequence number after secure channel renewal

πŸ’” breaking changes

  • #120 make readVariableValue more consistent

🎨 enhancement

  • #30 enhanced readVariableValue to retrieve timestamps
  • #118 adding Status codes 'Bad' and 'Uncertain'
  • fc83b3efba5032021f9528eeef4ffed9ed18538d add ClientSession#setMonitoringMode

🎯 compliance

  • fc83b3efba5032021f9528eeef4ffed9ed18538d improve conformance on MonitoredItem

🚧 work in progress

  • Events
  • Client Proxy

πŸ‘¬ contributors

  • @zombinary, @janschatz, @kevinherron
node-opcua - v0.0.48

Published by erossignon about 9 years ago

🎨 enhancement

  • #86 address_space addDataType
  • export node to nodeset.xml
  • #84 #81 basic historizing_service support on client (demeyr)
  • #82 add ability to remove a node from the address space
  • #87 improve discovery service
  • #86 [address space] add ability to create new ObjectType and instantiate them.
  • #70 add Discovery Service Set
  • #51 add asynchronous write …
  • 60bc9574d50733d20daecdbe852c65ac1103fe0c reactivateSession add ability to transfer Session from channel to channel
  • 85b586a6b46f3844e1def15db09e76ecb5960ef0 improve conformance of Session service , improve conformance of UserNameIdentityToken
  • 46d469539ff9008944a397dda842aec6a47a10f2 add basic support for RegisterNodes/UnregisterNodes

🐎 performance improvement

  • cec4bf92e20e11df93fc1dc202ef59e464809e48 offer the possibility to use "memcpy" package to speedup ArrayBuffer<->node Buffer copy and improve performance of variant binary encode/decode
  • #71 speed up local Enum implementation further
  • 8bbbbbedeb0ae0fcd66dc69424932d0d367f3e8a improve indexRange on monitored item
  • fe0825480f4bca634cd76e8d3ffa4cddc88e6417 Variable accepts only value in range when $instrumentRange is specified
  • c3b49693d86f009bb05e0695a0bf48392bc7a0aa add DataChangeFilter and improve DataItem
  • fa8ce15129c29fd2d8077ff89df6710952425d9d make EURange not writeable
  • #90 implement event Filter

πŸ› bug fixing

  • #94 fix namespace handling when loading multiple xml nodeset file
  • #93 fix bug when performing login to Ignition OPC-UA server with default credentials - [client]
  • #85 client now returns timeout error if server fails to reply within timeoutHint
  • #66 fix installation of openssl.exe on win32 plateform
  • #91 Emphasis variable creation without get/set
  • #96 Implement NodeClass for NodeCrawler
  • #75 fix connection issue with new version of UaExpert
  • 2c553b1e76cb6228fcbe3e63c04c133ce24d59e3 detect bug in standard nodeset2.xml see https://opcfoundation-onlineapplications.org/mantis/view.php?id=3064
  • 56f6020bd7c506456eb5c4934de2523f687c57db fix behavior with monitoredItem.minimumSamplingInterval=0
  • f1fb5a3db963d4aee6cb105edc62c7cb4d13188e fix large message chunking solution
  • 7dac128860eff0c480060effb11f75a4e9a5e844 fix session manager on client side
  • b5737576b0e36807f39e0ee4476dfe489b32013f Cancel pending publish requests on current channel when session is transfer to an other channel.
  • 1e14e0e2fcd10010a1a8eab689d2af1e1efbba12 fix OpenSecureChannel Error behavior
  • d6536794915f3efca8ec73fdbda6e2e57769cd00 Fix for spaces in usernames

🎯 compliance

  • 100% CTT test on nanoembeded

🚧 work in progress

  • Event

πŸ’” breaking changes

  • ServerEngine#createFolder renamed as ServerEngine#addFolder
  • ServerEngine#addVariableInFolder renamed as ServerEngine#addVariable
  • side effects : see #100, #103

πŸ‘¬ contributors

  • @demeyr for adding Client#readHistoryValue
  • @perok
  • @orobas
  • @svv-datainn
  • @hanskhe
node-opcua - V0.0.47

Published by erossignon over 9 years ago

🐎 performance improvment

  • db439fe81900902709dad38835e87c5a282b36c5 use native Typed Array in Variant whenever possible
  • 83fe10067ea132dfacfed997611839a170983f64 improve Variant encoding performance
  • 2857b0af49816ce14e472e86266491589354f829 add support for ModifySubscriptionRequest
  • e1e33bc74c17c5eeac018cfbabd3b86f0131b58e allow large number of connection on sample server ( used for CTT)
  • #71 refactor enum class to get a x50 performance improvment
  • bf20a8a06be4c631c2443a26037fafb09f1fd8ce remove slow assert

🎨 code improvment

  • improve code coverage
  • 4e68c413942dac96cc396f63a7ed591d5fd2dea2 revamped Variable node implementation
  • #51 add asynchronous write
  • 05a1f6bcbbdcecb0de66939dccbc43cbf160d22a simple client : add command line option to specify listening port
  • improve interactive client
  • #69 : demonstrate how to add many monitored items on a given subscription
  • add DataChangeFilter, DataChangeTrigger DeadbandType

πŸ› bug fixing

  • 6bc5a0239068a922473ff4d6550c5eb34ecb2e0c fix encoding binary Id for Range Extension
  • #75 51cf852858485890afa41b2c99ebc879d5c05a28 increase default secureTokenLifetime to 60000
  • d7910c0d7cca2e8c0cbd8766b2e321013f895d95 fix Sampling/Reporting in monitored item
  • #58 monitored item now cap queue size and samplingInterval
  • #58 fix availableSequenceNumbers
  • #58 fix usage of applicitionUri accross server
  • #68 fda44a0f341759b80442ce19cdbcd713b21aef89 construct fqdn from environement variable on
    windows
  • #70 compliance test for FindServers

βœ… added tests

  • ed9c65ca06ce036414a2d0ff27635ac1e498adbb add test for SetMonitoringMode
  • 37f24fd91cc8fda8865e84d5b5fa24dc92fc2b22 add test for ModifySubscription
  • f33f9d11cfefc97a788ed3a31bd9a46881c1fbe4 add writeNode test case

πŸ‘¬ contributors:

  • @huazh on finding and solving enum bottleneck
node-opcua - v0.0.46

Published by erossignon over 9 years ago

🐎 enhancement

  • #63 endpoint_must_exist can be set in OPCUAClient constructor options

πŸ› bug fixes

  • #59 server drops subscription if client doesn't register monitored item within the livetime time interval
  • #57 - improve NodeCrawler