📑Changelog

V4.0.1.34 - 10 September 2025

  • Introduced an rshell management command with token validation to block unsafe characters and normalize multiline output back to MQTT consumers.

  • Refactored the TCP socket client to buffer responses with StringBuilder and drive an asynchronous receive loop, lowering CPU use while waiting for data.

  • Hardened the UDP utility with null-guarded receive paths, detailed exception logging, and periodic pruning of inactive clients.

V4.0.1.32 - 05 September 2025

  • Updated external API publish and PUT handlers to treat empty responses as successful publishes instead of failing JSON parsing, ensuring consistent acknowledgements.

V4.0.1.30 - 01 September 2025

  • Added a background log directory monitor with configurable quotas so administrators are alerted when retained log files exceed size limits.

  • Enforced upload size limits for MQTT and HTTP client certificates, applying retention cleanup after successful transfers to protect storage.

  • Switched upgrade downloads to temporary files created via Path.GetTempFileName, deleting the staging file even when validation fails.

  • Restarted the MQTT client when pending messages exceed configured thresholds to prevent queue overflows.

V4.0.1.29 - 29 August 2025

  • Introduced a bounded summary queue with discard counters and structured logging to cap in-memory backlog growth.

  • Made metrics channel capacity and validation cache TTL configurable, with scheduled cleanup and a REST endpoint for manual cache clearing.

  • Enhanced the WebSocket server with configurable client limits, heartbeats, idle detection, and rejection logging for excess connections.

  • Began tracking UDP clients with timestamps and removing inactive endpoints automatically to keep broadcasts targeted.

V4.0.1.27 - 21 August 2025

  • Restricted GPO configuration updates to reader-supported ports, filling in defaults when requests omit data and logging validation issues.

  • Improved the MQTT apply-settings handler to persist payloads safely and publish a structured response back to management subscribers.

V4.0.1.7 - 20 February 2025

Refactored Configuration:

  • Replaced individual constructor parameters with an IReaderConfiguration object.

Event Management:

  • Introduced IEventManager interface and implementation to centralize event subscription/unsubscription.

  • Added InitializeEventSubscriptions() to manage event handlers more safely.

Health Monitoring:

  • Added IHealthMonitor and HealthMonitor classes to track system metrics and reader health.

  • Integrated health checks within the streaming process.

Concurrency Enhancements:

  • Added _operationSemaphore and _streamingSemaphore for improved asynchronous operation control.

  • Ensured safe start/stop of streaming and other operations using semaphores and cancellation tokens.

Streaming Improvements:

  • Refactored streaming logic with StopExistingStreamIfAnyAsync(), better cancellation handling, and refined start/stop methods.

  • Introduced StreamingConfiguration for managing retry policies and timeouts.

Resource Management:

  • Implemented a full dispose pattern with Dispose(bool disposing) and _disposed checks to ensure proper resource cleanup.

HTTP Client Updates:

  • Adjusted HTTP client timeout settings (using Timeout.InfiniteTimeSpan for secure connections) to better support long-running streams.

Logging & Error Handling:

  • Enhanced logging across all modules for better traceability and error reporting.

  • Improved error handling in streaming and HTTP operations.

V4.0.1.6 - 10 February 2025

  • Fixes in the MQTT publisher.

  • Websocket server in development.

V4.0.1.4 - 07 February 2025

  • feat: enhance HTTP stream processing, add dynamic logging level management via REST API.

  • feat: enhance HTTP stream processing with robust timeout handling

  • feat: add dynamic logging level management via REST API and batch script.

  • feat: GPI management and TCP Socket Server refactor.

  • fix: heartbeat over socket .

  • fix: Nuget package upgrades .

  • feat: Refactor IotInterfaceService to enhance modularity and maintainability.

V4.0.0.41 - 23 January 2024

  • Added command to updage admin password.

  • Added command to update RShell password.

V4.0.0.40 - 4 January 2024

  • Bug fix to support HTTP POST interval bigger than 60 seconds.

V4.0.0.39 - 14 December 2024

  • Migration to .NET 8 LTS including dependencies.

  • Coin cell battery status information added to status-detailed command.

  • Added option to restore to default settings from WebUI.

V4.0.0.36 - 03 November 2023

  • Support to management only mode where the application is only interacting with the /system api on the IoT interface, allowing other internal or external applications to control the reader over LLRP.

V4.0.0.32 - 15 September 2023

  • Fix for empty payload being reported over MQTT when batch list is enabled with the presence filter.

  • Fix for the upgrade command when a wrong URL is informed.

V4.0.0.27 - 02 September 2023

  • Added Start/Stop Triggers to the MODE command.

  • Added image summary to the get status detailed command.

  • Fixed bug when timestamp is not selected in the data format tab.

  • When Advanced GPO is enabled and the New Tag Seen option is selected, the Software Filter will be automatically checked to be used as the timeout for the new tag seen and will match with the Presence Timeout in case it is enabled.

V4.0.0.26 - 01 September 2023

  • Changes on management events.

  • Changes in the start script.

  • Now settings are kept during Smartreader Embedded version upgrades.

V4.0.0.24 - 29 August 2023

  • Upgrade command fix.

  • New Advanced GPO feature added on Reader Settings tab to link GPO to predefined events.

V4.0.0.21 - 24 August 2023

  • Change on the presence detection when using GPI triggers.

