<?xml version='1.0' encoding='us-ascii'?>
<rss version='2.0'>
<!-- MHonArc v2.6.18 -->
  <channel>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>

    <title>EPICS Tech-talk mailing list</title>
    <link>https://epics.anl.gov/tech-talk/index.php</link>
    <description>
      Email archive for the EPICS Tech-talk mailing list.
    </description>
    <webMaster>anj@aps.anl.gov</webMaster>

    <image>
       <url>https://epics.anl.gov/icons/logoOnly.png</url>
       <title>EPICS Tech-talk mailing list</title>
       <link>https://epics.anl.gov/tech-talk/index.php</link>
    </image>

    <lastBuildDate>Fri, 03 Jul 2026 13:41:43 GMT</lastBuildDate>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00755.php</link>
      <author>&#xC9;rico Nogueira Rolim via Tech-talk</author>
      <pubDate>Fri, 26 Jun 2026 17:30:57 GMT</pubDate>
      <guid isPermaLink="false">e8661cf9-1e4c-48e8-9c7a-16598def3306@lnls.br</guid>
      <title>Re: RFC: add a mechanism to call epicsExit when signals are received</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: RFC: add a mechanism to call epicsExit when signals are received -->
<!--X-From-R13: =?hgs&#45;8?P?j4ylnI@iWS5iL3HynJXuWTXioUyg?= ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Fri, 26 Jun 2026 17:30:57 +0000 -->
<!--X-Message-Id: e8661cf9&#45;1e4c&#45;48e8&#45;9c7a&#45;16598def3306@lnls.br -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: CWXP265MB41539C3CDC797158AAEC5CB4C4EB2@CWXP265MB4153.GBRP265.PROD.OUTLOOK.COM -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: RFC: add a mechanism to call epicsExit when signals are received</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
&#xC9;rico Nogueira Rolim via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
Timothy Speight - STFC UKRI &lt;<a href="mailto:timothy%20dot%20speight%20at%20stfc%20dot%20ac%20dot%20uk">timothy.speight at stfc.ac.uk</a>&gt;, &quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Fri, 26 Jun 2026 17:30:57 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->




<div class="moz-cite-prefix">On 6/26/26 05:12, Timothy Speight - STFC UKRI via Tech-talk wrote:<br>
</div>
<blockquote type="cite" cite="">

<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Core-devs folk,</div>
</blockquote>
<p><br>
</p>
<p>Hi Tim!</p>
<p><br>
</p>
<p>Thanks for reviving this thread :)</p>
<p><br>
</p>
<blockquote type="cite" cite="">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
More questions for me on this thread and safe-patterns... Dirk&gt; I'm wondering if a cross cutting concern PR for base is due to be merged in yet, I believe it is #671 and perhaps some other associated feature fixes?</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I have been working on an OceanOptics AD driver, trying to get epicsAtExit() all tied up and for when the binary gets SIGINT 2 under Linux Ubuntu24;</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The Ocean HR spectrometer hardware gets a bit ugly if it's under acquisition &amp; when our devops guy deploys it and intends to restart.&nbsp; Luckily for me I can remotely reboot these through an API Digi provides for their awusb product. Also I'll put it out there,
 I've NOW got a nice little destructor ready to contribute back to JohnDobbins@CHESS_Cornell exit() from iocsh which tests well against the real hardware.</div>
</blockquote>
<p><br>
</p>
<p>What AD driver are you using for OceanOptics? I've recently tried <a rel="nofollow" class="moz-txt-link-freetext" href="https://urldefense.us/v3/__https://github.com/NSLS2/OceanOptics__;!!G_uCfscf7eWS!YdzgMaiCalP6712pnA2Zv2ujjdDnOwNaExJj4p8O9miglgyoxu255vRKZsaC1olhRel3r3zlNaXkUp3wcuMq2tI07do$">
https://github.com/NSLS2/OceanOptics</a> , which is based on the SeaBreeze library, and was considering porting it to AreaDetector. I see you mentioned Cornell, and I remember coming upon a dead link to an OceanDirect-based driver of theirs; is that the one
 you're using?</p>
<p><br>
</p>
<blockquote type="cite" cite="">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
But it further led me to think how this well fits with EPICS itself and procserv. Ralph, yesterday taught me that you can do a clean/sure/dirty kill config with params for procserv.&nbsp; Fundamentally for the st.cmd procserv spawned child its going to want to get
 a SIGINT2 and the built ioc respond accordingly.</div>
</blockquote>
<p><br>
</p>
<p>What specific signal are you thinking of using? I know of SIGINT and SIGUSR2, but not SIGINT2.</p>
<p><br>
</p>
<blockquote type="cite" cite="">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I think Dirk could be under the hood for this in base atm to provide sure POSIX support?</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Perhaps for the short time I could roll my own workaround: a minimal SIGINT handler signal.h an atopmic process that operates against the main() worker thread and somehow magically latches into the destructor I authored yesterday.&nbsp; I've never seen anyone really
 deviate from the perl built main code and if I make a custom its certainly susceptible to being wiped at code compile time!</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Any thoughts or updates on Linux signalling for EPICS from the devs?</div>
</blockquote>
<p><br>
</p>
<p>I don't think there have been any updates, but I remember there were implementation suggestions for my idea. For epics-base, it would consist of launching a thread listening on an epicsEvent, which, when signaled, would call epicsExit. For a module with
 platform specific code, it would consist of registering signal handlers (possibly automatically or via iocsh commands) and having those signal the previously mentioned epicsEvent.</p>
<p><br>
</p>
<p>If you're keen on getting your hands a little dirty, how about we collaborate on moving this forward? Maybe start implementing the epics-base interface so we can check its suitability for the support module?</p>
<p><br>
</p>
<blockquote type="cite" cite="">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Kind Regards</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Tim Speight</div>
</blockquote>
<p><br>
</p>
<p><br>
</p>
<p>Cheers,</p>
<p>&#xC9;rico</p>
<br>
<p><span style="color:#6E6E6E;font-family:arial,helvetica,sans-serif"><span style="font-size:9px">Aviso Legal: Esta mensagem e seus anexos podem conter informa&#xE7;&#xF5;es confidenciais e/ou de uso restrito. Observe atentamente seu conte&#xFA;do e considere eventual consulta
 ao remetente antes de copi&#xE1;-la, divulg&#xE1;-la ou distribu&#xED;-la. Se voc&#xEA; recebeu esta mensagem por engano, por favor avise o remetente e apague-a imediatamente.</span></span></p>
<p><span style="color:#6E6E6E;font-family:arial,helvetica,sans-serif"><span style="font-size:9px">Disclaimer: This email and its attachments may contain confidential and/or privileged information. Observe its content carefully and consider possible querying
 to the sender before copying, disclosing or distributing it. If you have received this email by mistake, please notify the sender and delete it immediately.</span></span></p>



<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00756.php</link>
      <author>Mark Rivers via Tech-talk</author>
      <pubDate>Fri, 26 Jun 2026 19:18:25 GMT</pubDate>
      <guid isPermaLink="false">DM3PPF1CEB6B7EFA4F9E04A19E447B19FFE99EB2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com</guid>
      <title>Re: EPICS support for Fastech motors</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: EPICS support for Fastech motors -->
<!--X-From-R13: [nex Dviref ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Fri, 26 Jun 2026 19:18:25 +0000 -->
<!--X-Message-Id: DM3PPF1CEB6B7EFA4F9E04A19E447B19FFE99EB2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: 3fa52b2ce3cb49268feb45f098f22059@irb.hr -->
<!--X-Reference: 87cf4b86&#45;3e74&#45;4fe4&#45;abb2&#45;15ad34623f8c@edom.se -->
<!--X-Reference: 9b1a66b488854843b3faadd2ad77ce19@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EFB3E750F5ECAE97563DAF99E42@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: b485ec0631a54e5facb354702e1cff7e@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EFCFF95C7A52B77ABDACD799EC2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: 8460ee36498d4b49a6ff53cd0ec64904@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EF011602E59207CFC3737299EB2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: d6b8122ae6b946f0b5cbb182ae45adc9@irb.hr -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: EPICS support for Fastech motors</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Mark Rivers via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
Rea Domitrovi&#x107; &lt;<a href="mailto:rea%20dot%20domitrovic%20at%20irb%20dot%20hr">rea.domitrovic at irb.hr</a>&gt;, &quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Fri, 26 Jun 2026 19:18:25 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<table width="100%"><tr><td style="">


<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Hi Rea,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Thanks for sharing that repository, that is very helpful.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I think I found the correct manual for your controller here:</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<a rel="nofollow" href="https://urldefense.us/v3/__https://fastech.co.kr/new/board/bbs/download_product_en.php?bo_table=sub010208_en&amp;wr_id=0__;!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvUPEoY6M$" id="OWA8f195947-7800-8fef-7619-cd1bc940fd4a" class="OWAAutoLink">https://fastech.co.kr/new/board/bbs/download_product_en.php?bo_table=sub010208_en&amp;wr_id=0</a></div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I looked at EzS2PEAxis::move.&nbsp; I see that it is building a binary structure and sending that to the controller with pC_-&gt;writeReadController().</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
However, I think I see an error in your code. Everywhere you define boiler[] similar to this:</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&nbsp;&nbsp;&nbsp; unsigned char boiler[] = {HEADER, 8, pC_-&gt;syncCounter, 0x00, SET_PARAMETER, param};</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech/blob/94b93b150501490cf9cf7ef77d4d4e3a6b0ad62f/fastechApp/src/EzS2PE_Driver.cpp*L146__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvT9F0Ouk$">https://github.com/redomitro/motorFastech/blob/94b93b150501490cf9cf7ef77d4d4e3a6b0ad62f/fastechApp/src/EzS2PE_Driver.cpp#L146</a></div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
However, the manual says the frame header is this:</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2460; Header : 0xAA, Displays that the beginning of Frame</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2461; Length : Length of Data after Length</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2002;&#x2002;&#x2002;&#x2002;(Sync No. + Reserved + Frame type + Data)</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2462; Reserved : 1 byte Input as &#x201C; 0x00</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2463; Sync No. : The Sync number of the packet is used to c heck whether the command is executed</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2002;&#x2002;&#x2002;&#x2002;in the drive module. The value should change every time when you send a new command.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2464; Frame type : Specify the command type of the Frame. The types are listed below.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2002;&#x2002;&#x2002;&#x2002;Refer to&nbsp; Frametypeand Data configuration &#x300D;</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2465; Data : The data structure and length of this clause are determined by the Frame type.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
&#x2002;&#x2002;&#x2002;&#x2002;The detailed structure refers to [Frametypeand Data configuration]&nbsp; section below.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Note that the Reserved 0x00 byte is defined in the manual to come between the Length and the Sync Number byte.&nbsp; But your code has the 0x00 after the Sync Number.&nbsp; This seems wrong.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
The communication is UDP based.&nbsp; Once you fix the error above I suspect that write operations will succeed.&nbsp;</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
However, I think that read operations will fail because you have created the L0 UDP port with the default value of noProcessEos=0.&nbsp; This means that the UDP driver is doing EOS processing.&nbsp; Although you have not defined input or output terminators, another thing
 that the EOS processing does is wait for the requested number of bytes to be received.&nbsp; Since you have no way of knowing how many bytes will be received you need to request more than you will receive, and the read will time out.&nbsp;</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
The solution is to change your startup script to this:</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
drvAsynIPPortConfigure(&quot;L0&quot;, &quot;192.168.0.204:3001 UDP&quot;, 0, 0, 1)</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
That sets noProcessEos to 1.&nbsp; That means that the driver will not wait for the requested number of characters but will return as soon as any characters are received, or after a timeout.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Cheers,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Mark</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Rea Domitrovi&#x107; &lt;rea.domitrovic at irb.hr&gt;<br>
<b>Sent:</b>&nbsp;Friday, June 26, 2026 8:44 AM<br>
<b>To:</b>&nbsp;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;; tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject:</b>&nbsp;Re: EPICS support for Fastech motors </div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="x_divtagdefaultwrapper">
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Hi Mark,</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">the source code is here:
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvZcjRvUo$" id="OWAbaa7853e-f73a-1211-d35c-dd8505774220" class="x_OWAAutoLink" data-auth="NotApplicable" style="margin-top: 0px; margin-bottom: 0px;">
https://github.com/redomitro/motorFastech</a>&nbsp;- the repository should be public.&nbsp;Thank you again for the help; it's the end of the week here so I'll dig into the debugging more come Monday. Best,</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Rea</span></p>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;<br>
<b>Sent:</b>&nbsp;Friday, June 26, 2026 3:15:45 PM<br>
<b>To:</b>&nbsp;Rea Domitrovi&#x107;; tech-talk at aps.anl.gov<br>
<b>Subject:</b>&nbsp;Re: EPICS support for Fastech motors</div>
<div style="direction: ltr;">&nbsp;</div>
</div>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Hi Rea,</span></p>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:4}" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;&#x27A2; &quot;;">
<div role="presentation" style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">
Is it even possible to use the Model 3 framework to communicate with something that uses such a specific and non-standard byte stream, or will I have to find a different way? Kind regards,</div>
</li></ul>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Yes, definitely.&nbsp; You can use the Model 3 framework to communicate with any type of motor controller API: ASCII strings, vendor library calls, Modbus, etc.&nbsp;</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
The issue is the motorAxis-&gt;move() function that you have implemented in your derived class.&nbsp; It is returning the error status -1.&nbsp; You need to figure out why.&nbsp; Is your code on a repository where we can see it?&nbsp; If not can you share the code, or at least the
 code for the axis-&gt;move() function?</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Here are 2 suggestions for debugging this:</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:2}" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;- &quot;;">
<div role="presentation" style="direction: ltr;">Enable asynTraceIODriver and ASYN_TRACEIO_ESCAPE for the underlying asyn communication port.&nbsp; That will let you see the complete communication with the device.&nbsp; Put these lines in your startup script right after
 you create the asyn communication port, which I have called $(PORT) here:</div>
</li></ul>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
asynSetTraceMask($(PORT), 0, ERROR|DRIVER)</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
asynSetTraceIOMask($(PORT), 0, ESCAPE)</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:2}" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;- &quot;;">
<div role="presentation" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
Put debugging printf or asynPrint statements in your driver to see what is happening.</div>
</li></ul>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Mark</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Rea Domitrovi&#x107; &lt;rea.domitrovic at irb.hr&gt;<br>
<b>Sent:</b>&nbsp;Friday, June 26, 2026 2:50 AM<br>
<b>To:</b>&nbsp;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;; tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject:</b>&nbsp;Re: EPICS support for Fastech motors</div>
<div style="direction: ltr;">&nbsp;</div>
</div>
<div id="x_x_divtagdefaultwrapper">
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Hi Mark,</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">thanks for taking the time. I followed the debug instructions you gave&nbsp;here:
<a rel="nofollow" href="https://epics.anl.gov/tech-talk/2017/msg00282.php" id="OWA4d223a74-5afe-fd33-3dde-0021e1e03df3" class="x_x_OWAAutoLink" data-auth="NotApplicable" style="margin-top: 0px; margin-bottom: 0px;">
https://epics.anl.gov/tech-talk/2017/msg00282.php</a>&nbsp;- thanks for clarifying what is actually&nbsp;needed.</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">I suspect this message is what's wrong, i.e. the writes are not actually getting through to the
 motor:</span></p>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
2026/06/26 09:39:45.144 asynMotorController:writeFloat64 error, status=1 axis=0, function=1, value=-150000.000000<br>
2026/06/26 09:39:45.148 devMotorAsyn::asynCallback: EXIT:zpos pasyn{Float64,Int32}-&gt;write returned<br>
<br>
</div>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">To me, it smells like the problem is in the fact the motor doesn't use ASCII-compatible strings
 to communicate - every message has to start with a five-byte header of the following structure: 0xAA, length, idempotence counter, 0x00, frame type. That null byte is presumably making communication difficult; that is why everywhere in the source code I used
 memcpy instead of sprintf to build the outString. A test IOC made with StreamDevice instead of Motor confirms the&nbsp;motor is responsive to that kind of communication; I was able to turn the servo on and poll it for position using StreamDevice, but not actually
 move it.</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Is it even possible to use the Model 3 framework to communicate with something that uses such a
 specific and non-standard byte stream, or will I have to find a different way? Kind regards,</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Rea</span></p>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;<br>
<b>Sent:</b>&nbsp;Thursday, June 25, 2026 4:35:51 PM<br>
<b>To:</b>&nbsp;tech-talk at aps.anl.gov; Rea Domitrovi&#x107;<br>
<b>Subject:</b>&nbsp;Re: EPICS support for Fastech motors</div>
<div style="direction: ltr;">&nbsp;</div>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
H Rea,</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
You have set the asynTraceMask to enable lots of debugging.&nbsp; That is OK, but it makes it hard to see the real errors from warning and informational messages.&nbsp; For example these messages are printed with ASYN_TRACE_FLOW, they are not really errors.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit error getting parameter 9 MOTOR_ENCODER_POSITION, in list 0, value undefined<br>
2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit error getting parameter 5 MOTOR_VELOCITY, in list 0, value undefined</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
This message</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
2026/06/25 15:07:46.444 asynMotorController:writeFloat64: Set driver motorExit, axis 0 move absolute to 0.000000, base velocity=500.000000, velocity=25000.000000, acceleration=245000.000000</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
is being printed here.&nbsp; It is just an informational message.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/asynMotorController.cpp*L328__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNv9k8nZJQ$" id="OWA818ef215-d3ed-0e3b-3153-9b25723fd23c" class="x_OWAAutoLink" data-auth="NotApplicable">https://github.com/epics-modules/motor/blob/f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/asynMotorController.cpp#L328</a></div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
However, this message:</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
2026/06/25 15:07:46.445 asynMotorController:writeFloat64 error, status=1 axis=0, function=1, value=0.000000</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
is being printed here:</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/asynMotorController.cpp*L428__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvdoyZWuk$" id="OWA35892d32-5c73-d19d-737a-8c299112e63c" class="x_OWAAutoLink" data-auth="NotApplicable">https://github.com/epics-modules/motor/blob/f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/asynMotorController.cpp#L428</a></div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Function=1 is a move absolute command, so it is consistent with the first message.&nbsp; status=1 means that your driver's pAxis-&gt;move() function returned -1.&nbsp; It was called from here:</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/asynMotorController.cpp*L324-L325__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvASUhELQ$" id="OWA2f8fc5d4-ff80-b1da-a82c-2a8d84e1283b" class="x_OWAAutoLink" data-auth="NotApplicable">https://github.com/epics-modules/motor/blob/f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/asynMotorController.cpp#L324-L325</a></div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
If you set your asynTrace flags to ERROR|WARNING you will only see the more important messages.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Mark</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of Rea Domitrovi&#x107; via Tech-talk &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Sent:</b>&nbsp;Thursday, June 25, 2026 8:53 AM<br>
<b>To:</b>&nbsp;tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject:</b>&nbsp;Re: EPICS support for Fastech motors</div>
<div style="direction: ltr;">&nbsp;</div>
</div>
<div id="x_x_x_divtagdefaultwrapper">
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">Hi
 all,</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">thanks
 so much for pointing me in the right direction so far. I've got to the point where I've got the structure of a driver based on the MCB4B driver and with inspiration from the SmarAct driver; however, at runtime, I'm getting errors that I'm struggling to diagnose.
 If someone could help me understand, I would be most grateful. Relevant info is below. Best,</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">Rea
 Domitrovi&#x107;</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">Institut
 Ru&#x111;er Bo&#x161;kovi&#x107;</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">Zagreb,
 Croatia</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">Source
 code is here: <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!G_uCfscf7eWS!ckejUTszXgikK0HKxA_InFEgeEyYG2lD41P9WU4hEdAGledQERL0dK2U_KIYaLsarWXmtRkeqsmdlOkbbDFNsrR52DGXQg$" id="OWA5307eff6-5f9e-0ee1-8ff5-6fee36631f98" class="x_x_x_OWAAutoLink" data-auth="NotApplicable" style="margin-top: 0px; margin-bottom: 0px;">
https://github.com/redomitro/motorFastech</a></span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">IOCinit
 output:</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_MOVE_REL, index=0<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_MOVE_ABS, index=1<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_MOVE_VEL, index=2<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_HOME, index=3<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_STOP_AXIS, index=4<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_VELOCITY, index=5<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_VEL_BASE, index=6<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_ACCEL, index=7<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_POSITION, index=8<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_RESOLUTION, index=12<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_ENCODER_RATIO, index=13<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_PGAIN, index=14<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_IGAIN, index=15<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_DGAIN, index=16<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_HIGH_LIMIT, index=17<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_LOW_LIMIT, index=18<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_CLOSED_LOOP, index=19<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_STATUS, index=25<br>
2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: drvInfo=MOTOR_UPDATE_STATUS, index=26<br>
2026/06/25 15:29:48.311 motorExit 0 registerInterruptUser<br>
2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit error getting parameter 9 MOTOR_ENCODER_POSITION, in list 0, value undefined<br>
2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit error getting parameter 5 MOTOR_VELOCITY, in list 0, value undefined<br>
2026/06/25 15:29:48.311 asynMotorController:readGenericPointer: MotorStatus = status34, position=425203751.000000, encoder position=0.000000, velocity=0.000000<br>
2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort locking port<br>
2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort created queueLockPortPvt=0x561069c8f7a0<br>
2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort created queueLockPortPvt=0x561069c8f7a0, event=0x561069c979e0, mutex=0x561069c97990<br>
2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort taking mutex 0x561069c97990<br>
2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort queueing request<br>
2026/06/25 15:29:48.311 motorExit addr 0 queueRequest priority 0 not lockHolder<br>
2026/06/25 15:29:48.311 motorExit schedule queueRequest timeout in 2.000000 seconds<br>
2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort waiting for event<br>
2026/06/25 15:29:48.312 motorExit 0 autoConnect<br>
2026/06/25 15:29:48.312 asynPortDriver:connect:, pasynUser=0x561069c83188<br>
2026/06/25 15:29:48.312 asynManager::portThread port=motorExit callback<br>
2026/06/25 15:29:48.312 motorExit asynManager::queueLockPortCallback signaling begin event<br>
2026/06/25 15:29:48.312 motorExit asynManager::queueLockPortCallback waiting for mutex from queueUnlockPort<br>
2026/06/25 15:29:48.312 motorExit asynManager::queueLockPort got event from callback<br>
2026/06/25 15:29:48.312 EXIT:zpos devMotorAsyn::statusCallback new value=[p:425203751.000000,e:0.000000,s:22]<br>
2026/06/25 15:29:48.312 asynMotorController:writeFloat64: Set driver motorExit, axis 0 encoder ratio=1.000000<br>
2026/06/25 15:29:48.312 asynMotorController:writeFloat64:: axis=0, function=13, value=1.000000<br>
2026/06/25 15:29:48.312 asynFloat64SyncIO wrote: 1.000000e+00<br>
2026/06/25 15:29:48.312 motorExit queueUnlockPort<br>
2026/06/25 15:29:48.312 motorExit asynManager::queueUnlockPort waiting for event<br>
2026/06/25 15:29:48.313 motorExit queueUnlockPort unlock mutex 0x561069c97990 complete.<br>
2026/06/25 15:29:48.313 devMotorAsyn::init_controller, EXIT:zpos set encoder ratio to 1.000000<br>
2026/06/25 15:29:48.313 devMotorAsyn::init_controller, EXIT:zpos setting of position not required, position=425203751.000000, mres=0.000200, dval=0.000000, rdbd=0.0002002026/06/25 15:29:48.313 EXIT:zpos devMotorAsyn::update_values, needUpdate=1<br>
2026/06/25 15:29:48.313 devMotorAsyn::build_trans: EXIT:zpos motor_cmnd=19, pact=0, value=375000.000000<br>
2026/06/25 15:29:48.313 devAsynMotor::build_trans: calling queueRequest, pmsg=0x561069c97c40, sizeof(*pmsg)=24pmsg-&gt;command=14, pmsg-&gt;interface=1, pmsg-&gt;dvalue=375000.000000<br>
2026/06/25 15:29:48.313 motorExit addr 0 queueRequest priority 0 not lockHolder<br>
2026/06/25 15:29:48.313 devMotorAsyn::build_trans: EXIT:zpos motor_cmnd=20, pact=0, value=-375000.000000<br>
2026/06/25 15:29:48.313 devAsynMotor::build_trans: calling queueRequest, pmsg=0x561069c97c90, sizeof(*pmsg)=24pmsg-&gt;command=15, pmsg-&gt;interface=1, pmsg-&gt;dvalue=-375000.000000<br>
2026/06/25 15:29:48.313 motorExit addr 0 queueRequest priority 0 not lockHolder<br>
2026/06/25 15:29:48.313 asynManager::portThread port=motorExit callback<br>
2026/06/25 15:29:48.313 devMotorAsyn::asynCallback: EXIT:zpos pmsg=0x561069c97c40, sizeof(*pmsg)=24, pmsg-&gt;command=14,pmsg-&gt;interface=1, pmsg-&gt;ivalue=0, pmsg-&gt;dvalue=375000.000000, pasynUser-&gt;reason=17<br>
2026/06/25 15:29:48.313 asynMotorController:writeFloat64: Set driver motorExit, axis 0 high limit=375000.000000<br>
2026/06/25 15:29:48.313 asynMotorController:writeFloat64:: axis=0, function=17, value=375000.000000<br>
2026/06/25 15:29:48.313 asynManager::portThread port=motorExit callback<br>
2026/06/25 15:29:48.313 devMotorAsyn::asynCallback: EXIT:zpos pmsg=0x561069c97c90, sizeof(*pmsg)=24, pmsg-&gt;command=15,pmsg-&gt;interface=1, pmsg-&gt;ivalue=0, pmsg-&gt;dvalue=-375000.000000, pasynUser-&gt;reason=18<br>
2026/06/25 15:29:48.313 asynMotorController:writeFloat64: Set driver motorExit, axis 0 low limit=-375000.000000<br>
2026/06/25 15:29:48.313 asynMotorController:writeFloat64:: axis=0, function=18, value=-375000.000000<br>
<br>
</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
Output when attempting to caput absolute position:</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
2026/06/25 15:07:44.438 192.168.0.204:3001 UDP write 3<br>
\xaa\v\a<br>
2026/06/25 15:07:46.444 asynMotorController:writeFloat64: Set driver motorExit, axis 0 move absolute to 0.000000, ba&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; se velocity=500.000000,
 velocity=25000.000000, acceleration=245000.000000<br>
2026/06/25 15:07:46.445 asynMotorController:writeFloat64 error, status=1 axis=0, function=1, value=0.000000<br>
2026/06/25 15:07:46.445 devMotorAsyn::asynCallback: EXIT:zpos pasyn{Float64,Int32}-&gt;write returned<br>
2026/06/25 15:07:46.445 EXIT:zpos devMotorAsyn::update_values, needUpdate=1</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_x_x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;<br>
<b>Sent:</b>&nbsp;Wednesday, June 17, 2026 21:07<br>
<b>To:</b>&nbsp;Torsten B&#xF6;gershausen; tech-talk at aps.anl.gov; Rea Domitrovi&#x107;<br>
<b>Subject:</b>&nbsp;Re: EPICS support for Fastech motors</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
&nbsp;</div>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Hi Rea,</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<ul style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;&#x27A2; &quot;;">
<p role="presentation" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">&nbsp;I see that driver developers prefer to use octet-based communication rather than use&nbsp;the manufacturer-provided libraries. Is there a reason why that is the case, or is it simply that
 octet-based communicaton is more universal?</span></p>
</li></ul>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Manufacturer libraries will be provided for specific operating system and specific versions of those OS. That can restrict where they can be deployed.&nbsp; They may restrict redistribution, which prevents including them in the motor Github repository.&nbsp; They almost
 certainly won't be supported on real-time OS like RTEMS or vxWorks.</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<ul style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0); list-style-type: &quot;&#x27A2; &quot;;">
<p role="presentation" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">Further, the Fastech controller&nbsp;allows both octet-based communication and library-based communication, but octet-based communication requires the master to send a one-byte &quot;sync number&quot;
 which serves as an idempotence token.&nbsp;I assume it would be necessary to implement that myself; could I be using some sort of global variable, and how do I make sure that I never land on the same number twice in a row?</span></p>
</li></ul>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Many protocols have something like that.&nbsp; You just have a member variable in your driver class that increments by 1 on each message it sends, and wraps back to 0 after 255.</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Mark</div>
<div style="direction: ltr; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div style="direction: ltr; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of Rea Domitrovi&#x107; via Tech-talk &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Sent:</b>&nbsp;Wednesday, June 17, 2026 8:34 AM<br>
<b>To:</b>&nbsp;Torsten B&#xF6;gershausen &lt;tboegi at edom.se&gt;; tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject:</b>&nbsp;Re: EPICS support for Fastech motors</div>
<div style="direction: ltr; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="x_x_x_x_x_divtagdefaultwrapper">
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Hi Torsten,</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">thanks for pointing me in the right direction. I'm looking at the manual and the source for&nbsp;other
 submodules now (motorSmarAct and motorAcs);&nbsp;I see that driver developers prefer to use octet-based communication rather than use&nbsp;the manufacturer-provided libraries. Is there a reason why that is the case, or is it simply that octet-based communicaton is more
 universal?</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Further, the Fastech controller&nbsp;allows both octet-based communication and library-based communication,
 but octet-based communication requires the master to send a one-byte &quot;sync number&quot; which serves as an idempotence token.&nbsp;I assume it would be necessary to implement that myself; could I be using some sort of global variable, and how do I make sure that I never
 land on the same number twice in a row? Kind regards,</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Rea</span></p>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_x_x_x_x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Torsten B&#xF6;gershausen &lt;tboegi at edom.se&gt;<br>
