Also this time an update arrives on time for my M2Mqtt library now reached to version 220.127.116.11 !
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 ...
Read the rest of entry »
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 ...
Today, preparing a Windows Embedded Compact 2013 image for an eBox 3310A and for the demo at Microsoft Embedded Conference in February 2014, the Windows 7 operating system (a virtual machine) decides to upgrade the version of .Net Framework from 4.5 to 4.5.1.
Reboot the system and resume the job ... but the build system for Visual Studio 2012 has gone mad and the next attempt to build fails!
A warning indicates that the .Net Framework 4.5 is not installed on the system and an obvious fatal error indicates that the compilation can not be done!
I have found no official news from Microsoft to fix this problem but I have circumvented the problem in the following way ....
First I open the file indicated by the fatal error, ie sources.ce in the path C: \ WINCE800 \ public \ common \ oak \ misc, which reports the error in case the environment variable _DOTNET40ROOT is empty.
!IF "$(_DOTNET40ROOT)" == ""
! ERROR Error: Microsoft.NET Framework v4.x must be installed on your machine. ...
The Platform Builder build system is quite complicated but at the same time extremely powerful. In order to save valuable time during the compilation of our operating system image, it is necessary to know it in details so that we can avoid unnecessary operations. In addition, there are a number of "tricks" that allow us to make it much faster. Among these, there is the possibility to leverage the compilation on more "core" of our CPU, whereas all modern PCs have now from 2 "core" up.
The key of this possibility is the environment variable BUILD_MULTIPROCESSOR, whose meaning can be interpreted in the wrong way if you do not carefully read the documentation. Mistakenly, you might think that setting it to 0, the compilation on more "core" is disabled and vice versa activated by setting it to 1. It is not so!
Referring to the documentation on MSDN,, if you set the value to 0 you will let the system to automatically detect the number of "core" of the CPU and use all for the compilation by creating an appropriate ...
View this page in another language: