[TriEmbed] Anybody using this with C?

Jon Wolfe jonjwolfe at anibit.com
Mon Nov 22 12:55:39 CST 2021


Carl, that is not correct. I have worked with nanopb specifically with 
two micros passing data encoded with nanopb over UART and I2C. Also, I'm 
99.9% certain that the on-the-wire format used by nanopb is compatible 
with the mainstream protocol buffers format used on desktop/servers. 
I've used the full protocol buffers libraries for both communication 
over sockets and for serializing data structures to disk on PC.

nanopb does not deal directly with the transport of the data (eg UART, 
I2C, or sockets), it just can convert a data structure back and forth 
from a block of bytes. What you do with that block of bytes is up to 
you. It's my understanding that that is pretty much what the Amazon 
library does as well.

The main difference from my brief reading about Ion as that it's "self 
describing" where the data contains a description of itself. Protobuf 
doesn't do that, but you share ".proto" files between both sides and the 
protoc compiler generates wrapper code in the language you're using. It 
has capability to handle backward compatibility, so you can modify the 
data structures, but both sides do need to have some basic idea about 
the structure, it's not inherent to the data stream. Proto bufs let you 
have a strongly typed contract on both ends of a communication channel, 
and it sounds like Amazon Ion lets you have that contract more loosely 
defined.

The main Protocol Buffers project has a companion project called GRPC 
that builds on top of Protocol Buffers and is geared toward "client 
server" communications. That library does handle the transport of data 
as well as the packaging of it. It generates server and client code for 
you to handle the transport. Think of that like REST, but with a binary 
format and strongly typed contract.


On 11/22/2021 1:37 PM, Carl Nobile via TriEmbed wrote:
> So the two packages mentioned in this thread do not do the same thing 
> and cannot replace each other.
> The 'amason.ion' package is a data format structure implemented using 
> JSON, whereas 'nanopb' is a buffering system specifically for 
> microcontrollers. In other words, 'nanopb' CANNOT be sent over a wire 
> protocol where amazon.ion can be.
> Interestingly they can be used together where amazon.ion can be 
> buffered by 'nanopb' which may help with larger 'amazon.ion' data packets.
> ~Carl
>
>
> On Mon, Nov 22, 2021 at 11:30 AM Peter Soper via TriEmbed 
> <triembed at triembed.org> wrote:
>
>     Nanopb looks way cool. Thanks!
>     _______________________________________________
>     Triangle, NC Embedded Computing mailing list
>
>     To post message: TriEmbed at triembed.org
>     List info:
>     http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
>     TriEmbed web site: http://TriEmbed.org <http://TriEmbed.org>
>     To unsubscribe, click link and send a blank message:
>     mailto:unsubscribe-TriEmbed at bitser.net?subject=unsubscribe
>
>
>
> -- 
> --------------------------------------------------------------
> Carl J. Nobile (Software Engineer/API Design)
> carl.nobile at gmail.com
> --------------------------------------------------------------
>
> _______________________________________________
> Triangle, NC Embedded Computing mailing list
>
> To post message:TriEmbed at triembed.org
> List info:http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
> TriEmbed web site:http://TriEmbed.org
> To unsubscribe, click link and send a blank message:mailto:unsubscribe-TriEmbed at bitser.net?subject=unsubscribe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20211122/3ba9b84f/attachment.htm>


More information about the TriEmbed mailing list