<b>Sent:</b>&nbsp;Wednesday, June 10, 2026 1:49:41 PM<br>
<b>To:</b>&nbsp;Rea Domitrovi&#x107;; tech-talk at aps.anl.gov<br>
<b>Subject:</b>&nbsp;Re: EPICS support for Fastech motors</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
&nbsp;</div>
</div>
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 10pt; color: rgb(0, 0, 0);">
Hej Rea,<br>
<br>
I haven't worked with them, no.<br>
If you have Ethernet (not to be confused with EtherCAT),<br>
I read the manual as if they use UDP for communication,<br>
and knowing that you can write a simple model 3 driver, I think.<br>
(Other suggestions are welcome of course)<br>
/Torsten<br>
<br>
<br>
On 2026-06-10 12:52, Rea Domitrovi&#x107; via Tech-talk wrote:<br>
&gt; Hi all,<br>
&gt;<br>
&gt;<br>
&gt; I'm working with some Fastech Ezi-Servo II Plus-E motors, and I was<br>
&gt; wondering if someone had already worked with them and/or made an EPICS<br>
&gt; driver or Motor submodule? This particular line of motors and<br>
&gt; drives uses an Ethernet interface. Kind regards,<br>
&gt;<br>
&gt;<br>
&gt; Rea Domitrovi&#x107;<br>
&gt;<br>
&gt; Institut Ru&#x111;er Bo&#x161;kovi&#x107;<br>
&gt;<br>
&gt; Zagreb, Croatia<br>
&gt;<br>
<br>
Oprez: Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja poveznica ili privitaka provjerite po&#x161;iljatelja. Caution:This email originated from an external sender. Please verify the sender before opening links or attachments.</div>
<div id="x_x_x_footer" style="background-color: rgb(255, 235, 156); padding: 2pt; border-width: 1px; border-style: solid; border-color: rgb(156, 101, 0);">
<div style="direction: ltr; font-family: Calibri, Helvetica, sans-serif, EmojiFont, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, NotoColorEmoji, &quot;Segoe UI Symbol&quot;, &quot;Android Emoji&quot;, EmojiSymbols; font-size: 12pt; color: rgb(0, 0, 0);">
<b>Oprez:</b>&nbsp;Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja poveznica ili privitaka provjerite po&#x161;iljatelja.
<b>Caution:</b>This email originated from an external sender. Please verify the sender before opening links or attachments.</div>
</div>
</div>
<div id="x_x_footer" style="background-color: rgb(255, 235, 156); padding: 2pt; border-width: 1px; border-style: solid; border-color: rgb(156, 101, 0);">
<div style="direction: ltr;"><b>Oprez:</b>&nbsp;Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja poveznica ili privitaka provjerite po&#x161;iljatelja.
<b>Caution:</b>This email originated from an external sender. Please verify the sender before opening links or attachments.</div>
</div>
<div id="x_footer" style="background-color: rgb(255, 235, 156); padding: 2pt; border-width: 1px; border-style: solid; border-color: rgb(156, 101, 0);">
<div style="direction: ltr;"><b>Oprez:</b>&nbsp;Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja poveznica ili privitaka provjerite po&#x161;iljatelja.
<b>Caution:</b>This email originated from an external sender. Please verify the sender before opening links or attachments.</div>
</div>


</td></tr></table>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00757.php</link>
      <author>Michael Davidsaver via Tech-talk</author>
      <pubDate>Fri, 26 Jun 2026 19:53:30 GMT</pubDate>
      <guid isPermaLink="false">dcd6ada3-75fe-4eb0-bd62-bee91b4aad4d@gmail.com</guid>
      <title>Re: RFC: add a mechanism to call epicsExit when signals are received</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: RFC: add a mechanism to call epicsExit when signals are received -->
<!--X-From-R13: [vpunry Rnivqfnire ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Fri, 26 Jun 2026 12:53:30 &#45;0700 -->
<!--X-Message-Id: dcd6ada3&#45;75fe&#45;4eb0&#45;bd62&#45;bee91b4aad4d@gmail.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: CWXP265MB41539C3CDC797158AAEC5CB4C4EB2@CWXP265MB4153.GBRP265.PROD.OUTLOOK.COM -->
<!--X-Reference: e8661cf9&#45;1e4c&#45;48e8&#45;9c7a&#45;16598def3306@lnls.br -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: RFC: add a mechanism to call epicsExit when signals are received</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Michael Davidsaver via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
&#xC9;rico Nogueira Rolim &lt;<a href="mailto:erico%20dot%20rolim%20at%20lnls%20dot%20br">erico.rolim at lnls.br</a>&gt;, Timothy Speight - STFC UKRI &lt;<a href="mailto:timothy%20dot%20speight%20at%20stfc%20dot%20ac%20dot%20uk">timothy.speight at stfc.ac.uk</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Cc</em>:</td>
<td align="left">
&quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Fri, 26 Jun 2026 12:53:30 -0700</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<table width="100%"><tr><td style="">

  
  
    <div class="moz-cite-prefix">On 6/26/26 10:30 AM, &#xC9;rico Nogueira
      Rolim via Tech-talk wrote:<br>
    </div>
    <blockquote type="cite"
      cite="">
      <blockquote type="cite"
cite="">
        <div class="elementToProof"
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Any
          thoughts or updates on Linux signalling for EPICS from the
          devs?</div>
      </blockquote>
      <p><br>
      </p>
      <p>I don't think there have been any updates, but I remember there
        were implementation suggestions for my idea. For epics-base, it
        would consist of launching a thread listening on an epicsEvent,
        which, when signaled, would call epicsExit. For a module with
        platform specific code, it would consist of registering signal
        handlers (possibly automatically or via iocsh commands) and
        having those signal the previously mentioned epicsEvent.</p>
      <p><br>
      </p>
      <p>If you're keen on getting your hands a little dirty, how about
        we collaborate on moving this forward? Maybe start implementing
        the epics-base interface so we can check its suitability for the
        support module?</p>
    </blockquote>
    <p>As far as APIs.&#xA0; If epicsAtExit() is not enough, or if the
      ordering gets too complex, I would suggest looking at the
      "de-init" hooks.&#xA0; See "initHookAtShutdown" in initHooks.h .</p>
    <p>also fyi. <a rel="nofollow" class="moz-txt-link-freetext" href="https://urldefense.us/v3/__https://github.com/epics-base/epics-base/pull/673__;!!G_uCfscf7eWS!efDi-LqsPwIOzJQwQU3dK3NttCbpdPhVxs6ZEx9B61T-TNjWjfHYycY-4epdHNU1lHUtGoFl_XA3GAY8hCFPnnERZQ$">https://github.com/epics-base/epics-base/pull/673</a></p>
    <p><br>
    </p>
  
  <lt-container></lt-container>

</td></tr></table>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00758.php</link>
      <author>Wlodek, Jakub via Tech-talk</author>
      <pubDate>Sat, 27 Jun 2026 12:26:29 GMT</pubDate>
      <guid isPermaLink="false">PH8PR09MB980610D6C3A6F918E83C65D3BEEA2@PH8PR09MB9806.namprd09.prod.outlook.com</guid>
      <title>Re: EPICS thread on Marana problem</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: EPICS thread on Marana problem -->
<!--X-From-R13: "Iybqrx, Xnxho ivn Frpu&#45;gnyx" <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Sat, 27 Jun 2026 12:26:29 +0000 -->
<!--X-Message-Id: PH8PR09MB980610D6C3A6F918E83C65D3BEEA2@PH8PR09MB9806.namprd09.prod.outlook.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: FRWPR09MB8124722437AA9F2B62137C3BDDEC2@FRWPR09MB8124.eurprd09.prod.outlook.com -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: EPICS thread on Marana problem</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
&quot;Wlodek, Jakub via Tech-talk&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
Louisa Kienesberger &lt;<a href="mailto:louisa1996%20at%20live%20dot%20at">louisa1996 at live.at</a>&gt;, &quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Sat, 27 Jun 2026 12:26:29 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->



<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
Good morning Louisa,</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
<br>
</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
Unfortunately the issue turned out to be a hardware failure in my case, and we had to send the camera back to Andor. They resolved it (for a fee) and sent it back and it has been working fine since.</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
<br>
</div>
<div dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
Best,</div>
<div style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);" dir="auto">
Jakub</div>
<div id="ms-outlook-mobile-body-separator-line" data-applydefaultfontstyles="true" dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt;">
<div style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
</div>
<div id="ms-outlook-mobile-signature" dir="auto" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">
<span style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(33, 33, 33);">Get
</span><a rel="nofollow" href="https://urldefense.us/v3/__https://aka.ms/AAb9ysg__;!!G_uCfscf7eWS!fMNSg2ELtoyjtdW83jyuJmTi6EutDir6LKOtxGnnD18ptyIItDlj320u0uuuW6LdTJaS3tPBAc8himICVzjOvw$" style="font-family: Aptos, Aptos_MSFontService, -apple-system, Roboto, Arial, Helvetica, sans-serif; font-size: 12pt;">Outlook for Android</a></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of Louisa Kienesberger via Tech-talk &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Sent:</b> Thursday, 25 June 2026 05:36:37<br>
<b>To:</b> tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject:</b> EPICS thread on Marana problem</font>
<div>&nbsp;</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">!-------------------------------------------------------------------|<br>
&nbsp; This Message Is From an External Sender<br>
&nbsp; This message came from outside your organization.<br>
|-------------------------------------------------------------------!<br>
<br>
Hi Jakub,<br>
<br>
I am Louisa Kienesberger, curretnly doing my PhD in an experimental <br>
physics lab.<br>
I think I am currently facing the same problem with my Andor Marana <br>
camera in my setup as you did 3 years ago <br>
(<a rel="nofollow" href=""></a><a rel="nofollow" href="https://epics.anl.gov/tech-talk/2023/msg01846.php">https://epics.anl.gov/tech-talk/2023/msg01846.php</a>&#xa0; ).<br>
<br>
I found your thread on Google and wanted to ask you on an update since <br>
the issue was never resolved at least in the chat.<br>
<br>
Thank you very much in advance!<br>
<br>
Best regards,<br>
Louisa Kienesberger<br>
<br>
</div>
</span></font></div>



<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00759.php</link>
      <author>Mark Rivers via Tech-talk</author>
      <pubDate>Sat, 27 Jun 2026 15:34:58 GMT</pubDate>
      <guid isPermaLink="false">DM3PPF1CEB6B7EFE333FAA0270D09E4410199EA2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com</guid>
      <title>Re: Problems with Dante (XGLab) Driver</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: Problems with Dante (XGLab) Driver -->
<!--X-From-R13: [nex Dviref ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Sat, 27 Jun 2026 15:34:58 +0000 -->
<!--X-Message-Id: DM3PPF1CEB6B7EFE333FAA0270D09E4410199EA2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: 79f22ee3&#45;c17e&#45;4b05&#45;8957&#45;8d9195d9b385@lnf.infn.it -->
<!--X-Reference: c165d69d&#45;6961&#45;4b8f&#45;936a&#45;3de97281b0b4@lnf.infn.it -->
<!--X-Reference: DM3PPF1CEB6B7EF599ACD377D386FC2CF1899E22@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: 88e59999&#45;6ba5&#45;4860&#45;95b1&#45;86eedb041b0a@lnf.infn.it -->
<!--X-Reference: DM3PPF1CEB6B7EFF0A00D690CE8B3701DBE99E22@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: SJ0PR09MB10179BCE68F4BC748F76FDA99ACE22@SJ0PR09MB10179.namprd09.prod.outlook.com -->
<!--X-Reference: d781f826&#45;6653&#45;4ca1&#45;b377&#45;bbfd3fbb9843@lnf.infn.it -->
<!--X-Reference: 1e50ea92&#45;83d5&#45;4daa&#45;8f99&#45;bb5e4ea696a1@lnf.infn.it -->
<!--X-Reference: 885dab36&#45;b8d8&#45;4061&#45;a0fc&#45;1c535f052fbc@lnf.infn.it -->
<!--X-Reference: d4472b1f&#45;91f7&#45;451d&#45;b459&#45;5b357a293884@lnf.infn.it -->
<!--X-Reference: DM3PPF1CEB6B7EFF8BC5935477A7F9EC96299ED2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: F9AB7DA5&#45;0DAE&#45;4C77&#45;8AA9&#45;F387E931B0C0@lnf.infn.it -->
<!--X-Reference: DM3PPF1CEB6B7EF0E778AF2BDDAFC1E09D799ED2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: 39a91d56&#45;8ef4&#45;43a4&#45;9512&#45;f7787c46fa3e@lnf.infn.it -->
<!--X-Reference: DM3PPF1CEB6B7EF0EEF0488B2A3A1CBF20899EC2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: 7b305b7a&#45;5a7a&#45;49e4&#45;82cf&#45;92e39c366560@lnf.infn.it -->
<!--X-Reference: DM3PPF1CEB6B7EF22642CAE58CDA1916A8399EC2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: Problems with Dante (XGLab) Driver</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Mark Rivers via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
Dariush Hampai &lt;<a href="mailto:dariush%20dot%20hampai%20at%20lnf%20dot%20infn%20dot%20it">dariush.hampai at lnf.infn.it</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Cc</em>:</td>
<td align="left">
&quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Sat, 27 Jun 2026 15:34:58 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<table width="100%"><tr><td style="">


<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I have moved this thread to this new issue on Github:</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/Dante/issues/34__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmlmXrRyk$" id="OWA5c2e431f-7d80-1f8b-6d9f-7e3e74e768fc" class="OWAAutoLink">https://github.com/epics-modules/Dante/issues/34</a></div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I copied the tech-talk thread discussion to date in that issue.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I have also attempted to reproduce the problem.&nbsp; I configured the Dante8 as Dariush did, with 10 second preset real time.&nbsp; I used PollTime=0.01 second, since he asserted this made the problem worse.&nbsp; I configured an EPICS sscan record to collect with the Dante
 2000 times, which was 5.56 hours.&nbsp;</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
It worked perfectly, and I am thus unable to reproduce the issue.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Further discussion should be in that Github issue, not here.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Mark</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<div><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<b>From:</b>&nbsp;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;<br>
<b>Sent:</b>&nbsp;Thursday, June 25, 2026 8:39 AM<br>
<b>To:</b>&nbsp;Dariush Hampai &lt;dariush.hampai at lnf.infn.it&gt;<br>
<b>Cc:</b>&nbsp;Johnson, Andrew N. &lt;anj at anl.gov&gt;; tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject:</b>&nbsp;Re: Problems with Dante (XGLab) Driver </div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
Dariush,</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
6 days ago you told me that when the problem occurs there are <b>no error messages</b>&nbsp;on the IOC console.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
If your hypothesis is correct about waitReply timing out or getting the wrong callId were correct then there would be error messages, because both of those result in asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, ...) calls in waitReply().</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
Why are you not seeing these errors messages?</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
Mark</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: black;">
<b>From:</b>&nbsp;Dariush Hampai &lt;dariush.hampai at lnf.infn.it&gt;<br>
<b>Sent:</b>&nbsp;Thursday, June 25, 2026 7:55 AM<br>
<b>To:</b>&nbsp;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;<br>
<b>Cc:</b>&nbsp;Johnson, Andrew N. &lt;anj at anl.gov&gt;; tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject:</b>&nbsp;Re: Problems with Dante (XGLab) Driver</div>
<div style="direction: ltr;">&nbsp;</div>
</div>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">Hi Mark,<br>
I'm trying to fix the racecondition that I have, and the file dante.cpp confirms a hypothesis more precise than the initial one.<br>
As you said correctly waitReply does NOT block forever &#x2014; it has a 20-second timeout (MESSAGE_TIMEOUT). However, the &quot;infinite&quot; hang I'm observing is likely the cumulative sum of many cascading 20s timeouts, caused by a very specific design flaw I've identified:</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><br>
</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">***<br>
else if (function == DanteKeepAlive) {<br>
&nbsp; &nbsp; // This just periodically reads the firmware version of the first board<br>
&nbsp; &nbsp; // to keep the socket alive<br>
&nbsp; &nbsp; callId_ = getFirmware(danteIdentifier_, 0);<br>
&nbsp; &nbsp; waitReply(callId_, danteReply_, &quot;getFirmware&quot;);<br>
}<br>
***<br>
<br>
It seems as:<br>
1) callId_ is a single shared member variable (dante.h: uint32_t callId_;), neither local nor protected by a robust matching mechanism.<br>
2) Board responses arrive asynchronously via danteCallback(), invoked by internal SDK threads (AsyncTask, the ones you saw in today's backtrace) &#x2014; this callback is not subject to asynPortDriver's lock, because it originates from the SDK world, not the asyn
 world.<br>
3) If a request (e.g., the getFirmware call from DanteKeepAlive, or the one invoked inside acquisitionTask for stop() in list mode, line 1268) times out (20s) before the response arrives, that response still arrives afterward, and ends up in the msgQ_ queue.<br>
4) The next call to waitReply (perhaps for a completely different command) reads that &quot;old&quot; response from the queue, finds a non-matching call_id (lines 406-410), discards it, and returns an error &#x2014; but meanwhile, the legitimate response for that new request
 is still on its way, and will end up misaligning the subsequent call as well.<br>
<br>
The result seems a progressive and permanent queue desynchronization &#x2014; from that point on, every waitReply call uselessly waits the full 20 seconds (or misinterprets a message), because the queue is now &quot;shifted&quot; by one position. With long scans, as more operations
 are performed, it becomes increasingly likely that this desynchronization occurs and worsens, until some critical state transition (e.g., detecting the end of an acquisition) never receives the correct response &#x2014; and at that point, the system appears permanently
 hung.<br>
<br>
Instead of giving up at the first non-matching message, waitReply should continue draining the queue until it finds the right message or the total time expires, as:</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">***<br>
asynStatus Dante::waitReply(uint32_t callId, char *reply, const char *caller) {<br>
&nbsp; &nbsp; struct danteMessage message;<br>
&nbsp; &nbsp; int numRecv;<br>
&nbsp; &nbsp; static const char *functionName = &quot;waitReply&quot;;<br>
&nbsp; &nbsp; epicsTimeStamp start, now;<br>
&nbsp; &nbsp; double elapsed;<br>
&nbsp; &nbsp; double remaining;<br>
<br>
&nbsp; &nbsp; epicsTimeGetCurrent(&amp;start);<br>
<br>
&nbsp; &nbsp; while (1) {<br>
&nbsp; &nbsp; &nbsp; &nbsp; epicsTimeGetCurrent(&amp;now);<br>
&nbsp; &nbsp; &nbsp; &nbsp; elapsed = epicsTimeDiffInSeconds(&amp;now, &amp;start);<br>
&nbsp; &nbsp; &nbsp; &nbsp; remaining = MESSAGE_TIMEOUT - elapsed;<br>
&nbsp; &nbsp; &nbsp; &nbsp; if (remaining &lt;= 0) {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;%s::%s timeout waiting for matching reply, caller=%s expected callId=%u\n&quot;,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; driverName, functionName, caller, callId);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return asynError;<br>
&nbsp; &nbsp; &nbsp; &nbsp; }<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; numRecv = msgQ_-&gt;receive(&amp;message, sizeof(message), remaining);<br>
&nbsp; &nbsp; &nbsp; &nbsp; if (numRecv != sizeof(message)) {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;%s::%s error receiving message in %f seconds, caller=%s numRecv=%d\n&quot;,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; driverName, functionName, remaining, caller, numRecv);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return asynError;<br>
&nbsp; &nbsp; &nbsp; &nbsp; }<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; if (message.call_id != callId) {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; asynPrint(pasynUserSelf, ASYN_TRACE_WARNING,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;%s::%s stale/mismatched reply discarded, caller=%s expected=%u actual=%u (retrying)\n&quot;,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; driverName, functionName, caller, callId, message.call_id);<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br>
&nbsp; &nbsp; &nbsp; &nbsp; }<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; for (uint32_t i=0; i&lt;message.length; i++) {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; reply[i]=message.data[i];<br>
&nbsp; &nbsp; &nbsp; &nbsp; }<br>
&nbsp; &nbsp; &nbsp; &nbsp; return asynSuccess;<br>
&nbsp; &nbsp; }<br>
}<br>
***<br>
<br>
changing in:<br>
1) The 20s timeout is now total, not per individual receive() call &#x2014; if 3 misaligned messages arrive in rapid succession, you don't have 3x20s of waiting, but the time still expires within the overall 20s window<br>
2) Non-matching messages are silently discarded but the queue continues to be drained within the same loop, so the next caller won't find a &quot;toxic&quot; discarded message waiting for them<br>
3) Added a warning log (not error) for intermediate mismatches, useful for future diagnostics without clogging logs with false errors</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><br>
</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">Dariush</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><br>
</p>
<div style="direction: ltr;">Il 25/06/2026 14:27, Mark Rivers ha scritto:</div>
<blockquote>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
Hi Darius,</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:4}" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: &quot;&#10146; &quot;;">
<p role="presentation" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
That reply never arrives, so waitReply() blocks indefinitely &#x2014; while still holding the asynPortDriver lock, since the port thread typically holds it for the duration of the I/O operation.</p>
</li></ul>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
I don't believe it is possible for waitReply() to block indefinitely.&nbsp; The line where it actually waits is here:</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/Dante/blob/2ef206c6c2c2b0349218c8329bc4c7cb15999c93/danteApp/danteSrc/dante.cpp*L399__;Iw!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmuwhxR50$" id="OWAe4ab044c-311f-6c17-d848-1516bc6d363d" data-auth="NotApplicable" class="OWAAutoLink">https://github.com/epics-modules/Dante/blob/2ef206c6c2c2b0349218c8329bc4c7cb15999c93/danteApp/danteSrc/dante.cpp#L399</a></div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
This is the code:</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; numRecv = msgQ_-&gt;receive(&amp;message, sizeof(message), MESSAGE_TIMEOUT);</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; if (numRecv != sizeof(message)) {</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; &nbsp; &nbsp; asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;%s::%s error receiving message in %f seconds, caller=%s numRecv=%d\n&quot;,</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; driverName, functionName, MESSAGE_TIMEOUT, caller, numRecv);</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; &nbsp; &nbsp; return asynError;</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; }</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
It is waiting for a&nbsp;message to arrive on an epicsMessageQueue.&nbsp; It will timeout after MESSAGE_TIMEOUT, which is defined to be 20 seconds.</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
If it times out you should see an error message on the IOC console, which is printed in that asynPrint line.</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-size: 12pt; color: black;"><span style="font-family: &quot;Times New Roman&quot;, Times, serif;">You could add debugging
</span><span style="font-family: &quot;Courier New&quot;, monospace;">asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, ...)
</span><span style="font-family: &quot;Times New Roman&quot;, Times, serif;">calls&nbsp;before and after the call to msgQ_-&gt;receive() to see if it is really waiting for more than 20 seconds.</span></div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:4}" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: &quot;&#10146; &quot;;">
<p role="presentation" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
Possible fix directions:<br>
1) Add a timeout to waitReply() so a missing reply from the board doesn't block forever<br>
<br>
</p>
</li></ul>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
There is already a timeout as shown above.</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:4}" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: &quot;&#10146; &quot;;">
<p role="presentation" style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">
2) Avoid issuing getFirmware (or other non-acquisition commands) while an acquisition is in progress, or ensure they don't compete for the same lock held by acquisitionTask</p>
<div role="presentation" style="direction: ltr;"><br>
</div>
</li></ul>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
The getFirmware command is being sent because the Dante SDK requires that &quot;keep-alive&quot; messages be sent periodically or it will close the socket.&nbsp; The following is the KeepAlive record that is used to do this.</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/Dante/blob/2ef206c6c2c2b0349218c8329bc4c7cb15999c93/danteApp/Db/dante.template*L203-L212__;Iw!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmglhu3QA$" id="OWAc07303a0-a11c-276d-f808-c50b816e5d12" data-auth="NotApplicable" class="OWAAutoLink">https://github.com/epics-modules/Dante/blob/2ef206c6c2c2b0349218c8329bc4c7cb15999c93/danteApp/Db/dante.template#L203-L212</a></div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
# This record scans periodically when acquisition is not active to keep the socket connection alive</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
record(bo,&quot;$(P)$(R)KeepAlive&quot;) {</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; field(DTYP, &quot;asynInt32&quot;)</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; field(OUT, &quot;@asyn($(PORT))DanteKeepAlive&quot;)</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; field(SCAN,&quot;10 second&quot;)</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; field(DISV,&quot;1&quot;)</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; field(SDIS,&quot;$(P)$(R)MCAAcquireBusy NPP NMS&quot;)</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; field(ZNAM,&quot;Done&quot;)</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
&nbsp; &nbsp; field(ONAM,&quot;Poll&quot;)</div>
<div style="direction: ltr; font-family: &quot;Courier New&quot;, monospace; font-size: 12pt; color: black;">
}</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
Note that it is processed every 10 seconds, and that this record is disabled if MCAAcquireBusy is 1.&nbsp; Thus, it should not be calling getFirmware if the Dante is currently acquiring.</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
Please open an issue for this on the Dante Github page.&nbsp; That is a more appropriate location than tech-talk for this.&nbsp; Please provide full background for the issue there, including all information that I have requested but that you have not provided, like versions
 of all packages.</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/Dante/issues__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmMuXK1K0$" id="OWA11766787-3dd1-b306-6c17-742a3c40f221" data-auth="NotApplicable" class="OWAAutoLink">https://github.com/epics-modules/Dante/issues</a></div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt; color: black;">
Mark</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: black;">
<b>From:</b>&nbsp;Dariush Hampai <a rel="nofollow" href="mailto:dariush.hampai at lnf.infn.it" id="OWAe49e13de-c744-4c51-12dd-07124208712b" class="OWAAutoLink">
&lt;dariush.hampai at lnf.infn.it&gt;</a><br>
<b>Sent:</b>&nbsp;Thursday, June 25, 2026 5:36 AM<br>
<b>To:</b>&nbsp;Mark Rivers <a rel="nofollow" href="mailto:rivers at cars.uchicago.edu" id="OWA6e9ef602-6f48-8b56-005e-b75cf8b93c08" class="OWAAutoLink">
&lt;rivers at cars.uchicago.edu&gt;</a><br>
<b>Cc:</b>&nbsp;Johnson, Andrew N. <a rel="nofollow" href="mailto:anj at anl.gov" id="OWA5b48ea18-8290-3616-b5d9-3e5adcb36033" class="OWAAutoLink">
&lt;anj at anl.gov&gt;</a>; <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWA8e32b4f3-d12f-11c7-f6bb-227cf20544fa" class="OWAAutoLink">
tech-talk at aps.anl.gov</a> <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWAcaf695a4-bfbd-520f-454a-ef7c7efadbed" class="OWAAutoLink">
&lt;tech-talk at aps.anl.gov&gt;</a><br>
<b>Subject:</b>&nbsp;Re: Problems with Dante (XGLab) Driver</div>
<div style="direction: ltr;">&nbsp;</div>
</div>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">Hi Mark,<br>
I'm running into a recurring IOC lockup with the Dante driver during long scans, and I managed to capture a full backtrace (thread apply all bt via gdb attached to the running process) right at the moment of the freeze. I believe this is a genuine deadlock
 in the driver. Here's what I found:<br>
Thread 137 &quot;DANTE1&quot; (the asyn portThread):<br>
#5&nbsp; Dante::waitReply(callId=244, caller=&quot;getFirmware&quot;) at dante.cpp:399<br>
#6&nbsp; Dante::writeInt32(value=0) at dante.cpp:567<br>
#7&nbsp; asynPortDriver::writeInt32<br>
#8&nbsp; processCallbackOutput (devAsynInt32.c)<br>
#9&nbsp; portThread (asynManager.c)<br>
Thread 129 &quot;acquisitionTask&quot;:<br>
#2&nbsp; epicsMutexLock<br>
#3&nbsp; asynPortDriver::lock() at asynPortDriver.cpp:949<br>
#4&nbsp; Dante::acquisitionTask() at dante.cpp:1290<br>
What appears to be happening:<br>
<br>
The dedicated asyn portThread (Thread 137) is executing a getFirmware command via writeInt32(), which internally calls waitReply() waiting for a response from the board (callId=244).<br>
That reply never arrives, so waitReply() blocks indefinitely &#x2014; while still holding the asynPortDriver lock, since the port thread typically holds it for the duration of the I/O operation.<br>
Meanwhile, acquisitionTask (Thread 129) needs the same lock to process newly acquired data at dante.cpp:1290, and blocks forever waiting for it.<br>
Since the portThread is the single thread serializing all asyn requests on that port, the entire IOC becomes unresponsive to any further command (including StopAll/Reset) &#x2014; only a full IOC restart recovers it.<br>
<br>
Trigger condition:<br>
This appears to be a race condition: it happened after ~300 acquisitions on one run, then again after only 21 and 33 acquisitions on subsequent runs &#x2014; at variable scan steps, not a fixed one &#x2014; which points to a timing-dependent race rather than a resource leak.
 We suspect the getFirmware command is being triggered by a periodic PV poll from a Phoebus/CS-Studio diagnostic screen running concurrently with the scan, colliding with an in-progress acquisition cycle.</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><br>
