title: A simple implementation of serial communication between two software entities (Uart / I2C / etc.)
body: <p>I've done many projects that include a PC &amp; an arduino / PLC / some kind of other microcontroller / processor, and in every project we had a different protocol used for communication between the PC application and the embedded one. Usually the hardware / controller developer invents a simple protocol which always changes throughout the project, and goes into the form of </p>
  
  <pre><code>Barker | Size | Data | Checksum
  </code></pre>
  
  <p>This time I'm implementing both sides, so I figured - This has been done a million times before. There must be a base protocol for these things with implementations in C, C#, Java, and such.
  What I'm looking for is a <strong>lightweight</strong> layer that transfers stream based serial communication into a message based one.</p>
  
  <p>I've been looking around for one for a while, but I couldn't find anything on my own.
  Do you happen to know one?</p>