V4.0.0.11 - 19 July 2023

  • Enhancement/fixes on remote upgrade command over MQTT. Now timeoutInMinutes and maxRetries can be published and configured through the upgrade message payload.

V4.0.0.10 - 18 July 2023

  • Added option on WebUI, Home tab, to disable automatic system image fallback to avoid system fallback due to reboot loop.

  • Added image summary information on WebUI, Home tab.

  • Fixed bug on GPI status reporting event.

  • Added automatic adjustment on UI according to reader model, power supply (PoE or PoE+) and region.

  • Added control command to set GPOs.

V4.0.0.1 - 27 April 2023

  • Fixed bug that in some cases could prevent the reader to start reading when instructed via MQTT.

V4.0.0.0 - 31 March 2023

  • Added permanent licensing capability.

  • Added reduced and complete payload for status command to solve slow response when receiving the complete status JSON payload Status Command.

V3.0.0.115 - 03 Mar 2023

  • Fixed issue for the presence detection in previous version.

  • Added an empty event when the last tag is removed from the reading zone:

V3.0.0.114 - 01 Mar 2023

  • Fixed the persistence of the tag presence flag after applying settings.

V3.0.0.113 - 27 Feb 2023

  • Changes made in the on-change behavior when the tag presence timeout is enabled.

V3.0.0.112 - 23 Feb 2023

  • The status event is now publishing more details: Status Event (Please notice that as these new details requires a different access internally on the reader, the status event is delayed a little bit if compared to the previous version, this is due to the calls needed to build the new content since the content is not available on the RESTFul interface).

V3.0.0.111 - 22 Feb 2023

  • On-change data tags event on the Antenna Group can now be filtered by antenna group (antenna zone), on the MQTT settings we now have the option "Filter Batch Updates based on Antenna Zone grouping".

Filter Batch Updates setting screenshot
  • On removal of item/items from the antenna, an on-change event will be triggered removing the tag from the batch list, however when there is only one tag in the field of view currently no report will be generated when this last tag is removed since there will be no other tags to be informed, we can review this logic; To enable this logic on the Data Format tab we need to select the option "Enable Tag Presence Detection Filter" and set a value for the timeout.

Tag presence detection setting screenshot
  • The status command is now publishing the antennas configuration: is it's enabled or not, zone name (antenna group), tx power and rx sensitivity (rssi filter). Status Event

  • On the tag event the antenna zone is now published as the property antennaZone, we also have the antennaPort containing the port number. Tag Event

  • Is now possible to enable or disable the periodic tag data batch list publisher on the MQTT settings we have the option "Enable publish interval for Batch Lists".

Publish interval setting screenshot

V3.0.0.110 - 22 Feb 2023

  • Added Status command. Status Command.

  • On-change event now is triggered when the tag moves to a different antenna.

  • Socket output with performance review.

V3.0.0.109 - 15 Feb 2023

  • Hotfix for bug that made to only receive tag data and event data and not able to send any commands.

V3.0.0.108 - 15 Feb 2023

  • Smartreader Embedded default topics (smartreader/#) can be disabled.

  • Only one connection is now created between the Smartreader Embedded and the MQTT broker.

  • MQTT Keepalive available to configure on the UI.

  • Batching with periodic updates and On-change events available.

V3.0.0.107 - 13 Feb 2023

  • MQTT over Websocket support.

  • Added option to clean-up the batch event list when the mode command is sent.

V3.0.0.106 - 9 Feb 2023

  • Updates antennas settings using a group of antennas within the same antenna zone name. It can also be used only to enable/disable the antennas. Currently configurable: type, antennas, transmitPower and rssiFilter.

  • Fast reload implemented. Now the new reader configuration is applied without reloading the app.

  • Tag events will be published in batch according to the publish interval (which can also be set on the “mode” command. If the the Enable Batch List Reporting is set, all the EPCs read since the START command was received will be sent every time the publish interval is reached, until a STOP command is received.

  • Now the configuration is persisted when a new version installation is done.

V3.0.0.105 - 27 Jan 2023

  • RF Mode validation and implementation by region/SKU on the mode command.

  • Fixed typo on the tag even report (UNKNOW to UNKNOWN).

    Added command to retrieve application settings as a JSON file to the management topic.

V3.0.0.104 - 25 Jan 2023

  • Fix for the topics bug.

  • Added the "message" property to the error validation in case of a repeated command is sent.

  • Implemented the grouping feature for the mode command, here is the updated payload that will work (added groupIntervalInMs).

V3.0.0.103 - 24 Jan 2023

  • This version will reload the app automatically after a "mode" command is processed with success.

V3.0.0.102 - 24 Jan 2023

  • Command_id verification. When the reader receives a new command compares it with the latest one on the file, if it's a new id, updates latest one and process the command, if is the same id received before it will reply with an error. If is the first command received and there is no history of any previous command, it will just accept it.

V3.0.0.101 - 24 Jan 2023

  • Fixed the throughput issue on the MQTT publisher when the publish interval is set to 0 seconds.

  • Removed the checkbox on the UI for the retain option on the command and control topics, fixed a bug on the "mode" command which is the configuration command from Flipkart API.

  • This is a valid JSON to set the reader (key points are to make sure that the tx power and rssi set are both supported by the R700):

Last updated