</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;">Possible fix directions:<br>
1) Add a timeout to waitReply() so a missing reply from the board doesn't block forever<br>
2) Avoid issuing getFirmware (or other non-acquisition commands) while an acquisition is in progress, or ensure they don't compete for the same lock held by acquisitionTask<br>
<br>
Happy to provide the full backtrace file, the exact PollTime settings, channel/trigger configuration (4096 channels, single mode, free-running, no trigger), or any other diagnostic info that would help track this down.<br>
Thanks,<br>
Dariush</p>
<p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><br>
p.s.: thanks also to Claude that help me in debug<br>
<br>
</p>
<div style="direction: ltr;">Il 24/06/2026 16:19, Mark Rivers ha scritto:</div>
<blockquote>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
All of my testing was done with PollTime=0.01 and I did not have a problem.&nbsp; What type of computer are you using, i.e. how many cores and what clock speed.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
When you acquire with PollTime=0.01 and you run &quot;top -H&quot; on the Linux machine what do you see.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
PollTime=0.1 will reduce performance if you are trying to acquire quickly.&nbsp; You could see if 0.02 is sufficient to fix the problem.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
Please send a screenshot of the Dante screen in the configuration where you saw the problem.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
Mark</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: black;">
<br>
</div>
<hr style="direction: ltr; display: inline-block; width: 98%;">
<div id="x_x_x_divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: black;">
<b>From:</b>&nbsp;Dariush Hampai <a rel="nofollow" href="mailto:dariush.hampai at lnf.infn.it" id="OWA86317ecf-9475-2d6c-a469-8c24624977b3" class="OWAAutoLink">
&lt;dariush.hampai at lnf.infn.it&gt;</a><br>
<b>Sent:</b>&nbsp;Wednesday, June 24, 2026 9:06 AM<br>
<b>To:</b>&nbsp;Mark Rivers <a rel="nofollow" href="mailto:rivers at cars.uchicago.edu" id="OWAd7aad03a-52ec-b1db-c942-52b184ebeee4" class="OWAAutoLink">
&lt;rivers at cars.uchicago.edu&gt;</a><br>
<b>Cc:</b>&nbsp;Johnson, Andrew N. <a rel="nofollow" href="mailto:anj at anl.gov" id="OWAf76c8103-a515-0aff-a4d8-b4ce85f7d3cb" class="OWAAutoLink">
&lt;anj at anl.gov&gt;</a>; <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWAd6c47f4d-e866-9ebe-c7ed-f522a2290c08" class="OWAAutoLink">
tech-talk at aps.anl.gov</a> <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWA9e14e64a-4f6c-e292-eb45-8740628a5769" class="OWAAutoLink">
&lt;tech-talk at aps.anl.gov&gt;</a><br>
<b>Subject:</b>&nbsp;Re: Problems with Dante (XGLab) Driver</div>
<div style="direction: ltr;">&nbsp;</div>
</div>
<div style="direction: ltr;">Hi Mark,</div>
<div style="direction: ltr;">the IOC doesn&#x2019;t exit&#x2026; simply it remains in &#x201C;acquiring status&#x201D; without exit (even StopAll command doesn&#x2019;t work).</div>
<div style="direction: ltr;">I tried to increase the poll (from 0.01 to 0.1) as Claude suggested, and apparently works.</div>
<div style="direction: ltr;">Tomorrow I&#x2019;ll start a complete session (so there will be many acquisition) in order to see if the problem remain.</div>
<div style="direction: ltr;">Two days ago I&#x2019;ll attach a complete (and full) report about threads&#x2026;</div>
<div style="direction: ltr;"><br>
</div>
<div style="direction: ltr;">Dariush</div>
<div style="direction: ltr;"><br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;">************************************<br>
<br>
Dr. Dariush Hampai, PhD<br>
<br>
INFN - LNF<br>
X-Lab Frascati<br>
Via E. Fermi, 54 (ex 40)<br>
I-00044 Frascati (RM)<br>
Italy</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;"><br>
</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;">Mail Address:</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;">XLab-Frascati</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;">LNF-INFN</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;">Casella Postale 13</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;">Frascati (RM)</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;">Italy</span></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: normal; font-family: Helvetica; color: black;">
<span style="line-height: normal;"><br>
Room: +39.06.9403.5248<br>
Lab.: +39.06.9403.2286<br>
Mob.: +39.06.9403.8025<br>
Fax.: +39.06.9403.2597<br>
<br>
************************************<br>
<br>
<br>
</span></div>
<div style="direction: ltr;"><br>
</div>
<blockquote>
<div style="direction: ltr;">Il giorno 24 giu 2026, alle ore 15:47, Mark Rivers <a rel="nofollow" href="mailto:rivers at cars.uchicago.edu" id="OWAadbe4e41-92dc-aa8c-1adf-b3dee7b15c51" class="OWAAutoLink">
&lt;rivers at cars.uchicago.edu&gt;</a>&nbsp;ha scritto:</div>
<div style="direction: ltr;"><br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Hi Dariush,</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
I am a bit confused.&nbsp; In your original message you said:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:4}" style="direction: ltr; text-align: left; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: &quot;&#10146; &quot;;">
<div role="presentation" style="direction: ltr;">When I start few acquisitions (from caput command or from Phebus), the system seems that crash.</div>
</li></ul>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
That led me to understand that the IOC was crashing, i.e. the exiting with an error.&nbsp;</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
I then asked you to run the IOC under gdb and send me the backtrace when it crashed.&nbsp; You did that, and it showed the error was in the readline library.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
But now I am wondering if it really crashed.&nbsp; What did you do to get to the gdb prompt and type &quot;backtrace&quot;.&nbsp; Did you type ^C, i.e. did you force it to crash?</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
You need to be clear on whether it is &quot;crashing&quot; or &quot;hanging&quot;.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
To make progress on this you need to do the following:</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:2}" style="direction: ltr; text-align: left; margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: &quot;- &quot;;">
<div role="presentation" style="direction: ltr;">Tell us exactly what versions of each module you are using (base, asyn, mca, dante).</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: &quot;- &quot;;">
<div role="presentation" style="direction: ltr;">Send a screenshot of the Dante screen when it crashes so we know how you have configured it.</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: &quot;- &quot;;">
<div role="presentation" style="direction: ltr;">Run the IOC under gdb and send the complete output from when you first start gdb to when it crashes and you type &quot;backtrace&quot;.</div>
</li></ul>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Mark</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<hr style="direction: ltr; text-align: left; text-indent: 0px; display: inline-block; width: 817.3px;">
<div id="x_x_x_x_divRplyFwdMsg">
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, sans-serif; font-size: 11pt;">
<b>From:</b>&nbsp;Dariush Hampai &lt;<a rel="nofollow" href="mailto:dariush.hampai at lnf.infn.it" id="OWA438db909-55d5-9416-dd80-df4eaf0dcaa4" class="OWAAutoLink">dariush.hampai at lnf.infn.it</a>&gt;<br>
<b>Sent:</b>&nbsp;Wednesday, June 24, 2026 4:10 AM<br>
<b>To:</b>&nbsp;Johnson, Andrew N. &lt;<a rel="nofollow" href="mailto:anj at anl.gov" id="OWAb453ad0d-41e7-3396-b1d0-5acfcaee5017" class="OWAAutoLink">anj at anl.gov</a>&gt;; Mark Rivers &lt;<a rel="nofollow" href="mailto:rivers at cars.uchicago.edu" id="OWAbac3c50f-2eef-c871-eb1f-3fec9d5524a9" class="OWAAutoLink">rivers at cars.uchicago.edu</a>&gt;;
<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWA5b030916-f47f-b693-298a-6093bd4e5e85" class="OWAAutoLink">
tech-talk at aps.anl.gov</a>&nbsp;&lt;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWA249f1f52-5ade-789a-598b-2396842ca6a1" class="OWAAutoLink">tech-talk at aps.anl.gov</a>&gt;<br>
<b>Subject:</b>&nbsp;Re: Problems with Dante (XGLab) Driver</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
&nbsp;</div>
</div>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Helvetica; font-size: 12px;">
Hi Mark,<br>
Hi Andrew,<br>
using Claude maybe I found the problem (but not the solution...). Following what Claude ask, I use Dante in 4096 channels mode, not in mapping mode and without trigger.</p>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Helvetica; font-size: 12px;">
Claude answer to me:</p>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Helvetica; font-size: 12px;">
There are two key threads:<br>
Thread 17 &quot;acquisitionTask&quot;:&nbsp;<br>
#2 epicsThreadSleep&nbsp;<br>
#3 Dante::acquisitionTask (this=0x594560) at ../dante.cpp:1289&nbsp;<br>
Thread 8 &quot;DANTE1&quot;:&nbsp;<br>
#2 epicsThreadSleep&nbsp;<br>
#3 Dante::writeInt32 (this=0x594560, value=1) at ../dante.cpp:461&nbsp;<br>
#4 asynPortDriver::writeInt32&nbsp;<br>
#5 processCallbackOutput (devAsynInt32.c)&nbsp;<br>
#6 portThread (asynManager.c)</p>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Helvetica; font-size: 12px;">
1) Thread 8 &quot;DANTE1&quot; is the dedicated thread for the asyn port (portThread in asynManager.c) &#x2014; the one EPICS uses to serialize all read/write requests on that asyn device. It is blocked inside Dante::writeInt32 with value=1, which with very high probability
 corresponds exactly to the EraseStart command you sent. This function internally calls epicsThreadSleep &#x2014; so writeInt32 is waiting in a blocking, synchronous manner for something to happen (most likely for the acquisition to signal &quot;done&quot;).<br>
<br>
2) Thread 17 &quot;acquisitionTask&quot; is the internal thread of the Dante driver that should handle the acquisition loop, also stopped on epicsThreadSleep inside a loop at dante.cpp:1289. This is almost certainly a polling loop that periodically checks the acquisition
 status (while acquiring &#x2192; sleep &#x2192; check status).<br>
<br>
The critical point: if acquisitionTask never sees the &quot;acquisition completed&quot; condition &#x2014; due to a lost event, a race condition, or a status flag not being correctly updated by the firmware/board &#x2014; it remains stuck in this loop forever. And since writeInt32
 (called by the EraseStart command) most likely waits for this very completion before returning, the asyn port thread also remains blocked.<br>
<br>
Why the IOC appears &quot;frozen&quot; and no commands work:<br>
<br>
This is the most important detail: in asyn, a single thread (portThread) serializes all requests on that port. If that thread is blocked inside writeInt32, no other command can be processed on that device &#x2014; not even StopAll or Reset, because they end up queued
 behind the blocked request. This is why the system appears completely frozen and unresponsive to anything until you restart the IOC.<br>
<br>
Confirmation from official documentation:<br>
<br>
This matches exactly what I found in the Performance page: in mapping mode with 2048 and 1024 channels, above a certain trigger frequency spectra are lost and the EPICS IOC must be restarted. It's very likely you're running into a variant of the same problem
 &#x2014; a race condition in the driver where an acquisition completion event is lost, leaving acquisitionTask (and therefore writeInt32/EraseStart) waiting indefinitely. Paulscherrerinstitute<br>
<br>
What you can do:<br>
<br>
1) There is no documented clean software reset for this scenario, because the thread that should process any reset command is precisely the one that is blocked. Restarting the IOC remains, according to the documentation itself, the official solution.<br>
<br>
2) Preventive mitigation &#x2014; since the problem seems related to a lost event/state during acquisition, try to:<br>
&nbsp; &nbsp; a) Slightly increase PollTime (e.g., from 0.01 to 0.02-0.05s) to give the firmware more margin to communicate the status<br>
&nbsp; &nbsp; b) If you are in mapping mode with 1024/2048 channels and high trigger frequencies, evaluate whether you can switch to 4096 channels, where (according to the Performance table) the limits are much higher<br>
&nbsp; &nbsp; c) Verify that the Dante board firmware is at the latest version &#x2014; bugs of this type are often fixed on the firmware side<br>
<br>
3) If the problem persists, it's worth reporting it directly to EPICS Community or to Dante/XGLab support &#x2014; the backtrace you produced is exactly the kind of evidence needed for a bug report, because it precisely identifies the lines (dante.cpp:1289 and dante.cpp:461)
 where the driver gets stuck.<br>
<br>
Dariush</p>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Il 23/06/2026 14:51, Dariush Hampai via Tech-talk ha scritto:</div>
<blockquote>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em;">
<span style="font-family: Helvetica; font-size: 12px;">Hi Mark<br>
Hi Andew<br>
with a carefully read of &quot;(gdb) thread apply all bt&quot; I found a strange Thread almost at the end...<br>
<br>
Thread 256 (Thread 0x7fff669a2640 (LWP 1412432) &quot;save_restore&quot;):<br>
#0&nbsp; 0x00007ffff58884da in __futex_abstimed_wait_common () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libc.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmH_XNPGM$" id="OWA44a63879-09cd-2907-37b4-038fe9690f6f" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libc.so</a>.6<br>
#1&nbsp; 0x00007ffff588acaf in <a rel="nofollow" href="mailto:pthread_cond_timedwait@@GLIBC_2.3.2" id="OWA6442837e-56eb-3ee7-c3b7-00f8d65231d6" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">
pthread_cond_timedwait@@GLIBC_2.3.2</a>&nbsp;() from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libc.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmH_XNPGM$" id="OWA1c0a4664-5e49-c26b-c826-c09bbf171ad4" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libc.so</a>.6<br>
#2&nbsp; 0x00007ffff6c8578d in epicsEventWaitWithTimeout (pevent=0x7fff78020330, timeout=&lt;optimized out&gt;) at ../osi/os/posix/osdEvent.c:131<br>
#3&nbsp; 0x00007ffff6c86c27 in myReceive (timeout=&lt;optimized out&gt;, size=512, message=0x200, pmsg=0xa724a0) at ../osi/os/default/osdMessageQueue.cpp:369<br>
#4&nbsp; epicsMessageQueueReceiveWithTimeout (pmsg=0xa724a0, message=message@entry=0x7fff669a1a40, size=size@entry=512, timeout=1) at ../osi/os/default/osdMessageQueue.cpp:404<br>
#5&nbsp; 0x00007ffff73d5796 in save_restore () at ../save_restore.c:1226<br>
#6&nbsp; 0x00007ffff6c82795 in start_routine (arg=0x3384670) at ../osi/os/posix/osdThread.c:442<br>
#7&nbsp; 0x00007ffff588b4f9 in start_thread () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libc.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmH_XNPGM$" id="OWAdc095a46-01e8-f07c-da5c-8d8ec8a50115" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libc.so</a>.6<br>
#8&nbsp; 0x00007ffff59106e0 in clone3 () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libc.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmH_XNPGM$" id="OWAdf46e3fc-2c57-67a9-8f6a-3cbeffab0233" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libc.so</a>.6<br>
<br>
only here it was called the Thread &quot;save_restore&quot; and only here the &quot;epicsMessageQueueReceiveWithTimeout&quot;<br>
maybe is this the problem?<br>
<br>
Dariush</span></p>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Il 23/06/2026 14:05, Dariush Hampai via Tech-talk ha scritto:</div>
<blockquote>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em;">
<span style="font-family: Helvetica; font-size: 12px;">Hi Mark,<br>
Hi Andrew,<br>
any idea?<br>
<br>
Dariush</span></p>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Il 22/06/2026 11:25, Dariush Hampai ha scritto:</div>
<blockquote>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em;">
<span style="font-family: Helvetica; font-size: 12px;">Dear Mark<br>
Dear Andrew,<br>
<br>
I replied the crash and it seems the same.<br>
<br>
#0&nbsp; 0x00007ffff5904b92 in pselect () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libc.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmH_XNPGM$" id="OWA53b3542e-d7e1-89b4-79ba-a697ba0da880" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libc.so</a>.6<br>
#1&nbsp; 0x00007ffff6b143bb in rl_getc () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libreadline.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmeI51NqU$" id="OWA41f9b6d2-cbec-9c3b-136f-f87c5a81245f" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libreadline.so</a>.8<br>
#2&nbsp; 0x00007ffff6b13cd1 in rl_read_key () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libreadline.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmeI51NqU$" id="OWA6096c9cc-5c53-656c-bbc8-a0384c9fea0f" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libreadline.so</a>.8<br>
#3&nbsp; 0x00007ffff6af8497 in readline_internal_char () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libreadline.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmeI51NqU$" id="OWAcae9ba34-72cd-3e5e-ad79-06a4ba52c424" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libreadline.so</a>.8<br>
#4&nbsp; 0x00007ffff6b01535 in readline () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libreadline.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmeI51NqU$" id="OWAc15c5f30-f24d-6c56-2e79-5052964f2564" data-auth="NotApplicable" class="OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">libreadline.so</a>.8<br>
#5&nbsp; 0x00007ffff6c85cd2 in osdReadline (context=0x444dc0, prompt=0x7ffff6c9c183 &quot;epics&gt; &quot;) at ../osi/os/default/gnuReadline.c:70<br>
#6&nbsp; epicsReadline (prompt=0x7ffff6c9c183 &quot;epics&gt; &quot;, context=0x444dc0) at ../osi/epicsReadline.c:68<br>
#7&nbsp; 0x00007ffff6c77aea in iocshBody (pathname=&lt;optimized out&gt;, commandLine=0x0, macros=0x0) at ../iocsh/iocsh.cpp:1143<br>
#8&nbsp; 0x000000000040a616 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;) at ../mcaDanteAppMain.cpp:20</span></p>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em;">
<span style="font-family: Helvetica; font-size: 12px;">In attach I'll put the output of &quot;thread apply all backtrace&#8203;&quot;</span></p>
<p style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em;">
<span style="font-family: Helvetica; font-size: 12px;">awaiting your replies...<br>
<br>
Dariush<br>
<br>
<br>
</span></p>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Il 19/06/2026 17:13, Johnson, Andrew N. ha scritto:</div>
<blockquote>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt;">
Hi Dariush,</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt;">
Please also include any messages output just before and announcing the crash, and instead of just the gdb command &nbsp;<code>backtrace</code>&#8203;&nbsp;&nbsp;first run &nbsp;<code>set height 0</code>&#8203;&nbsp;&nbsp;to disable the pager&nbsp;and then &nbsp;<code>thread&nbsp;apply all</code>&nbsp;<code>backtrace</code>&#8203;&nbsp;&nbsp;which
 will produce lots of output that may help Mark diagnose the problem.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div id="x_x_x_x_x_ms-outlook-mobile-signature">
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt;">
- Andrew</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt;">
--&nbsp;</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt;">
Complexity comes for free, Simplicity you have to work for.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin: 0px; font-family: Calibri, sans-serif; font-size: 11pt;">
<br>
</div>
</div>
<div id="x_x_x_x_x_mail-editor-reference-message-container">
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
On 6/19/26, 9:50&#8239;AM, &quot;Tech-talk&quot; <a rel="nofollow" href="mailto:tech-talk-bounces at aps.anl.gov" id="OWA977feedb-c20a-d585-fcab-1794e2d6bb23" class="OWAAutoLink">
&lt;tech-talk-bounces at aps.anl.gov&gt;</a>&nbsp;wrote:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
What did you do that triggered the crash this time?</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Please continue to run the IOC using gdb.&nbsp; Each time it crashes save the output of backtrace.&nbsp; We need to see if it is always crashing in the readline library.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Mark</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<hr style="direction: ltr; text-align: left; text-indent: 0px; display: inline-block; width: 503.72px;">
<div id="x_x_x_x_x_divRplyFwdMsg">
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, sans-serif; font-size: 11pt;">
<b>From:</b>&nbsp;Dariush Hampai <a rel="nofollow" href="mailto:dariush.hampai at lnf.infn.it" id="OWA5dac449d-046e-38af-c5a5-55005769a4b8" class="OWAAutoLink">
&lt;dariush.hampai at lnf.infn.it&gt;</a><br>
<b>Sent:</b>&nbsp;Friday, June 19, 2026 9:45 AM<br>
<b>To:</b>&nbsp;Mark Rivers <a rel="nofollow" href="mailto:rivers at cars.uchicago.edu" id="OWAe95a4547-2fc8-bf20-2147-f54489f4a005" class="OWAAutoLink">
&lt;rivers at cars.uchicago.edu&gt;</a>; <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWAd4f33475-c1fd-9506-99ca-9cc4a9c5abf6" class="OWAAutoLink">
tech-talk at aps.anl.gov</a>&nbsp;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWAa914ab74-1e3b-2e75-4b4d-68db463b523f" class="OWAAutoLink">&lt;tech-talk at aps.anl.gov&gt;</a><br>
<b>Subject:</b>&nbsp;Re: Problems with Dante (XGLab) Driver</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
&nbsp;</div>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
Dear Mark,</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
I don't know if it is the same for all the previous crashes... however the effects are the same...</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
Dariush</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Il 19/06/2026 16:42, Mark Rivers ha scritto:</div>
<blockquote>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Hi Dariush,</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
The gdb backtrace says that the crash is actually in the Linux readline library.&nbsp; Was this crash caused by the same sequence of events as previous crashes you observed?</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Mark</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<hr style="direction: ltr; text-align: left; text-indent: 0px; display: inline-block; width: 425.3px;">
<div id="x_x_x_x_x_x_divRplyFwdMsg">
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, sans-serif; font-size: 11pt;">
<b>From:</b>&nbsp;Dariush Hampai <a rel="nofollow" href="mailto:dariush.hampai at lnf.infn.it" id="OWAad859101-b1db-20d8-7f10-16ad897a37aa" data-outlook-id="0b456746-58cc-4549-b0e6-656fb963ae9e" class="OWAAutoLink">
&lt;dariush.hampai at lnf.infn.it&gt;</a><br>
<b>Sent:</b>&nbsp;Friday, June 19, 2026 9:17 AM<br>
<b>To:</b>&nbsp;Mark Rivers <a rel="nofollow" href="mailto:rivers at cars.uchicago.edu" id="OWA9187d63a-b520-6300-fc21-4b7ed8ac4a57" data-outlook-id="30cde0ee-a1b9-45c4-ab54-956e391aebe9" class="OWAAutoLink">
&lt;rivers at cars.uchicago.edu&gt;</a>; <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWA43288d0a-2d9c-862e-0edb-b0fa97f3133e" data-outlook-id="108fc29d-4151-4504-8c85-e0271732642c" class="OWAAutoLink">
tech-talk at aps.anl.gov</a>&nbsp;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWAcf32fa7e-9d5a-6b72-63a2-06806970f779" data-outlook-id="69811d62-d11c-4b43-b2e4-10090820868c" class="OWAAutoLink">&lt;tech-talk at aps.anl.gov&gt;</a><br>
<b>Subject:</b>&nbsp;Re: Problems with Dante (XGLab) Driver</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
&nbsp;</div>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
&nbsp;Hi Mark,<br>
<br>
Are you using a Dante1 or a Dante8?<br>
I'm using Dante8</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
<br>
Does this happen every time you start, or just occasionally.&nbsp; If it is occasionally, then how frequently does it happen?<br>
Occasionally, more often when I two records are executed very closely<br>
<br>
Are there any error messages on the IOC?<br>
no, however some records are in &quot;acquire&quot; exit (as $(P)$(M).ACQG in mca window)<br>
<br>
Are you running on Linux or Windows?&nbsp;<br>
Linux (Centos 9)<br>
<br>
If you are running on Linux then please run the IOC in the GNU debugger. You can do that with the following commands from the iocDante1 directory:<br>
<br>
gdb ../../bin/linux-x86_64/mcaDanteApp<br>
run st.cmd<br>
<br>
When it crashes type this command at the debugger prompt:<br>
<br>
backtrace</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
(gdb) backtrace<br>
#0&nbsp; 0x00007ffff5904b92 in pselect () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libc.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmH_XNPGM$" id="OWAc4ac0cd1-bead-7319-b42b-383ea59a18f0" data-auth="NotApplicable" class="OWAAutoLink">libc.so</a>.6<br>
#1&nbsp; 0x00007ffff6b143bb in rl_getc () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libreadline.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmeI51NqU$" id="OWA16e3b368-5ed4-55fe-82ea-d10cea0a5a1d" data-auth="NotApplicable" class="OWAAutoLink">libreadline.so</a>.8<br>
#2&nbsp; 0x00007ffff6b13cd1 in rl_read_key () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libreadline.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmeI51NqU$" id="OWAa5802245-8fb7-4825-4a84-30848fbc7e53" data-auth="NotApplicable" class="OWAAutoLink">libreadline.so</a>.8<br>
#3&nbsp; 0x00007ffff6af8497 in readline_internal_char () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libreadline.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmeI51NqU$" id="OWA720715e1-724c-5bcc-434a-b9f37c2f9a70" data-auth="NotApplicable" class="OWAAutoLink">libreadline.so</a>.8<br>
#4&nbsp; 0x00007ffff6b01535 in readline () from /lib64/<a rel="nofollow" href="https://urldefense.us/v3/__http://libreadline.so/__;!!G_uCfscf7eWS!aPJLBpu8mR0TeJd24MQ2Ms4OcQ2vTf1p17VsBymdDVUI7px4NK4_2FgEwVuOwqz6wB9T3IfmwYRPyCuPLTGmeI51NqU$" id="OWA2ab13cb8-1ff1-6f55-a40d-34271720a6ee" data-auth="NotApplicable" class="OWAAutoLink">libreadline.so</a>.8<br>
#5&nbsp; 0x00007ffff6c85cd2 in osdReadline (context=0x444dc0, prompt=0x7ffff6c9c183 &quot;epics&gt; &quot;) at ../osi/os/default/gnuReadline.c:70<br>
#6&nbsp; epicsReadline (prompt=0x7ffff6c9c183 &quot;epics&gt; &quot;, context=0x444dc0) at ../osi/epicsReadline.c:68<br>
#7&nbsp; 0x00007ffff6c77aea in iocshBody (pathname=&lt;optimized out&gt;, commandLine=0x0, macros=0x0) at ../iocsh/iocsh.cpp:1143<br>
#8&nbsp; 0x000000000040a616 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;) at ../mcaDanteAppMain.cpp:20<br>
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
Thank you in advance<br>
Dariush e Maurizio</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; margin-top: 0px; margin-bottom: 0px; font-family: Helvetica; font-size: 12px;">
Il 16/06/2026 18:18, Mark Rivers ha scritto:</div>
<blockquote>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
Hi Dariush,</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
Are you using a Dante1 or a Dante8?</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
Does this happen every time you start, or just occasionally.&nbsp; If it is occasionally, then how frequently does it happen?</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
Are there any error messages on the IOC?</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
Are you running on Linux or Windows?&nbsp;</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
If you are running on Linux then please run the IOC in the GNU debugger. You can do that with the following commands from the iocDante1 directory:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Courier New&quot;, monospace; font-size: 11pt;">
gdb ../../bin/linux-x86_64/mcaDanteApp</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Courier New&quot;, monospace; font-size: 11pt;">
run st.cmd</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
When it crashes type this command at the debugger prompt:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Courier New&quot;, monospace; font-size: 11pt;">
backtrace</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
Send me the output.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
Mark</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<hr style="direction: ltr; text-align: left; text-indent: 0px; display: inline-block; width: 346.9px;">
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<b>From:</b>&nbsp;Dariush Hampai <a rel="nofollow" href="mailto:dariush.hampai at lnf.infn.it" id="OWA7dff5243-0081-0e65-4ae5-185958cfadd5" data-outlook-id="c57e86fa-9bc1-4385-bf0b-66353fcf5117" class="OWAAutoLink">
&lt;dariush.hampai at lnf.infn.it&gt;</a><br>
<b>Sent:</b>&nbsp;Tuesday, June 16, 2026 10:23 AM<br>
<b>To:</b>&nbsp;Mark Rivers <a rel="nofollow" href="mailto:rivers at cars.uchicago.edu" id="OWAf172acc1-5cf2-0599-dbc6-02798fcc46f6" data-outlook-id="9a5a5dda-b51d-4f2d-8dfc-221849740120" class="OWAAutoLink">
&lt;rivers at cars.uchicago.edu&gt;</a>; <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWAd0f02c90-aed7-e6fc-645b-0fc39b46adf4" data-outlook-id="bdebc84f-d2b7-4e0f-a920-9fef11e63c5b" class="OWAAutoLink">
tech-talk at aps.anl.gov</a>&nbsp;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" id="OWA4d4c1c36-3821-0db4-bb28-e7e1564a77b3" data-outlook-id="a477c478-7148-4957-9f58-6c1d61aef0ff" class="OWAAutoLink">&lt;tech-talk at aps.anl.gov&gt;</a><br>
<b>Subject:</b>&nbsp;Problems with Dante (XGLab) Driver</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 11pt;">
Hi Community,<br>
Hi Mark,<br>
<br>
I'm almost finish the implementation of Dante EPICS Drivers in our<br>
system, however I have a big problem (maybe a bug?).<br>
When I start few acquisitions (from caput command or from Phebus), the<br>
system seems that crash.<br>
The Dante:dante2:ElapsedRealTime stops (not on target). Moreover on<br>
Phebus the text is in &quot;Collecting&quot; mode, The Acquire Busy is in<br>
&quot;Acquiring&quot; mode and the IOC do not respond to any command that I send.<br>
Up to now, the only solution is to stop the IOC and restart it.<br>
What's the problem?<br>
Is there a possibility to force a reset/reinitialize the driver without<br>
stop and restart it?<br>
<br>
awaiting your (precious) help<br>
<br>
Dariush<br>
<br>
<br>
</div>
</blockquote>
<pre><div style="direction: ltr; text-align: left; text-indent: 0px; font-size: 12px;">-- 
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room: +39.06.9403.5248
Lab.: &nbsp; &nbsp; +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: &nbsp; &nbsp; +39.06.9403.2597

************************************</div></pre>
</blockquote>
<pre><div style="direction: ltr; text-align: left; text-indent: 0px; font-size: 12px;">-- 
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room: +39.06.9403.5248
Lab.: &nbsp; &nbsp; +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: &nbsp; &nbsp; +39.06.9403.2597

************************************</div></pre>
</div>
</blockquote>
<pre><div style="direction: ltr; text-align: left; text-indent: 0px; font-size: 12px;">-- 
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room: +39.06.9403.5248
Lab.: &nbsp; &nbsp; +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: &nbsp; &nbsp; +39.06.9403.2597

************************************</div></pre>
</blockquote>
<pre><div style="direction: ltr; text-align: left; text-indent: 0px; font-size: 12px;">-- 
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room: +39.06.9403.5248
Lab.: &nbsp; &nbsp; +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: &nbsp; &nbsp; +39.06.9403.2597

************************************</div></pre>
</blockquote>
<pre><div style="direction: ltr; text-align: left; text-indent: 0px; font-size: 12px;">-- 
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room: +39.06.9403.5248
Lab.: &nbsp; &nbsp; +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: &nbsp; &nbsp; +39.06.9403.2597

************************************</div></pre>
</blockquote>
<pre><div style="direction: ltr; text-align: left; text-indent: 0px; font-size: 12px;">-- 
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room: +39.06.9403.5248
Lab.: &nbsp; &nbsp; +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: &nbsp; &nbsp; +39.06.9403.2597

************************************</div></pre>
</blockquote>
<div style="direction: ltr;"><br>
</div>
</blockquote>
<pre><div style="direction: ltr;">-- 
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room: +39.06.9403.5248
Lab.: &nbsp; &nbsp; +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: &nbsp; &nbsp; +39.06.9403.2597

************************************</div></pre>
</blockquote>
<pre><div style="direction: ltr;">-- 
************************************

Dr. Dariush Hampai, PhD

INFN - LNF
X-Lab Frascati
Via E. Fermi, 54 (ex 40)
I-00044 Frascati (RM)
Italy

Mail Address:
XLab-Frascati
LNF-INFN
Casella Postale 13
Frascati (RM)
Italy

Room: +39.06.9403.5248
Lab.: &nbsp; &nbsp; +39.06.9403.2286
Mob.: +39.06.9403.8025
Fax.: &nbsp; &nbsp; +39.06.9403.2597

************************************</div></pre>


</td></tr></table>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00761.php</link>
      <author>Huishan via Tech-talk</author>
      <pubDate>Mon, 29 Jun 2026 04:17:07 GMT</pubDate>
      <guid isPermaLink="false">CAE6aPWqr2HFCkvHxxUEYd9p-LWHEG4sScs9tTSgG4kxG_3fH0A@mail.gmail.com</guid>
      <title>Question About Calculating Checksum in a StreamDevice Protocol</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Question About Calculating Checksum in a StreamDevice Protocol -->
<!--X-From-R13: Vhvfuna ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Mon, 29 Jun 2026 12:17:07 +0800 -->
<!--X-Message-Id: CAE6aPWqr2HFCkvHxxUEYd9p&#45;LWHEG4sScs9tTSgG4kxG_3fH0A@mail.gmail.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Question About Calculating Checksum in a StreamDevice Protocol</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Huishan via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a></td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Mon, 29 Jun 2026 12:17:07 +0800</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<div dir="ltr"><p class="gmail-isSelectedEnd">Hello everyone,</p><p class="gmail-isSelectedEnd">&#xA0; &#xA0; I have a question about writing a StreamDevice protocol for the following command:

55 AA 05 04 byte1 byte2 byte3.</p><p class="gmail-isSelectedEnd"><span style="background-color:transparent">&#xA0; &#xA0; The last three bytes of the command need to change dynamically.&#xA0;</span><span style="background-color:transparent">The first two bytes represent the current value in hexadecimal format. The third byte is a checksum, which is calculated by adding </span><code dir="ltr" style="background-color:transparent">0x05</code><span style="background-color:transparent">, </span><code dir="ltr" style="background-color:transparent">0x04</code><span style="background-color:transparent">, </span><code dir="ltr" style="background-color:transparent">byte1</code><span style="background-color:transparent">, and </span><code dir="ltr" style="background-color:transparent">byte2</code><span style="background-color:transparent"> using hexadecimal addition.</span><span style="background-color:transparent">Is there a way to have the checksum calculated automatically in a StreamDevice protocol? If so, what should I use in the protocol file as a placeholder for the calculated value?</span></p><p class="gmail-isSelectedEnd">&#xA0; &#xA0; If StreamDevice doesn&#39;t support calculations like this, does that mean I have to calculate the checksum manually every time before sending the command?</p><p class="gmail-isSelectedEnd">&#xA0; &#xA0; Any suggestions or examples would be greatly appreciated.<span style="background-color:transparent">Thank you!</span></p><p class="gmail-isSelectedEnd"><span style="background-color:transparent">&#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;Huishan&#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;&#xA0;</span></p></div>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00760.php</link>
      <author>Torsten B&#xF6;gershausen via Tech-talk</author>
      <pubDate>Mon, 29 Jun 2026 04:38:04 GMT</pubDate>
      <guid isPermaLink="false">5d6548a7-ff88-4439-b84c-dfd50714ae83@edom.se</guid>
      <title>Re: EPICS support for Fastech motors</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: EPICS support for Fastech motors -->
