Last updated 03-14-99

What is SNAP?  SNAP (Scalable Node Address Protocol) is a simple and light weight protocol that was designed by the good folks at  HTH  for use with their home automation products.  SNAP is very easy to implement on inexpensive processors, like the 8051, and the PIC family of devices.

Why SNAP-Linux?  Why not? I use Linux as my development platform of choice. As an added benefit, just about anything that I develop on a Linux platform will compile without any changes (or some minor ones) on any of the other UNIX platforms, such as Solaris, or FreeBSD.  Also, most (if not all) of the development that I have seen for SNAP has been on Windows platforms, and the embedded processors themselves. I could not find anyone working on SNAP for Linux, so I decided to give it a shot.

What are you going to use SNAP for?  Well, I like to work on embedded systems, and there is always a need for a protocol for communications between these embedded systems themselves, on a peer-to-peer level, or communications with a larger host.  Most of the time, one can not support the overhead required to use TCP over a PPP link on these smaller embedded systems. Also, a protocol like SNAP has the added advantage of being very useful on shared media, like RS485, or Power Line Carrier (PLC). Please take a look at the documentation and ideas for the SNAP protocol at the SNAP details page from HTH .

What is here now? Well, not too much. I just started working on this project a little while ago, and the only stuff that is here now are the first few C++ classes for this project, and some support files. You can find those files  Here.  The classes that are in the tar file are snap_tx, the SNAP packet encoder, and snap_rx, the SNAP packet decoder, and some classes for calculating CRCs and Checksums. There is also an example top level C++ program file that uses the encoder and decoder classes, and passes the system time through them, showing that, indeed, packets are encoded and decoded. That top level file is called, and there is also a Makefile to build the test bed program.

I'll be working more on the SNAP-Linux project as time permits. If you have comments, suggestions, or code to contribute, please email me ; carl at icmp dot com


Carl Walker