Now … I can write something !!
About two weeks ago I received a great present from Secret Labs (thanks to Chris Walker) … the new Netduino 3 Wi-Fi board !
This time the M2Mqtt library has undergone some "important" changes in terms of new features and bug fixing. I have to admit that the improvements are mainly due to the people who use it and report me to add new features or bugs to fix. In addition to several issues reported on CodePlex, this time also Clemens Vasters, PM on Microsoft Azure, submitted some improvements to be applied in the context of SSL / TLS authentication. In fact, as already tweeted several weeks ago, Clemens used my library to run tests on the Reykjavik project (Device Gateway) presented at Build in 2014 and I can only be honored.
In this case, the improvement is closely related to the .Net Framework version, since it is the only version to support what has been added. In particular, the MqttClient class makes available other constructors which can provide the following callbacks :
RemoteCertificateValidationCallback : allows the user to execute further checks on the validation of the ...
The M2Mqtt library is now at 188.8.131.52 release with the new tracing feature in debugging mode.
The project has the new Trace class that exposes the static member TraceListener declared as the following delegate :
1: // delegate for writing trace
2: public delegate void WriteTrace(string format, params object args);
In this way, it is possibile to chose our preferred tracing mode setting a method to this delegate. Furthermore, it is possibile to set the tracing level using thet static member TraceLevel with the following possible values :
1: /// <summary>
2: /// Tracing levels
3: /// </summary>
4: public enum TraceLevel
6: Error = 0x01,
7: Warning = 0x02,
8: Information = 0x04,
9: Verbose = 0x0F,
10: Frame = 0x10
A simple example of tracing usage could be the following :
1: Trace.TraceLevel = MqttUtility.TraceLevel.Verbose | MqttUtility.TraceLevel.Frame;
2: Trace.T ...
In the last days, I saw some interesting things around the future of .Net Micro Framework …
First, a post in the GHI Electronics community forum that speaks about the 2014 plan for .Net Gadgeteer. Gary, GHI employee, says :
We have some very exciting news to share with you today. First of all, we have been communicating your feedback to Microsoft and they have been very responsive. We can't share all the details yet but we can tell you that you will be very happy with what Microsoft will announce very soon.
There are two main points about it :
GHI reported to Microsoft all feedbacks by .Net Micro Framework and Gadgeteer users and I think with the objective to improve the framework;
There are more details and news that Microsoft will announce very soon, so in the next days (week ? months ?) we will have new official information about .Net Micro Framework future;
Of course … the above are great points ! ...
Friday, June 6th IoT@Work event was held in Rome at the Microsoft headquarters and it was organized by the DomusDotNet community and the online TinyCLR.it community (of which I am member).
Thanks to the hospitality of Massimo Bonanni and all the guys in the community, we spent an entire day dedicated to the Internet of Things.
In the morning, Mirco Vanini started showing us what Internet of Things is and what it is not with a series of real use cases and future projections of this new business. The next session saw myself as the lead in tackling a technical point of view of main protocols that are used in the IoT, each with their own advantages and disadvantages. The morning sessions were completed by Lorenzo Maiorfi who spoke of "flow-programming", its application in the IoT and two main tools that can be used for this purpose: NodeRed and Orleans.
Development of M2Mqtt library continues .... now reached the version 184.108.40.206 !
This time the new features are related to two requests from people who are using it.
First, I added more overloads for Connect() method, because from when I removed the default parameters (for compatibility with older versions of the .Net Framework) I left the more complex constructor that requires all parameters. Many people, not knowing well the MQTT protocol, found themselves in difficulty in deciding what values to pass to lesser known parameters (will message, clean session, ...).
A further new feature concerns the client disconnected event (from the MQTT broker) that was requested on the official CodePlex web site. The MqttClient class exposes MqttMsgDisconnected event that is raised when a condition of connection failure with the broker is detected and typically in two cases :
when there isn’t network traffic, when client sends the PINGREQ message (relative to the keep-alive) it doesn’t receive ...
If using 220.127.116.11 version you realize that Connect and Disconnect events are not raised ... it is correct ... they are not handled in the client and you need to update the library or ignore them !
I released an update M2Mqtt library (version 18.104.22.168) that lays out this oversight.
Following the code merge between the M2Mqtt client library and the future GnatMQ broker I made the mistake of including the SUBSCRIBE, UNSUBSCRIBE, CONNECT and DISCONNECT messages handling also in the client (of course without any sense) with the corresponding events.
The update is available as always on Nuget and I proceeded to update the corresponding M2Mqtt4CE component for Windows Embedded Compact 2013.
Also this time an update arrives on time for my M2Mqtt library now reached to version 22.214.171.124 !
The main updates concerning better management of QoS Level 2 , some client properties exposed to the outside but especially the fact that it assessed and added some requests that I received by users that obviously thank you !
Also, in some parts of the source code you will see a compilation directive that is conditional on the definition of the symbol BROKER ... why ? I standardized the library code of M2Mqtt with the code of a MQTT broker that I am developing and which will shortly be released in beta version. Its name is GnatMQ and the project is already published online on CodePlex and then open source. Please note that currently it is still a version in development and not completely stable but the release is imminent !
In addition to updating the project on CodePlex , I updated its package on Nuget ( which has now passed 1000 downloads ! ), the code in the Microsoft Gallery and the project M2Mqtt4CE to in ...
My M2Mqtt open source library has finally come to version 3.0 with two important news !
In the first place, the operations of publish, subscribe and unsubscribe have become completely asynchronous. Until the previous version , the corresponding methods were synchronous even if the library raised related events on published message and subscription / unsubscription occurred. In particular , in the Publish() method the exchange of messages with the broker was run to ensure the required QoS ( PUBACK for QoS 1 , PUBREC , PUBREL and PUBCOMP for QoS2 ) while in the Subscribe() and Unsubscribe() methods handled the acknowledge ( SUBACK and UNSUBACK ). Now , these methods not bother to put a message in a queue and immediately return the message id itself , which is why there is a "breaking change" on the Subscribe() method that does not return the array with the "granted" QoS level. This array is still provided at the end of the asynchronous operation in the event args object of the corresponding event.
I tal ...
This time Creg Duncan had to give more than usual explanations to justify the very first constant presence on the Coding4Fun blog!
“Today's Hardware Friday post is another project from our Friend of the Blog, Paolo Patierno (yeah, yeah, I know, it seems like I'm posting his stuff all the time, but hey, it's cool stuff) !”
I'm glad that my "small" open source projects had quite successful and this is the time of uNFC library that implements support for the NXP PN532 NFC chip for all Windows Embedded platforms (from. NET Micro Framework to Windows Embedded 8 passing Windows Embedded Compact).
About this library ... tomorrow it will be featured at the Microsoft Embedded Conference in Naples in a demo on Smart Home & Smart Factory System!
As always .... it is a pleasure to be there!