<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Liam Powell&#39;s Blog</title>
    <link>https://blog.liampwll.com/</link>
    <description>Recent content on Liam Powell&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en-GB</language>
    <lastBuildDate>Wed, 31 Dec 2025 15:34:03 +0800</lastBuildDate>
    <atom:link href="https://blog.liampwll.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Better Communication Protocols with Ada&#39;s Record Representation Clauses</title>
      <link>https://blog.liampwll.com/posts/ada_record_representation_protocols/</link>
      <pubDate>Wed, 31 Dec 2025 15:34:03 +0800</pubDate>
      <guid>https://blog.liampwll.com/posts/ada_record_representation_protocols/</guid>
      <description>&lt;p&gt;Efficient data transmission to microcontrollers often requires making a choice between simple code and extra overhead.&#xA;Common serialization libraries such as Nanopb keep code simple but impose processing and memory costs to deserialise data in to language-native types, while manual binary packing introduces extra complexity and risks of errors.&lt;/p&gt;&#xA;&lt;p&gt;Ada provides a mechanism called representation clauses which allow developers to define the exact bit-level layouts of data structures and work with them directly without any need for external tools, manual packing, or extra memory for deserialisation. Developers do not even need to worry about designing these layouts from scratch as the compilers can take a record definition and give the developer a tightly packed representation clause to use as a starting point.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