<!--X-From-R13: =?GFT&#45;8?C?Fbefgra_P=Q3=P6trefunhfra?= ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Mon, 29 Jun 2026 06:38:04 +0200 -->
<!--X-Message-Id: 5d6548a7&#45;ff88&#45;4439&#45;b84c&#45;dfd50714ae83@edom.se -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 3fa52b2ce3cb49268feb45f098f22059@irb.hr -->
<!--X-Reference: 87cf4b86&#45;3e74&#45;4fe4&#45;abb2&#45;15ad34623f8c@edom.se -->
<!--X-Reference: 9b1a66b488854843b3faadd2ad77ce19@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EFB3E750F5ECAE97563DAF99E42@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: b485ec0631a54e5facb354702e1cff7e@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EFCFF95C7A52B77ABDACD799EC2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: 8460ee36498d4b49a6ff53cd0ec64904@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EF011602E59207CFC3737299EB2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: d6b8122ae6b946f0b5cbb182ae45adc9@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EFA4F9E04A19E447B19FFE99EB2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: EPICS support for Fastech motors</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Torsten B&#xF6;gershausen via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
Mark Rivers &lt;<a href="mailto:rivers%20at%20cars%20dot%20uchicago%20dot%20edu">rivers at cars.uchicago.edu</a>&gt;, Rea Domitrovi&#x107; &lt;<a href="mailto:rea%20dot%20domitrovic%20at%20irb%20dot%20hr">rea.domitrovic at irb.hr</a>&gt;, &quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Mon, 29 Jun 2026 06:38:04 +0200</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<pre style="margin: 0em;">
Thanks Mark for digging.

While reading your comments and the code,
there is one more thing:

  //write the outstring to controller
  memcpy(&amp;pC_-&gt;outString_, buffer, 2+buffer[1]);
  status = pC_-&gt;writeReadController();

The method pC_-&gt;writeReadController(), without any parameters,
will use a strlen() under the hood to find out how many
bytes are realy send to the controller.

Please have a look at:
writeReadController(const char *output, char *input,
                    size_t maxChars, size_t *nread, double timeout)

For binary data, as in your case,
pasynOctetSyncIO-&gt;writeRead() must be used, I think.
Where 2+buffer[1] is the number of bytes to be send.

Probably you can write a wrapper in your code ?
Mark, Rea, any more comments ?

/Torsten


On 2026-06-26 21:18, Mark Rivers via Tech-talk wrote:
</pre><blockquote style="border-left: #5555EE solid 0.2em; margin: 0em; padding-left: 0.85em"><pre style="margin: 0em;">
Hi Rea,

Thanks for sharing that repository, that is very helpful.

I think I found the correct manual for your controller here:
</pre><tt><a  rel="nofollow" href="https://urldefense.us/v3/__https://fastech.co.kr/new/board/bbs/download_product_en.php?__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_1yctlBQ$">https://urldefense.us/v3/__https://fastech.co.kr/new/board/bbs/download_product_en.php?__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_1yctlBQ$</a>  
</tt><tt>bo_table=sub010208_en&amp;wr_id=0 &lt;<a  rel="nofollow" href="https://urldefense.us/v3/__https://">https://urldefense.us/v3/__https://</a> 
</tt><tt>fastech.co.kr/new/board/bbs/download_product_en.php? 
</tt><tt>bo_table=sub010208_en&amp;wr_id=0__;!!G_uCfscf7eWS!ZG7XUWxxrpQ37e- 
</tt><tt>akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvUPEoY6M$&gt;
</tt><pre style="margin: 0em;">

</pre><tt>I looked at EzS2PEAxis::move.&#xA0; I see that it is building a binary 
</tt><tt>structure and sending that to the controller with pC_- 
</tt><tt> &gt;writeReadController().
</tt><pre style="margin: 0em;">

</pre><tt>However, I think I see an error in your code. Everywhere you define 
</tt><tt>boiler[] similar to this:
</tt><pre style="margin: 0em;">

</pre><tt> &#xA0;&#xA0;&#xA0; unsigned char boiler[] = {HEADER, 8, pC_-&gt;syncCounter, 0x00, 
</tt><tt>SET_PARAMETER, param};
</tt><tt><a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech/__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_FYCYOIg$">https://urldefense.us/v3/__https://github.com/redomitro/motorFastech/__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_FYCYOIg$</a>  
</tt><tt>blob/94b93b150501490cf9cf7ef77d4d4e3a6b0ad62f/fastechApp/src/ 
</tt><tt>EzS2PE_Driver.cpp#L146 &lt;<a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/">https://urldefense.us/v3/__https://github.com/</a> 
</tt><tt>redomitro/motorFastech/blob/94b93b150501490cf9cf7ef77d4d4e3a6b0ad62f/ 
</tt><tt>fastechApp/src/EzS2PE_Driver.cpp*L146__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e- 
</tt><tt>akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvT9F0Ouk$&gt;
</tt><pre style="margin: 0em;">

However, the manual says the frame header is this:

&#x2460; Header : 0xAA, Displays that the beginning of Frame
&#x2461; Length : Length of Data after Length
&#x2002;&#x2002;&#x2002;&#x2002;(Sync No. + Reserved + Frame type + Data)
&#x2462; Reserved : 1 byte Input as &#x201C; 0x00
</pre><tt>&#x2463; Sync No. : The Sync number of the packet is used to c heck whether the 
</tt><tt>command is executed
</tt><tt>&#x2002;&#x2002;&#x2002;&#x2002;in the drive module. The value should change every time when you 
</tt><tt>send a new command.
</tt><tt>&#x2464; Frame type : Specify the command type of the Frame. The types are 
</tt><tt>listed below.
</tt><pre style="margin: 0em;">
&#x2002;&#x2002;&#x2002;&#x2002;Refer to&#xA0; Frametypeand Data configuration &#x300D;
</pre><tt>&#x2465; Data : The data structure and length of this clause are determined by 
</tt><tt>the Frame type.
</tt><tt>&#x2002;&#x2002;&#x2002;&#x2002;The detailed structure refers to [Frametypeand Data configuration]  
</tt><tt>section below.
</tt><pre style="margin: 0em;">

</pre><tt>Note that the Reserved 0x00 byte is defined in the manual to come 
</tt><tt>between the Length and the Sync Number byte.&#xA0; But your code has the 0x00 
</tt><tt>after the Sync Number.&#xA0; This seems wrong.
</tt><pre style="margin: 0em;">

</pre><tt>The communication is UDP based.&#xA0; Once you fix the error above I suspect 
</tt><tt>that write operations will succeed.
</tt><pre style="margin: 0em;">

</pre><tt>However, I think that read operations will fail because you have created 
</tt><tt>the L0 UDP port with the default value of noProcessEos=0.&#xA0; This means 
</tt><tt>that the UDP driver is doing EOS processing.&#xA0; Although you have not 
</tt><tt>defined input or output terminators, another thing that the EOS 
</tt><tt>processing does is wait for the requested number of bytes to be 
</tt><tt>received.&#xA0; Since you have no way of knowing how many bytes will be 
</tt><tt>received you need to request more than you will receive, and the read 
</tt><tt>will time out.
</tt><pre style="margin: 0em;">

The solution is to change your startup script to this:

drvAsynIPPortConfigure(&quot;L0&quot;, &quot;192.168.0.204:3001 UDP&quot;, 0, 0, 1)

</pre><tt>That sets noProcessEos to 1.&#xA0; That means that the driver will not wait 
</tt><tt>for the requested number of characters but will return as soon as any 
</tt><tt>characters are received, or after a timeout.
</tt><pre style="margin: 0em;">

Cheers,
Mark



------------------------------------------------------------------------
*From:*&#xA0;Rea Domitrovi&#x107; &lt;rea.domitrovic at irb.hr&gt;
*Sent:*&#xA0;Friday, June 26, 2026 8:44 AM
</pre><tt>*To:*&#xA0;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;; tech-talk at aps.anl.gov 
</tt><tt>&lt;tech-talk at aps.anl.gov&gt;
</tt><pre style="margin: 0em;">
*Subject:*&#xA0;Re: EPICS support for Fastech motors

Hi Mark,


</pre><tt>the source code is here: <a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_ew-GRTM$">https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_ew-GRTM$</a>  
</tt><tt>&lt;<a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/">https://urldefense.us/v3/__https://github.com/redomitro/</a> 
</tt><tt>motorFastech__;!!G_uCfscf7eWS!ZG7XUWxxrpQ37e- 
</tt><tt>akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvZcjRvUo$&gt;&#xA0;- the repository should be public.&#xA0;Thank you again for the help; it's the end of the week here so I'll dig into the debugging more come Monday. Best,
</tt><pre style="margin: 0em;">


Rea

------------------------------------------------------------------------
*From:*&#xA0;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;
*Sent:*&#xA0;Friday, June 26, 2026 3:15:45 PM
*To:*&#xA0;Rea Domitrovi&#x107;; tech-talk at aps.anl.gov
*Subject:*&#xA0;Re: EPICS support for Fastech motors

Hi Rea,


  *
    Is it even possible to use the Model 3 framework to communicate with
    something that uses such a specific and non-standard byte stream, or
    will I have to find a different way? Kind regards,


</pre><tt>Yes, definitely.&#xA0; You can use the Model 3 framework to communicate with 
</tt><tt>any type of motor controller API: ASCII strings, vendor library calls, 
</tt><tt>Modbus, etc.
</tt><pre style="margin: 0em;">

</pre><tt>The issue is the motorAxis-&gt;move() function that you have implemented in 
</tt><tt>your derived class.&#xA0; It is returning the error status -1.&#xA0; You need to 
</tt><tt>figure out why.&#xA0; Is your code on a repository where we can see it?&#xA0; If 
</tt><tt>not can you share the code, or at least the code for the axis-&gt;move() 
</tt><tt>function?
</tt><pre style="margin: 0em;">

Here are 2 suggestions for debugging this:

  *
    Enable asynTraceIODriver and ASYN_TRACEIO_ESCAPE for the underlying
    asyn communication port.&#xA0; That will let you see the complete
    communication with the device.&#xA0; Put these lines in your startup
    script right after you create the asyn communication port, which I
    have called $(PORT) here:


asynSetTraceMask($(PORT), 0, ERROR|DRIVER)
asynSetTraceIOMask($(PORT), 0, ESCAPE)

  *
    Put debugging printf or asynPrint statements in your driver to see
    what is happening.


Mark




------------------------------------------------------------------------
*From:*&#xA0;Rea Domitrovi&#x107; &lt;rea.domitrovic at irb.hr&gt;
*Sent:*&#xA0;Friday, June 26, 2026 2:50 AM
</pre><tt>*To:*&#xA0;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;; tech-talk at aps.anl.gov 
</tt><tt>&lt;tech-talk at aps.anl.gov&gt;
</tt><pre style="margin: 0em;">
*Subject:*&#xA0;Re: EPICS support for Fastech motors

Hi Mark,


</pre><tt>thanks for taking the time. I followed the debug instructions you 
</tt><tt>gave&#xA0;here: <a  rel="nofollow" href="https://epics.anl.gov/tech-talk/2017/msg00282.php">https://epics.anl.gov/tech-talk/2017/msg00282.php</a>  &lt;https:// 
</tt><tt>epics.anl.gov/tech-talk/2017/msg00282.php&gt;&#xA0;- thanks for clarifying what 
</tt><tt>is actually&#xA0;needed.
</tt><pre style="margin: 0em;">


</pre><tt>I suspect this message is what's wrong, i.e. the writes are not actually 
</tt><tt>getting through to the motor:
</tt><pre style="margin: 0em;">


</pre><tt>2026/06/26 09:39:45.144 asynMotorController:writeFloat64 error, status=1 
</tt><tt>axis=0, function=1, value=-150000.000000
</tt><tt>2026/06/26 09:39:45.148 devMotorAsyn::asynCallback: EXIT:zpos 
</tt><tt>pasyn{Float64,Int32}-&gt;write returned
</tt><pre style="margin: 0em;">

</pre><tt>To me, it smells like the problem is in the fact the motor doesn't use 
</tt><tt>ASCII-compatible strings to communicate - every message has to start 
</tt><tt>with a five-byte header of the following structure: 0xAA, length, 
</tt><tt>idempotence counter, 0x00, frame type. That null byte is presumably 
</tt><tt>making communication difficult; that is why everywhere in the source 
</tt><tt>code I used memcpy instead of sprintf to build the outString. A test IOC 
</tt><tt>made with StreamDevice instead of Motor confirms the&#xA0;motor is responsive 
</tt><tt>to that kind of communication; I was able to turn the servo on and poll 
</tt><tt>it for position using StreamDevice, but not actually move it.
</tt><pre style="margin: 0em;">


</pre><tt>Is it even possible to use the Model 3 framework to communicate with 
</tt><tt>something that uses such a specific and non-standard byte stream, or 
</tt><tt>will I have to find a different way? Kind regards,
</tt><pre style="margin: 0em;">


Rea

------------------------------------------------------------------------
*From:*&#xA0;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;
*Sent:*&#xA0;Thursday, June 25, 2026 4:35:51 PM
*To:*&#xA0;tech-talk at aps.anl.gov; Rea Domitrovi&#x107;
*Subject:*&#xA0;Re: EPICS support for Fastech motors
H Rea,

</pre><tt>You have set the asynTraceMask to enable lots of debugging.&#xA0; That is OK, 
</tt><tt>but it makes it hard to see the real errors from warning and 
</tt><tt>informational messages.&#xA0; For example these messages are printed with 
</tt><tt>ASYN_TRACE_FLOW, they are not really errors.
</tt><pre style="margin: 0em;">

</pre><tt>2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit 
</tt><tt>error getting parameter 9 MOTOR_ENCODER_POSITION, in list 0, value undefined
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit 
</tt><tt>error getting parameter 5 MOTOR_VELOCITY, in list 0, value undefined
</tt><pre style="margin: 0em;">

This message
</pre><tt>2026/06/25 15:07:46.444 asynMotorController:writeFloat64: Set driver 
</tt><tt>motorExit, axis 0 move absolute to 0.000000, base velocity=500.000000, 
</tt><tt>velocity=25000.000000, acceleration=245000.000000
</tt><pre style="margin: 0em;">

is being printed here.&#xA0; It is just an informational message.
</pre><tt><a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_UoPLt2U$">https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_UoPLt2U$</a>  
</tt><tt>f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/ 
</tt><tt>asynMotorController.cpp#L328 &lt;<a  rel="nofollow" href="https://urldefense.us/v3/__https://">https://urldefense.us/v3/__https://</a> 
</tt><tt>github.com/epics-modules/motor/blob/ 
</tt><tt>f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/ 
</tt><tt>asynMotorController.cpp*L328__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e- 
</tt><tt>akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNv9k8nZJQ$&gt;
</tt><pre style="margin: 0em;">

However, this message:
</pre><tt>2026/06/25 15:07:46.445 asynMotorController:writeFloat64 error, status=1 
</tt><tt>axis=0, function=1, value=0.000000
</tt><pre style="margin: 0em;">

is being printed here:
</pre><tt><a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_UoPLt2U$">https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_UoPLt2U$</a>  
</tt><tt>f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/ 
</tt><tt>asynMotorController.cpp#L428 &lt;<a  rel="nofollow" href="https://urldefense.us/v3/__https://">https://urldefense.us/v3/__https://</a> 
</tt><tt>github.com/epics-modules/motor/blob/ 
</tt><tt>f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/ 
</tt><tt>asynMotorController.cpp*L428__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e- 
</tt><tt>akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvdoyZWuk$&gt;
</tt><pre style="margin: 0em;">

</pre><tt>Function=1 is a move absolute command, so it is consistent with the 
</tt><tt>first message.&#xA0; status=1 means that your driver's pAxis-&gt;move() function 
</tt><tt>returned -1.&#xA0; It was called from here:
</tt><tt><a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_UoPLt2U$">https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_UoPLt2U$</a>  
</tt><tt>f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/ 
</tt><tt>asynMotorController.cpp#L324-L325 &lt;<a  rel="nofollow" href="https://urldefense.us/v3/__https://">https://urldefense.us/v3/__https://</a> 
</tt><tt>github.com/epics-modules/motor/blob/ 
</tt><tt>f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/ 
</tt><tt>asynMotorController.cpp*L324-L325__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e- 
</tt><tt>akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvASUhELQ$&gt;
</tt><pre style="margin: 0em;">

</pre><tt>If you set your asynTrace flags to ERROR|WARNING you will only see the 
</tt><tt>more important messages.
</tt><pre style="margin: 0em;">

Mark

------------------------------------------------------------------------
</pre><tt>*From:*&#xA0;Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of Rea 
</tt><tt>Domitrovi&#x107; via Tech-talk &lt;tech-talk at aps.anl.gov&gt;
</tt><pre style="margin: 0em;">
*Sent:*&#xA0;Thursday, June 25, 2026 8:53 AM
*To:*&#xA0;tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;
*Subject:*&#xA0;Re: EPICS support for Fastech motors

Hi all,


</pre><tt>thanks so much for pointing me in the right direction so far. I've got 
</tt><tt>to the point where I've got the structure of a driver based on the MCB4B 
</tt><tt>driver and with inspiration from the SmarAct driver; however, at 
</tt><tt>runtime, I'm getting errors that I'm struggling to diagnose. If someone 
</tt><tt>could help me understand, I would be most grateful. Relevant info is 
</tt><tt>below. Best,
</tt><pre style="margin: 0em;">


Rea Domitrovi&#x107;

Institut Ru&#x111;er Bo&#x161;kovi&#x107;

Zagreb, Croatia


</pre><tt>Source code is here: <a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_ew-GRTM$">https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_ew-GRTM$</a>  &lt;https:// 
</tt><tt>urldefense.us/v3/__<a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_km5trs0$">https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!__;!!G_uCfscf7eWS!bC2FnVlCay3FszaVohPbNaqOorcdbaJ_Mx7H5rO9CjvE6jxiqj5D6yEjnhrGdbXpgAE6gMMqw20_km5trs0$</a>  
</tt><tt>G_uCfscf7eWS! 
</tt><tt>ckejUTszXgikK0HKxA_InFEgeEyYG2lD41P9WU4hEdAGledQERL0dK2U_KIYaLsarWXmtRkeqsmdlOkbbDFNsrR52DGXQg$&gt;
</tt><pre style="margin: 0em;">


IOCinit output:


</pre><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_MOVE_REL, index=0
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_MOVE_ABS, index=1
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_MOVE_VEL, index=2
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_HOME, index=3
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_STOP_AXIS, index=4
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_VELOCITY, index=5
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_VEL_BASE, index=6
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_ACCEL, index=7
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_POSITION, index=8
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_RESOLUTION, index=12
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_ENCODER_RATIO, index=13
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_PGAIN, index=14
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_IGAIN, index=15
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_DGAIN, index=16
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_HIGH_LIMIT, index=17
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_LOW_LIMIT, index=18
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_CLOSED_LOOP, index=19
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_STATUS, index=25
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate: 
</tt><tt>drvInfo=MOTOR_UPDATE_STATUS, index=26
</tt><pre style="margin: 0em;">
2026/06/25 15:29:48.311 motorExit 0 registerInterruptUser
</pre><tt>2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit 
</tt><tt>error getting parameter 9 MOTOR_ENCODER_POSITION, in list 0, value undefined
</tt><tt>2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit 
</tt><tt>error getting parameter 5 MOTOR_VELOCITY, in list 0, value undefined
</tt><tt>2026/06/25 15:29:48.311 asynMotorController:readGenericPointer: 
</tt><tt>MotorStatus = status34, position=425203751.000000, encoder 
</tt><tt>position=0.000000, velocity=0.000000
</tt><pre style="margin: 0em;">
2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort locking port
</pre><tt>2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort created 
</tt><tt>queueLockPortPvt=0x561069c8f7a0
</tt><tt>2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort created 
</tt><tt>queueLockPortPvt=0x561069c8f7a0, event=0x561069c979e0, mutex=0x561069c97990
</tt><tt>2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort taking 
</tt><tt>mutex 0x561069c97990
</tt><tt>2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort queueing 
</tt><tt>request
</tt><tt>2026/06/25 15:29:48.311 motorExit addr 0 queueRequest priority 0 not 
</tt><tt>lockHolder
</tt><tt>2026/06/25 15:29:48.311 motorExit schedule queueRequest timeout in 
</tt><tt>2.000000 seconds
</tt><tt>2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort waiting for 
</tt><tt>event
</tt><pre style="margin: 0em;">
2026/06/25 15:29:48.312 motorExit 0 autoConnect
2026/06/25 15:29:48.312 asynPortDriver:connect:, pasynUser=0x561069c83188
2026/06/25 15:29:48.312 asynManager::portThread port=motorExit callback
</pre><tt>2026/06/25 15:29:48.312 motorExit asynManager::queueLockPortCallback 
</tt><tt>signaling begin event
</tt><tt>2026/06/25 15:29:48.312 motorExit asynManager::queueLockPortCallback 
</tt><tt>waiting for mutex from queueUnlockPort
</tt><tt>2026/06/25 15:29:48.312 motorExit asynManager::queueLockPort got event 
</tt><tt>from callback
</tt><tt>2026/06/25 15:29:48.312 EXIT:zpos devMotorAsyn::statusCallback new 
</tt><tt>value=[p:425203751.000000,e:0.000000,s:22]
</tt><tt>2026/06/25 15:29:48.312 asynMotorController:writeFloat64: Set driver 
</tt><tt>motorExit, axis 0 encoder ratio=1.000000
</tt><tt>2026/06/25 15:29:48.312 asynMotorController:writeFloat64:: axis=0, 
</tt><tt>function=13, value=1.000000
</tt><pre style="margin: 0em;">
2026/06/25 15:29:48.312 asynFloat64SyncIO wrote: 1.000000e+00
2026/06/25 15:29:48.312 motorExit queueUnlockPort
</pre><tt>2026/06/25 15:29:48.312 motorExit asynManager::queueUnlockPort waiting 
</tt><tt>for event
</tt><tt>2026/06/25 15:29:48.313 motorExit queueUnlockPort unlock mutex 
</tt><tt>0x561069c97990 complete.
</tt><tt>2026/06/25 15:29:48.313 devMotorAsyn::init_controller, EXIT:zpos set 
</tt><tt>encoder ratio to 1.000000
</tt><tt>2026/06/25 15:29:48.313 devMotorAsyn::init_controller, EXIT:zpos setting 
</tt><tt>of position not required, position=425203751.000000, mres=0.000200, 
</tt><tt>dval=0.000000, rdbd=0.0002002026/06/25 15:29:48.313 EXIT:zpos 
</tt><tt>devMotorAsyn::update_values, needUpdate=1
</tt><tt>2026/06/25 15:29:48.313 devMotorAsyn::build_trans: EXIT:zpos 
</tt><tt>motor_cmnd=19, pact=0, value=375000.000000
</tt><tt>2026/06/25 15:29:48.313 devAsynMotor::build_trans: calling queueRequest, 
</tt><tt>pmsg=0x561069c97c40, sizeof(*pmsg)=24pmsg-&gt;command=14, pmsg- 
</tt><tt> &gt;interface=1, pmsg-&gt;dvalue=375000.000000
</tt><tt>2026/06/25 15:29:48.313 motorExit addr 0 queueRequest priority 0 not 
</tt><tt>lockHolder
</tt><tt>2026/06/25 15:29:48.313 devMotorAsyn::build_trans: EXIT:zpos 
</tt><tt>motor_cmnd=20, pact=0, value=-375000.000000
</tt><tt>2026/06/25 15:29:48.313 devAsynMotor::build_trans: calling queueRequest, 
</tt><tt>pmsg=0x561069c97c90, sizeof(*pmsg)=24pmsg-&gt;command=15, pmsg- 
</tt><tt> &gt;interface=1, pmsg-&gt;dvalue=-375000.000000
</tt><tt>2026/06/25 15:29:48.313 motorExit addr 0 queueRequest priority 0 not 
</tt><tt>lockHolder
</tt><pre style="margin: 0em;">
2026/06/25 15:29:48.313 asynManager::portThread port=motorExit callback
</pre><tt>2026/06/25 15:29:48.313 devMotorAsyn::asynCallback: EXIT:zpos 
</tt><tt>pmsg=0x561069c97c40, sizeof(*pmsg)=24, pmsg-&gt;command=14,pmsg- 
</tt><tt> &gt;interface=1, pmsg-&gt;ivalue=0, pmsg-&gt;dvalue=375000.000000, pasynUser- 
</tt><tt> &gt;reason=17
</tt><tt>2026/06/25 15:29:48.313 asynMotorController:writeFloat64: Set driver 
</tt><tt>motorExit, axis 0 high limit=375000.000000
</tt><tt>2026/06/25 15:29:48.313 asynMotorController:writeFloat64:: axis=0, 
</tt><tt>function=17, value=375000.000000
</tt><pre style="margin: 0em;">
2026/06/25 15:29:48.313 asynManager::portThread port=motorExit callback
</pre><tt>2026/06/25 15:29:48.313 devMotorAsyn::asynCallback: EXIT:zpos 
</tt><tt>pmsg=0x561069c97c90, sizeof(*pmsg)=24, pmsg-&gt;command=15,pmsg- 
</tt><tt> &gt;interface=1, pmsg-&gt;ivalue=0, pmsg-&gt;dvalue=-375000.000000, pasynUser- 
</tt><tt> &gt;reason=18
</tt><tt>2026/06/25 15:29:48.313 asynMotorController:writeFloat64: Set driver 
</tt><tt>motorExit, axis 0 low limit=-375000.000000
</tt><tt>2026/06/25 15:29:48.313 asynMotorController:writeFloat64:: axis=0, 
</tt><tt>function=18, value=-375000.000000
</tt><pre style="margin: 0em;">

Output when attempting to caput absolute position:

2026/06/25 15:07:44.438 192.168.0.204:3001 UDP write 3
\xaa\v\a
</pre><tt>2026/06/25 15:07:46.444 asynMotorController:writeFloat64: Set driver 
</tt><tt>motorExit, axis 0 move absolute to 0.000000, ba                          
</tt><tt>                                                                         
</tt><tt> &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; se velocity=500.000000, velocity=25000.000000, 
</tt><tt>acceleration=245000.000000
</tt><tt>2026/06/25 15:07:46.445 asynMotorController:writeFloat64 error, status=1 
</tt><tt>axis=0, function=1, value=0.000000
</tt><tt>2026/06/25 15:07:46.445 devMotorAsyn::asynCallback: EXIT:zpos 
</tt><tt>pasyn{Float64,Int32}-&gt;write returned
</tt><pre style="margin: 0em;">
2026/06/25 15:07:46.445 EXIT:zpos devMotorAsyn::update_values, needUpdate=1
------------------------------------------------------------------------
*From:*&#xA0;Mark Rivers &lt;rivers at cars.uchicago.edu&gt;
*Sent:*&#xA0;Wednesday, June 17, 2026 21:07
*To:*&#xA0;Torsten B&#xF6;gershausen; tech-talk at aps.anl.gov; Rea Domitrovi&#x107;
*Subject:*&#xA0;Re: EPICS support for Fastech motors
Hi Rea,

  *

     &#xA0;I see that driver developers prefer to use octet-based
    communication rather than use&#xA0;the manufacturer-provided libraries.
    Is there a reason why that is the case, or is it simply that octet-
    based communicaton is more universal?


</pre><tt>Manufacturer libraries will be provided for specific operating system 
</tt><tt>and specific versions of those OS. That can restrict where they can be 
</tt><tt>deployed.&#xA0; They may restrict redistribution, which prevents including 
</tt><tt>them in the motor Github repository.&#xA0; They almost certainly won't be 
</tt><tt>supported on real-time OS like RTEMS or vxWorks.
</tt><pre style="margin: 0em;">

  *

    Further, the Fastech controller&#xA0;allows both octet-based
    communication and library-based communication, but octet-based
    communication requires the master to send a one-byte &quot;sync number&quot;
    which serves as an idempotence token.&#xA0;I assume it would be necessary
    to implement that myself; could I be using some sort of global
    variable, and how do I make sure that I never land on the same
    number twice in a row?


</pre><tt>Many protocols have something like that.&#xA0; You just have a member 
</tt><tt>variable in your driver class that increments by 1 on each message it 
</tt><tt>sends, and wraps back to 0 after 255.
</tt><pre style="margin: 0em;">

Mark



------------------------------------------------------------------------
</pre><tt>*From:*&#xA0;Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of Rea 
</tt><tt>Domitrovi&#x107; via Tech-talk &lt;tech-talk at aps.anl.gov&gt;
</tt><pre style="margin: 0em;">
*Sent:*&#xA0;Wednesday, June 17, 2026 8:34 AM
</pre><tt>*To:*&#xA0;Torsten B&#xF6;gershausen &lt;tboegi at edom.se&gt;; tech-talk at aps.anl.gov 
</tt><tt>&lt;tech-talk at aps.anl.gov&gt;
</tt><pre style="margin: 0em;">
*Subject:*&#xA0;Re: EPICS support for Fastech motors

Hi Torsten,


</pre><tt>thanks for pointing me in the right direction. I'm looking at the manual 
</tt><tt>and the source for&#xA0;other submodules now (motorSmarAct and motorAcs);&#xA0;I 
</tt><tt>see that driver developers prefer to use octet-based communication 
</tt><tt>rather than use&#xA0;the manufacturer-provided libraries. Is there a reason 
</tt><tt>why that is the case, or is it simply that octet-based communicaton is 
</tt><tt>more universal?
</tt><pre style="margin: 0em;">


</pre><tt>Further, the Fastech controller&#xA0;allows both octet-based communication 
</tt><tt>and library-based communication, but octet-based communication requires 
</tt><tt>the master to send a one-byte &quot;sync number&quot; which serves as an 
</tt><tt>idempotence token.&#xA0;I assume it would be necessary to implement that 
</tt><tt>myself; could I be using some sort of global variable, and how do I make 
</tt><tt>sure that I never land on the same number twice in a row? Kind regards,
</tt><pre style="margin: 0em;">


Rea

------------------------------------------------------------------------
*From:*&#xA0;Torsten B&#xF6;gershausen &lt;tboegi at edom.se&gt;
*Sent:*&#xA0;Wednesday, June 10, 2026 1:49:41 PM
*To:*&#xA0;Rea Domitrovi&#x107;; tech-talk at aps.anl.gov
*Subject:*&#xA0;Re: EPICS support for Fastech motors
Hej Rea,

I haven't worked with them, no.
If you have Ethernet (not to be confused with EtherCAT),
I read the manual as if they use UDP for communication,
and knowing that you can write a simple model 3 driver, I think.
(Other suggestions are welcome of course)
/Torsten


