Share the same values across several board of a system

Hi,

i’m starting this project

https://mfsharedcontext.codeplex.com/

The goal is to have a base library that can be used to “share” some setpoints across different microframework board interconnected in different ways… ethernet, serial or 2.4GHz rtx … the comunication channels doesn’t matter… the goal is that in a reasonable timeslot all the boards will have the same value for the same variables…

very usefull for a network of sensors!!!

Any comment? any suggestions?

It seems to me this is basically a bi-directional synchronization framework for .NETMF.

I am not sure if you have any specific application for it, but you need to have some logic in there to deal with conflicts.
E.g. the same variable was changed on more than one node in your network - how is that resolved?

A framework like that is not trivial to build if you want to cover all possible edge cases.

You may want to look at “Distributed Hash Table” for some of the issue involved (Distributed hash table - Wikipedia).
Microsoft has a product called “Microsoft Sync Framework” (Microsoft Sync Framework - Wikipedia) but that doesn’t have a .NETMF client it seems.

It might be easier to start out with a “star” network topology, where each node registers itself with a central node and submits or receives it’s variables/settings from the central node. This is usually what happens in home sensor networks anyway, there is a central node that is connected to the internet, potentially has a web front-end, has a way to store data etc.

mikep you got it!

The idea is exactly a bi-directional synch framework.

The idea is to be able to use a generic byte[] communication channel (ethernet or 2.4Ghz link with low cost devices like the one i told in the initial post).

Regarding the topology the idea is to to be able to “pluigin” the routing engine independently (you just need to implement some interfaces i will define).

Regarding the synchronization schema initially i suppose an approach like “last value win”. Other schema can be implemented later.