JKI
-
Posts
803 -
Joined
-
Last visited
-
Days Won
1
Posts posted by JKI
-
-
Product: MQTT Control Packets v3.1.2.8
Company: LabVIEW Open Source Project
Release Date: Mon, 02 Nov 2020 15:20:34 -0800
Packager: Francois Normandin
Description: LV-MQTT-Control-Packets
https://github.com/LabVIEW-Open-Source/LV-MQTT-Control-Packets
This package consists of a library for MQTT Control Packets handling
It currently supports version 3.1.1 of the MQTT protocol (Protocol Level 4).
These classes can be used as the basis for client and server by providing a clean and easy control packet handling scheme via OOP.
Release Notes: Introduced a Ack control packet as an ancestor to all the ACK types of packets:
Connack, puback, pubrec, pubrel, pubcomp, suback, unsuback
This has no impact on backward-compatibility, but it gives a stricter type for client and server that handle responses through subscriptions.
-
Product: MQTT Connection v3.1.3.21
Company: LabVIEW Open Source Project
Release Date: Mon, 02 Nov 2020 15:11:51 -0800
Packager: Francois Normandin
Description: LV-MQTT-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection
This package consists the fundamental building blocks for building MQTT clients and servers:
- Abstract Connection
- Session
- MQTT Base class to generically handle packets (overridable as client or server patterns)
It currently supports version 3.1.1 of the MQTT protocol (Protocol Level 4).
These classes can be used as the basis for client and server by providing a clean and easy control packet handling scheme via OOP.
Release Notes: - Subscription and TopicFilter classes have been moved to Server library
[MQTT-6.0.0-1] Added error 55031 for Protocol Violation of type "Text Frame received over Websockets"
-
Product: MQTT Client v3.1.3.10
Company: LabVIEW Open Source Project
Release Date: Mon, 02 Nov 2020 15:11:20 -0800
Packager: Francois Normandin
Description: LV-MQTT-Client
https://github.com/LabVIEW-Open-Source/MQTT-Client
Release Notes: - Cleaned up block diagram of Send Packet method
- Filtered error on self-destructing session which could cause an error in the final cleanup of the client
-
Product: MQTT Broker v3.1.2.9
Company: LabVIEW Open Source Project
Release Date: Mon, 02 Nov 2020 15:10:28 -0800
Packager: Francois Normandin
Description: LV-MQTT-Broker
Native LabVIEW MQTT Broker Server
This project is an exercise in Test-Driven Development, which essentially means that the code is implemented gradually and verified through comprehensive unit tests. At any point in time, the features included in a particular release are fully functional. This also means that all releases have partial functionality.
For a fully compliant MQTT broker, 141 requirements (as listed in the OASIS specification) need to be satisfied. Those requirements have been added as issues and the progress can be tracked on the Github's website. The list of currently supported features is found by filtering the issues to show only the "closed" issues.
https://github.com/LabVIEW-Open-Source/LV-MQTT-Broker
For example, release 1.0 features a functional client and broker but does not support QoS>0, retain messages, duplicate flag, wills or support for session persistency. Some topic sub-level matching is also not yet supported.
Compliance
This project is an implementation of the MQTT 3.1.1 Oasis Standard as defined here:
MQTT Version 3.1.1. Edited by Andrew Banks and Rahul Gupta. 29 October 2014. OASIS Standard. http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html. Latest version: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt->v3.1.1.html.
For those interested, MQTT 5.0 was released in March 2019 and will be tackled by this project when the broker is mature enough for production deployments.
Contribution to the project
It is an all-LabVIEW MQTT broker. The project includes a subset for a MQTT Client, as this is useful for testing the server implementation. All normative requirements are being listed in this project as issues to solve in order to have a fully compliant MQTT broker.
To contribute to this project, you must:
Sign the contributor agreement and agree that your contribution will be licensed under "0-BSD" and attribution will be in the name of "LabVIEW Open Source Project". As a co-author, your contribution will be recognized through the commit logs made on this repository and in your personal Github activity report.
Use LabVIEW 2013 SP1 for source code
Dependencies have to be compatible with "0-BSD" licensing requirements. If in doubt, please ask.
Use the [MQTT-x.x.x-y] format in any commit that addresses a particular requirement whether it relates to bug, question or conformance to the said requirement.
This project is developed using a Test-Driven approach (TDD). This means that ALL requirements MUST have a unit test that confirms that a requirement is met before that requirement can be labeld as "closed".
Excerpt From the OASIS MQTT Specification
==============================
MQTT is a Client Server publish/subscribe messaging transport protocol. It is light weight, open, simple, and designed so as to be easy to implement. These characteristics make it ideal for use in many situations, including constrained environments such as for communication in Machine to Machine (M2M) and Internet of Things (IoT) contexts where a small code footprint is required and/or network bandwidth is at a premium.
The protocol runs over TCP/IP, or over other network protocols that provide ordered, lossless, bi-directional connections. Its features include:
Use of the publish/subscribe message pattern which provides one-to-many message distribution and decoupling of applications.
A messaging transport that is agnostic to the content of the payload.
Three qualities of service for message delivery:
"At most once", where messages are delivered according to the best efforts of the operating environment. Message loss can occur. This level could be used, for example, with ambient sensor data where it does not matter if an individual reading is lost as the next one will be published soon after.
"At least once", where messages are assured to arrive but duplicates can occur.
"Exactly once", where message are assured to arrive exactly once. This level could be used, for example, with billing systems where duplicate or lost messages could lead to incorrect charges being applied.
A small transport overhead and protocol exchanges minimized to reduce network traffic.
A mechanism to notify interested parties when an abnormal disconnection occurs.
Release Notes: [MQTT-2.3.1-6] QoS = 2 is enabled
[MQTT-4.3.2-1] Subscription stores unacknowledged packets in QoS = 1 delivery, until PUBACK received
[MQTT-4.3.3-1] Subscription stores unacknowledged packets in QoS = 2 delivery, until PUBCOMP received
[MQTT-4.8.0-1] Protocol Violation causes a disconnection of the endpoint
[MQTT-6.0.0-1] Sending a Text Frame causes an immediate disconnection
[MQTT-6.0.0-2] MQTT Engine does not assume that control packets are aligned with websocket frame boundaries
[MQTT-6.0.0-3] Client send mqtt as subprotocol
[MQTT-6.0.0-4] Server responds with mqtt as subprotocol
- This release completes the support requirements specifically for Websockets connections.
- This release also brings QoS support for server, both as a receiver (published messages from client) and as a sender (subscriptions forwarding messages to clients)
-
Product: GCentral/LabVIEW IDE Integration v1.0.0.1
Company: GCentral
Release Date: Tue, 27 Oct 2020 14:53:47 -0700
Packager: GCentral
Description: This package installs GCentral's LabVIEW IDE integration, which includes:
* Website launch from the help menu.
Release Notes: Added GCentral Launch to Help Menu
-
Product: OpenSerializer.Base64 v1.0.1.3
Company: LabVIEW Open Source Project
Release Date: Mon, 26 Oct 2020 19:46:56 -0700
Packager: Francois Normandin
Description: Base64 Encoder and Decoder
OpenSerializer Base64 Encoder
Release Notes: - Initial Release of Serializer.Base64 extension for the OpenSerializer classes
- Provides fast encode and decode for Base64 strings
Implementing a version of the fast decode and encode found on NI Forums under MIT License:
https://forums.ni.com/t5/Example-Code/Fast-Base64-Encoder-Decoder-using-LabVIEW/tac-p/3503284/highlight/true#M6526
-
Product: MQTT TCP Connection v3.1.2.6
Company: LabVIEW Open Source Project
Release Date: Sun, 25 Oct 2020 17:00:38 -0700
Packager: Francois Normandin
Description: LV-MQTT-TCP-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection-TCP
This package consists of an extension of the MQTT Connection base class for extending the MQTT framework with a TCP connection support
Release Notes: - Exposed a few accessors, helpful to extend the class
-
Product: MQTT Connection v3.1.2.20
Company: LabVIEW Open Source Project
Release Date: Sun, 25 Oct 2020 16:59:35 -0700
Packager: Francois Normandin
Description: LV-MQTT-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection
This package consists the fundamental building blocks for building MQTT clients and servers:
- Abstract Connection
- Session
- Subscription
- Topic Filtering
- MQTT Base class to generically handle packets (overridable as client or server patterns)
It currently supports version 3.1.1 of the MQTT protocol (Protocol Level 4).
These classes can be used as the basis for client and server by providing a clean and easy control packet handling scheme via OOP.
Release Notes: - Addition of public event for connection and disconnection
- Addition of "reason" code for disconnection
- Addition of "isSessionConnected" method to MQTT Base API
- Session now self-terminates inside the process (more consistent with fire & forget nature of the session within the MQTT Base class)
-
Product: MQTT Client v3.1.2.9
Company: LabVIEW Open Source Project
Release Date: Sun, 25 Oct 2020 16:59:02 -0700
Packager: Francois Normandin
Description: LV-MQTT-Client
https://github.com/LabVIEW-Open-Source/MQTT-Client
Release Notes: - Addition of simpler subscriber and publisher templates (Drop VIs)
- Addition of a reconnecting publishing template (Drop VI)
- Addition of a pub-sub template (Drop VI)
- Fixed issue where publishing only clients would not detect that server disconnected
- Added isConnected and Disconnect from Server in the palette
-
Product: LabVIEW Open Source Palette v1.0.1.6
Company: LabVIEW Open Source Project
Release Date: Sun, 25 Oct 2020 16:58:30 -0700
Packager: Francois Normandin
Description:
Release Notes: - new logo
- about box
- link to GitHub page under Tools menu
-
Product: LabVIEW Open Source Palette v1.0.1.5
Company: LabVIEW Open Source Project
Release Date: Sat, 24 Oct 2020 08:56:58 -0700
Packager: Francois Normandin
Description:
Release Notes: - new logo
- about box
- link to GitHub page under Tools menu
-
Product: MQTT Secured TCP Connection v3.1.1.1
Company: LabVIEW Open Source Project
Release Date: Fri, 23 Oct 2020 15:06:59 -0700
Packager: Francois Normandin
Description: LV-MQTT-Secured-TCP-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection-SecuredTCP
This package consists of an extension of the MQTT TCP Connection base class for Secured TCP connections with TLS 1.2
Release Notes: Initial Release of MQTT TCP TLS Connection (extension of MQTT TCP Connection class)
-
Product: HSE Logger v2.0.4.1
Company: Hampel Software Engineering
Release Date: Fri, 23 Oct 2020 13:18:29 -0700
Packager: Hampel Software Engineering
Description: A flexible and extensible logging system inspired by the Python logging module.
For common logging tasks this logger library has a Quick-API which makes it very easy to integrate and use it in a project without caring about the LVOOP internals. The library provides five log levels (DEBUG, INFO, WARNING, ERROR, CRITICAL) and two targets for the output (file handler, event handler). Because of the LVOOP design it is flexibly usable and every part of it can be extended with custom child classes to implement new features.
This software is published under a free licence, you can use, modify and extend it as you wish. However, if you need commercial support please contact us. We also offer packages to extend the basic functionality (e.g. log rotate for files).
E-Mail: info@hampel-soft.com
More information is available at
https://dokuwiki.hampel-soft.com/code/open-source/hse-logger
The latest release version can be found at
https://gitlab.com/hampel-soft/open-source/hse-logger
Incompatible API-changes
================
Compared to versions < 2.0.0 the methods for creating an object have changed.
It's very likely that your project will have a broken run arrow after updating
to version 2.0.0. In the common use case this affects only the creation of `Handler` objects
when initializing the HSE-Logger. For more information see the examples.
Release Notes: New in version 2.0.4
==============
- The FileHandler class flushes the file in configurable intervals (default is 5 seconds).
-
Product: OpenSerializer.Base64 v1.0.0.2
Company: LabVIEW Open Source Project
Release Date: Fri, 23 Oct 2020 13:10:58 -0700
Packager: Francois Normandin
Description: Base64 Encoder and Decoder
OpenSerializer Base64 Encoder
Release Notes: - Initial Release of Serializer.Base64 extension for the OpenSerializer classes
- Provides fast encode and decode for Base64 strings
-
Product: Certification Authority v1.0.0.5
Company: LabVIEW Open Source Project
Release Date: Fri, 23 Oct 2020 13:10:22 -0700
Packager: Francois Normandin
Description: This package provides a Utility to generate self-signed certificates (root CA and server Trusted Certificate + private key) to be deployed in a local network.
The Utility currently supports Cloudflare's SSL workflow for generating the certificates.
https://github.com/cloudflare/cfssl/
Installation:
After installing the package, you can run the Utility from the Tools menu, under "LabVIEW Open Source Project" submenu.
From the UI, you can get a link to the Cloudflare SSL project page where you can download the CFSSL executable for your system.
Download link: https://github.com/cloudflare/cfssl/releases
Download the version of CFSSL that corresponds to your system, and copy the cfssl.exe file under "<LabVIEW Data>/LabVIEW Open Source Project/cfssl" folder
The file must be renamed to "cfssl.exe" to be detected by the Utility.
Release Notes: Initial release - support for Cloudflare SSL generation of self-signed certificates
-
Product: OpenG LabVIEW ZIP Library v4.0.1
Company: OpenG.org
Release Date: Wed, 21 Oct 2020 12:06:25 -0700
Packager: OpenG.org
Description: The lvzip package contains several routines for operating on zip files.
Version 4.0.1: Pre and Post install no longer depends on installed OpenG File VIs, to make install/uninstall less dependent on package install/uninstall order.
Version 4.0.0: Palette compatiable with OpenG 4.0 release.
Version 2.5.1: Fixes issue with broken VIs in LabVIEW 2009 due to calling (now) private config utilities.
Version 2.5: Changes license of LabVIEW sources from LGPL to BSD, Adds Memory Stream VIs to the palettes, Optimizes ZLIB Extract All Files to Dir, Fixes potential problem where error such as out of disk on finishing to add a file into an archive might get lost meaning that a corrupted archive could result without the user being informed about it, Fixes issue preventing adding files specified by UNC network path to zip archive.
Version 2.4 adds support for direct memory stream handling.
Version 2.3 adds support for transparent Mac Resource file handling through MacBinary encoding.
Version 2.2 adds support for appending files to an existing archive, deleting files from an archive and password support for adding and extracting files.
Release Notes:
-
Product: MQTT Websockets Connection v3.1.1.6
Company: LabVIEW Open Source Project
Release Date: Wed, 21 Oct 2020 08:40:55 -0700
Packager: Francois Normandin
Description: LV-MQTT-Websockets-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection-Websockets
This package consists of an extension of the MQTT Connection base class for extending the MQTT framework with a Websocket connection support
***************************
Depends on WebSockets v2.0.1.40 by MediaMongrels Ltd
Author: Sam Sharp
Copyright: Copyright (c) 2019, MediaMongrels Ltd
License: MIT License
Release Notes: Initial Release of MQTT Websockets Connection (extension of MQTT Connection class)
-
Product: MQTT LocalQueue Connection v3.1.1.5
Company: LabVIEW Open Source Project
Release Date: Wed, 21 Oct 2020 08:40:25 -0700
Packager: Francois Normandin
Description: LV-MQTT-LocalQueue-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection-LocalQueue
This package is an example for how to create a new specific connection package based on the abstract Connection class. The local queue implementation can be used for integration testing when a network connection is not available and when network functionality os not the goal of the test. It can also be used to provide inter-process communication in a way where the connection is injectable at runtime, thus making it possible to change the course of communication through a message-abstarction layer with little pain.
Release Notes: Initial Release of MQTT LocalQUeue Connection (extension of MQTT Connection class)
This package is an example for how to create a new specific connection package based on the abstract Connection class. The local queue implementation can be used for integration testing when a network connection is not available and when network functionality os not the goal of the test. It can also be used to provide inter-process communication in a way where the connection is injectable at runtime, thus making it possible to change the course of communication through a message-abstarction layer with little pain.
-
Product: MQTT Client v3.1.1.5
Company: LabVIEW Open Source Project
Release Date: Wed, 21 Oct 2020 08:39:54 -0700
Packager: Francois Normandin
Description: LV-MQTT-Client
https://github.com/LabVIEW-Open-Source/MQTT-Client
Release Notes: Initial Release of MQTT Client (extracted from MQTT-Broker project) for more lightweight deployment
-
Product: MQTT Broker v3.1.1.8
Company: LabVIEW Open Source Project
Release Date: Wed, 21 Oct 2020 08:39:18 -0700
Packager: Francois Normandin
Description: LV-MQTT-Broker
Native LabVIEW MQTT Broker Server
This project is an exercise in Test-Driven Development, which essentially means that the code is implemented gradually and verified through comprehensive unit tests. At any point in time, the features included in a particular release are fully functional. This also means that all releases have partial functionality.
For a fully compliant MQTT broker, 141 requirements (as listed in the OASIS specification) need to be satisfied. Those requirements have been added as issues and the progress can be tracked on the Github's website. The list of currently supported features is found by filtering the issues to show only the "closed" issues.
https://github.com/LabVIEW-Open-Source/LV-MQTT-Broker
For example, release 1.0 features a functional client and broker but does not support QoS>0, retain messages, duplicate flag, wills or support for session persistency. Some topic sub-level matching is also not yet supported.
Compliance
This project is an implementation of the MQTT 3.1.1 Oasis Standard as defined here:
MQTT Version 3.1.1. Edited by Andrew Banks and Rahul Gupta. 29 October 2014. OASIS Standard. http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html. Latest version: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt->v3.1.1.html.
For those interested, MQTT 5.0 was released in March 2019 and will be tackled by this project when the broker is mature enough for production deployments.
Contribution to the project
It is an all-LabVIEW MQTT broker. The project includes a subset for a MQTT Client, as this is useful for testing the server implementation. All normative requirements are being listed in this project as issues to solve in order to have a fully compliant MQTT broker.
To contribute to this project, you must:
Sign the contributor agreement and agree that your contribution will be licensed under "0-BSD" and attribution will be in the name of "LabVIEW Open Source Project". As a co-author, your contribution will be recognized through the commit logs made on this repository and in your personal Github activity report.
Use LabVIEW 2013 SP1 for source code
Dependencies have to be compatible with "0-BSD" licensing requirements. If in doubt, please ask.
Use the [MQTT-x.x.x-y] format in any commit that addresses a particular requirement whether it relates to bug, question or conformance to the said requirement.
This project is developed using a Test-Driven approach (TDD). This means that ALL requirements MUST have a unit test that confirms that a requirement is met before that requirement can be labeld as "closed".
Excerpt From the OASIS MQTT Specification
==============================
MQTT is a Client Server publish/subscribe messaging transport protocol. It is light weight, open, simple, and designed so as to be easy to implement. These characteristics make it ideal for use in many situations, including constrained environments such as for communication in Machine to Machine (M2M) and Internet of Things (IoT) contexts where a small code footprint is required and/or network bandwidth is at a premium.
The protocol runs over TCP/IP, or over other network protocols that provide ordered, lossless, bi-directional connections. Its features include:
Use of the publish/subscribe message pattern which provides one-to-many message distribution and decoupling of applications.
A messaging transport that is agnostic to the content of the payload.
Three qualities of service for message delivery:
"At most once", where messages are delivered according to the best efforts of the operating environment. Message loss can occur. This level could be used, for example, with ambient sensor data where it does not matter if an individual reading is lost as the next one will be published soon after.
"At least once", where messages are assured to arrive but duplicates can occur.
"Exactly once", where message are assured to arrive exactly once. This level could be used, for example, with billing systems where duplicate or lost messages could lead to incorrect charges being applied.
A small transport overhead and protocol exchanges minimized to reduce network traffic.
A mechanism to notify interested parties when an abnormal disconnection occurs.
Release Notes: [Fix: 149] Duplicate subscriptions will not duplicate the number of publish packets received
[Fix: 152] All asynchronously launched processs now have a reference to front panel to force in-memory for EXE builds (server and client)
[MQTT-7.1.2-1] Added test for conformant client over at least one lossless, ordered protocol (TCP)
[MQTT-3.3.2-2] Publishing a topic containing a wildcard gets rejected with error 55015
-
Product: MQTT TCP Connection v3.1.1.5
Company: LabVIEW Open Source Project
Release Date: Wed, 21 Oct 2020 08:38:07 -0700
Packager: Francois Normandin
Description: LV-MQTT-TCP-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection-TCP
This package consists of an extension of the MQTT Connection base class for extending the MQTT framework with a TCP connection support
Release Notes: Initial Release of MQTT TCP Connection (extension of MQTT Connection class)
-
Product: MQTT Connection v3.1.1.13
Company: LabVIEW Open Source Project
Release Date: Tue, 20 Oct 2020 16:12:07 -0700
Packager: Francois Normandin
Description: LV-MQTT-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection
This package consists the fundamental building blocks for building MQTT clients and servers:
- Abstract Connection
- Session
- Subscription
- Topic Filtering
- MQTT Base class to generically handle packets (overridable as client or server patterns)
It currently supports version 3.1.1 of the MQTT protocol (Protocol Level 4).
These classes can be used as the basis for client and server by providing a clean and easy control packet handling scheme via OOP.
Release Notes: Initial Release of MQTT Connection and MQTT Base to remove client and broker code from this library. This will provide a more lightweight code base for those developers keen on creating their own client and brokers built on smaller parts.
This library abstracts the connection class which will be used to provide a dependency injectable abstraction for the client and server architecture. The abstract connection ties into the base class through the use of a session.
-
Product: LabVIEW Open Source Palette v1.0.0.2
Company: LabVIEW Open Source Project
Release Date: Tue, 20 Oct 2020 15:38:51 -0700
Packager: Francois Normandin
Description:
Release Notes:
-
Product: Unicity v1.1.0.6
Company: LabVIEW Open Source Project
Release Date: Tue, 20 Oct 2020 15:37:39 -0700
Packager: Francois Normandin
Description: Unicity is a unique name management library to keep track of modules or subsystems through unique IDs, Fully Qualified Names linked to a composition hierarchy.
The tools include configurable Registry for unique string generation, name incrementation formatting, etc.
Release Notes: - Added a default registry VI for short
- Moved to LabVIEW open Source Project palette
[VI Package Network] MQTT Websockets Connection v3.1.2.9
in VI Package Network - New Packages
Posted
Product: MQTT Websockets Connection v3.1.2.9
Company: LabVIEW Open Source Project
Release Date: Mon, 02 Nov 2020 15:26:41 -0800
Packager: Francois Normandin
Description: LV-MQTT-Websockets-Connection
https://github.com/LabVIEW-Open-Source/MQTT-Connection-Websockets
This package consists of an extension of the MQTT Connection base class for extending the MQTT framework with a Websocket connection support
***************************
Depends on WebSockets v2.0.1.40 by MediaMongrels Ltd
Author: Sam Sharp
Copyright: Copyright (c) 2019, MediaMongrels Ltd
License: MIT License
Release Notes: [MQTT-6.0.0-1] Added "write text frame" to be used for unit testing
[MQTT-6.0.0-1] Error 31 has been set as the code for receiving text frames
[MQTT-6.0.0-3] Client includes subprotocol "mqtt" in send headers
[MQTT-6.0.0-4] Server includes subprotocol "mqtt" in return headers
Known issue:
- Websockets 2.0 API does not support case-insensitive headers, resulting in HiveMQ not being compatible for the moment. (https://github.com/MediaMongrels-Ltd/LabVIEW-WebSockets-API/issues/7)
Package Homepage