On 2026-06-10 12:52, Rea Domitrovi&#x107; via Tech-talk wrote:
 &gt; Hi all,
 &gt;
 &gt;
 &gt; I'm working with some Fastech Ezi-Servo II Plus-E motors, and I was
 &gt; wondering if someone had already worked with them and/or made an EPICS
 &gt; driver or Motor submodule? This particular line of motors and
 &gt; drives uses an Ethernet interface. Kind regards,
 &gt;
 &gt;
 &gt; Rea Domitrovi&#x107;
 &gt;
 &gt; Institut Ru&#x111;er Bo&#x161;kovi&#x107;
 &gt;
 &gt; Zagreb, Croatia
 &gt;

</pre><tt>Oprez: Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja 
</tt><tt>poveznica ili privitaka provjerite po&#x161;iljatelja. Caution:This email 
</tt><tt>originated from an external sender. Please verify the sender before 
</tt><tt>opening links or attachments.
</tt><tt>*Oprez:*&#xA0;Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja 
</tt><tt>poveznica ili privitaka provjerite po&#x161;iljatelja. *Caution:*This email 
</tt><tt>originated from an external sender. Please verify the sender before 
</tt><tt>opening links or attachments.
</tt><tt>*Oprez:*&#xA0;Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja 
</tt><tt>poveznica ili privitaka provjerite po&#x161;iljatelja. *Caution:*This email 
</tt><tt>originated from an external sender. Please verify the sender before 
</tt><tt>opening links or attachments.
</tt><tt>*Oprez:*&#xA0;Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja 
</tt><tt>poveznica ili privitaka provjerite po&#x161;iljatelja. *Caution:*This email 
</tt><tt>originated from an external sender. Please verify the sender before 
</tt><tt>opening links or attachments.
</tt></blockquote><pre style="margin: 0em;">

</pre>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00762.php</link>
      <author>Zimoch, Dirk via Tech-talk</author>
      <pubDate>Mon, 29 Jun 2026 07:33:27 GMT</pubDate>
      <guid isPermaLink="false">feba496830f783ee188e54533cb48688d35b0ccc.camel@psi.ch</guid>
      <title>Re: Question About Calculating Checksum in a StreamDevice Protocol</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: Question About Calculating Checksum in a StreamDevice Protocol -->
<!--X-From-R13: "Lvzbpu, Rvex ivn Frpu&#45;gnyx" <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Mon, 29 Jun 2026 07:33:27 +0000 -->
<!--X-Message-Id: feba496830f783ee188e54533cb48688d35b0ccc.camel@psi.ch -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: CAE6aPWqr2HFCkvHxxUEYd9p&#45;LWHEG4sScs9tTSgG4kxG_3fH0A@mail.gmail.com -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: Question About Calculating Checksum in a StreamDevice Protocol</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
&quot;Zimoch, Dirk via Tech-talk&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
&quot;<a href="mailto:huishan147%20at%20gmail%20dot%20com">huishan147 at gmail.com</a>&quot; &lt;<a href="mailto:huishan147%20at%20gmail%20dot%20com">huishan147 at gmail.com</a>&gt;, &quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Mon, 29 Jun 2026 07:33:27 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<pre>Hello Huishan

What exactly do you mean by &quot;hexadecimal format&quot;? It could mean a string like
&quot;3E&quot;  (which is two bytes, 0x33 and 0x45).
But as you wrote the rest of your command as hexadecimal numbers, I assume you
mean something like 2 bytes for example 1E 2F meaning either the number
0x1e2f=7727 (big endian) or 0x2f1e=12062 (little endian).

In case of big endian you need: out 55 AA 05 04 &quot;%.2r%&lt;sum&gt;&quot;;
In case you need little endian: out 55 AA 05 04 &quot;%#.2r%&lt;sum&gt;&quot;;

See: <a  rel="nofollow" href="https://urldefense.us/v3/__https://paulscherrerinstitute.github.io/StreamDevice/formats.html*raw__;Iw!!G_uCfscf7eWS!aqWJFIEKwy7Jzr44rjp81yiD9Alo8KmGHmLA8RqsPyh-zS1Q_BhTbmSRud6CE_brwNhKTvDqOLqHLdMj4LjBH3pAiQ$">https://urldefense.us/v3/__https://paulscherrerinstitute.github.io/StreamDevice/formats.html*raw__;Iw!!G_uCfscf7eWS!aqWJFIEKwy7Jzr44rjp81yiD9Alo8KmGHmLA8RqsPyh-zS1Q_BhTbmSRud6CE_brwNhKTvDqOLqHLdMj4LjBH3pAiQ$</a> 

The &quot;%&lt;sum&gt;&quot; adds all bytes (starting from the 55 and including the value)
<a  rel="nofollow" href="https://urldefense.us/v3/__https://paulscherrerinstitute.github.io/StreamDevice/formats.html*chksum__;Iw!!G_uCfscf7eWS!aqWJFIEKwy7Jzr44rjp81yiD9Alo8KmGHmLA8RqsPyh-zS1Q_BhTbmSRud6CE_brwNhKTvDqOLqHLdMj4LhtL5tDyQ$">https://urldefense.us/v3/__https://paulscherrerinstitute.github.io/StreamDevice/formats.html*chksum__;Iw!!G_uCfscf7eWS!aqWJFIEKwy7Jzr44rjp81yiD9Alo8KmGHmLA8RqsPyh-zS1Q_BhTbmSRud6CE_brwNhKTvDqOLqHLdMj4LhtL5tDyQ$</a> 

If you use an 'ao' record, the value will be taken from .RVAL, so you can scale
the value from a floating point number if necessary. 
<a  rel="nofollow" href="https://urldefense.us/v3/__https://paulscherrerinstitute.github.io/StreamDevice/ao.html__;!!G_uCfscf7eWS!aqWJFIEKwy7Jzr44rjp81yiD9Alo8KmGHmLA8RqsPyh-zS1Q_BhTbmSRud6CE_brwNhKTvDqOLqHLdMj4Lj9jHjoag$">https://urldefense.us/v3/__https://paulscherrerinstitute.github.io/StreamDevice/ao.html__;!!G_uCfscf7eWS!aqWJFIEKwy7Jzr44rjp81yiD9Alo8KmGHmLA8RqsPyh-zS1Q_BhTbmSRud6CE_brwNhKTvDqOLqHLdMj4Lj9jHjoag$</a> 

If you use a 'longout', it will simply use the .VAL field.

Dirk

On Mon, 2026-06-29 at 12:17 +0800, Huishan via Tech-talk wrote:
&gt; Hello everyone,
&gt;     I have a question about writing a StreamDevice protocol for the following command: 55 AA 05 04 byte1 byte2 byte3.
&gt;     The last three bytes of the command need to change dynamically. The first two bytes represent the current value in hexadecimal format. The third byte is a checksum, which is calculated by adding 0x05, 0x04, byte1, and byte2 using hexadecimal addition.Is there a way to have the checksum calculated automatically in a StreamDevice protocol? If so, what should I use in the protocol file as a placeholder for the calculated value?
&gt;     If StreamDevice doesn't support calculations like this, does that mean I have to calculate the checksum manually every time before sending the command?
&gt;     Any suggestions or examples would be greatly appreciated.Thank you!
&gt;                                                                                                                          Huishan                                                                                                                                      
</pre>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00763.php</link>
      <author>Wang, Lin via Tech-talk</author>
      <pubDate>Mon, 29 Jun 2026 12:03:06 GMT</pubDate>
      <guid isPermaLink="false">477eb194.3144.19f13430109.Coremail.wanglin@ihep.ac.cn</guid>
      <title>Bridge PV to REST and WebSocket in Python</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Bridge PV to REST and WebSocket in Python -->
<!--X-From-R13: "Inat, Zva ivn Frpu&#45;gnyx" <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Mon, 29 Jun 2026 20:03:06 +0800 (GMT+08:00) -->
<!--X-Message-Id: 477eb194.3144.19f13430109.Coremail.wanglin@ihep.ac.cn -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Bridge PV to REST and WebSocket in Python</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
&quot;Wang, Lin via Tech-talk&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a></td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Mon, 29 Jun 2026 20:03:06 +0800 (GMT+08:00)</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<div class="default-font-1782721696671" dir="ltr"><p style="font-size:14px;">Dear all,</p><p style="font-size:14px;"><br></p><p style="font-size:14px;">At CSNS, <strong>epics-rest-ws</strong> has been developed and shared in the following link,</p><p style="font-size:14px;"><span style="text-wrap-mode:nowrap;text-decoration:underline;"></span><span style="color:#337FE5;text-wrap-mode:nowrap;text-decoration:underline;"><a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/wanglin86769/epics-rest-ws__;!!G_uCfscf7eWS!eXZ2b49NV9Q8vG3N8cgR3TOHIcGURWbAM7R3CBISYEdln2O24CyCB76W4INoNMo1LHXu_4WSot4hBJEr-ouA764$">https://github.com/wanglin86769/epics-rest-ws</a></span><span style="text-wrap-mode:nowrap;text-decoration:underline;"></span></p><p style="font-size:14px;"><br></p><p style="font-size:14px;">This project is inspired by weiss [1] and pvws [2], but adds REST API functionality. In our use cases, a simple REST pvget is often sufficient, as WebSockets can be a bit too heavy for clients in such scenarios.</p><p style="font-size:14px;"><br></p><p style="font-size:14px;">Currently, it is suited for small-scale PV applications. Tests show that it can handle either 1000 PVs at 10Hz or 5000 PVs at 1Hz.</p><p style="font-size:14px;"><br></p><p style="font-size:14px;">For more details, please refer to the GitHub link above.</p><p style="font-size:14px;"><br></p><p style="font-size:14px;"><br></p><p style="font-size:14px;">Regards,</p><p style="font-size:14px;">Lin</p><p style="font-size:14px;"><br></p><p style="font-size:14px;"><br></p><p style="font-size:14px;">[1]&nbsp;<span style="text-wrap-mode:nowrap;"><a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/weiss-controls/weiss/__;!!G_uCfscf7eWS!eXZ2b49NV9Q8vG3N8cgR3TOHIcGURWbAM7R3CBISYEdln2O24CyCB76W4INoNMo1LHXu_4WSot4hBJErryPN_9U$">https://github.com/weiss-controls/weiss/</a></span></p><p style="font-size:14px;">[2]&nbsp;<span style="text-wrap-mode:nowrap;"><a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/ornl-epics/pvws__;!!G_uCfscf7eWS!eXZ2b49NV9Q8vG3N8cgR3TOHIcGURWbAM7R3CBISYEdln2O24CyCB76W4INoNMo1LHXu_4WSot4hBJErg4fVN0c$">https://github.com/ornl-epics/pvws</a></span></p><p style="font-size:14px;"><br></p></div>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00764.php</link>
      <author>Rea Domitrovi&#x107; via Tech-talk</author>
      <pubDate>Mon, 29 Jun 2026 13:51:02 GMT</pubDate>
      <guid isPermaLink="false">943f983bbcbf4b7a8128086f81aba212@irb.hr</guid>
      <title>Re: EPICS support for Fastech motors</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: EPICS support for Fastech motors -->
<!--X-From-R13: =?hgs&#45;8?P?GzHuWSDioIy0pz92npEV?= ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Mon, 29 Jun 2026 13:51:02 +0000 -->
<!--X-Message-Id: 943f983bbcbf4b7a8128086f81aba212@irb.hr -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: 3fa52b2ce3cb49268feb45f098f22059@irb.hr -->
<!--X-Reference: 87cf4b86&#45;3e74&#45;4fe4&#45;abb2&#45;15ad34623f8c@edom.se -->
<!--X-Reference: 9b1a66b488854843b3faadd2ad77ce19@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EFB3E750F5ECAE97563DAF99E42@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: b485ec0631a54e5facb354702e1cff7e@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EFCFF95C7A52B77ABDACD799EC2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: 8460ee36498d4b49a6ff53cd0ec64904@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EF011602E59207CFC3737299EB2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: d6b8122ae6b946f0b5cbb182ae45adc9@irb.hr -->
<!--X-Reference: DM3PPF1CEB6B7EFA4F9E04A19E447B19FFE99EB2@DM3PPF1CEB6B7EF.namprd11.prod.outlook.com -->
<!--X-Reference: 5d6548a7&#45;ff88&#45;4439&#45;b84c&#45;dfd50714ae83@edom.se -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: EPICS support for Fastech motors</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Rea Domitrovi&#x107; via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
Torsten B&#xF6;gershausen &lt;<a href="mailto:tboegi%20at%20edom%20dot%20se">tboegi at edom.se</a>&gt;, Mark Rivers &lt;<a href="mailto:rivers%20at%20cars%20dot%20uchicago%20dot%20edu">rivers at cars.uchicago.edu</a>&gt;, &quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Mon, 29 Jun 2026 13:51:02 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->





<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p>Hi Mark and Torsten,</p>
<p><br>
</p>
<p>thanks so much for your help debugging. In today's&nbsp;commit on the repo I've rewritten the driver to override the base class method writeReadController&nbsp;and code the number of bytes exchanged directly by the method instead of using strlen. I've also added a
 method&nbsp;writeReadFrame instead of building the boilerplate string every time.&nbsp;I suspect something is still wrong with the poller as&nbsp;so far only JOGF, JOGR and STOP work semi-reliably, and&nbsp;readback isn't syncing into the motor record, but I should have an easier
 time debugging from here; I'll come back with more questions if I have them.</p>
<p><br>
</p>
<p>As far as Mark's comment on the frame header, the manual in fact contradicts itself - on page 4, section 1-1-4, it says the null byte should go in (zero-indexed) position 2 (after length, before Sync No) and in position 3 (after Sync No, before Frame Type),
 with the sync counter going in the other one, while in section 1-1-5 both the inline visualisation and the bullet-point list request the null byte in position 3. Testing via StreamDevice has shown that the reserved null byte is in fact in position 3.</p>
