02-01-2019 09:44 AM
Asynchronous Message Communication (AMC) Library: http://www.ni.com/example/31091/en/
01-08-2020 06:36 AM
Hi everybody and a happy new year 2020!
I consider to use the AMC library to implement the process communication in general as well as QMHs on a realtime system (cRIO 9035). I used both techniques successfully on a normal desktop application but my new project is a true realtime application that must run 24h and 365 days a year. So I am asking myself if AMC is appropriate for such applications.
I don't expect that CPU load is even a small problem but rather the risk of creating a slowly growing memory leak that is hard to identify. Should I better make entirely use of data types that are fixed in size (e.g. enums to specify states in state machines) rather than to use strings? And instead of sending messages via AMC to use RT-FIFOs?
Best regards,
Georg
09-30-2020 02:49 AM
Hi,
I discovered a bug in the implementation of the UDP dispatcher which makes it unusable without a little change to the library.
The process where it sends a message over the network converts the cluster content to XML before sending it into the UDP write function. On arrival on the target system, however, it uses the Unflatten From String function which of course fails.
I was able to do a quick fix by flattening to string when sending instead of XML.
Here is where it sends (XML normally, but I changed it to Flatten to String)
And here is where it receives:
String to message vi is simply an Unflatten from String.
10-20-2020 04:01 PM
jtagg,
I also noted the same thing in a post on 02-18-2010 04:58 PM. I just neglected to post my fix as you did (and you described it better). Kudos to you!