Senior Software Engineer, Microsoft MVP on Windows Embedded and IoT. Devices to cloud, IoT, M2M and embedded systems.
Also this time an update arrives on time for my M2Mqtt library now reached to version 188.8.131.52 !
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 ...
Those who follow my blog know that the publisher Packt Publishing was a sponsor of the Microsoft Embedded Conference 2014 in Naples on February 15th.
I want to speak about an interesting promotion that is taking these days to celebrate the 2,000 titles and that is to purchase a book to receive another for free !
At the following link you can find all the information on this incredible offer !
We are to the last post of this tutorial that guides us through the creation of a proprietary component (using the M2Mqtt library as an example) for Platform Builder and its inclusion in the Windows Embedded Compact 2013. In this final post we will see how you can use this component in a sample managed application using also debugging.
SDK and Application Builder
When we build Windows Embedded Compact 2013 image that we have to provide to the software development team that will implement the high-level application for the target device, we must necessarily also make available its SDK. It contains all the header files and static libraries that developers can use to build applications in native code, avoiding the use of the APIs that we have not included in our image. Typically we would not need the SDK with managed applications based on .Net Compact Framework but unfortunately without any SDK installed, Visual Studio 2012 does not make available any templates for applications based on Windows Embedde ...
This is the fourth post of this tutorial that has as its object the development and use of a proprietary component into a Windows Embedded Compact in 2013 operating system image. In the first post, we saw how to sign an assembly compiled for the .Net Compact Framework 3.9 so you can register it into the GAC (Gloabal Assembly Cache) and to do so, we used the M2Mqtt library assembly. In the second post, we have developed a component that is visible in the Platform Builder catalog items and allows to easily include this library with all the settings required for the registration in the GAC. In the third post, we saw how you can deploy your component to any third party and how simple it is to include it in the OS image. At this point, the next step is to prepare the image with some debugging tools for the sample application in the last post.
The Core Connectivity framework
One of the main features of Windows Embedded Compact from the first releases is that you can debug managed applications (and not) de ...
In the previous post, using the tool CEComponentWiz, we have created a custom component that is visible in the Platform Builder catalog items.
We used the assembly of M2Mqtt library compiled for .NET Compact Framework 3.9 and created the corresponding component that I made publicly available on CodePlex under the name M2Mqtt4CE !
M2Mqtt4CE : component description
This component can be useful to any OEM that should produce Windows Embedded Compact 2013 operating system image that has a client for MQTT onboard and developed with .Net Compact Framework 3.9. Assuming to be OEM, we can download the M2Mqtt4CE package from CodePlex and extract the contents to the \WINCE800\3rdParty folder (as described in the ReadMe.txt file attached).
The main files of the component are the following :
M2Mqtt.dll (located in the Resources folder) is the signed assembly of M2Mqtt library that is included in the image and registered in the GAC;
M2Mqtt.bib is the BIB file that determines th ...
In this post, I talked about a bug in the current release of Windows Embedded Compact 2013 to which the build system was no longer able to recognize the .Net Framework after the update from 4.5 to 4.5.1 version. In the same post I also described a possible workaround to be able to continue to use Platform Builder with no problems waiting for an official patch from Microsoft.
With the January 2014 update that you can download here ... the bug has been fixed!
If you have used my workaround, you should restore everything as it was before starting from the sources.ce file in C:\WINCE800\public\common\oak\misc (removing the variable _DOTNET40ROOT) and restore the system PATH variable.
After this recovery step ... perform the update and everything will work as always!
In the previous post we saw how to sign an assembly (my M2Mqtt library) to include it directly into the Windows Embedded Compact 2013 operating system image and register it into the GAC (Global Assembly Cache). During this post, we will see how it is possible to make a component for the Platform Builder catalog items through which include our library into the image in a very simple way.
How to create a component ? The available solutions
When we build an Windows Embedded Compact 2013 operating system image for a target device, there is often the need to add our custom component (an application, a library or any other type of file) to the image itself, without using the Platform Builder catalog items because this component is proprietary and it isn’t in the catalog itself.
Unfortunately, in many cases, the simplest solution but also less "elegant" is to copy the files to include in the folder of our OSDesign (operating system solution) and change the corresponding BIB file to set inclusion int ...
With this post, I start a short tutorial on using a proprietary library (developed by us with .NET Compact Framework 3.9) on Windows Embedded Compact 2013, from the signing of the assembly (for registration in the GAC) to a sample application project, through the realization of a component exposed by the Platform Builder (in catalog items) that we can include in the OS image trivially.
I will cover :
How to sign an assembly;
Creating a component for catalog items in Platform Builder;
Distribution and inclusion of the component in the OS image;
Support for application debugging for the example that will use the component;
Development of a sample application;
I'll use my M2Mqtt (MQTT Client Library for. Net) project as a reference, assuming that it is the component that we want to include in the image, so that third parties can develop an application that uses it having already onboard on a target device wit ...
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 ...
On Saturday 15th of February was staged the second edition of Microsoft Embedded Conference which was held at the Holiday Inn in Naples and organized by the DotNetCampania community (I am a member of it), TinyCLR.it and Embedded101, this community that is a reference on Windows Embedded of which, I’m a "board of directors" member since November 2013.
Also this year there was a good turnout of attendees even though it was Saturday, because the main topic was the Internet of Things and M2M Communication of which we hear persistently in the last period as the business of the future for the big network.
At 8:00, the team was ready for the preparations and organization in order to accommodate very well the attendees and ensure that the event will start on time. As with all events, we started with the keynote of our president Michele Aponte, who presented the community and to whom I have given ...
View this page in another language: