I would like to send data of type I16 with CAN. CAN only has data of U8.
The example projects "CAN Signals Transmit" has the error "XNET Create Session.vi loaded with errors on the target and was closed.
LabVIEW: Failed to load shared library nixlvapi. *: NixlvSessionManualCreate: C. Ensure that the library is present on the RT target. Use either MAX to install NI software or FTP to transfer the custom libraries to the RT target. "
But I will not send any DBL anyway. I don't need any API. I can build the frames but how to convert I16 to U8 for CAN.
The request is to send data of type I16 over CAN.
RT: cRIO9075 with NI CompactRIO 16.0
CAN module 9853
And why does a CAN frame of NI have 192 bits, although the extendet format has 128 bits. How can this be compatible with other devices that receive these frames.
/edit: Now I understand the conversion of the data, I think in the picture. But the question of the frame length remains.
Solved! Go to Solution.
Also the typecast is an option. U8 array to I16 or I16 array for more values.
For the extra bits, does it include a timestamp?
Will you do some of it in FPGA?
Maybe something like this would do?
Skipped making the fifo, as i was lazy
What is more useful? Summarize the CAN frame in the host and send the frame to the FPGA.
Or send the signals to FPGA and put together the frame there?
If you have space in the FPGA, do most there and align data in FIFO to be easy for the CPU.
If address is fixed or not changing fast ( let's say fast is 10 ms), only send I16 data over FIFO, and send it to CAN as it comes in from FIFO, or in chunks if more datagrams is needed. Does it makes sense?