Releases: Azure/azure-iot-sdks
Azure IoT SDKs
C Device SDK
- Device Twin feature enabled over MQTT.
- Device Methods feature enabled over MQTT.
- Enhance serializer for Device Twin.
- Support for device multiplexing over AMQP transport.
- Add support for connection status callback in MQTT.
- Implement exponential-backoff retry logic over MQTT protocol.
- Update the Device Client to accept 256K max message size from IoTHub.
- Porting guide updated for PAL.
- Fix build warnings on MBED.
- Fix for memory leak in C AMQP transport.
- E2E tests for Device Twin & Methods functionality.
C Service SDK
- Device Twin enabled in the Registry.
- Device Methods enabled in the Service Client.
- Update the service SDK to allow for 256K max message size.
Node Device Client
- Device Twin feature enabled over MQTT
- Set Reported Properties
- Receive Desired Properties
- Device Methods feature enabled over MQTT.
- Update the Device Client to accept 256K max message size from IoTHub.
- E2E tests for Device Twin & Methods functionality.
Node Service Client
GA Change Remove Schedule* overload methods that take list of device IDs explicitly. List of IDs can now be specified in a query.
- Device Twin enabled in the Registry
- Set Desired Properties
- Set Tags
- Get Reported Properties
- Query Twin Store
- Device Methods enabled in the Service Client.
- New Job client introduced for bulk Twin and Method operations.
- Update the service SDK to allow for 256K max message size.
Csharp Device Client
- Implement retry logic.
Csharp Service Client
GA Change Remove Schedule* overload methods that take list of device IDs explicitly. List of IDs can now be specified in a query.
GA Change Rename DeviceJobStatus and DeviceJobType to JobStatus and JobType
GA Change Change CloudToDeviceMethodResult.Status from string to int
- Device Twin enabled in the Registry
- Device Methods enabled in the Service Client.
Java Device Client
- Pulled websocket dependency out of proton-j into Java SDK
- Updated SDK dependency on latest proton-j release
- Bug fixes
Java Service Client
Please note that the released maven package iothub-java-service-client version 1.0.10 was inadvertently overwritten with this release.
Python
- Device Twin feature enabled over MQTT.
- Device Methods feature enabled over MQTT.
- Enable MQTT over websockets.
HTTP/REST API
GA Change For queries move paging arguments to request and response headers
GA Change For queries move type of results from response body to response header
GA Change For queries changed property name in request body from ‘sql’ to ‘query’
GA Change Remove Schedule* overload methods that take list of device IDs explicitly. List of IDs can now be specified in a query.
Tools
- iothub-explorer
- Device Twin, Methods, Jobs functionality enabled.
- New device simulator
- Improved command line interface (EX: Per command help).
- DeviceExplorer
- Device Twin and Methods functionality enabled.
Pull Requests
#943, #948, #937, #918, #924, #908, #8, #890, #892, #902, #886, #885
Documentation:
- Device specific instructions for:
- PikeL device
- RP1600 device
- WISE-5231 device
- EK9160 device
- UK70 device
- HG700 device
Azure IoT SDKs
C Device SDK
- NOTE: If you had already cloned the SDK repo, before doing a pull, run the following command:
git submodule deinit --all -f
git pull
git submodule update --init --recursive
- Support for MQTT over websockets
- Submodule folders renamed for shorter path.
- SAS renewal tests and fixes
- Add PushToMaster script for Arduino into Build all for Arduino
- Add the script to upload and test a new version on Arduino Huzzah
- Add arduino_cc with the base arduino library. Add the scripts to make and test the lib.
Node
- Remove max message size limit in AMQP
- Add MQTT over Websockets support
- Move AmqpWs into Amqp package
- Move common MQTT code into the device-mqtt package
- Implement SAS renewal on the AMQP service client
Python
- Add build option --wheel to build a PyPy wheel.
- Add cmake --wheel option for windows
csharp
- Add MQTT over websockets support
- Add pri files (resources) to UWP NuGet package.
Tools
- iothub-explorer: add monitor-ops command to listen to the operations monitoring endpoint.
- Add link to the 'device-discovery-cli' tool via submodule reference.
Pull Requests
#868 #870 #864 #839 #836 #835 #831 #825 #824 #819 #820 #817 #816 #722 #857 #856 #822 #843
Bugs
- [Node] Fix bad call stack issue in AMQP when calling a callback from a promise.
- [C] Fix Raspberry Pi Build script
- [C] Add --use-websockets for gcc 4.4
- [C] Fix E2E tests for serializer in C Device SDK
Documentation:
- Add instruction and certification guide for Node JS SDK on Android OS.
- Update steps to build C library on Windows
- Update Java samples documentation
- Update documentation for Android support
- Add instructions for running CppUWPSample
- Update yocto-intel-edison-c.md
- Update devbox_setup.md
- Add instructions for creating Hub and device Id for Node
- Update Arduino's readme.doc
- Add device specific documents for:
- WavePOS-77 device from FKSYSTEM Co.,Ltd
- SYS-5029S-TN2 device from Supermicro,
- S-5018A-TN4 device from Supermicro,
- S-1018L-MP device from Supermicro,
- zo device from Kuzo Tech,
- A-350 device from WITEK,
- ON-3200 device from 4cgate,
- 103 device from DFI,
- 31 device from Micro-Star,
- vices from Advantech and Moxa,
- 98xx device from Spreadtrum,
Azure IoT SDKs
C SDK
Update file copy for suppressions file
Support specifying field GatewayHostName in connection string
Fix E2E tests -
Add drd suppressions for E2E tests
Add suppression files for helgrind for E2E tests
Order changes in E2E tests
Have MQTT E2E tests use the common E2E code
Fix crash for MQTT E2E tests
Add E2E tests for AMQP WS
Revert order of client creation and sending the C2D message in E2E tests to avoid sporadic MQTT failures
Add platform init to avoid failing tests
Make skip_samples a configurable option
Fix build break in amqp unit test
Fix AMQP over WS sample
Remove extra trusted_ca field from the wsio config for AMQP over WS
Remove unnecessary headers
C# SDK
Add Microsoft.Azure.Devices.Uwp.dll in auto-sign script.
Fix .net mf build break
Build in C# using Xamarin for iOS and Android
Java SDK
Change java message queues to blocking queue
Fix NoSuchElementException for AMQPS transport
Set default certificate only if none provided
Node SDK
Fix nested message issue when using npm < v3 (#838)
Add .npmignore file to SDK packages
Miscellaneous
Tools
Changed X509 to lower case for consistency with other SDKs and iothub-explorer.
Stringify an object. Know it was already converted to json in iothub-explorer
Documentation
C SDK
Update yocto-intel-edison-c.md
Add --skip-unittests for Raspbian
Support older gcc version 4.4.7
Get start STM32 Nucleo
Add --use-websockets for gcc 4.4
C# SDK
Add device specific documents from Avalue and MSC Technologies
Add instructions for running CppUWPSample
Add device specific instructions for devices from Advantech and Moxa
Java SDK
Update documentation for Android support
Add device specific document for SC98xx device from Spreadtrum
Node
Add prerequisites section for Node.js
Python
Update python-devbox-setup to resolve build issues
Pull merge request
#839 #836 #835 #831 #825 #824 #819 #820 #817 #816 #722 #811 #812
Azure IoT SDKs
C SDK
- Fixes for uamqp_messaging.c and unit tests (segfault, mbed, log traces)
- Reverting incorrect include on iothub_message for uamqp_messaging work
- Remove Unsubscribe from iothub_client_destroy
- Separating AMQP property handling from iothubtransportamqp into uamqp_messaging module
C Service Client
- Compile with /bigobj on iothub_msging_ll_ut project
- Fix double free in E2E tests
C# Service Client
- Update AmqpConnection exception handling code
Java
- Free reactor on completion of its task
- Fix making jar with deps
- Fixes queued c2d messages issue in Java SDK.
Node SDK
- Add missing IotHubQuotaExceededError in Amqp transport
- Add missing export directive in AmqpWs typings
- Add typings directive for package.json in Node SDK
General
Azure IoT SDKs
C SDK
- Fix a warning on agenttypesystem.c
- Update paths for wsio include
- Reference submodules with GCC 4.4 fixes
- Bugfixes:
- build with -DNO_LOGGING
- get_time() calls in C AMQP transport (added failure verification)
- Fix build.sh/cmd to disable blob storage when http is disabled.
C Service Client
- Re-add parson submodule for c\iothub_service_client
Node SDK
- Add support for custom properties in AMQP and HTTP transports
- Provided Typescript typings for Node sdk.
C# SDK
- Bugfixes:
- Throw original exception on failure to open the AMQP connection
- Properly dispose the AmqpConnection object
Java SDK
- Add Linux Javawrapper 64Bit BuildScript
General
Azure IoT SDKs
Node JS SDK
- New node-red package
- New iothub-diagnostics tool
- Bugfixes
- iothub-explorer: missing callback when calling client.close()
- amqp-ws transport: ECONNRESET wasn't handled properly
- Fix runaway promise warning in AMQP transport
- Add 'disconnect' event to Service SDK Client (#746)
- Updated azure-storage and azure-event-hubs dependencies (#742)
C SDK:
- Update HTTP sample for Windows Embedded Compact 2013 (#754, #755, #761)
- Add messageId and correlationId to uAMQP messages on D2C messages
C# SDK:
Javawrapper SDK:
- Fix x64 build warnings
Java SDK
- Add support to provide SAS Token for Java SDK
Azure IoT SDKs
C SDK
- Added x509 authentication support to MQTT and AMQP transports
- Brought back support for WEC2013 (using HTTPS protocol).
Java SDK
- Add option to update SAS Token Expiry Time
- Add support for one-way Authentication over SSL
C# SDK
- Fix C# code so that it will once again build in .Net MF
- Update DeviceClient.Create API to accept X.509 client certificate for MQTT protocol
Node SDK
- Fix race condition in HTTP receiver
- Add x509 authentication support to the MQTT transport
- Fix error codes handling in HTTP Transport (#711)
Python SDK
- Add support for x509 for HTTP
Java wrapper SDK
- Add support for x509.
Tools
- Add support in DeviceExplorer to create device with x509 thumbprint
- Add support in iothub-explorer to create device with x509 thumbprint
- Add suppoort support for x509 connection strings in iothub-explorer
Azure IoT SDKs
C Device SDK
Added extra log tracing to AMQP e2etests
Added specs for x509 on AMQP transport
C# Device SDK
Updated samples to list out properties. And fixed issue when both property cells are null.
Java Device SDK
Updated Java device client to use built-in IMqttAsyncClient.getPendingDeliveryTokens() to obtain number of in-flight messages instead of own counting
NodeJs Device SDK
Bumped amqp10 dependency version to 3.2.1
JavaWrapper SDK
Added X509 sample for JavaWrapper
Python SDK
Added X509 sample for Python
Added Python wrapper API for uploadBlob()
General
Enabled /W4 on C/Python/JavaWrapper builds, fixed warnings
Added grid-view to insert properties into CloudToDevice messages on DeviceExplorer
Added device-specific document for SE-8124 device from Protech
Added documentation on how to run Avalue EPC-BTCR device running Windows 10
Added documentation on how to run C sample on TM5 device running Windows Embedded Standard 7
Added documentation on how to run JAVA sample on IDM-IWP-HW-2 device running Windows 7 Professional
Added device instructions for IT800 device from Clientron.
Updated device instructions for Magic Box device from Bitjoule.
Bug fixes
Fixed C MQTT transport bug that loses a packet Id
Updated C MQTT transport packet id to ensure no overflow will happen
Update instructions for C AMQP over websockets about required environment variables
Fixed C serializer samples to use unisgned int for messageTrackingId
Fixed a uploadBlob poorly destroy that happened before its time in C client SDK
Fix CMAKE install targets and add additional flags to build script
Replaced all sscanf in the C SDK by a local version of string parser.
Fixed C# device client AMQP retry logic
Fixed C# device client WinRT build error
Added X509 bug fix in IotHubConnectionCache to allow override of C# device client certificate
Added fix for issue in Java device SDK regarding multiple open sockets during reconnect
Fixed 409/412 error translation in Node.JS Service SDK
Fix for GH issue #658 on Node.JS client - rename HttpReceiver.setSharedAccessSignature to HttpReceiver.updateSharedAccessSignature
Updated Node.JS client to do not try to create an AMQP sender link if the device is not connected (while renewing a token for example)
Bug fixes on Node.JS dev setup script, and for client to use appropriate server cert validation.
Removed code that erroneously truncated some error messages
Update Node.JS readme code sample (GH issue #671)
Updated/corrected the links in device-specific instructions
Fixes on documentation for IoT device Certitification
Azure IoT SDKs
C Device SDK
- Updated the default option on build scripts for uploadToBlob to ON for all platforms
- Updates Azure IoT C SDKs to use a new runtime switchable logging
- Updates Azure IoT C SDKs to use consolelogger_log as default logger
- Update IoTHubClient_SendComplete to use IOTHUB_CLIENT_CONFIRMATION_RESULT callback
- Added initial changes to support using x509 certificates on C client + added HTTP sample
- Updated the E2E tests to use the new C SDK Service Client
- Extended Upload to Blob to support files larger than 64MB.
JavaWrapper SDK
- Added support for blob upload to JavaWrapper device client
C# Device SDK
- Added support for x509 certificates on C# device client MQTT transport
C# Service SDK
- C# service SDK now has support for UWP (Courtesy of Artur Laksberg)
NodeJs Device SDK
- Fixed sample code in readme documentation (GitHub issue #671)
- Added support for using x509 certificates over AMQP and AMQP over websockets
NodeJs Service SDK
- Added support for using x509 certificates
Python
- Added support for blob upload to Python device client
General
- Updated correct path of samples for C SDK on Linux Get-Started documentation
- Removed usage of LogInfo/LogError in C E2E tests
- Consolidated definition of DEFINE_ENUM_STRING into iothub_client_ll.c, removing definition from samples
- Updated DeviceExplorer to Auto scroll events text box
- Several documentation updates for Azure IoT certification, Get-Started guides
Bug fixes
- Fixed general build bugs for mbed, Windows and Linux platforms
- Fixed linux build.sh warning regarding unary operator
- Fixed C SDK samples to send disposition on exit
- Updated C SDK AMQP over Websockets transport interface to include recent API changes, plus general bug fixes
- Fixed MBED build scripts to delete existing files from MBED.org repos before updating with new files (fix for deleted fixes not being updated online)
- Fixed general bugs in Python build scripts on Windows
Azure IoT SDKs
C Device SDK
- Enable uploading blob larger than 64MB
- Enable samples for linux arm builds
- C Client responds to a missed ping with the MQTT_CLIENT_NO_PING_RESPONSE message
- Normalize the samples to all work similarly
C# Device SDK
- Allows to use unsigned dotnetty based on cofiguration
- Support for Amqp over websockets on Windows 7
C# Service SDK
- Support for Amqp over websockets on Windows 7
NodeJs Device SDK
- Move to amqp10 v3.x.x and take dependency on event hubs node SDK instead of maintaining custom event-hubs code.
- Add support for x509 Authentication in HTTP transport
- Add support for Node.js v6
- Fix MQTT Receiver race condition that prevented the first message from being emitted when subscribing
NodeJs Service SDK
- Move to amqp10 v3.x.x and take dependency on event hubs node SDK instead of maintaining custom event-hubs code.
- Add certificate thumbprint property to Device in Service SDK for x509 authentication
Internal changes
- Adding more C longhaul tests (recv msg, exp send msg)
- Update cmakelist to include architecture and update shared-util
General
- Bump DotNetty dependency to 0.3.1
Bug fixes
- Java client SDK - fix for the exponential backoff retry.
- Fix issue #604 (disconnect event handler not registered in the node device client)
- Bugfix in iothub-explorer: feedback records were not printed correctly