Hi,
I needed to implement an existing communcation protocol on a
RT-PXI-System. This communiction just needs a small platform
abstraction layer (PAL) which allows simple commands as
read/write/open/close communication channel. I decided to write the PAL
in CVI and not in Labview, because this would be more complicated to
use with the c-program of the communication protocol. I had to use TCP
communication, which is really inconvenient for a fast RT-like
communication. However i managed to get it to work with
ServerTCPRead/Write etc. I call dll-functions of my
communication-protocol from Labview, because i need some of the Labview
features, as accessing the FPGA cards. It runs, but the performace is
really quite bad. It works considerable better by switching to half
duplex, which i understand could only be the case if the implementation
of the TCP-Stack is somehow strange. With half duplex mode i barely
manage to get the desired performance, but i have to use quite big
buffer to get a continuous data stream. I am not very comfortable with
this and i think this should work better.
So my questions are:
1) Is it really still true, that there is no UDP-API for Labwindows/CVI
running on a RT-PXI-Target? Or have i just missed something? I find it
quite unbelievable that this really basic feature is not implemented. I
do not need any fancy Server/Client-Thread implementation (in fact i
really would prefer to use a more standard API similar to
Linux/Windows).
2) It seems that only blocking communication (at least waiting 1 ms) is
possible. Any chance to change that? I just avoid this blocking by
having a seperat communication thread.
3) Are there any hints on how to improve the performace; apart from
turning of the buggy full fuplex mode? What is the TCP-Buffer size?
Software: LabWindows/CVI 7.0, Labview 7.1
Hardware: PXI-8187
Regards,
Andy