<p><br>
</p>
<p>Cheers,</p>
<p>Rea</p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Torsten B&#xF6;gershausen &lt;tboegi at edom.se&gt;<br>
<b>Sent:</b> Monday, June 29, 2026 6:38:04 AM<br>
<b>To:</b> Mark Rivers; Rea Domitrovi&#x107;; tech-talk at aps.anl.gov<br>
<b>Subject:</b> Re: EPICS support for Fastech motors</font>
<div>&nbsp;</div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">Thanks Mark for digging.<br>
<br>
While reading your comments and the code,<br>
there is one more thing:<br>
<br>
&nbsp;&nbsp; //write the outstring to controller<br>
&nbsp;&nbsp; memcpy(&amp;pC_-&gt;outString_, buffer, 2&#43;buffer[1]);<br>
&nbsp;&nbsp; status = pC_-&gt;writeReadController();<br>
<br>
The method pC_-&gt;writeReadController(), without any parameters,<br>
will use a strlen() under the hood to find out how many<br>
bytes are realy send to the controller.<br>
<br>
Please have a look at:<br>
writeReadController(const char *output, char *input,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size_t maxChars, size_t *nread, double timeout)<br>
<br>
For binary data, as in your case,<br>
pasynOctetSyncIO-&gt;writeRead() must be used, I think.<br>
Where 2&#43;buffer[1] is the number of bytes to be send.<br>
<br>
Probably you can write a wrapper in your code ?<br>
Mark, Rea, any more comments ?<br>
<br>
/Torsten<br>
<br>
<br>
On 2026-06-26 21:18, Mark Rivers via Tech-talk wrote:<br>
&gt; Hi Rea,<br>
&gt;<br>
&gt; Thanks for sharing that repository, that is very helpful.<br>
&gt;<br>
&gt; I think I found the correct manual for your controller here:<br>
&gt; <a rel="nofollow" href="https://urldefense.us/v3/__https://fastech.co.kr/new/board/bbs/download_product_en.php?__;!!G_uCfscf7eWS!fF7zscSj0dyesxjyWywIECst0vBUed2v5qjt9Hlc8ZE6Zxk9R9iFJI05Twm6zq49feWb-s2hxiH7i-5DqCdBTbf5y0wdUQ$">https://fastech.co.kr/new/board/bbs/download_product_en.php?</a><br>
&gt; bo_table=sub010208_en&amp;wr_id=0 &lt;<a rel="nofollow" href=""></a>https://urldefense.us/v3/__https://<br>
&gt; fastech.co.kr/new/board/bbs/download_product_en.php?<br>
&gt; bo_table=sub010208_en&amp;wr_id=0__;!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-<br>
&gt; akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvUPEoY6M$&gt;<br>
&gt;<br>
&gt; I looked at EzS2PEAxis::move.&nbsp; I see that it is building a binary<br>
&gt; structure and sending that to the controller with pC_-<br>
&gt;&nbsp; &gt;writeReadController().<br>
&gt;<br>
&gt; However, I think I see an error in your code. Everywhere you define<br>
&gt; boiler[] similar to this:<br>
&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned char boiler[] = {HEADER, 8, pC_-&gt;syncCounter, 0x00,<br>
&gt; SET_PARAMETER, param};<br>
&gt; <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech/__;!!G_uCfscf7eWS!fF7zscSj0dyesxjyWywIECst0vBUed2v5qjt9Hlc8ZE6Zxk9R9iFJI05Twm6zq49feWb-s2hxiH7i-5DqCdBTbfk3YVPHQ$">https://github.com/redomitro/motorFastech/</a><br>
&gt; blob/94b93b150501490cf9cf7ef77d4d4e3a6b0ad62f/fastechApp/src/<br>
&gt; EzS2PE_Driver.cpp#L146 &lt;<a rel="nofollow" href=""></a>https://urldefense.us/v3/__https://github.com/<br>
&gt; redomitro/motorFastech/blob/94b93b150501490cf9cf7ef77d4d4e3a6b0ad62f/<br>
&gt; fastechApp/src/EzS2PE_Driver.cpp*L146__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-<br>
&gt; akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvT9F0Ouk$&gt;<br>
&gt;<br>
&gt; However, the manual says the frame header is this:<br>
&gt;<br>
&gt; &#x2460; Header : 0xAA, Displays that the beginning of Frame<br>
&gt; &#x2461; Length : Length of Data after Length<br>
&gt; &#x2002;&#x2002;&#x2002;&#x2002;(Sync No. &#43; Reserved &#43; Frame type &#43; Data)<br>
&gt; &#x2462; Reserved : 1 byte Input as &#x201C; 0x00<br>
&gt; &#x2463; Sync No. : The Sync number of the packet is used to c heck whether the<br>
&gt; command is executed<br>
&gt; &#x2002;&#x2002;&#x2002;&#x2002;in the drive module. The value should change every time when you<br>
&gt; send a new command.<br>
&gt; &#x2464; Frame type : Specify the command type of the Frame. The types are<br>
&gt; listed below.<br>
&gt; &#x2002;&#x2002;&#x2002;&#x2002;Refer to&nbsp; Frametypeand Data configuration &#x300D;<br>
&gt; &#x2465; Data : The data structure and length of this clause are determined by<br>
&gt; the Frame type.<br>
&gt; &#x2002;&#x2002;&#x2002;&#x2002;The detailed structure refers to [Frametypeand Data configuration]<br>
&gt; section below.<br>
&gt;<br>
&gt; Note that the Reserved 0x00 byte is defined in the manual to come<br>
&gt; between the Length and the Sync Number byte.&nbsp; But your code has the 0x00<br>
&gt; after the Sync Number.&nbsp; This seems wrong.<br>
&gt;<br>
&gt; The communication is UDP based.&nbsp; Once you fix the error above I suspect<br>
&gt; that write operations will succeed.<br>
&gt;<br>
&gt; However, I think that read operations will fail because you have created<br>
&gt; the L0 UDP port with the default value of noProcessEos=0.&nbsp; This means<br>
&gt; that the UDP driver is doing EOS processing.&nbsp; Although you have not<br>
&gt; defined input or output terminators, another thing that the EOS<br>
&gt; processing does is wait for the requested number of bytes to be<br>
&gt; received.&nbsp; Since you have no way of knowing how many bytes will be<br>
&gt; received you need to request more than you will receive, and the read<br>
&gt; will time out.<br>
&gt;<br>
&gt; The solution is to change your startup script to this:<br>
&gt;<br>
&gt; drvAsynIPPortConfigure(&quot;L0&quot;, &quot;192.168.0.204:3001 UDP&quot;, 0, 0, 1)<br>
&gt;<br>
&gt; That sets noProcessEos to 1.&nbsp; That means that the driver will not wait<br>
&gt; for the requested number of characters but will return as soon as any<br>
&gt; characters are received, or after a timeout.<br>
&gt;<br>
&gt; Cheers,<br>
&gt; Mark<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt; *From:* Rea Domitrovi&#x107; &lt;rea.domitrovic at irb.hr&gt;<br>
&gt; *Sent:* Friday, June 26, 2026 8:44 AM<br>
&gt; *To:* Mark Rivers &lt;rivers at cars.uchicago.edu&gt;; tech-talk at aps.anl.gov<br>
&gt; &lt;tech-talk at aps.anl.gov&gt;<br>
&gt; *Subject:* Re: EPICS support for Fastech motors<br>
&gt;<br>
&gt; Hi Mark,<br>
&gt;<br>
&gt;<br>
&gt; the source code is here: <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!G_uCfscf7eWS!fF7zscSj0dyesxjyWywIECst0vBUed2v5qjt9Hlc8ZE6Zxk9R9iFJI05Twm6zq49feWb-s2hxiH7i-5DqCdBTbfO0YS64Q$">https://github.com/redomitro/motorFastech</a><br>
&gt; &lt;<a rel="nofollow" href=""></a>https://urldefense.us/v3/__https://github.com/redomitro/<br>
&gt; motorFastech__;!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-<br>
&gt; akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvZcjRvUo$&gt;&nbsp;- the repository should be public. Thank you again for the help; it's the end of the week here so I'll dig into the debugging more come Monday. Best,<br>
&gt;<br>
&gt;<br>
&gt; Rea<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt; *From:* Mark Rivers &lt;rivers at cars.uchicago.edu&gt;<br>
&gt; *Sent:* Friday, June 26, 2026 3:15:45 PM<br>
&gt; *To:* Rea Domitrovi&#x107;; tech-talk at aps.anl.gov<br>
&gt; *Subject:* Re: EPICS support for Fastech motors<br>
&gt;<br>
&gt; Hi Rea,<br>
&gt;<br>
&gt;<br>
&gt;&nbsp;&nbsp; *<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; Is it even possible to use the Model 3 framework to communicate with<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; something that uses such a specific and non-standard byte stream, or<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; will I have to find a different way? Kind regards,<br>
&gt;<br>
&gt;<br>
&gt; Yes, definitely.&nbsp; You can use the Model 3 framework to communicate with<br>
&gt; any type of motor controller API: ASCII strings, vendor library calls,<br>
&gt; Modbus, etc.<br>
&gt;<br>
&gt; The issue is the motorAxis-&gt;move() function that you have implemented in<br>
&gt; your derived class.&nbsp; It is returning the error status -1.&nbsp; You need to<br>
&gt; figure out why.&nbsp; Is your code on a repository where we can see it?&nbsp; If<br>
&gt; not can you share the code, or at least the code for the axis-&gt;move()<br>
&gt; function?<br>
&gt;<br>
&gt; Here are 2 suggestions for debugging this:<br>
&gt;<br>
&gt;&nbsp;&nbsp; *<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; Enable asynTraceIODriver and ASYN_TRACEIO_ESCAPE for the underlying<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; asyn communication port.&nbsp; That will let you see the complete<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; communication with the device.&nbsp; Put these lines in your startup<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; script right after you create the asyn communication port, which I<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; have called $(PORT) here:<br>
&gt;<br>
&gt;<br>
&gt; asynSetTraceMask($(PORT), 0, ERROR|DRIVER)<br>
&gt; asynSetTraceIOMask($(PORT), 0, ESCAPE)<br>
&gt;<br>
&gt;&nbsp;&nbsp; *<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; Put debugging printf or asynPrint statements in your driver to see<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; what is happening.<br>
&gt;<br>
&gt;<br>
&gt; Mark<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt; *From:* Rea Domitrovi&#x107; &lt;rea.domitrovic at irb.hr&gt;<br>
&gt; *Sent:* Friday, June 26, 2026 2:50 AM<br>
&gt; *To:* Mark Rivers &lt;rivers at cars.uchicago.edu&gt;; tech-talk at aps.anl.gov<br>
&gt; &lt;tech-talk at aps.anl.gov&gt;<br>
&gt; *Subject:* Re: EPICS support for Fastech motors<br>
&gt;<br>
&gt; Hi Mark,<br>
&gt;<br>
&gt;<br>
&gt; thanks for taking the time. I followed the debug instructions you<br>
&gt; gave here: <a rel="nofollow" href="https://epics.anl.gov/tech-talk/2017/msg00282.php">https://epics.anl.gov/tech-talk/2017/msg00282.php</a> &lt;https://<br>
&gt; epics.anl.gov/tech-talk/2017/msg00282.php&gt;&nbsp;- thanks for clarifying what<br>
&gt; is actually needed.<br>
&gt;<br>
&gt;<br>
&gt; I suspect this message is what's wrong, i.e. the writes are not actually<br>
&gt; getting through to the motor:<br>
&gt;<br>
&gt;<br>
&gt; 2026/06/26 09:39:45.144 asynMotorController:writeFloat64 error, status=1<br>
&gt; axis=0, function=1, value=-150000.000000<br>
&gt; 2026/06/26 09:39:45.148 devMotorAsyn::asynCallback: EXIT:zpos<br>
&gt; pasyn{Float64,Int32}-&gt;write returned<br>
&gt;<br>
&gt; To me, it smells like the problem is in the fact the motor doesn't use<br>
&gt; ASCII-compatible strings to communicate - every message has to start<br>
&gt; with a five-byte header of the following structure: 0xAA, length,<br>
&gt; idempotence counter, 0x00, frame type. That null byte is presumably<br>
&gt; making communication difficult; that is why everywhere in the source<br>
&gt; code I used memcpy instead of sprintf to build the outString. A test IOC<br>
&gt; made with StreamDevice instead of Motor confirms the motor is responsive<br>
&gt; to that kind of communication; I was able to turn the servo on and poll<br>
&gt; it for position using StreamDevice, but not actually move it.<br>
&gt;<br>
&gt;<br>
&gt; Is it even possible to use the Model 3 framework to communicate with<br>
&gt; something that uses such a specific and non-standard byte stream, or<br>
&gt; will I have to find a different way? Kind regards,<br>
&gt;<br>
&gt;<br>
&gt; Rea<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt; *From:* Mark Rivers &lt;rivers at cars.uchicago.edu&gt;<br>
&gt; *Sent:* Thursday, June 25, 2026 4:35:51 PM<br>
&gt; *To:* tech-talk at aps.anl.gov; Rea Domitrovi&#x107;<br>
&gt; *Subject:* Re: EPICS support for Fastech motors<br>
&gt; H Rea,<br>
&gt;<br>
&gt; You have set the asynTraceMask to enable lots of debugging.&nbsp; That is OK,<br>
&gt; but it makes it hard to see the real errors from warning and<br>
&gt; informational messages.&nbsp; For example these messages are printed with<br>
&gt; ASYN_TRACE_FLOW, they are not really errors.<br>
&gt;<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit<br>
&gt; error getting parameter 9 MOTOR_ENCODER_POSITION, in list 0, value undefined<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit<br>
&gt; error getting parameter 5 MOTOR_VELOCITY, in list 0, value undefined<br>
&gt;<br>
&gt; This message<br>
&gt; 2026/06/25 15:07:46.444 asynMotorController:writeFloat64: Set driver<br>
&gt; motorExit, axis 0 move absolute to 0.000000, base velocity=500.000000,<br>
&gt; velocity=25000.000000, acceleration=245000.000000<br>
&gt;<br>
&gt; is being printed here.&nbsp; It is just an informational message.<br>
&gt; <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!fF7zscSj0dyesxjyWywIECst0vBUed2v5qjt9Hlc8ZE6Zxk9R9iFJI05Twm6zq49feWb-s2hxiH7i-5DqCdBTbdpeVk2aw$">https://github.com/epics-modules/motor/blob/</a><br>
&gt; f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/<br>
&gt; asynMotorController.cpp#L328 &lt;<a rel="nofollow" href=""></a>https://urldefense.us/v3/__https://<br>
&gt; github.com/epics-modules/motor/blob/<br>
&gt; f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/<br>
&gt; asynMotorController.cpp*L328__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-<br>
&gt; akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNv9k8nZJQ$&gt;<br>
&gt;<br>
&gt; However, this message:<br>
&gt; 2026/06/25 15:07:46.445 asynMotorController:writeFloat64 error, status=1<br>
&gt; axis=0, function=1, value=0.000000<br>
&gt;<br>
&gt; is being printed here:<br>
&gt; <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!fF7zscSj0dyesxjyWywIECst0vBUed2v5qjt9Hlc8ZE6Zxk9R9iFJI05Twm6zq49feWb-s2hxiH7i-5DqCdBTbdpeVk2aw$">https://github.com/epics-modules/motor/blob/</a><br>
&gt; f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/<br>
&gt; asynMotorController.cpp#L428 &lt;<a rel="nofollow" href=""></a>https://urldefense.us/v3/__https://<br>
&gt; github.com/epics-modules/motor/blob/<br>
&gt; f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/<br>
&gt; asynMotorController.cpp*L428__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-<br>
&gt; akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvdoyZWuk$&gt;<br>
&gt;<br>
&gt; Function=1 is a move absolute command, so it is consistent with the<br>
&gt; first message.&nbsp; status=1 means that your driver's pAxis-&gt;move() function<br>
&gt; returned -1.&nbsp; It was called from here:<br>
&gt; <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-modules/motor/blob/__;!!G_uCfscf7eWS!fF7zscSj0dyesxjyWywIECst0vBUed2v5qjt9Hlc8ZE6Zxk9R9iFJI05Twm6zq49feWb-s2hxiH7i-5DqCdBTbdpeVk2aw$">https://github.com/epics-modules/motor/blob/</a><br>
&gt; f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/<br>
&gt; asynMotorController.cpp#L324-L325 &lt;<a rel="nofollow" href=""></a>https://urldefense.us/v3/__https://<br>
&gt; github.com/epics-modules/motor/blob/<br>
&gt; f3d089bae20d04f8b9ed18fcfdc55274075d6a42/motorApp/MotorSrc/<br>
&gt; asynMotorController.cpp*L324-L325__;Iw!!G_uCfscf7eWS!ZG7XUWxxrpQ37e-<br>
&gt; akIDsZDGp4KKtM1ycFzKnNiO_tLUFBMGylb-98MZgDcyWWEOAYj6cH0fKuJACQotBhkNvASUhELQ$&gt;<br>
&gt;<br>
&gt; If you set your asynTrace flags to ERROR|WARNING you will only see the<br>
&gt; more important messages.<br>
&gt;<br>
&gt; Mark<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt; *From:* Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of Rea<br>
&gt; Domitrovi&#x107; via Tech-talk &lt;tech-talk at aps.anl.gov&gt;<br>
&gt; *Sent:* Thursday, June 25, 2026 8:53 AM<br>
&gt; *To:* tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
&gt; *Subject:* Re: EPICS support for Fastech motors<br>
&gt;<br>
&gt; Hi all,<br>
&gt;<br>
&gt;<br>
&gt; thanks so much for pointing me in the right direction so far. I've got<br>
&gt; to the point where I've got the structure of a driver based on the MCB4B<br>
&gt; driver and with inspiration from the SmarAct driver; however, at<br>
&gt; runtime, I'm getting errors that I'm struggling to diagnose. If someone<br>
&gt; could help me understand, I would be most grateful. Relevant info is<br>
&gt; below. Best,<br>
&gt;<br>
&gt;<br>
&gt; Rea Domitrovi&#x107;<br>
&gt;<br>
&gt; Institut Ru&#x111;er Bo&#x161;kovi&#x107;<br>
&gt;<br>
&gt; Zagreb, Croatia<br>
&gt;<br>
&gt;<br>
&gt; Source code is here: <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!G_uCfscf7eWS!fF7zscSj0dyesxjyWywIECst0vBUed2v5qjt9Hlc8ZE6Zxk9R9iFJI05Twm6zq49feWb-s2hxiH7i-5DqCdBTbfO0YS64Q$">https://github.com/redomitro/motorFastech</a> &lt;https://<br>
&gt; urldefense.us/v3/__<a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/redomitro/motorFastech__;!!__;!!G_uCfscf7eWS!fF7zscSj0dyesxjyWywIECst0vBUed2v5qjt9Hlc8ZE6Zxk9R9iFJI05Twm6zq49feWb-s2hxiH7i-5DqCdBTbcBJY8gbQ$">https://github.com/redomitro/motorFastech__;!!</a><br>
&gt; G_uCfscf7eWS!<br>
&gt; ckejUTszXgikK0HKxA_InFEgeEyYG2lD41P9WU4hEdAGledQERL0dK2U_KIYaLsarWXmtRkeqsmdlOkbbDFNsrR52DGXQg$&gt;<br>
&gt;<br>
&gt;<br>
&gt; IOCinit output:<br>
&gt;<br>
&gt;<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_MOVE_REL, index=0<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_MOVE_ABS, index=1<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_MOVE_VEL, index=2<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_HOME, index=3<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_STOP_AXIS, index=4<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_VELOCITY, index=5<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_VEL_BASE, index=6<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_ACCEL, index=7<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_POSITION, index=8<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_RESOLUTION, index=12<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_ENCODER_RATIO, index=13<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_PGAIN, index=14<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_IGAIN, index=15<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_DGAIN, index=16<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_HIGH_LIMIT, index=17<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_LOW_LIMIT, index=18<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_CLOSED_LOOP, index=19<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_STATUS, index=25<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:drvUserCreate:<br>
&gt; drvInfo=MOTOR_UPDATE_STATUS, index=26<br>
&gt; 2026/06/25 15:29:48.311 motorExit 0 registerInterruptUser<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit<br>
&gt; error getting parameter 9 MOTOR_ENCODER_POSITION, in list 0, value undefined<br>
&gt; 2026/06/25 15:29:48.311 asynPortDriver:getDoubleParam: port=motorExit<br>
&gt; error getting parameter 5 MOTOR_VELOCITY, in list 0, value undefined<br>
&gt; 2026/06/25 15:29:48.311 asynMotorController:readGenericPointer:<br>
&gt; MotorStatus = status34, position=425203751.000000, encoder<br>
&gt; position=0.000000, velocity=0.000000<br>
&gt; 2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort locking port<br>
&gt; 2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort created<br>
&gt; queueLockPortPvt=0x561069c8f7a0<br>
&gt; 2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort created<br>
&gt; queueLockPortPvt=0x561069c8f7a0, event=0x561069c979e0, mutex=0x561069c97990<br>
&gt; 2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort taking<br>
&gt; mutex 0x561069c97990<br>
&gt; 2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort queueing<br>
&gt; request<br>
&gt; 2026/06/25 15:29:48.311 motorExit addr 0 queueRequest priority 0 not<br>
&gt; lockHolder<br>
&gt; 2026/06/25 15:29:48.311 motorExit schedule queueRequest timeout in<br>
&gt; 2.000000 seconds<br>
&gt; 2026/06/25 15:29:48.311 motorExit asynManager::queueLockPort waiting for<br>
&gt; event<br>
&gt; 2026/06/25 15:29:48.312 motorExit 0 autoConnect<br>
&gt; 2026/06/25 15:29:48.312 asynPortDriver:connect:, pasynUser=0x561069c83188<br>
&gt; 2026/06/25 15:29:48.312 asynManager::portThread port=motorExit callback<br>
&gt; 2026/06/25 15:29:48.312 motorExit asynManager::queueLockPortCallback<br>
&gt; signaling begin event<br>
&gt; 2026/06/25 15:29:48.312 motorExit asynManager::queueLockPortCallback<br>
&gt; waiting for mutex from queueUnlockPort<br>
&gt; 2026/06/25 15:29:48.312 motorExit asynManager::queueLockPort got event<br>
&gt; from callback<br>
&gt; 2026/06/25 15:29:48.312 EXIT:zpos devMotorAsyn::statusCallback new<br>
&gt; value=[p:425203751.000000,e:0.000000,s:22]<br>
&gt; 2026/06/25 15:29:48.312 asynMotorController:writeFloat64: Set driver<br>
&gt; motorExit, axis 0 encoder ratio=1.000000<br>
&gt; 2026/06/25 15:29:48.312 asynMotorController:writeFloat64:: axis=0,<br>
&gt; function=13, value=1.000000<br>
&gt; 2026/06/25 15:29:48.312 asynFloat64SyncIO wrote: 1.000000e&#43;00<br>
&gt; 2026/06/25 15:29:48.312 motorExit queueUnlockPort<br>
&gt; 2026/06/25 15:29:48.312 motorExit asynManager::queueUnlockPort waiting<br>
&gt; for event<br>
&gt; 2026/06/25 15:29:48.313 motorExit queueUnlockPort unlock mutex<br>
&gt; 0x561069c97990 complete.<br>
&gt; 2026/06/25 15:29:48.313 devMotorAsyn::init_controller, EXIT:zpos set<br>
&gt; encoder ratio to 1.000000<br>
&gt; 2026/06/25 15:29:48.313 devMotorAsyn::init_controller, EXIT:zpos setting<br>
&gt; of position not required, position=425203751.000000, mres=0.000200,<br>
&gt; dval=0.000000, rdbd=0.0002002026/06/25 15:29:48.313 EXIT:zpos<br>
&gt; devMotorAsyn::update_values, needUpdate=1<br>
&gt; 2026/06/25 15:29:48.313 devMotorAsyn::build_trans: EXIT:zpos<br>
&gt; motor_cmnd=19, pact=0, value=375000.000000<br>
&gt; 2026/06/25 15:29:48.313 devAsynMotor::build_trans: calling queueRequest,<br>
&gt; pmsg=0x561069c97c40, sizeof(*pmsg)=24pmsg-&gt;command=14, pmsg-<br>
&gt;&nbsp; &gt;interface=1, pmsg-&gt;dvalue=375000.000000<br>
&gt; 2026/06/25 15:29:48.313 motorExit addr 0 queueRequest priority 0 not<br>
&gt; lockHolder<br>
&gt; 2026/06/25 15:29:48.313 devMotorAsyn::build_trans: EXIT:zpos<br>
&gt; motor_cmnd=20, pact=0, value=-375000.000000<br>
&gt; 2026/06/25 15:29:48.313 devAsynMotor::build_trans: calling queueRequest,<br>
&gt; pmsg=0x561069c97c90, sizeof(*pmsg)=24pmsg-&gt;command=15, pmsg-<br>
&gt;&nbsp; &gt;interface=1, pmsg-&gt;dvalue=-375000.000000<br>
&gt; 2026/06/25 15:29:48.313 motorExit addr 0 queueRequest priority 0 not<br>
&gt; lockHolder<br>
&gt; 2026/06/25 15:29:48.313 asynManager::portThread port=motorExit callback<br>
&gt; 2026/06/25 15:29:48.313 devMotorAsyn::asynCallback: EXIT:zpos<br>
&gt; pmsg=0x561069c97c40, sizeof(*pmsg)=24, pmsg-&gt;command=14,pmsg-<br>
&gt;&nbsp; &gt;interface=1, pmsg-&gt;ivalue=0, pmsg-&gt;dvalue=375000.000000, pasynUser-<br>
&gt;&nbsp; &gt;reason=17<br>
&gt; 2026/06/25 15:29:48.313 asynMotorController:writeFloat64: Set driver<br>
&gt; motorExit, axis 0 high limit=375000.000000<br>
&gt; 2026/06/25 15:29:48.313 asynMotorController:writeFloat64:: axis=0,<br>
&gt; function=17, value=375000.000000<br>
&gt; 2026/06/25 15:29:48.313 asynManager::portThread port=motorExit callback<br>
&gt; 2026/06/25 15:29:48.313 devMotorAsyn::asynCallback: EXIT:zpos<br>
&gt; pmsg=0x561069c97c90, sizeof(*pmsg)=24, pmsg-&gt;command=15,pmsg-<br>
&gt;&nbsp; &gt;interface=1, pmsg-&gt;ivalue=0, pmsg-&gt;dvalue=-375000.000000, pasynUser-<br>
&gt;&nbsp; &gt;reason=18<br>
&gt; 2026/06/25 15:29:48.313 asynMotorController:writeFloat64: Set driver<br>
&gt; motorExit, axis 0 low limit=-375000.000000<br>
&gt; 2026/06/25 15:29:48.313 asynMotorController:writeFloat64:: axis=0,<br>
&gt; function=18, value=-375000.000000<br>
&gt;<br>
&gt; Output when attempting to caput absolute position:<br>
&gt;<br>
&gt; 2026/06/25 15:07:44.438 192.168.0.204:3001 UDP write 3<br>
&gt; \xaa\v\a<br>
&gt; 2026/06/25 15:07:46.444 asynMotorController:writeFloat64: Set driver<br>
&gt; motorExit, axis 0 move absolute to 0.000000, ba<br>
&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; se velocity=500.000000, velocity=25000.000000,<br>
&gt; acceleration=245000.000000<br>
&gt; 2026/06/25 15:07:46.445 asynMotorController:writeFloat64 error, status=1<br>
&gt; axis=0, function=1, value=0.000000<br>
&gt; 2026/06/25 15:07:46.445 devMotorAsyn::asynCallback: EXIT:zpos<br>
&gt; pasyn{Float64,Int32}-&gt;write returned<br>
&gt; 2026/06/25 15:07:46.445 EXIT:zpos devMotorAsyn::update_values, needUpdate=1<br>
&gt; ------------------------------------------------------------------------<br>
&gt; *From:* Mark Rivers &lt;rivers at cars.uchicago.edu&gt;<br>
&gt; *Sent:* Wednesday, June 17, 2026 21:07<br>
&gt; *To:* Torsten B&#xF6;gershausen; tech-talk at aps.anl.gov; Rea Domitrovi&#x107;<br>
&gt; *Subject:* Re: EPICS support for Fastech motors<br>
&gt; Hi Rea,<br>
&gt;<br>
&gt;&nbsp;&nbsp; *<br>
&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I see that driver developers prefer to use octet-based<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; communication rather than use the manufacturer-provided libraries.<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; Is there a reason why that is the case, or is it simply that octet-<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; based communicaton is more universal?<br>
&gt;<br>
&gt;<br>
&gt; Manufacturer libraries will be provided for specific operating system<br>
&gt; and specific versions of those OS. That can restrict where they can be<br>
&gt; deployed.&nbsp; They may restrict redistribution, which prevents including<br>
&gt; them in the motor Github repository.&nbsp; They almost certainly won't be<br>
&gt; supported on real-time OS like RTEMS or vxWorks.<br>
&gt;<br>
&gt;&nbsp;&nbsp; *<br>
&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; Further, the Fastech controller allows both octet-based<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; communication and library-based communication, but octet-based<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; communication requires the master to send a one-byte &quot;sync number&quot;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; which serves as an idempotence token. I assume it would be necessary<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; to implement that myself; could I be using some sort of global<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; variable, and how do I make sure that I never land on the same<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; number twice in a row?<br>
&gt;<br>
&gt;<br>
&gt; Many protocols have something like that.&nbsp; You just have a member<br>
&gt; variable in your driver class that increments by 1 on each message it<br>
&gt; sends, and wraps back to 0 after 255.<br>
&gt;<br>
&gt; Mark<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt; *From:* Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of Rea<br>
&gt; Domitrovi&#x107; via Tech-talk &lt;tech-talk at aps.anl.gov&gt;<br>
&gt; *Sent:* Wednesday, June 17, 2026 8:34 AM<br>
&gt; *To:* Torsten B&#xF6;gershausen &lt;tboegi at edom.se&gt;; tech-talk at aps.anl.gov<br>
&gt; &lt;tech-talk at aps.anl.gov&gt;<br>
&gt; *Subject:* Re: EPICS support for Fastech motors<br>
&gt;<br>
&gt; Hi Torsten,<br>
&gt;<br>
&gt;<br>
&gt; thanks for pointing me in the right direction. I'm looking at the manual<br>
&gt; and the source for other submodules now (motorSmarAct and motorAcs); I<br>
&gt; see that driver developers prefer to use octet-based communication<br>
&gt; rather than use the manufacturer-provided libraries. Is there a reason<br>
&gt; why that is the case, or is it simply that octet-based communicaton is<br>
&gt; more universal?<br>
&gt;<br>
&gt;<br>
&gt; Further, the Fastech controller allows both octet-based communication<br>
&gt; and library-based communication, but octet-based communication requires<br>
&gt; the master to send a one-byte &quot;sync number&quot; which serves as an<br>
&gt; idempotence token. I assume it would be necessary to implement that<br>
&gt; myself; could I be using some sort of global variable, and how do I make<br>
&gt; sure that I never land on the same number twice in a row? Kind regards,<br>
&gt;<br>
&gt;<br>
&gt; Rea<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt; *From:* Torsten B&#xF6;gershausen &lt;tboegi at edom.se&gt;<br>
&gt; *Sent:* Wednesday, June 10, 2026 1:49:41 PM<br>
&gt; *To:* Rea Domitrovi&#x107;; tech-talk at aps.anl.gov<br>
&gt; *Subject:* Re: EPICS support for Fastech motors<br>
&gt; Hej Rea,<br>
&gt;<br>
&gt; I haven't worked with them, no.<br>
&gt; If you have Ethernet (not to be confused with EtherCAT),<br>
&gt; I read the manual as if they use UDP for communication,<br>
&gt; and knowing that you can write a simple model 3 driver, I think.<br>
&gt; (Other suggestions are welcome of course)<br>
&gt; /Torsten<br>
&gt;<br>
&gt;<br>
&gt; On 2026-06-10 12:52, Rea Domitrovi&#x107; via Tech-talk wrote:<br>
&gt;&nbsp; &gt; Hi all,<br>
&gt;&nbsp; &gt;<br>
&gt;&nbsp; &gt;<br>
&gt;&nbsp; &gt; I'm working with some Fastech Ezi-Servo II Plus-E motors, and I was<br>
&gt;&nbsp; &gt; wondering if someone had already worked with them and/or made an EPICS<br>
&gt;&nbsp; &gt; driver or Motor submodule? This particular line of motors and<br>
&gt;&nbsp; &gt; drives uses an Ethernet interface. Kind regards,<br>
&gt;&nbsp; &gt;<br>
&gt;&nbsp; &gt;<br>
&gt;&nbsp; &gt; Rea Domitrovi&#x107;<br>
&gt;&nbsp; &gt;<br>
&gt;&nbsp; &gt; Institut Ru&#x111;er Bo&#x161;kovi&#x107;<br>
&gt;&nbsp; &gt;<br>
&gt;&nbsp; &gt; Zagreb, Croatia<br>
&gt;&nbsp; &gt;<br>
&gt;<br>
&gt; Oprez: Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja<br>
&gt; poveznica ili privitaka provjerite po&#x161;iljatelja. Caution:This email<br>
&gt; originated from an external sender. Please verify the sender before<br>
&gt; opening links or attachments.<br>
&gt; *Oprez:* Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja<br>
&gt; poveznica ili privitaka provjerite po&#x161;iljatelja. *Caution:*This email<br>
&gt; originated from an external sender. Please verify the sender before<br>
&gt; opening links or attachments.<br>
&gt; *Oprez:* Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja<br>
&gt; poveznica ili privitaka provjerite po&#x161;iljatelja. *Caution:*This email<br>
&gt; originated from an external sender. Please verify the sender before<br>
&gt; opening links or attachments.<br>
&gt; *Oprez:* Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja<br>
&gt; poveznica ili privitaka provjerite po&#x161;iljatelja. *Caution:*This email<br>
&gt; originated from an external sender. Please verify the sender before<br>
&gt; opening links or attachments.<br>
<br>
Oprez: Ova poruka stigla je od vanjskog po&#x161;iljatelja. Prije otvaranja poveznica ili privitaka provjerite po&#x161;iljatelja. Caution:This email originated from an external sender. Please verify the sender before opening links or attachments.<br>
</div>
</span></font>



<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00765.php</link>
      <author>Javier Cruz Miranda via Tech-talk</author>
      <pubDate>Tue, 30 Jun 2026 10:12:20 GMT</pubDate>
      <guid isPermaLink="false">af7792c5dc2108cb2f31e6d104fdb483@ugr.es</guid>
      <title>Re: 2026 white paper on EPICS vs commercial SCADA software</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: 2026 white paper on EPICS vs commercial SCADA software -->
<!--X-From-R13: Xnivre Qehm [venaqn ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Tue, 30 Jun 2026 12:12:20 +0200 -->
<!--X-Message-Id: af7792c5dc2108cb2f31e6d104fdb483@ugr.es -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: SA1PR09MB863808B6F707A2D8E268445CD4ED2@SA1PR09MB8638.namprd09.prod.outlook.com -->
<!--X-Reference: CADFwZQ&#45;+AbSg0wYWsY5P0CkTejeJZWVrKXOuzQTY1durQbTjBA@mail.gmail.com -->
<!--X-Reference: CAH&#45;ySCZE5taZs1rO7Z=f4Su4&#45;CiRfPDFv=yrRX97KG4_PKp1Ew@mail.gmail.com -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: 2026 white paper on EPICS vs commercial SCADA software</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Javier Cruz Miranda via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a></td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Tue, 30 Jun 2026 12:12:20 +0200</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<table width="100%"><tr><td style="">
<p>Dear colleagues,<br />I am one of the authors of the paper to which you refer. Thank you for your interest in our work. I would like to offer a few clarifications that I hope may be useful.</p>
<p>None of the authors belong to the DONES consortium. Our positions are purely academic. We have no corporate interest, preference, or external support of any kind. Despite the long tradition of some of the authors in open software and hardware communities, we have endeavored to provide unbiased results while avoiding oversimplification of the many challenges addressed in this contribution.</p>
<p>Our work was developed within the scope of WPENS under the EUROfusion framework and, as such, is limited to research, comparative studies, proposals, feasibility and proof-of-concept tests in areas of possible interest to IFMIF-DONES. These kinds of activities are complex, technically and methodically speaking but valuable discussions to continue the advancement of science and technology. Their outputs can offer nuanced analysis that the engineers responsible for the final design of the DONES control system may or may not find useful, as they see fit.</p>
<p>The context of the comparison is important. Using the control systems of that facility as baseline case, this study focuses particularly on the requirements and needs of the central CODAC system, which in that case comprise services such as monitoring/HMI, alarm and data management, etc. We fully agree that the knowledge gained and experience in this project and in LIPAc are fundamental. This was taken into account, and precisely this is one of the reasons why this study concludes by suggesting a hybrid architecture of control systems, using an industrial SCADA system for the central monitoring and control, while keeping EPICS at the local control level in order to benefit from the best of both worlds. This hybridisation of EPICS with industrial SCADA systems is, in fact, one of our main lines of research, and it is illustrated in some of the publications referenced in the article.</p>
<p>The conclusions were not reached by the authors alone. The evaluation reflects the opinions and experiences of vendors, development companies, and users consulted across a wide range of expertise, including people with long experience in both EPICS and industrial SCADAs. A voting system was used for all criteria to mitigate individual bias. The scores were not binary; they expressed assessments based on availability of options, ease of implementation, maturity of native support, and similar factors. It is also worth noting that most of the scores do not concern EPICS Base itself, but rather other components of the ecosystem and integration considerations.</p>
<p>A few brief technical clarifications in response to specific comments:<br />- &nbsp; &nbsp;Regarding OPC-UA: the EPICS Device Support module for OPC-UA is an excellent tool that has, in fact, inspired much of our own work. The criterion in the study assessed whether a framework provides native support for this protocol without requiring a separate bridge, gateway, or custom development. In fact, what the point of the considered rq list really assessed was the possibility of using industrial and market standards in general; OPC UA being one of them.<br />- &nbsp; &nbsp;Regarding the IOC restarts comment: this referred to structural or configuration changes, not to property value updates, which we are aware can be handled through the mentioned mechanisms. In any case, this point carries limited weight in the overall conclusions.<br />- &nbsp; &nbsp;Most of our laboratory setups are built on EPICS 7 and pvAccess, and we are well aware of the significant progress they represent. The a
 ssessments in some questions concern not the technical quality of the framework, but the practical implications of maintaining custom developments over time, including challenges related to updates, support, and dependency on specific individuals or software versions. We are aware that customizations are needed in these scientific and particular scopes and, as said, one of our lines of research is directed precisely at integrating such custom solutions with industry standards, to facilitate the adoption of new technologies; key specially when we talk of small-medium facility with limited engineering resources.</p>
<p>Finally, as a personal opinion: the fact that some industrial solutions score higher in certain functional areas does not diminish EPICS. If anything, I think that studies of this kind can help identify areas where new lines of work &mdash; on interoperability, maintainability, or total cost&mdash; may be worth pursuing. These are dimensions that purely technical comparisons do not always address adequately.</p>
<p>Thank you again for your interest and for the constructive nature of the discussion.</p>
<p>Kind regards,<br />&nbsp; &nbsp;Javi.</p>
<div id="signature">
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">---<br />Javier Cruz Miranda<br />University of Granada</div>
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">&nbsp;</div>
</div>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<div id="replybody1">
<div dir="ltr">
<div><br /><br />
<div class="v1gmail_quote v1gmail_quote_container">
<div class="v1gmail_attr" dir="ltr">---------- Forwarded message ---------<br />De: <strong class="v1gmail_sendername" dir="auto">Diego Omitto via Tech-talk</strong> <span>&lt;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" rel="noreferrer">tech-talk at aps.anl.gov</a>&gt;</span><br />Date: mi&eacute;, 24 jun 2026 a las 20:20<br />Subject: Re: 2026 white paper on EPICS vs commercial SCADA software<br />To: Evans, Richard K. (GRC-H000) &lt;<a rel="nofollow" href="mailto:richard.k.evans at nasa.gov" rel="noreferrer">richard.k.evans at nasa.gov</a>&gt;<br />Cc: <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" rel="noreferrer">tech-talk at aps.anl.gov</a> &lt;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" rel="noreferrer">tech-talk at aps.anl.gov</a>&gt;</div>
<br /><br />
<div dir="ltr">Subject: Re: Comparative SCADA evaluation - IFMIF-DONES paper<br /><br />Hi Rich,<br /><br />I read the paper and have a few specific concerns.<br /><br />I noticed a factual error in the operational critique: the authors claim that changing a variable property in EPICS requires restarting the IOC database. Runtime field modification via caput, dbpf, and autosave/restore is standard practice.&nbsp;This is not a minor point. If the evaluators did not know this, the scoring in Table 2 reflects unfamiliarity with the framework, not its actual capabilities.<br /><br />This also undermines the paper's characterization of EPICS as a legacy framework. EPICS 7 introduced PVAccess as a first-class protocol with structured data types, high-throughput streaming, and normative types that go well beyond what OPC-UA offers in accelerator contexts. The ecosystem around it is actively developed.<br /><br />More damaging to the paper's credibility: it cites the ITER OPC-UA/EPICS gatewa
 y as prior art for the CODAC-MPS integration problem, then penalizes EPICS in the scoring for limited OPC-UA support. The solution they acknowledge exists was excluded from the evaluation.<br /><br />Finally, the paper does not address the most obvious question: LIPAc, the direct operational prototype of IFMIF-DONES, runs EPICS. I don't see an explanation for why a framework adequate for the prototype is suddenly inadequate for the full facility.<br /><br />That omission says more about the motivation behind this study than the scoring does.<br /><br />Best,<br />Diego</div>
<div dir="ltr">&nbsp;</div>
<br />
<div class="v1gmail_quote">
<div class="v1gmail_attr" dir="ltr">On Wed, Jun 24, 2026 at 1:29&#x202F;PM Evans, Richard K. (GRC-H000) via Tech-talk &lt;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" rel="noreferrer">tech-talk at aps.anl.gov</a>&gt; wrote:</div>
<blockquote class="v1gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">Dear EPICS community, <br /><br />I recently came across a new whitepaper that present a comparative evaluation of EPICS against various commercial SCADA platform alternatives. The evaluation uses a set of requirements that they state are representative of the IFMIF-DONES plant currently being constructed in Esc&uacute;zar, Granada, Spain.&nbsp; The paper is linked below.&nbsp; If you have a moment and are inclined, please take a look at Table 2 and Figure 3 and let me know if you feel that EPICS has been rated accurately/fairly.<br /><br />"A comparative study of industrial and open-source SCADAs to optimize the design of control systems for the IFMIF-DONES plant"<br /><a rel="nofollow" href="https://urldefense.com/v3/__https://urldefense.us/v3/__https:/*www.researchgate.net/publication/403928088_A_comparative_study_of_industrial_and_open-source_SCADAs_to_optimize_the_design_of_c
 ontrol_systems_for_the_IFMIF-DONES_plant__;!!G_uCfscf7eWS!dLrszc_F4-MNU6rvR6_tBzD-oxGJWgrejzopanOX1p9BNsJxyEPjxFevbkdTX0hdTvbTDWos84abzN6ViuHnARMNORgosr0r$__;Lw!!D9dNQwwGXtA!QD6RH2DUrVCnRodN0LidbndXHN-IIyMlubkhyLYT6G3u21Vr5T_uFhomNWAd2YG3QKP1D9skaTSrA3E3$" target="_blank" rel="noopener noreferrer">https://urldefense.us/v3/__https://www.researchgate.net/publication/403928088_A_comparative_study_of_industrial_and_open-source_SCADAs_to_optimize_the_design_of_control_systems_for_the_IFMIF-DONES_plant__;!!G_uCfscf7eWS!dLrszc_F4-MNU6rvR6_tBzD-oxGJWgrejzopanOX1p9BNsJxyEPjxFevbkdTX0hdTvbTDWos84abzN6ViuHnARMNORgosr0r$</a> <br /><br />Note - Figure 3 shows EPICS as seriously deficient as compared to commercial SCADA software, but then I saw what they said on Table 2 requirement #17 wrt video and it doesn't seem like they fully understood EPICS well enough to give it an honest rating.&nbsp; <br /><br />The paper is being circulated within my organization as strong evidence that EPICS is a poor
  option as a control system SCADA for a facility.&nbsp; Any insights this community can provide in explaining the possible motivations of&nbsp; the authors and/or highlighting any clear bias or incorrect assessments that the paper may contain would be much appreciated.<br /><br />Thanks in advance.<br />- Rich Evans<br />&nbsp; NASA Armstrong Test Facility <br />&nbsp; Sandusky, Ohio</blockquote>
</div>
</div>
<div>&nbsp;</div>
<div class="v1gmail_signature" dir="ltr">
<div dir="ltr">&nbsp;</div>
</div>
</div>
</div>
</div>
</blockquote>

</td></tr></table>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00766.php</link>
      <author>Diego Omitto via Tech-talk</author>
      <pubDate>Tue, 30 Jun 2026 12:49:47 GMT</pubDate>
      <guid isPermaLink="false">CADFwZQ-yv-Wr8Jo3QCcnwbDP_6ZVApu=_xwU8LiBPbhi6QaCag@mail.gmail.com</guid>
      <title>Re: 2026 white paper on EPICS vs commercial SCADA software</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: 2026 white paper on EPICS vs commercial SCADA software -->
<!--X-From-R13: Rvrtb Azvggb ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Tue, 30 Jun 2026 08:49:47 &#45;0400 -->
<!--X-Message-Id: CADFwZQ&#45;yv&#45;Wr8Jo3QCcnwbDP_6ZVApu=_xwU8LiBPbhi6QaCag@mail.gmail.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: SA1PR09MB863808B6F707A2D8E268445CD4ED2@SA1PR09MB8638.namprd09.prod.outlook.com -->
<!--X-Reference: CADFwZQ&#45;+AbSg0wYWsY5P0CkTejeJZWVrKXOuzQTY1durQbTjBA@mail.gmail.com -->
<!--X-Reference: CAH&#45;ySCZE5taZs1rO7Z=f4Su4&#45;CiRfPDFv=yrRX97KG4_PKp1Ew@mail.gmail.com -->
<!--X-Reference: af7792c5dc2108cb2f31e6d104fdb483@ugr.es -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: 2026 white paper on EPICS vs commercial SCADA software</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Diego Omitto via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
Javier Cruz Miranda &lt;<a href="mailto:javicruz%20at%20ugr%20dot%20es">javicruz at ugr.es</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Cc</em>:</td>
<td align="left">
<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a></td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Tue, 30 Jun 2026 08:49:47 -0400</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<div dir="ltr"><div>Javi,<br>Thanks for the reply. The IOC restart clarification makes sense.<br><br>On OPC-UA, I understand the scoring better <span class="Q6ibn ng" style="border-style:none;background:none">now,</span> native support without a bridge or gateway. However, I&#39;d still gently push back a bit there. The ITER gateway is mature and actively used; it just doesn&#39;t come from a vendor. Scoring that lower than something shipped natively feels like it&#39;s <span class="Asgive ng" style="border-style:none;background:none">measuring</span> delivery model more than actual capability, even if that wasn&#39;t the intent.<br><br>Thanks too for clarifying the legacy <span class="Asgive ng" style="border-style:none;background:none">point, that</span> the assessment is about the cost of maintaining custom developments over time rather than the framework itself. That makes sense, though I&#39;d argue that risk isn&#39;t unique to EPICS. Any heavily customized deployment, commercial or open source, carries some version of that same dependency on specific people and institutional knowledge. &quot;Legacy&quot; still feels like a strong word for what&#39;s really a maintenance and staffing consideration.<br><br>I think this is really the heart of it for me. The paper, read in full, is more careful and nuanced than Figure 3 or Table 3 suggest on their own. But those figures are exactly what&#39;s being lifted out and circulated internally as standalone evidence, without the surrounding discussion or caveats. That&#39;s not really something you can control once a paper is out in the world, but it&#39;s worth knowing how it&#39;s landing outside the academic context it was written for.<br><br>Really appreciate you taking the time to engage with the community on this directly. This kind of open discussion is exactly what keeps these comparisons useful and grounded, rather than getting reduced to a couple of figures out of context.<br><br></div><div>Cheers,</div><div>Diego</div><div><br></div><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Jun 30, 2026 at 6:12&#x202F;AM Javier Cruz Miranda via Tech-talk &lt;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov">tech-talk at aps.anl.gov</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:10pt;font-family:Verdana,Geneva,sans-serif">
<p>Dear colleagues,<br>I am one of the authors of the paper to which you refer. Thank you for your interest in our work. I would like to offer a few clarifications that I hope may be useful.</p>
<p>None of the authors belong to the DONES consortium. Our positions are purely academic. We have no corporate interest, preference, or external support of any kind. Despite the long tradition of some of the authors in open software and hardware communities, we have endeavored to provide unbiased results while avoiding oversimplification of the many challenges addressed in this contribution.</p>
<p>Our work was developed within the scope of WPENS under the EUROfusion framework and, as such, is limited to research, comparative studies, proposals, feasibility and proof-of-concept tests in areas of possible interest to IFMIF-DONES. These kinds of activities are complex, technically and methodically speaking but valuable discussions to continue the advancement of science and technology. Their outputs can offer nuanced analysis that the engineers responsible for the final design of the DONES control system may or may not find useful, as they see fit.</p>
<p>The context of the comparison is important. Using the control systems of that facility as baseline case, this study focuses particularly on the requirements and needs of the central CODAC system, which in that case comprise services such as monitoring/HMI, alarm and data management, etc. We fully agree that the knowledge gained and experience in this project and in LIPAc are fundamental. This was taken into account, and precisely this is one of the reasons why this study concludes by suggesting a hybrid architecture of control systems, using an industrial SCADA system for the central monitoring and control, while keeping EPICS at the local control level in order to benefit from the best of both worlds. This hybridisation of EPICS with industrial SCADA systems is, in fact, one of our main lines of research, and it is illustrated in some of the publications referenced in the article.</p>
<p>The conclusions were not reached by the authors alone. The evaluation reflects the opinions and experiences of vendors, development companies, and users consulted across a wide range of expertise, including people with long experience in both EPICS and industrial SCADAs. A voting system was used for all criteria to mitigate individual bias. The scores were not binary; they expressed assessments based on availability of options, ease of implementation, maturity of native support, and similar factors. It is also worth noting that most of the scores do not concern EPICS Base itself, but rather other components of the ecosystem and integration considerations.</p>
<p>A few brief technical clarifications in response to specific comments:<br>- &#xA0; &#xA0;Regarding OPC-UA: the EPICS Device Support module for OPC-UA is an excellent tool that has, in fact, inspired much of our own work. The criterion in the study assessed whether a framework provides native support for this protocol without requiring a separate bridge, gateway, or custom development. In fact, what the point of the considered rq list really assessed was the possibility of using industrial and market standards in general; OPC UA being one of them.<br>- &#xA0; &#xA0;Regarding the IOC restarts comment: this referred to structural or configuration changes, not to property value updates, which we are aware can be handled through the mentioned mechanisms. In any case, this point carries limited weight in the overall conclusions.<br>- &#xA0; &#xA0;Most of our laboratory setups are built on EPICS 7 and pvAccess, and we are well aware of the significant progress they represent. The a
 ssessments in some questions concern not the technical quality of the framework, but the practical implications of maintaining custom developments over time, including challenges related to updates, support, and dependency on specific individuals or software versions. We are aware that customizations are needed in these scientific and particular scopes and, as said, one of our lines of research is directed precisely at integrating such custom solutions with industry standards, to facilitate the adoption of new technologies; key specially when we talk of small-medium facility with limited engineering resources.</p>
<p>Finally, as a personal opinion: the fact that some industrial solutions score higher in certain functional areas does not diminish EPICS. If anything, I think that studies of this kind can help identify areas where new lines of work &#x2014; on interoperability, maintainability, or total cost&#x2014; may be worth pursuing. These are dimensions that purely technical comparisons do not always address adequately.</p>
<p>Thank you again for your interest and for the constructive nature of the discussion.</p>
<p>Kind regards,<br>&#xA0; &#xA0;Javi.</p>
<div id="m_1115604336399398797signature">
<div style="margin:0px;padding:0px;font-family:monospace">---<br>Javier Cruz Miranda<br>University of Granada</div>
<div style="margin:0px;padding:0px;font-family:monospace">&#xA0;</div>
</div>
<blockquote type="cite" style="padding:0px 0.4em;border-left:2px solid rgb(16,16,255);margin:0px">
<div id="m_1115604336399398797replybody1">
<div dir="ltr">
<div><br><br>
<div>
<div dir="ltr">---------- Forwarded message ---------<br>De: <b dir="auto">Diego Omitto via Tech-talk</b> <span>&lt;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" rel="noreferrer" target="_blank">tech-talk at aps.anl.gov</a>&gt;</span><br>Date: mi&#xE9;, 24 jun 2026 a las 20:20<br>Subject: Re: 2026 white paper on EPICS vs commercial SCADA software<br>To: Evans, Richard K. (GRC-H000) &lt;<a rel="nofollow" href="mailto:richard.k.evans at nasa.gov" rel="noreferrer" target="_blank">richard.k.evans at nasa.gov</a>&gt;<br>Cc: <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" rel="noreferrer" target="_blank">tech-talk at aps.anl.gov</a> &lt;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" rel="noreferrer" target="_blank">tech-talk at aps.anl.gov</a>&gt;</div>
<br><br>
<div dir="ltr">Subject: Re: Comparative SCADA evaluation - IFMIF-DONES paper<br><br>Hi Rich,<br><br>I read the paper and have a few specific concerns.<br><br>I noticed a factual error in the operational critique: the authors claim that changing a variable property in EPICS requires restarting the IOC database. Runtime field modification via caput, dbpf, and autosave/restore is standard practice.&#xA0;This is not a minor point. If the evaluators did not know this, the scoring in Table 2 reflects unfamiliarity with the framework, not its actual capabilities.<br><br>This also undermines the paper&#39;s characterization of EPICS as a legacy framework. EPICS 7 introduced PVAccess as a first-class protocol with structured data types, high-throughput streaming, and normative types that go well beyond what OPC-UA offers in accelerator contexts. The ecosystem around it is actively developed.<br><br>More damaging to the paper&#39;s credibility: it cites the ITER OPC-UA/EPICS gatewa
 y as prior art for the CODAC-MPS integration problem, then penalizes EPICS in the scoring for limited OPC-UA support. The solution they acknowledge exists was excluded from the evaluation.<br><br>Finally, the paper does not address the most obvious question: LIPAc, the direct operational prototype of IFMIF-DONES, runs EPICS. I don&#39;t see an explanation for why a framework adequate for the prototype is suddenly inadequate for the full facility.<br><br>That omission says more about the motivation behind this study than the scoring does.<br><br>Best,<br>Diego</div>
<div dir="ltr">&#xA0;</div>
<br>
<div>
<div dir="ltr">On Wed, Jun 24, 2026 at 1:29&#x202F;PM Evans, Richard K. (GRC-H000) via Tech-talk &lt;<a rel="nofollow" href="mailto:tech-talk at aps.anl.gov" rel="noreferrer" target="_blank">tech-talk at aps.anl.gov</a>&gt; wrote:</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear EPICS community, <br><br>I recently came across a new whitepaper that present a comparative evaluation of EPICS against various commercial SCADA platform alternatives. The evaluation uses a set of requirements that they state are representative of the IFMIF-DONES plant currently being constructed in Esc&#xFA;zar, Granada, Spain.&#xA0; The paper is linked below.&#xA0; If you have a moment and are inclined, please take a look at Table 2 and Figure 3 and let me know if you feel that EPICS has been rated accurately/fairly.<br><br>&quot;A comparative study of industrial and open-source SCADAs to optimize the design of control systems for the IFMIF-DONES plant&quot;<br><a rel="nofollow" href="https://urldefense.com/v3/__https://urldefense.us/v3/__https:/*www.researchgate.net/publication/403928088_A_comparative_study_of_industrial_and_open-source_SCADAs_to_optimize_the_design_of_c%20ontrol_systems_for_the_IFMIF-DONES_plant__;!!G_uCfscf7eWS!dLrszc_F4-MNU6rvR6_tBzD-oxGJWgrejzopanOX1p9BNsJxyEPjxFevbkdTX0hdTvbTDWos84abzN6ViuHnARMNORgosr0r$__;Lw!!D9dNQwwGXtA!QD6RH2DUrVCnRodN0LidbndXHN-IIyMlubkhyLYT6G3u21Vr5T_uFhomNWAd2YG3QKP1D9skaTSrA3E3$" rel="noopener noreferrer" target="_blank">https://urldefense.us/v3/__https://www.researchgate.net/publication/403928088_A_comparative_study_of_industrial_and_open-source_SCADAs_to_optimize_the_design_of_control_systems_for_the_IFMIF-DONES_plant__;!!G_uCfscf7eWS!dLrszc_F4-MNU6rvR6_tBzD-oxGJWgrejzopanOX1p9BNsJxyEPjxFevbkdTX0hdTvbTDWos84abzN6ViuHnARMNORgosr0r$</a> <br><br>Note - Figure 3 shows EPICS as seriously deficient as compared to commercial SCADA software, but then I saw what they said on Table 2 requirement #17 wrt video and it doesn&#39;t seem like they fully understood EPICS well enough to give it an honest rating.&#xA0; <br><br>The paper is being circulated within my organization as strong evidence that EPICS is a poor
  option as a control system SCADA for a facility.&#xA0; Any insights this community can provide in explaining the possible motivations of&#xA0; the authors and/or highlighting any clear bias or incorrect assessments that the paper may contain would be much appreciated.<br><br>Thanks in advance.<br>- Rich Evans<br>&#xA0; NASA Armstrong Test Facility <br>&#xA0; Sandusky, Ohio</blockquote>
</div>
</div>
<div>&#xA0;</div>
<div dir="ltr">
<div dir="ltr">&#xA0;</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote></div></div>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00767.php</link>
      <author>Wang, SuYin Grass via Tech-talk</author>
      <pubDate>Tue, 30 Jun 2026 13:18:36 GMT</pubDate>
      <guid isPermaLink="false">SA9PR09MB5312313AC0B6A0C031A3B6EBBDF72@SA9PR09MB5312.namprd09.prod.outlook.com</guid>
      <title>RE: Granville-Phillips 830 Vacuum Quality Monitor</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: RE: Granville&#45;Phillips 830 Vacuum Quality Monitor -->
<!--X-From-R13: "Inat, EhKva Uenff ivn Frpu&#45;gnyx" <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Tue, 30 Jun 2026 13:18:36 +0000 -->
<!--X-Message-Id: SA9PR09MB5312313AC0B6A0C031A3B6EBBDF72@SA9PR09MB5312.namprd09.prod.outlook.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>RE: Granville-Phillips 830 Vacuum Quality Monitor</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
&quot;Wang, SuYin Grass via Tech-talk&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
&quot;<a href="mailto:Peter%20dot%20Heesterman%20at%20ukaea%20dot%20uk">Peter.Heesterman at ukaea.uk</a>&quot; &lt;<a href="mailto:Peter%20dot%20Heesterman%20at%20ukaea%20dot%20uk">Peter.Heesterman at ukaea.uk</a>&gt;, &quot;<a href="mailto:withers%20at%20jlab%20dot%20org">withers at jlab.org</a>&quot; &lt;<a href="mailto:withers%20at%20jlab%20dot%20org">withers at jlab.org</a>&gt;, &quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;, &quot;<a href="mailto:shweta%20at%20slac%20dot%20stanford%20dot%20edu">shweta at slac.stanford.edu</a>&quot; &lt;<a href="mailto:shweta%20at%20slac%20dot%20stanford%20dot%20edu">shweta at slac.stanford.edu</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Tue, 30 Jun 2026 13:18:36 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<table width="100%"><tr><td style="">


<table border="0" style="text-align: left; color: rgb(0, 0, 0);">
<tbody>
<tr>
<td colspan="2" align="left">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Has anyone had any IOC solution for this?</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I have a hard time finding a USB 2.0 UI online, too.&nbsp;</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I am wondering if the SCPI command would work on Linux.&nbsp;</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thank you.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Grass</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<b><br>
</b></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<b>RE: Granville-Phillips 830 Vacuum Quality Monitor</b></div>
</td>
</tr>
<tr>
<td align="right" style="vertical-align: top;">
<div class="skipProofing" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<i>From</i>:</div>
</td>
<td align="left">
<div class="skipProofing" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
&quot;Heesterman, Peter J&quot; &lt;<span style="color: rgb(0, 0, 159);"><a rel="nofollow" href="mailto:Peter.Heesterman_at_ukaea.uk" id="OWAbf3d4f2c-4b96-5f04-1213-e5f68dceeb78" class="OWAAutoLink" style="color: rgb(0, 0, 159);">Peter.Heesterman at ukaea.uk</a></span>&gt;</div>
</td>
</tr>
<tr>
<td align="right" style="vertical-align: top;">
<div class="skipProofing" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<i>To</i>:</div>
</td>
<td align="left">
<div class="skipProofing" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
&quot;'Sue Witherspoon'&quot; &lt;<span style="color: rgb(0, 0, 159);"><a rel="nofollow" href="mailto:withers_at_jlab.org" id="OWA59a92e80-eb2d-62eb-1427-b9aed301460f" class="OWAAutoLink" style="color: rgb(0, 0, 159);">withers at jlab.org</a></span>&gt;, Tech-talk &lt;<span style="color: rgb(0, 0, 159);"><a rel="nofollow" href="mailto:tech-talk_at_aps.anl.gov" id="OWA622a7a0a-4856-4375-26f8-e02a696a4dcd" class="OWAAutoLink" style="color: rgb(0, 0, 159);">tech-talk at aps.anl.gov</a></span>&gt;,
 &quot;'Saraf, Shweta'&quot; &lt;<span style="color: rgb(0, 0, 159);"><a rel="nofollow" href="mailto:shweta_at_slac.stanford.edu" id="OWA6a35fee9-3d98-035e-3a07-3317356e70dd" class="OWAAutoLink" style="color: rgb(0, 0, 159);">shweta at slac.stanford.edu</a></span>&gt;</div>
</td>
</tr>
<tr>
<td align="right" style="vertical-align: top;">
<div class="skipProofing" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<i>Date</i>:</div>
</td>
<td align="left">
<div class="skipProofing" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thu, 13 Oct 2016 16:12:23 +0000</div>
</td>
</tr>
</tbody>
</table>
<pre class="elementToProof" style="width: 1880.11px;"><div class="elementToProof" style="text-align: left; text-indent: 0px; white-space: pre-wrap; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Hi Sue,

I am presently working on this project.

I have a working IOC that is based around G-P's Windows-only SDK.

I firmly intend to provide a cross-platform solution; this is dependent on the company enabling me to do so by means on an NDA for their existing C# source code.
I have an ongoing negotiation with them, on this question. 

I refer also to <span style="color: rgb(0, 0, 159);"><a rel="nofollow" href="https://urldefense.us/v3/__https://gcc02.safelinks.protection.outlook.com/?url="" originalsrc="http://www.aps.anl.gov/epics/tech-talk/2016/msg00794.php" id="OWAea68739d-3573-2fed-0554-efdcb5751e31" class="OWAAutoLink" rel="nofollow" style="color: rgb(0, 0, 159);">http://www.aps.anl.gov/epics/tech-talk/2016/msg00794.php</a></span>.

Hope this helps,

Peter.

-----Original Message-----
From: tech-talk-bounces at aps.anl.gov [<span style="color: rgb(0, 0, 159);"><a rel="nofollow" href="mailto:tech-talk-bounces at aps.anl.gov" id="OWA39268527-e668-ff45-545a-3cc67f7717a8" class="OWAAutoLink" rel="nofollow" style="color: rgb(0, 0, 159);">mailto:tech-talk-bounces at aps.anl.gov</a></span>] On Behalf Of Sue Witherspoon
Sent: 13 October 2016 17:00
To: Tech-talk
Subject: Granville-Phillips 830 Vacuum Quality Monitor

Greetings,

One of our experiments has chosen to use the Granville-Phillips 830 VQM for monitoring the scattering chamber vacuum. Has anyone developed an EPICS driver for this device. It appears to come with a USB 2.0 windows UI. But maybe, someone has a linux solution?


--
Sue Witherspoon
Staff Computer Scientist
Accelerator Controls Software
757-269-7579
Thomas Jefferson National Accelerator Facility</div></pre>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>


</td></tr></table>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00768.php</link>
      <author>&#x5415;&#x6167;&#x6167; via Tech-talk</author>
      <pubDate>Wed, 01 Jul 2026 02:38:42 GMT</pubDate>
      <guid isPermaLink="false">7566f08a.80bf2.19f1b8b028f.Coremail.lvhh@sari.ac.cn</guid>
      <title>Archiver Appliance cannot archive structured PV data</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Archiver Appliance cannot archive structured PV data -->
<!--X-From-R13: =?GFT&#45;8?P?5LQH5bIa5bIa?= ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Wed, 1 Jul 2026 10:38:42 +0800 (GMT+08:00) -->
<!--X-Message-Id: 7566f08a.80bf2.19f1b8b028f.Coremail.lvhh@sari.ac.cn -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: 24a6da02.74d6d.19f1815daf0.Coremail.lvhh@sari.ac.cn -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Archiver Appliance cannot archive structured PV data</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
&#x5415;&#x6167;&#x6167; via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
&quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Wed, 1 Jul 2026 10:38:42 +0800 (GMT+08:00)</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<br>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<br>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">Hi all,</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">I have implemented a structured PVA data in an EPICS V7 IOC. The db is as follows:</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;"><em>record(longin, "DEV1:RED:SHOT_ID_TEST") {</em><br>
<em>&nbsp; &nbsp; field(DTYP, "PSC Reg")</em><br>
<em>&nbsp; &nbsp; field(INP , "@$(NAME) 526 2")</em><br>
<em>&nbsp; &nbsp; field(SCAN, "I/O Intr")</em><br>
<em>&nbsp; &nbsp; field(TSE , "-2")</em><br>
<em>&nbsp; &nbsp; info(Q:group, {</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; "DEV1:RED:WAVE_TEST_PVA": {</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "COUNT": {</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +channel:"VAL"</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; }</em><br>
<em>&nbsp; &nbsp; })</em><br>
<em>}</em><br>
<br>
<em>record(waveform, "DEV1:RED:WAVE_TEST_C1") {</em><br>
<em>&nbsp; &nbsp; field(DTYP, "PSC Block I16 In")</em><br>
<em>&nbsp; &nbsp; field(INP , "@$(NAME) 8193")</em><br>
<em>&nbsp; &nbsp; field(SCAN, "I/O Intr")</em><br>
<em>&nbsp; &nbsp; field(FTVL, "DOUBLE")</em><br>
<em>&nbsp; &nbsp; field(NELM, "20000000")</em><br>
<em>&nbsp; &nbsp; info(Q:group,{</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; "DEV1:RED:WAVE_TEST_PVA": {</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "VALUE": {</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +channel:"VAL"</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</em><br>
<em>&nbsp; &nbsp; &nbsp; &nbsp; }</em><br>
<em>&nbsp; &nbsp; })</em><br>
<em>}</em><br>
</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">When I try to archive this PV using the pva://pvname prefix in Archiver Appliance, the archiver throws error messages &nbsp;and cannot establish persistent archiving.&nbsp;</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<br>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;"><em>2026-06-30 15:48:19,766 ERROR [JCA Command Thread 9] pv.EPICS_V4_PV (EPICS_V4_PV.java:241) - Cannot determine the timestamp bitset for PV DEVI:RED:WAVE_TEST_PVA. This means we may not save any data at all for this PV</em><br>
<em>2026-06-30 15:48:19,767 ERROR [JCA Command Thread 9] pv.EPICS_V4_PV (EPICS_V4_PV.java:442) - exception when reading pv</em><br>
<em>java.lang.reflect.InvocationTargetException: null</em><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:72) ~[?:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.fromStructure(EPICS_V4_PV.java:278) ~[classes/:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.subscribe(EPICS_V4_PV.java:438) ~[classes/:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.handleConnected(EPICS_V4_PV.java:388) ~[classes/:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at org.epics.archiverappliance.engine.pv.JCACommandThread.run(JCACommandThread.java:194) [classes/:?]</em></span><br>
<em>Caused by: java.lang.NullPointerException: Cannot invoke "org.epics.vtype.PVStructure.getString()" because "timestampPVStructure" is null</em><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at org.epics.archiverappliance.common.TimeUtils.convertFromPVTimestamp(TimeUtils.java:531) ~[classes/:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at edu.stanford.slac.archiverappliance.PB.data.PBV4GenericBytes.&lt;init&gt;(PBV4GenericBytes.java:78) ~[classes/:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]</em></span><br>
<span style="white-space-collapse:collapse;"><span style="white-space:pre;"> </span><em>... 6 more</em></span><br>
	</span></p><div style="white-space:nowrap;">
		<br>
	</div>
<br>

<p></p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">I would like to ask two questions:&nbsp;</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">1. What is the cause of this failure? I have attached the full error logs from AA engine.&nbsp;</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">2. Does the current stable version of Archiver Appliance fully support archiving user-defined custom PVA structure PVs?<br>
</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;"><br>
</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;"></span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">Thanks a lot for any suggestions.</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">&nbsp;Best regards,</span>
</p>
<p style="font-family:SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;white-space:normal;">
	<span style="font-family:&quot;Times New Roman&quot;;">Huihui</span>
</p>
<p>
	<br>
</p>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00769.php</link>
      <author>Sky Brewer via Tech-talk</author>
      <pubDate>Wed, 01 Jul 2026 06:38:54 GMT</pubDate>
      <guid isPermaLink="false">AS1PR10MB52386C95032A95854F36AB57FBF62@AS1PR10MB5238.EURPRD10.PROD.OUTLOOK.COM</guid>
      <title>Re: Archiver Appliance cannot archive structured PV data</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: Archiver Appliance cannot archive structured PV data -->
<!--X-From-R13: Exl Perjre ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Wed, 1 Jul 2026 06:38:54 +0000 -->
<!--X-Message-Id: AS1PR10MB52386C95032A95854F36AB57FBF62@AS1PR10MB5238.EURPRD10.PROD.OUTLOOK.COM -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: 24a6da02.74d6d.19f1815daf0.Coremail.lvhh@sari.ac.cn -->
<!--X-Reference: 7566f08a.80bf2.19f1b8b028f.Coremail.lvhh@sari.ac.cn -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: Archiver Appliance cannot archive structured PV data</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Sky Brewer via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
&#x5415;&#x6167;&#x6167; &lt;<a href="mailto:lvhh%20at%20sari%20dot%20ac%20dot%20cn">lvhh at sari.ac.cn</a>&gt;, &quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Wed, 1 Jul 2026 06:38:54 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->



<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Huihui,</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The archiver does support custom structures but they must follow the format <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-docs/epics-docs/pull/182/changes__;!!G_uCfscf7eWS!cXoSIyILwa-f08cj4NTYOV5CnDnWERj6jys9VvMvR_zS86OzCvT2CaxGFZFyWbHHXjfq6H4aAGYT3WVIaciLap2x$" data-outlook-id="c691744d-114a-4518-8ed3-93eab2c7d27a">
https://github.com/epics-docs/epics-docs/pull/182/changes</a>&nbsp;</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif;"><span style="font-size: 16px;">You</span>&#x2019;<span style="font-size: 16px;">ll note here the timestamp, the timestamp is what looks to be the problem in the error log.&nbsp;</span></div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 16px;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 16px; color: rgb(0, 0, 0);">
Hope that helps.</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 16px; color: rgb(0, 0, 0);">
Sky</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="ms-outlook-mobile-signature">
<div class="MsoNormal" style="direction: ltr;">Sent from Outlook for Mac</div>
</div>
<div id="mail-editor-reference-message-container">
<div class="ms-outlook-mobile-reference-message skipProofing" style="direction: ltr;">
</div>
<div style="padding: 3pt 0in 0in; border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentcolor currentcolor;">
<div class="ms-outlook-mobile-reference-message skipProofing" style="text-align: left; font-family: Aptos; font-size: 12pt; color: black;">
<b>From: </b>Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of &#x5415;&#x6167;&#x6167; via Tech-talk &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Date: </b>Wednesday, 1 July 2026 at 04:39<br>
<b>To: </b>tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject: </b>Archiver Appliance cannot archive structured PV data<br>
<br>
</div>
</div>
<div class="ms-outlook-mobile-reference-message skipProofing" style="direction: ltr;">
<br>
</div>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<br>
</p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">Hi all,</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">I have implemented a structured PVA data in an EPICS V7 IOC. The db is as follows:</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;"><i>record(longin, &quot;DEV1:RED:SHOT_ID_TEST&quot;) {</i><br>
<i>&nbsp; &nbsp; field(DTYP, &quot;PSC Reg&quot;)</i><br>
<i>&nbsp; &nbsp; field(INP , &quot;@$(NAME) 526 2&quot;)</i><br>
<i>&nbsp; &nbsp; field(SCAN, &quot;I/O Intr&quot;)</i><br>
<i>&nbsp; &nbsp; field(TSE , &quot;-2&quot;)</i><br>
<i>&nbsp; &nbsp; info(Q:group, {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &quot;DEV1:RED:WAVE_TEST_PVA&quot;: {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;COUNT&quot;: {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +channel:&quot;VAL&quot;</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; }</i><br>
<i>&nbsp; &nbsp; })</i><br>
<i>}</i><br>
<br>
<i>record(waveform, &quot;DEV1:RED:WAVE_TEST_C1&quot;) {</i><br>
<i>&nbsp; &nbsp; field(DTYP, &quot;PSC Block I16 In&quot;)</i><br>
<i>&nbsp; &nbsp; field(INP , &quot;@$(NAME) 8193&quot;)</i><br>
<i>&nbsp; &nbsp; field(SCAN, &quot;I/O Intr&quot;)</i><br>
<i>&nbsp; &nbsp; field(FTVL, &quot;DOUBLE&quot;)</i><br>
<i>&nbsp; &nbsp; field(NELM, &quot;20000000&quot;)</i><br>
<i>&nbsp; &nbsp; info(Q:group,{</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &quot;DEV1:RED:WAVE_TEST_PVA&quot;: {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;VALUE&quot;: {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +channel:&quot;VAL&quot;</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; }</i><br>
<i>&nbsp; &nbsp; })</i><br>
<i>}</i></span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">When I try to archive this PV using the pva://pvname prefix in Archiver Appliance, the archiver throws error messages &nbsp;and cannot establish persistent archiving.&nbsp;</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<br>
</p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;"><i>2026-06-30 15:48:19,766 ERROR [JCA Command Thread 9] pv.EPICS_V4_PV (EPICS_V4_PV.java:241) - Cannot determine the timestamp bitset for PV DEVI:RED:WAVE_TEST_PVA. This means we may not save any data at all for
 this PV</i><br>
<i>2026-06-30 15:48:19,767 ERROR [JCA Command Thread 9] pv.EPICS_V4_PV (EPICS_V4_PV.java:442) - exception when reading pv</i><br>
<i>java.lang.reflect.InvocationTargetException: null</i><br>
<i>at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:72) ~[?:?]</i><br>
<i>at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]</i><br>
<i>at java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]</i><br>
<i>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.fromStructure(EPICS_V4_PV.java:278) ~[classes/:?]</i><br>
<i>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.subscribe(EPICS_V4_PV.java:438) ~[classes/:?]</i><br>
<i>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.handleConnected(EPICS_V4_PV.java:388) ~[classes/:?]</i><br>
<i>at org.epics.archiverappliance.engine.pv.JCACommandThread.run(JCACommandThread.java:194) [classes/:?]</i><br>
<i>Caused by: java.lang.NullPointerException: Cannot invoke &quot;org.epics.vtype.PVStructure.getString()&quot; because &quot;timestampPVStructure&quot; is null</i><br>
<i>at org.epics.archiverappliance.common.TimeUtils.convertFromPVTimestamp(TimeUtils.java:531) ~[classes/:?]</i><br>
<i>at edu.stanford.slac.archiverappliance.PB.data.PBV4GenericBytes.&lt;init&gt;(PBV4GenericBytes.java:78) ~[classes/:?]</i><br>
<i>at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]</i><br>
<i>... 6 more</i></span></p>
<div class="ms-outlook-mobile-reference-message skipProofing" style="direction: ltr;">
<br>
</div>
<div class="ms-outlook-mobile-reference-message skipProofing" style="direction: ltr;">
<br>
</div>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">I would like to ask two questions:&nbsp;</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">1. What is the cause of this failure? I have attached the full error logs from AA engine.&nbsp;</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">2. Does the current stable version of Archiver Appliance fully support archiving user-defined custom PVA structure PVs?</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;"><br>
</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">Thanks a lot for any suggestions.</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">&nbsp;Best regards,</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">Huihui</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing"><br>
</p>
</div>



<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00770.php</link>
      <author>Siddons, David via Tech-talk</author>
      <pubDate>Wed, 01 Jul 2026 15:01:20 GMT</pubDate>
      <guid isPermaLink="false">MN2PR09MB4842F155CF2BE7277E2FC115A2F62@MN2PR09MB4842.namprd09.prod.outlook.com</guid>
      <title>XRI-UNO detector</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: XRI&#45;UNO detector -->
<!--X-From-R13: "Evqqbaf, Rnivq ivn Frpu&#45;gnyx" <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Wed, 1 Jul 2026 15:01:20 +0000 -->
<!--X-Message-Id: MN2PR09MB4842F155CF2BE7277E2FC115A2F62@MN2PR09MB4842.namprd09.prod.outlook.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>XRI-UNO detector</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
&quot;Siddons, David via Tech-talk&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
&quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Wed, 1 Jul 2026 15:01:20 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<table width="100%"><tr><td style="">


<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I have a Medipix-based detector, XRI-UNO, bought several years ago, and in the various computer upgrades we have lost the software for it. It is made by Xray Imatek, who don't appear to exist anymore, but it appears on the Advatech web site (<a rel="nofollow" href="https://urldefense.us/v3/__https://www.advatech-uk.co.uk/medipix.html__;!!G_uCfscf7eWS!b-r12qdfHZBa8u9W5P2c0D15MSNyOw0z5ddg1n26nnu27mB3lPqmGW-pBPdHUhGbYJyGGMlFHG_N3Z1aezr_dQ$">https://www.advatech-uk.co.uk/medipix.html</a>).
 I have asked them for it, but so far no response. &#xA0;Does anyone have a copy they would be willing to share, or is there even EPICS support for it? I didn't see it when I looked in AreaDetector.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks,</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Pete.</div>


</td></tr></table>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00771.php</link>
      <author>&#xC9;rico Nogueira Rolim via Tech-talk</author>
      <pubDate>Wed, 01 Jul 2026 15:04:31 GMT</pubDate>
      <guid isPermaLink="false">93a2a3a3-189d-4614-8a38-3905fcd820e4@lnls.br</guid>
      <title>Re: AreaDetector Collaboration Meeting - July 2nd</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: AreaDetector Collaboration Meeting &#45; July 2nd -->
<!--X-From-R13: =?hgs&#45;8?P?j4ylnI@iWS5iL3HynJXuWTXioUyg?= ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Wed, 1 Jul 2026 15:04:31 +0000 -->
<!--X-Message-Id: 93a2a3a3&#45;189d&#45;4614&#45;8a38&#45;3905fcd820e4@lnls.br -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 244ed3bc&#45;2635&#45;4e8d&#45;bc72&#45;9f405a597db2@lnls.br -->
<!--X-Reference: fbe0f1b5&#45;b0ab&#45;47e0&#45;832a&#45;d431f2635fba@lnls.br -->
<!--X-Reference: eacb4b43&#45;b4bb&#45;4099&#45;b65c&#45;cd706c695769@lnls.br -->
<!--X-Reference: c61443d3&#45;bd2e&#45;4c9b&#45;bee1&#45;42999531c7bd@lnls.br -->
<!--X-Reference: 7c536fb8&#45;0f31&#45;4b6c&#45;8f3d&#45;c5a54176fdb3@lnls.br -->
<!--X-Reference: dd9e3b74&#45;aee4&#45;47be&#45;8f89&#45;e34935808a9a@lnls.br -->
<!--X-Reference: aec321d4&#45;03a0&#45;4e3b&#45;9fe5&#45;03b5059c3a23@lnls.br -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: AreaDetector Collaboration Meeting - July 2nd</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
&#xC9;rico Nogueira Rolim via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
&quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Wed, 1 Jul 2026 15:04:31 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<pre>Hi folks!

This month's meeting will be on July 2nd at 15:00 UTC. Some useful
links are available below. If attendants (and anyone else who's
interested) could take a look at the agenda - and act on relevant items
if possible - before the meeting, that would be greatly appreciated. If
you wish to discuss the meeting in a more informal setting, the
AreaDetector room is available in the EPICS Chat Server.

Please contact me outside tech-talk (either email or EPICS Chat) if
you'd like to be included in the invite list, so it can be in your calendar.

The repositories included in the agenda are: ADAndor, ADCSimDetector,
ADCompVision, ADCore, ADDexela, ADEiger, ADLambda, ADLightField,
ADMythen, ADPerkinElmer, ADSBIG, ADURL, NDDriverStdArrays, areaDetector.

Useful links:

Meeting:
<a  rel="nofollow" href="https://urldefense.us/v3/__https://teams.microsoft.com/l/meetup-join/19*3ameeting_ZDJlOTI1N2UtOTNhOS00NzNlLWJjNjItY2ZhYmY1MThiMWFm*40thread.v2/0?context=*7b*22Tid*22*3a*22ed764e1f-b3b8-4aaf-8fb2-1d05be08443b*22*2c*22Oid*22*3a*22d394739f-da48-4ea1-aba3-6ccf4c14ea4f*22*7d__;JSUlJSUlJSUlJSUlJSUl!!G_uCfscf7eWS!ZZQgyzcgfcyrWwola97IavaaJPr34VC3-sH7HMpvtuTKfB-Hp-1bzuw27NOspwmEWXSCPwFKE56Nx6iVwgDK_dq1ok8$">https://urldefense.us/v3/__https://teams.microsoft.com/l/meetup-join/19*3ameeting_ZDJlOTI1N2UtOTNhOS00NzNlLWJjNjItY2ZhYmY1MThiMWFm*40thread.v2/0?context=*7b*22Tid*22*3a*22ed764e1f-b3b8-4aaf-8fb2-1d05be08443b*22*2c*22Oid*22*3a*22d394739f-da48-4ea1-aba3-6ccf4c14ea4f*22*7d__;JSUlJSUlJSUlJSUlJSUl!!G_uCfscf7eWS!ZZQgyzcgfcyrWwola97IavaaJPr34VC3-sH7HMpvtuTKfB-Hp-1bzuw27NOspwmEWXSCPwFKE56Nx6iVwgDK_dq1ok8$</a> 

EPICS Chat Server: <a  rel="nofollow" href="https://urldefense.us/v3/__https://epics-controls.org/epics-chat/__;!!G_uCfscf7eWS!ZZQgyzcgfcyrWwola97IavaaJPr34VC3-sH7HMpvtuTKfB-Hp-1bzuw27NOspwmEWXSCPwFKE56Nx6iVwgDKwsmqX78$">https://urldefense.us/v3/__https://epics-controls.org/epics-chat/__;!!G_uCfscf7eWS!ZZQgyzcgfcyrWwola97IavaaJPr34VC3-sH7HMpvtuTKfB-Hp-1bzuw27NOspwmEWXSCPwFKE56Nx6iVwgDKwsmqX78$</a> 

Meeting agenda:
<a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/areaDetector/collaboration/blob/master/2026-07-02.md__;!!G_uCfscf7eWS!ZZQgyzcgfcyrWwola97IavaaJPr34VC3-sH7HMpvtuTKfB-Hp-1bzuw27NOspwmEWXSCPwFKE56Nx6iVwgDKYN2ZMXs$">https://urldefense.us/v3/__https://github.com/areaDetector/collaboration/blob/master/2026-07-02.md__;!!G_uCfscf7eWS!ZZQgyzcgfcyrWwola97IavaaJPr34VC3-sH7HMpvtuTKfB-Hp-1bzuw27NOspwmEWXSCPwFKE56Nx6iVwgDKYN2ZMXs$</a> 

Cheers,
&#xC9;rico

Aviso Legal: Esta mensagem e seus anexos podem conter informa&#xE7;&#xF5;es confidenciais e/ou de uso restrito. Observe atentamente seu conte&#xFA;do e considere eventual consulta ao remetente antes de copi&#xE1;-la, divulg&#xE1;-la ou distribu&#xED;-la. Se voc&#xEA; recebeu esta mensagem por engano, por favor avise o remetente e apague-a imediatamente.

Disclaimer: This email and its attachments may contain confidential and/or privileged information. Observe its content carefully and consider possible querying to the sender before copying, disclosing or distributing it. If you have received this email by mistake, please notify the sender and delete it immediately.
</pre>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00772.php</link>
      <author>Mark Rivers via Tech-talk</author>
      <pubDate>Wed, 01 Jul 2026 16:46:35 GMT</pubDate>
      <guid isPermaLink="false">1917BC45-DC31-40D2-88D3-3F90BA5F8464@cars.uchicago.edu</guid>
      <title>Re: AreaDetector Collaboration Meeting - July 2nd</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: Re: AreaDetector Collaboration Meeting &#45; July 2nd -->
<!--X-From-R13: [nex Dviref ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Wed, 1 Jul 2026 16:46:35 +0000 -->
<!--X-Message-Id: 1917BC45&#45;DC31&#45;40D2&#45;88D3&#45;3F90BA5F8464@cars.uchicago.edu -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 244ed3bc&#45;2635&#45;4e8d&#45;bc72&#45;9f405a597db2@lnls.br -->
<!--X-Reference: fbe0f1b5&#45;b0ab&#45;47e0&#45;832a&#45;d431f2635fba@lnls.br -->
<!--X-Reference: eacb4b43&#45;b4bb&#45;4099&#45;b65c&#45;cd706c695769@lnls.br -->
<!--X-Reference: c61443d3&#45;bd2e&#45;4c9b&#45;bee1&#45;42999531c7bd@lnls.br -->
<!--X-Reference: 7c536fb8&#45;0f31&#45;4b6c&#45;8f3d&#45;c5a54176fdb3@lnls.br -->
<!--X-Reference: dd9e3b74&#45;aee4&#45;47be&#45;8f89&#45;e34935808a9a@lnls.br -->
<!--X-Reference: aec321d4&#45;03a0&#45;4e3b&#45;9fe5&#45;03b5059c3a23@lnls.br -->
<!--X-Reference: 93a2a3a3&#45;189d&#45;4614&#45;8a38&#45;3905fcd820e4@lnls.br -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>Re: AreaDetector Collaboration Meeting - July 2nd</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Mark Rivers via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
&#xC9;rico Nogueira Rolim &lt;<a href="mailto:erico%20dot%20rolim%20at%20lnls%20dot%20br">erico.rolim at lnls.br</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Cc</em>:</td>
<td align="left">
&quot;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&quot; &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Wed, 1 Jul 2026 16:46:35 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<pre>I&#x2019;m on vacation and won&#x2019;t be able to attend the meeting.

Mark

Sent from my iPhone

&gt; On Jul 1, 2026, at 10:04&#x202F;AM, &#xC9;rico Nogueira Rolim &lt;erico.rolim at lnls.br&gt; wrote:
&gt; 
&gt; &#xFEFF;Hi folks!
&gt; 
&gt; This month's meeting will be on July 2nd at 15:00 UTC. Some useful
&gt; links are available below. If attendants (and anyone else who's
&gt; interested) could take a look at the agenda - and act on relevant items
&gt; if possible - before the meeting, that would be greatly appreciated. If
&gt; you wish to discuss the meeting in a more informal setting, the
&gt; AreaDetector room is available in the EPICS Chat Server.
&gt; 
&gt; Please contact me outside tech-talk (either email or EPICS Chat) if
&gt; you'd like to be included in the invite list, so it can be in your calendar.
&gt; 
&gt; The repositories included in the agenda are: ADAndor, ADCSimDetector,
&gt; ADCompVision, ADCore, ADDexela, ADEiger, ADLambda, ADLightField,
&gt; ADMythen, ADPerkinElmer, ADSBIG, ADURL, NDDriverStdArrays, areaDetector.
&gt; 
&gt; Useful links:
&gt; 
&gt; Meeting:
&gt; <a  rel="nofollow" href="https://urldefense.us/v3/__https://teams.microsoft.com/l/meetup-join/19*3ameeting_ZDJlOTI1N2UtOTNhOS00NzNlLWJjNjItY2ZhYmY1MThiMWFm*40thread.v2/0?context=*7b*22Tid*22*3a*22ed764e1f-b3b8-4aaf-8fb2-1d05be08443b*22*2c*22Oid*22*3a*22d394739f-da48-4ea1-aba3-6ccf4c14ea4f*22*7d__;JSUlJSUlJSUlJSUlJSUl!!G_uCfscf7eWS!df1JQTa6pf6BNt7zmfjSGIIDYw2cLh_XZbKxUMvFNUkKrPv4UouT3v8Y2Y2kFdZZboHXNN6cioYpKTEDScmgvgDlPpY$">https://urldefense.us/v3/__https://teams.microsoft.com/l/meetup-join/19*3ameeting_ZDJlOTI1N2UtOTNhOS00NzNlLWJjNjItY2ZhYmY1MThiMWFm*40thread.v2/0?context=*7b*22Tid*22*3a*22ed764e1f-b3b8-4aaf-8fb2-1d05be08443b*22*2c*22Oid*22*3a*22d394739f-da48-4ea1-aba3-6ccf4c14ea4f*22*7d__;JSUlJSUlJSUlJSUlJSUl!!G_uCfscf7eWS!df1JQTa6pf6BNt7zmfjSGIIDYw2cLh_XZbKxUMvFNUkKrPv4UouT3v8Y2Y2kFdZZboHXNN6cioYpKTEDScmgvgDlPpY$</a> 
&gt; 
&gt; EPICS Chat Server: <a  rel="nofollow" href="https://urldefense.us/v3/__https://epics-controls.org/epics-chat/__;!!G_uCfscf7eWS!df1JQTa6pf6BNt7zmfjSGIIDYw2cLh_XZbKxUMvFNUkKrPv4UouT3v8Y2Y2kFdZZboHXNN6cioYpKTEDScmgF2sMgP4$">https://urldefense.us/v3/__https://epics-controls.org/epics-chat/__;!!G_uCfscf7eWS!df1JQTa6pf6BNt7zmfjSGIIDYw2cLh_XZbKxUMvFNUkKrPv4UouT3v8Y2Y2kFdZZboHXNN6cioYpKTEDScmgF2sMgP4$</a> 
&gt; 
&gt; Meeting agenda:
&gt; <a  rel="nofollow" href="https://urldefense.us/v3/__https://github.com/areaDetector/collaboration/blob/master/2026-07-02.md__;!!G_uCfscf7eWS!df1JQTa6pf6BNt7zmfjSGIIDYw2cLh_XZbKxUMvFNUkKrPv4UouT3v8Y2Y2kFdZZboHXNN6cioYpKTEDScmgXhDsWcs$">https://urldefense.us/v3/__https://github.com/areaDetector/collaboration/blob/master/2026-07-02.md__;!!G_uCfscf7eWS!df1JQTa6pf6BNt7zmfjSGIIDYw2cLh_XZbKxUMvFNUkKrPv4UouT3v8Y2Y2kFdZZboHXNN6cioYpKTEDScmgXhDsWcs$</a> 
&gt; 
&gt; Cheers,
&gt; &#xC9;rico
&gt; 
&gt; Aviso Legal: Esta mensagem e seus anexos podem conter informa&#xE7;&#xF5;es confidenciais e/ou de uso restrito. Observe atentamente seu conte&#xFA;do e considere eventual consulta ao remetente antes de copi&#xE1;-la, divulg&#xE1;-la ou distribu&#xED;-la. Se voc&#xEA; recebeu esta mensagem por engano, por favor avise o remetente e apague-a imediatamente.
&gt; 
&gt; Disclaimer: This email and its attachments may contain confidential and/or privileged information. Observe its content carefully and consider possible querying to the sender before copying, disclosing or distributing it. If you have received this email by mistake, please notify the sender and delete it immediately.
</pre>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00773.php</link>
      <author>lvhh--- via Tech-talk</author>
      <pubDate>Fri, 03 Jul 2026 10:17:53 GMT</pubDate>
      <guid isPermaLink="false">202607031817529765972@sari.ac.cn</guid>
      <title>&#x56DE;&#x590D;: Re: Archiver Appliance cannot archive structured PV data</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: =?GB2312?B?u9i4tDogUmU6IEFyY2hpdmVyIEFwcGxpYW5jZSBjYW5ub3QgYXJjaGl2ZSBzdHJ1Y3R1cmVkIFBWIGRhdGE=?= -->
<!--X-From-R13: yiuu&#45;&#45;&#45; ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Fri, 3 Jul 2026 18:17:53 +0800 -->
<!--X-Message-Id: 202607031817529765972@sari.ac.cn -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Reference: 24a6da02.74d6d.19f1815daf0.Coremail.lvhh@sari.ac.cn -->
<!--X-Reference: 7566f08a.80bf2.19f1b8b028f.Coremail.lvhh@sari.ac.cn -->
<!--X-Reference: AS1PR10MB52386C95032A95854F36AB57FBF62@AS1PR10MB5238.EURPRD10.PROD.OUTLOOK.COM -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>&#x56DE;&#x590D;: Re: Archiver Appliance cannot archive structured PV data</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
lvhh--- via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
sky.brewer &lt;<a href="mailto:sky%20dot%20brewer%20at%20ess%20dot%20eu">sky.brewer at ess.eu</a>&gt;, tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Fri, 3 Jul 2026 18:17:53 +0800</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->

<div><font face="Lucida Fax"><span style="font-size: 13px;"></span></font><div><span style="font-size: 13px;"><font face="Lucida Fax">Hi all,</font></span></div><div><p style=""><span style="font-size: 13px;"><font face="Lucida Fax">I have rewritten the DB file, which only contains one record inside the structure PV. The DB file is:</font></span></p><p style=""><span style="font-size: 13px;"><font face="Lucida Fax"><em>record(calc,"DEVITEST:shotID")</em><br><em>{</em><br><em>field(DESC,"shot ID counter")</em><br><em>field(SCAN,"2 second")</em><br><em>field(CALC,"A+I")</em><br><em>field(INPA,"DEVITEST:shotID.VAL NPP NMS")</em><br><em>field(VAL,"0")</em><br><em>field(TSE,"2")</em><br><em>info(0:group,</em><br><em>"DEVITEST:waveStruct":{</em><br><em>&nbsp; &nbsp; &nbsp;"shot id":{+channel:"VAL"}</em><br><em>}</em></font></span></p><p style=""><span style="font-size: 13px;"><font face="Lucida Fax"><em>}&#xFF09;</em><br>}</font></span></p><p style=""><span style="font-size: 13px;"><font face="Lucida Fax">I use pva://DEVITEST:waveStruct to add to&nbsp;AA.<br>But this PV remains stuck in the initial sampling&nbsp;state, and no error logs are generated during the process.</font></span></p><p style=""><span style="font-size: 13px;"><font face="Lucida Fax"><br></font></span><span style="font-family: &quot;Times New Roman&quot;;">Thanks a lot for any suggestions.</span><span style="font-size: 13px;"><font face="Lucida Fax"><br>Best regards,</font></span></p><span style="font-size: 13px;"><font face="Lucida Fax">Huihui</font></span></div></div>
<div><br></div><hr style="width: 210px; height: 1px;" color="#b5c4df" size="1" align="left">
<div><span><div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt"><div>lvhh at sari.ac.cn</div></div></span></div>
<blockquote style="margin-Top: 0px; margin-Bottom: 0px; margin-Left: 0.5em; margin-Right: inherit"><div>&nbsp;</div><div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm"><div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px"><div><b>&#x53D1;&#x4EF6;&#x4EBA;&#xFF1A;</b>&nbsp;<a rel="nofollow" href="mailto:sky.brewer at ess.eu">Sky Brewer</a></div><div><b>&#x53D1;&#x9001;&#x65F6;&#x95F4;&#xFF1A;</b>&nbsp;2026-07-01&nbsp;14:38</div><div><b>&#x6536;&#x4EF6;&#x4EBA;&#xFF1A;</b>&nbsp;<a rel="nofollow" href="mailto:lvhh at sari.ac.cn">&#x5415;&#x6167;&#x6167;</a>; <a rel="nofollow" href="mailto:tech-talk at aps.anl.gov">tech-talk at aps.anl.gov</a></div><div><b>&#x4E3B;&#x9898;&#xFF1A;</b>&nbsp;Re: Archiver Appliance cannot archive structured PV data</div></div></div><div><div class="FoxDiv20260703181619838792">
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Huihui,</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The archiver does support custom structures but they must follow the format <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/epics-docs/epics-docs/pull/182/changes__;!!G_uCfscf7eWS!cygacE54jIrBNafvfDg94LxGQRA9cvL4S3APoPBbAd2nN6Xbdtio0hdAqZDYtKW8eLxwyIPn-604z43Mxho$" data-outlook-id="c691744d-114a-4518-8ed3-93eab2c7d27a">
https://github.com/epics-docs/epics-docs/pull/182/changes</a>&nbsp;</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif;"><span style="font-size: 16px;">You</span>&#x2019;<span style="font-size: 16px;">ll note here the timestamp, the timestamp is what looks to be the problem in the error log.&nbsp;</span></div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 16px;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 16px; color: rgb(0, 0, 0);">
Hope that helps.</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 16px; color: rgb(0, 0, 0);">
Sky</div>
<div style="direction: ltr; font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="ms-outlook-mobile-signature">
<div class="MsoNormal" style="direction: ltr;">Sent from Outlook for Mac</div>
</div>
<div id="mail-editor-reference-message-container">
<div class="ms-outlook-mobile-reference-message skipProofing" style="direction: ltr;">
</div>
<div style="padding: 3pt 0in 0in; border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentcolor currentcolor;">
<div class="ms-outlook-mobile-reference-message skipProofing" style="text-align: left; font-family: Aptos; font-size: 12pt; color: black;">
<b>From: </b>Tech-talk &lt;tech-talk-bounces at aps.anl.gov&gt; on behalf of &#x5415;&#x6167;&#x6167; via Tech-talk &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Date: </b>Wednesday, 1 July 2026 at 04:39<br>
<b>To: </b>tech-talk at aps.anl.gov &lt;tech-talk at aps.anl.gov&gt;<br>
<b>Subject: </b>Archiver Appliance cannot archive structured PV data<br>
<br>
</div>
</div>
<div class="ms-outlook-mobile-reference-message skipProofing" style="direction: ltr;">
<br>
</div>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<br>
</p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">Hi all,</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">I have implemented a structured PVA data in an EPICS V7 IOC. The db is as follows:</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;"><i>record(longin, "DEV1:RED:SHOT_ID_TEST") {</i><br>
<i>&nbsp; &nbsp; field(DTYP, "PSC Reg")</i><br>
<i>&nbsp; &nbsp; field(INP , "@$(NAME) 526 2")</i><br>
<i>&nbsp; &nbsp; field(SCAN, "I/O Intr")</i><br>
<i>&nbsp; &nbsp; field(TSE , "-2")</i><br>
<i>&nbsp; &nbsp; info(Q:group, {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; "DEV1:RED:WAVE_TEST_PVA": {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "COUNT": {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +channel:"VAL"</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; }</i><br>
<i>&nbsp; &nbsp; })</i><br>
<i>}</i><br>
<br>
<i>record(waveform, "DEV1:RED:WAVE_TEST_C1") {</i><br>
<i>&nbsp; &nbsp; field(DTYP, "PSC Block I16 In")</i><br>
<i>&nbsp; &nbsp; field(INP , "@$(NAME) 8193")</i><br>
<i>&nbsp; &nbsp; field(SCAN, "I/O Intr")</i><br>
<i>&nbsp; &nbsp; field(FTVL, "DOUBLE")</i><br>
<i>&nbsp; &nbsp; field(NELM, "20000000")</i><br>
<i>&nbsp; &nbsp; info(Q:group,{</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; "DEV1:RED:WAVE_TEST_PVA": {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "VALUE": {</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +channel:"VAL"</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</i><br>
<i>&nbsp; &nbsp; &nbsp; &nbsp; }</i><br>
<i>&nbsp; &nbsp; })</i><br>
<i>}</i></span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">When I try to archive this PV using the pva://pvname prefix in Archiver Appliance, the archiver throws error messages &nbsp;and cannot establish persistent archiving.&nbsp;</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<br>
</p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;"><i>2026-06-30 15:48:19,766 ERROR [JCA Command Thread 9] pv.EPICS_V4_PV (EPICS_V4_PV.java:241) - Cannot determine the timestamp bitset for PV DEVI:RED:WAVE_TEST_PVA. This means we may not save any data at all for
 this PV</i><br>
<i>2026-06-30 15:48:19,767 ERROR [JCA Command Thread 9] pv.EPICS_V4_PV (EPICS_V4_PV.java:442) - exception when reading pv</i><br>
<i>java.lang.reflect.InvocationTargetException: null</i><br>
<i>at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:72) ~[?:?]</i><br>
<i>at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]</i><br>
<i>at java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]</i><br>
<i>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.fromStructure(EPICS_V4_PV.java:278) ~[classes/:?]</i><br>
<i>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.subscribe(EPICS_V4_PV.java:438) ~[classes/:?]</i><br>
<i>at org.epics.archiverappliance.engine.pv.EPICS_V4_PV.handleConnected(EPICS_V4_PV.java:388) ~[classes/:?]</i><br>
<i>at org.epics.archiverappliance.engine.pv.JCACommandThread.run(JCACommandThread.java:194) [classes/:?]</i><br>
<i>Caused by: java.lang.NullPointerException: Cannot invoke "org.epics.vtype.PVStructure.getString()" because "timestampPVStructure" is null</i><br>
<i>at org.epics.archiverappliance.common.TimeUtils.convertFromPVTimestamp(TimeUtils.java:531) ~[classes/:?]</i><br>
<i>at edu.stanford.slac.archiverappliance.PB.data.PBV4GenericBytes.&lt;init&gt;(PBV4GenericBytes.java:78) ~[classes/:?]</i><br>
<i>at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]</i><br>
<i>... 6 more</i></span></p>
<div class="ms-outlook-mobile-reference-message skipProofing" style="direction: ltr;">
<br>
</div>
<div class="ms-outlook-mobile-reference-message skipProofing" style="direction: ltr;">
<br>
</div>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">I would like to ask two questions:&nbsp;</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">1. What is the cause of this failure? I have attached the full error logs from AA engine.&nbsp;</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">2. Does the current stable version of Archiver Appliance fully support archiving user-defined custom PVA structure PVs?</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;"><br>
</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">Thanks a lot for any suggestions.</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">&nbsp;Best regards,</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing" style="font-family: SimSun, &#x5B8B;&#x4F53;, STSong, CESI_SS_GB18030;">
<span style="font-family: &quot;Times New Roman&quot;;">Huihui</span></p>
<p class="ms-outlook-mobile-reference-message skipProofing"><br>
</p>
</div>
</div></div></blockquote>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

    <item>
      <link>https://epics.anl.gov/tech-talk/2026/msg00774.php</link>
      <author>Andr&#xE9; Favoto via Tech-talk</author>
      <pubDate>Fri, 03 Jul 2026 13:41:35 GMT</pubDate>
      <guid isPermaLink="false">PH0PR02MB752737313D1DEFFE071931D4D1F42@PH0PR02MB7527.namprd02.prod.outlook.com</guid>
      <title>WEISS release 1.3.0</title>
      <description><![CDATA[<!-- MHonArc v2.6.18 -->
<!--X-Subject: WEISS release 1.3.0 -->
<!--X-From-R13: =?vfb&#45;8859&#45;1?C?Oaqe=S9_Tnibgb?= ivn Frpu&#45;gnyx <grpu&#45;gnyxNncf.nay.tbi> -->
<!--X-Date: Fri, 3 Jul 2026 13:41:35 +0000 -->
<!--X-Message-Id: PH0PR02MB752737313D1DEFFE071931D4D1F42@PH0PR02MB7527.namprd02.prod.outlook.com -->
<!--X-Content-Type: multipart/alternative -->
<!--X-Head-End-->
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<table border=0>
<tr>
<td align="right" valign="top">
<em>Subject</em>:</td>
<td align="left">
<b>WEISS release 1.3.0</b></td>
</tr>

<tr>
<td align="right" valign="top">
<em>From</em>:</td>
<td align="left">
Andr&#xE9; Favoto via Tech-talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>To</em>:</td>
<td align="left">
Tech Talk &lt;<a href="mailto:tech%20dash%20talk%20at%20aps%20dot%20anl%20dot%20gov">tech-talk at aps.anl.gov</a>&gt;</td>
</tr>

<tr>
<td align="right" valign="top">
<em>Date</em>:</td>
<td align="left">
Fri, 3 Jul 2026 13:41:35 +0000</td>
</tr>

</table>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<table width="100%"><tr><td style="">


<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi folks!</div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
It's a pleasure to announce release 1.3.0 of WEISS, a 100% web-native system for designing and operating EPICS OPIs.</div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Try it out here: <a rel="nofollow" href="https://urldefense.us/v3/__https://demo.weiss-controls.org/__;!!G_uCfscf7eWS!fB8GKAJQ7vMAXuuHf5WSh4959VW47-C0m2eR_9Ix9hjzN4P98dyb80EKoCpIFi2YhHVVtshs5jZSnQMWOTFeQ3WLeyFD$" id="OWAb6f446fd-8225-aa47-5612-1de2339e7849" class="OWAAutoLink">
https://demo.weiss-controls.org/</a></div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">
<span style="color: rgb(0, 0, 0);">Documentation: </span><span style="color: rgb(0, 0, 0);"><a rel="nofollow" href="https://urldefense.us/v3/__https://docs.weiss-controls.org/getting_started/tutorial.html__;!!G_uCfscf7eWS!fB8GKAJQ7vMAXuuHf5WSh4959VW47-C0m2eR_9Ix9hjzN4P98dyb80EKoCpIFi2YhHVVtshs5jZSnQMWOTFeQz94ut3T$" id="OWA55bf28f8-bd61-e1aa-265a-f6f50746caea" class="OWAAutoLink">https://docs.weiss-controls.org</a>&nbsp;(check
 the new tutorial section!)</span></div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Source: <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/weiss-controls/weiss__;!!G_uCfscf7eWS!fB8GKAJQ7vMAXuuHf5WSh4959VW47-C0m2eR_9Ix9hjzN4P98dyb80EKoCpIFi2YhHVVtshs5jZSnQMWOTFeQ7-uCSe7$" id="OWA2e6717b7-c59b-488d-f352-88e792e2151b" class="OWAAutoLink">
https://github.com/weiss-controls/weiss</a>&nbsp;- consider starring the project if it interests you.</div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I have not announced 1.2.0 here, but here are some of the new features and improvements gathered since then:</div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:false,&quot;unorderedStyleType&quot;:2}" style="margin-top: 0px; margin-bottom: 0px;">
<li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Add rules support - all widgets now can have properties dynamically changed;</div>
</li><li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">New widgets: GraphXY, Histogram, Spinner;</div>
</li><li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Add alarm summary panel with severity and PV names filtering;</div>
</li><ul data-editing-info="{&quot;applyListStyleFromLevel&quot;:true}" style="margin-top: 0px; margin-bottom: 0px; list-style-type: circle;">
<li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div class="elementToProof" role="presentation">A standalone web Alarm Handling service with a panel, latching alarms and acknowledgment is underway;</div>
</li></ul>
<li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Include Display Format property for all text and value monitoring widgets (string, hex, engineering, scientific or timestamp);</div>
</li><li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); margin-top: 0.25em; list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Add PV snapshot save/restore filterable by OPI;</div>
</li><ul style="margin-top: 0px; margin-bottom: 0px; padding-left: 2em;">
<li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div class="elementToProof" role="presentation">Standalone S&amp;R service is planned for next releases;</div>
</li></ul>
<li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Major performance upgrade on React rendering layer;</div>
</li><li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); margin-top: 0.25em; list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Update documentation - add tutorial page with animations and update contents, see it here:
<a rel="nofollow" href="https://urldefense.us/v3/__https://docs.weiss-controls.org/getting_started/tutorial.html__;!!G_uCfscf7eWS!fB8GKAJQ7vMAXuuHf5WSh4959VW47-C0m2eR_9Ix9hjzN4P98dyb80EKoCpIFi2YhHVVtshs5jZSnQMWOTFeQz94ut3T$" id="OWAa27bc7ac-7dab-8e83-e46c-25c151afe926" class="OWAAutoLink">
https://docs.weiss-controls.org/getting_started/tutorial.html</a></div>
</li><li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Ensure support for Podman build through CI pipeline;</div>
</li><li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Add &quot;Distribute horizontally&quot;, &quot;Distribute vertically&quot;, &quot;Match width&quot; and &quot;Match height&quot; functions to Toolbar;</div>
</li><li style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; list-style-type: &quot;- &quot;;">
<div class="elementToProof" role="presentation">Several other bug fixes and UX improvements (see release notes).</div>
</li></ul>
<div style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
All details about latest and previous releases are available in <a rel="nofollow" href="https://urldefense.us/v3/__https://github.com/weiss-controls/weiss/releases__;!!G_uCfscf7eWS!fB8GKAJQ7vMAXuuHf5WSh4959VW47-C0m2eR_9Ix9hjzN4P98dyb80EKoCpIFi2YhHVVtshs5jZSnQMWOTFeQ0WlA25_$" id="OWA5ef3ea55-9cce-fb03-c007-c635a2b20832" class="OWAAutoLink">
https://github.com/weiss-controls/weiss/releases</a></div>
<div class="elementToProof" style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
In case of questions, problems, or suggestions, don't hesitate to reach out.</div>
<div class="elementToProof" style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Cheers,</div>
<div class="elementToProof" style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Andr&#xE9; Favoto</div>
<div class="elementToProof" style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>


</td></tr></table>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
]]></description>
    </item>

  </channel>
</rss>
<!-- MHonArc v2.6.18 -->
