Florent Clairambault

The M2MP protocol

Moved to github This has been moved to github. Still as a backup: Motivations Transmit and receive in real-time Transmit as few data as possible Send and receive any kind of data Basics So the basic ideas are to : * Keep a TCP connection open all the time by sending regular keep-alive frames. * Define named channels that are only transmitted once (to reduce data consumption) * Send byte array, and two-dimensionnal byte arrays on these channels * We rely on the TCP protocol for packet checksuming, packet ordering and every little things it does very well

TC65 : Settings management

Someone recently asked me and the javacint group how we should handle settings. So I’ll give you two answers : ejw’s reply : You should use some simple DataInputStream and DataOutputStream objects. Mine : If you only store simple values (numbers and text), you should use a simple text file. It enables you to easily see and modify settings outside the TC65. So, my little gift of today will be a simple settings management class.

The waspmote

For those of you that take an interest in M2M and/or embedded things. You should look at the Waspmote. This is a generic hardware that can be customized to fit any need. Communication : GPRS / Wifi / ZigBee / USB Location : GPS Power usage : Low consuption, battery or solar as power input Storage : SD Card (2GB), no other storage memory Sensors : Everything you might need (really impressive set of sensors) I looked at the API and it’s in C (pretty low level, you have to free everything) but everything seems to be handled at a high level.

.Net, Flex and WebORB.Net

I’ve been working on a project where we had to use Flex on a .Net environment and it had to be realtime. I was a little worried at first that it could be tricky to set up. But with WebORB.Net it’s pretty easy. We used the integrated RTMP (Real Time Messaging Protocol) messaging server. It’s almost like using WCF. The most important differences are that, by default, objects are transmitted as Hashtable and calls can’t be synchronous.


I talked some time ago about a library I made to take advantage of the kernel network events. I now release it and explain how to use it. It can help people to do some little network software without knowing where to start from. I built it for network servers made to communicate with remotely connected embedded chips. I wanted to be able to always stay in touch with a huge number of chips without any real cost.