protobuf - Google Protocol Buffers

Go To Last Post
6 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

https://developers.google.com/protocol-buffers/docs/overview

 

I asked about protocols for streaming data, and several people suggested protobufs:

 

https://www.avrfreaks.net/commen...

 

https://www.avrfreaks.net/commen...

 

Taking that further, my understanding is that things like error detection & message acknowledgement are beyond the scope of protobufs - is that right? 

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Protobufs are just about getting data in a known layout from one place to another. Nothing more. They were developed by Google for their in-house data exchanges where they have hundreds of different architectures communicating. I think most of the actual communication is expected to have been done across TCP/IP so the data integrity is guaranteed.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

BTW I found this interesting analysis:

 

http://reasonablypolymorphic.com/blog/protos-are-wrong/

 

which actually came from an initial google hit of:

 

https://news.ycombinator.com/item?id=18188519

 

which makes for very entertaining reading!

 

(what I was actually trying to find in fact was others documented experience of how they packetized the data for transport).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Protobufs are just about getting data in a known layout from one place to another. Nothing more

Yes, that's what I was getting - just checking for confirmation.

 

clawson wrote:
others documented experience of how they packetized the data for transport

I came across this:  https://nats-io.github.io/docs/ - but it adds a whole lot more than just the packetisation & transmission

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What is the comms channel anyway? If just UART or something I'm sure there's any number of error detecting/correcting packetisation protocols one could find and employ.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, UART - so that's true.

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...