<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Wireless MCUのトピックRe: Exporting Persistent Data on JN516x to Host</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966149#M7923</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;I'm using JN-AN-1216 application and export PDM to host.&lt;/P&gt;&lt;P&gt;Just the last step.&lt;/P&gt;&lt;P&gt;I added pdm_host.c file to project&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in Makefile:&lt;/P&gt;&lt;P&gt;PDM_BUILD_TYPE = _NONE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ifeq ($(PDM_BUILD_TYPE), _NONE)&lt;BR /&gt;APPSRC += pdm_host.c&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;---------------------------------&lt;/P&gt;&lt;P&gt;in app_start.c&lt;/P&gt;&lt;P&gt;vLog_Printf ( TRACE_APPSTART,LOG_DEBUG, "\n\nInitialising \n" );&lt;BR /&gt;#ifdef PDM_NONE&lt;BR /&gt; PDM_vWaitHost();&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PRIVATE void vInitialiseApp ( void )&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;#ifdef PDM_EEPROM&lt;BR /&gt; PDM_eInitialise ( 63 );&lt;BR /&gt;#else&lt;BR /&gt; /* USING HOST TO SAVE PERSISTENT DATA */&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;----------------------------------&lt;/P&gt;&lt;P&gt;I have to define&amp;nbsp;a few&amp;nbsp;function to building get success (they are in pdm_host.c)&lt;/P&gt;&lt;P&gt;PDM_eSaveRecordData&lt;/P&gt;&lt;P&gt;PDM_eReadDataFromRecord&lt;/P&gt;&lt;P&gt;PDM_vDeleteDataRecord&lt;/P&gt;&lt;P&gt;PDM_vDeleteAllDataRecords&lt;/P&gt;&lt;P&gt;PDM_teStatus PDM_eGetBitmap&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In fact, these function look like:&lt;/P&gt;&lt;P&gt;PUBLIC PDM_teStatus PDM_eSaveRecordData(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint16 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u16IdValue,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*pvDataBuffer,&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint16 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u16Datalength)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return PDM_E_STATUS_OK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;It is empty. What do I need to fill?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 17 Sep 2019 08:44:41 GMT</pubDate>
    <dc:creator>nguyenanhgiau10</dc:creator>
    <dc:date>2019-09-17T08:44:41Z</dc:date>
    <item>
      <title>Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966144#M7918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;As I know, the ZigBee Control Bridge node by default uses the internal EEPROM to hold persisted data. This is about 4KByte in JN5169 device and can restrict network size.&lt;/P&gt;&lt;P&gt;To overcome this, we need to export the data persistence to the host device.&lt;/P&gt;&lt;P&gt;How do I enable this feature?&lt;/P&gt;&lt;P&gt;p/s: I am using JN-AN-1216-ZigBee-3-0-IoT-ControlBridge&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Aug 2019 03:19:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966144#M7918</guid>
      <dc:creator>nguyenanhgiau10</dc:creator>
      <dc:date>2019-08-26T03:19:19Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966145#M7919</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Giau,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am not sure what is the data that you need.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to get the list&amp;nbsp;of neighbouring nodes, you could send to the router a&amp;nbsp;ZPS_eAplZdpMgmtLqiRequest, the coordinator will return the list of devices depending on the index that you send.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, you could create a serial command, a new case switch case calling the&amp;nbsp;iAHI_ReadDataFromEEPROMsegment and send through UART.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Aug 2019 21:08:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966145#M7919</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2019-08-26T21:08:11Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966146#M7920</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/mario_castaneda"&gt;mario_castaneda&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;I see in the document JN-AN-1216-ZigBee-3-0-ControlBridge, &lt;STRONG&gt;section B.4.&amp;nbsp; &lt;SPAN class=""&gt;Exporting Persistent Data to Host.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;"T&lt;EM&gt;&lt;SPAN class=""&gt;he ZigBee Control Bridge node by default uses the internal EEPROM to hold persisted data.&lt;BR /&gt;This is about 4Kbytes on a JN5169 device and can restrict network size. To overcome this it&lt;BR /&gt;is possible to export the data persistence to the host device. This requires a binary with this&lt;BR /&gt;feature turned “ON”.&lt;/SPAN&gt;&lt;/EM&gt;"&lt;/P&gt;&lt;P&gt;How do I turn on this feature in firmware? And how do I export these data to host device (such as SoC or other MCU)?&lt;/P&gt;&lt;P&gt;Thank you so much,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Aug 2019 01:37:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966146#M7920</guid>
      <dc:creator>nguyenanhgiau10</dc:creator>
      <dc:date>2019-08-27T01:37:36Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966147#M7921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Giau,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please look at the JN-AN-1223 and the pdm_host.c files will help you with the exporting persistent data to host.&lt;/P&gt;&lt;P&gt;"C:\NXP\bstudio_nxp\workspace\JN-AN-1223-ZigBee-IoT-Gateway-Control-Bridge-v1014\Source\ZigbeeNodeControlBridge\pdm_host.c"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Aug 2019 19:24:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966147#M7921</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2019-08-29T19:24:16Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966148#M7922</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2019 01:53:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966148#M7922</guid>
      <dc:creator>nguyenanhgiau10</dc:creator>
      <dc:date>2019-09-04T01:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966149#M7923</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;I'm using JN-AN-1216 application and export PDM to host.&lt;/P&gt;&lt;P&gt;Just the last step.&lt;/P&gt;&lt;P&gt;I added pdm_host.c file to project&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in Makefile:&lt;/P&gt;&lt;P&gt;PDM_BUILD_TYPE = _NONE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ifeq ($(PDM_BUILD_TYPE), _NONE)&lt;BR /&gt;APPSRC += pdm_host.c&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;---------------------------------&lt;/P&gt;&lt;P&gt;in app_start.c&lt;/P&gt;&lt;P&gt;vLog_Printf ( TRACE_APPSTART,LOG_DEBUG, "\n\nInitialising \n" );&lt;BR /&gt;#ifdef PDM_NONE&lt;BR /&gt; PDM_vWaitHost();&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PRIVATE void vInitialiseApp ( void )&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;#ifdef PDM_EEPROM&lt;BR /&gt; PDM_eInitialise ( 63 );&lt;BR /&gt;#else&lt;BR /&gt; /* USING HOST TO SAVE PERSISTENT DATA */&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;----------------------------------&lt;/P&gt;&lt;P&gt;I have to define&amp;nbsp;a few&amp;nbsp;function to building get success (they are in pdm_host.c)&lt;/P&gt;&lt;P&gt;PDM_eSaveRecordData&lt;/P&gt;&lt;P&gt;PDM_eReadDataFromRecord&lt;/P&gt;&lt;P&gt;PDM_vDeleteDataRecord&lt;/P&gt;&lt;P&gt;PDM_vDeleteAllDataRecords&lt;/P&gt;&lt;P&gt;PDM_teStatus PDM_eGetBitmap&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In fact, these function look like:&lt;/P&gt;&lt;P&gt;PUBLIC PDM_teStatus PDM_eSaveRecordData(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint16 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u16IdValue,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*pvDataBuffer,&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint16 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u16Datalength)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return PDM_E_STATUS_OK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;It is empty. What do I need to fill?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Sep 2019 08:44:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966149#M7923</guid>
      <dc:creator>nguyenanhgiau10</dc:creator>
      <dc:date>2019-09-17T08:44:41Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966150#M7924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Giau,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is part of the libraries that we provide.&lt;/P&gt;&lt;P&gt;For example, if you want to save the Group Table, the API will show like this.&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;    PDM_eSaveRecordData &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt; PDM_ID_APP_GROUP_TABLE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                          &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt;sGroupTable&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                          &lt;SPAN class="keyword token"&gt;sizeof&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt; tsZllGroupInfoTable &lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Sep 2019 21:37:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966150#M7924</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2019-09-17T21:37:18Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966151#M7925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/mario_castaneda"&gt;mario_castaneda&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a quick follow-up to this question, as I'm looking to implement the same feature.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You indicated that we should look to &lt;STRONG&gt;JN-AN-1223&lt;/STRONG&gt; for &lt;EM&gt;pdm_host.c&lt;/EM&gt; - &lt;STRONG&gt;JN-AN-1223&lt;/STRONG&gt; is however the &lt;EM&gt;HA 1.2 Application Note&lt;/EM&gt;; &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/nguyenanhgiau1008@gmail.com"&gt;nguyenanhgiau1008@gmail.com&lt;/A&gt;‌ and I are working with &lt;STRONG&gt;JN-AN-1216&lt;/STRONG&gt;, which is the &lt;EM&gt;Zigbee PRO 3.0 Application Note&lt;/EM&gt;. Can the code in &lt;STRONG&gt;JN-AN-1223&lt;/STRONG&gt; that's related to exporting PDM data to the host OS simply be copied over to the code in &lt;STRONG&gt;JN-AN-1216&lt;/STRONG&gt; and be expected to work?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The primary reason I ask is that the SDK for &lt;STRONG&gt;JN-AN-1216&lt;/STRONG&gt; is &lt;STRONG&gt;JN-SW-4170&lt;/STRONG&gt; (I'm using the latest build: 1840), and the SDK for &lt;STRONG&gt;JN-AN-1223&lt;/STRONG&gt; is &lt;STRONG&gt;JN-SW-4168&lt;/STRONG&gt;. The documentation for &lt;STRONG&gt;JN-AN-1216&amp;nbsp;&lt;/STRONG&gt;(as quoted above by &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/nguyenanhgiau1008@gmail.com"&gt;nguyenanhgiau1008@gmail.com&lt;/A&gt;‌ indicates that a build parameter can be set that allows&amp;nbsp;&lt;STRONG&gt;JN-AN-1216&lt;/STRONG&gt; to export PDM data to the host. In my code, I've set the&amp;nbsp;&lt;STRONG&gt;PDM_BUILD_TYPE&lt;/STRONG&gt; variable to&amp;nbsp;&lt;STRONG&gt;_NONE&lt;/STRONG&gt;, which results in&amp;nbsp;&lt;EM&gt;undefined reference&lt;/EM&gt; errors with respect to&amp;nbsp;&lt;STRONG&gt;PDM_*&lt;/STRONG&gt; functions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is the&amp;nbsp;&lt;STRONG&gt;JN-AN-1216&lt;/STRONG&gt; documentation in error with respect to the&amp;nbsp;&lt;STRONG&gt;B.4. Exporting Persistent Data to Host&lt;/STRONG&gt; section?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Jonathan T.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Jan 2020 02:48:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966151#M7925</guid>
      <dc:creator>jonathan_thomps</dc:creator>
      <dc:date>2020-01-18T02:48:18Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966152#M7926</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had an email conversation with Jonathan about this and I am updating this thread with the current status, in case anyone else comes across the problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you’ve seen, the Zigbee HA control bridge (JN-AN-1223) implements the host PDM option but the Zigbee 3.0 version (JN-AN-1216) does not. JN-AN-1223 is actually an older version of the stack and components, despite the higher AN number, and the host PDM option was valuable because it was proposed to store Zigbee private keys in the PDM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When JN-AN-1216/JN-SW-4170 were being developed, there were two changes that are of importance to this discussion:&lt;/P&gt;&lt;UL style="margin-top: 0cm;"&gt;&lt;LI style="margin-left: 0cm;"&gt;Zigbee private keys were stored in flash instead of PDM&lt;/LI&gt;&lt;LI style="margin-left: 0cm;"&gt;The PDM was simplified and made more efficient by replacing the descriptors (each record had a block of memory to contain state info) with IDs, which changed the PDM APIs as it was a new way of using the PDM&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hence the host PDM host option was no longer required for the standard release and, because the PDM APIs had changed, the existing pdm_port.c was no longer suitable. Rather than update it, the decision was made to leave it out of the release. Hence simply copying pdm_port.c from JN-AN-1223 to JN-AN-1216 won’t build: the stack and application are trying to call out to a different set of APIs. Unfortunately, it seems that the documentation was not updated with the correct information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can modify pdm_port.c to implement the functions needed by JN-AN-1216, instead of the functions needed by JN-AN-1223. These functions seem to be:&lt;BR /&gt; PDM_eCreateBitmap, PDM_eDeleteBitmap, PDM_eGetBitmap, PDM_eIncrementBitmap, PDM_eSaveRecordData, PDM_vDeleteAllDataRecords, PDM_eInitialise, PDM_eReadDataFromRecord, PDM_vDeleteDataRecord. The protoypes are in PDM.h and the functionality is described in &lt;A href="https://www.nxp.com/docs/en/user-guide/JN-UG-3116.pdf"&gt;https://www.nxp.com/docs/en/user-guide/JN-UG-3116.pdf&lt;/A&gt;. Starting from the existing pdm_port.c you can discard the descriptors completely, and the code reduces to building up the serial data streams to send commands for each API to the host, and reading the data streams coming back. You’ll have to implement the host side that this interacts with anyway, so the extra effort probably isn’t that great and the exact format of the UART message payloads can be entirely up to you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Chris.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jan 2020 09:57:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966152#M7926</guid>
      <dc:creator>chrisgray</dc:creator>
      <dc:date>2020-01-27T09:57:44Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966153#M7927</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/chrisgray"&gt;chrisgray&lt;/A&gt;,&amp;nbsp;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/jonathan.thompson@nimbusnine.co"&gt;jonathan.thompson@nimbusnine.co&lt;/A&gt;,&amp;nbsp;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/mario_castaneda"&gt;mario_castaneda&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;I was save from node to host successful, but I'm facing a problem when load from host to node with size greater 128 byte (with size &amp;lt; 128, it load successful).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On host, I use sqlite3 for storing.&lt;/P&gt;&lt;P&gt;On node (JN5169), implement pdm_host.c from JN-AN-1223.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PUBLIC PDM_teStatus PDM_eReadDataFromRecord( uint16 u16IdValue,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;void *pvDataBuffer,&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;uint16 u16DataBufferLength,&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;uint16 *pu16DataBytesRead)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* send LoadRecordRequest to host */&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "E_SL_MSG_LOAD_PDM_RECORD_REQUEST\n");&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;uint8 au8Buffer[MAX_PACKET_SIZE], *pu8Buffer, *pdmBuffer;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;uint32 u32Length = 0;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;uint32 u32Size,u32TotalBlocks=0,u32BlockId=0,u32BlockSize=0;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;uint16 u16RecordId,u16MessageType;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;bool_t bNoMoreData = FALSE;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;PDM_tsRecordDescriptor *psDesc;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;psDesc-&amp;gt;u16UserId = u16IdValue;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;psDesc-&amp;gt;pu8Data = (uint8*)pvDataBuffer;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;psDesc-&amp;gt;u32DataSize = u16DataBufferLength;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;psDesc-&amp;gt;u16Id = PDM_INVALID_ID;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;/* set security level of the record */&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;psDesc-&amp;gt;eState = PDM_RECOVERY_STATE_NONE;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;if(!bCheckPdmRecordsList(psDesc))&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;psDesc-&amp;gt;psNext = pHead;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;pHead = psDesc;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;/* flush hardware buffer */&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;UART_vOverrideInterrupt(FALSE);&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;pu8Buffer = au8Buffer;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(pu8Buffer, &amp;amp;u16IdValue,sizeof(uint16));&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;u32Length = sizeof(uint16);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;pu8Buffer += sizeof(uint16);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;u16MessageType = E_SL_MSG_LOAD_PDM_RECORD_REQUEST;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;vUart_WriteMessage(u16MessageType, u32Length, au8Buffer);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;pdmBuffer = psDesc-&amp;gt;pu8Data;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;do&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;u8QueueByte = 0xff;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;if(UART_bGetRxData((uint8*)&amp;amp;u8QueueByte) ){&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;if(TRUE==bSL_ReadMessage(&amp;amp;u16PacketType,&amp;amp;u16PacketLength,MAX_PACKET_SIZE,au8LinkRxBuffer,u8QueueByte))&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;switch(u16PacketType)&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case(E_SL_MSG_LOAD_PDM_RECORD_RESPONSE):&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "E_SL_MSG_LOAD_PDM_RECORD_RESPONSE\n");&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;uint8 u8Status = au8LinkRxBuffer[0];&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(&amp;amp;u16RecordId, &amp;amp;au8LinkRxBuffer[1], sizeof(uint16));&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "u16RecordId; %x\n", u16RecordId);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(&amp;amp;u32Size,&amp;amp;au8LinkRxBuffer[3], sizeof(uint32));&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "u32Size; %x\n", u32Size);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(&amp;amp;u32TotalBlocks, &amp;amp;au8LinkRxBuffer[7], sizeof(uint32));&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "u32TotalBlocks; %x\n", u32TotalBlocks);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(&amp;amp;u32BlockId, &amp;amp;au8LinkRxBuffer[11],sizeof(uint32));&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "u32BlockId; %x\n", u32BlockId);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(&amp;amp;u32BlockSize, &amp;amp;au8LinkRxBuffer[15], sizeof(uint32));&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;uint16 u16BlockSize = (uint16)u32BlockSize;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "u16BlockSize; %x\n", u16BlockSize);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(pu16DataBytesRead, &amp;amp;u16BlockSize, sizeof(uint16)); /*save length data was read*/&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;if((u8Status != PDM_RECOVERY_STATE_NONE) &amp;amp;&amp;amp; (u16RecordId == psDesc-&amp;gt;u16UserId))&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(pdmBuffer, &amp;amp;au8LinkRxBuffer[19], u16BlockSize);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;/* show data received */&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;uint32 i;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "Data: ");&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;for (i=0; i&amp;lt;u16BlockSize; i++) {&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "%02x", pdmBuffer[i]);&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "\n");&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;pdmBuffer += u16BlockSize;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;if(u32TotalBlocks == u32BlockId)&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "PDM_RECOVERY_STATE_RECOVERED\n");&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;bNoMoreData = TRUE;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;psDesc-&amp;gt;eState = PDM_RECOVERY_STATE_RECOVERED;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;if(u8Status == PDM_RECOVERY_STATE_NONE)&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "PDM_RECOVERY_STATE_NONE\n");&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;bNoMoreData = TRUE;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;psDesc-&amp;gt;eState = PDM_RECOVERY_STATE_NONE;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;u8Status = 0;&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(au8Buffer, &amp;amp;u8Status, sizeof(uint8));&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(&amp;amp;au8Buffer[1], &amp;amp;u8Status, sizeof(uint8));&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;memcpy(&amp;amp;au8Buffer[2], &amp;amp;u16MessageType, sizeof(uint16));&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;/* show data received */&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;uint32 i;&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "Data: ");&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;for (i=0; i&amp;lt;4; i++) {&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "%02x", au8Buffer[i]);&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;vUart_WriteMessage(E_SL_MSG_STATUS, 4, au8Buffer);&lt;BR /&gt;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;DBG_vPrintf(TRACE_PDM_HOST, "\nNext block\n\n");&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;default:&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;BR /&gt; }&lt;BR /&gt; while(!bNoMoreData);&lt;/P&gt;&lt;P&gt;UART_vOverrideInterrupt(TRUE);&lt;BR /&gt; return PDM_E_STATUS_OK;&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 01 Feb 2020 13:53:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966153#M7927</guid>
      <dc:creator>nguyenanhgiau10</dc:creator>
      <dc:date>2020-02-01T13:53:06Z</dc:date>
    </item>
    <item>
      <title>Re: Exporting Persistent Data on JN516x to Host</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966154#M7928</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just wanted to follow up on &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/chrisgray"&gt;chrisgray&lt;/A&gt;‌'s extremely helpful comments from above - for anyone who happens upon this thread hoping to use this functionality, I've implemented it here: &lt;A class="link-titled" href="https://github.com/fairecasoimeme/ZiGate/pull/281/commits/cb17505354d38283839c143df85d0ca369c6fb26" title="https://github.com/fairecasoimeme/ZiGate/pull/281/commits/cb17505354d38283839c143df85d0ca369c6fb26"&gt;Implemented message types 0x02000-0x0208 and 0x8200-0x8208 by schrodingersket · Pull Request #281 · fairecasoimeme/ZiGat…&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You'll want to note that I changed a few of the messages and their formats to accommodate the API exposed by the JN-SW-4170 SDK API, so you'll need to account for that in your host code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Mar 2020 03:42:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Exporting-Persistent-Data-on-JN516x-to-Host/m-p/966154#M7928</guid>
      <dc:creator>jonathan_thomps</dc:creator>
      <dc:date>2020-03-03T03:42:24Z</dc:date>
    </item>
  </channel>
</rss>

