OpenNNGP
From OpenCITT
Here you will find information about the TCP/UDP based "open NetNode Grid Protocol".
openNNGP refers to the "open NetNode-Grid-Protocol", an TCP and/or UDP based open network protocol specification defined by the opencitt team it will be used to enable standardized communication between openCITT and some decentralized NetNodes building a IP-net based data grid
This is still in specification phase, please check back later.
Some thoughts
- use connection based TCP vs. packet based UDP - a netnode registrates with another to get some of its data, i.e. openCITT registrates with a NNGP-enabled mcu unit with an speed sensor attached to get some dead-reckoning capabilities for map-navigation within tunnels with TCP this might be done by establishing a connection and sending message to request the speed signal at a desired update rate
Protocol version 1 definition:
- version 1 only supports UDP on the openNNGP port _t.b.d_ - data server has to send openNNGP packets freerunning to data client's ip/mac without the need of initialization at the moment - data is x86 format (little/big endian?!?, tell me) - one udp packet consists of an openNNGP header and a limited number of payload packages to not exceed the version 1 udp packet maximum length of 255 bytes - the version 1 header consists of [version(one byte),length(one byte)] where version is always 0x01 and length is the number of bytes of header+payload thus limiting one openNNGP packet to a maximum size of 255 bytes. - one payload package consists of a payload command byte (0x01=data_float), option byte for additional command options, two byte data-id (identifying data channel), 4 byte float containing data value - see openNNGP commands for defined payload commands
openNNGP v1 Frame
- header * payload * payload * ...... *
where header is
- 0...........7*8......15*
- 10000000*Length*
and payload is
- 0...........7*8......15*16....23*24....31*32...........63*
- 10000000*option *ID_L *ID_H *Data *
