Automotive and Embedded Networks

Showing results for 
Search instead for 
Did you mean: 

[XNET] Handling Event and Cyclic Frames



I'm working with NI-XNET 1.1.1, and a PXI-8513 CAN Card.

I'm using dbc databases created with CANdb Editor.

In these databases, there are Periodic frames, event frames, and frames set as P+E (mixed).


Using the XNET Database Editor, there is no choice for this kind of mixed frames.

I've tried to create 2 different frames with different names but with the same ID, one set as Event and the other set as Cyclic.

This method seems to work, and permits to have a cyclic frame sent with sometimes an interleaved frame.


But the problem with that method is that I need to modify the .dbc databases to take into account the frames with P+E settings.

Those dbc are given to me from automotive customers, and I should not modify them.


Is there an other way to handle those mixed frames? Is there something planned to handle the P+E settings with NI-XNET?



Olivier L. | Certified LabVIEW Developer

0 Kudos
Message 1 of 5

Another problem I forgot to raised is that with the Vector DB Editor, it's not possible to create 2 frames with the same ID.

So I can't even ask my customer to prepare his dbc in a manner I could work with, and It will be a lot of rework to modify and verify every frame in the actual dbc.


Thanks for your help.


Kind Regards,

Olivier L. | Certified LabVIEW Developer

0 Kudos
Message 2 of 5


yes this is a limitation of XNET driver I think, we didn't not find a solution to this probleme when using XNET dbc decoder.

Our solution is to use RAW frames with input/output streaming and to manage by ourself the decoding of the dbc and the scheduling of transmitted frameS...


Pierre R...

Certified LabVIEW Developer
0 Kudos
Message 3 of 5

Hi Pierre,


Thank you for your answer. I have not looked at Raw frames yet. That's a potential solution but which will cost a lot of work.

I keep this in mind, but if somebody thinks to another solution...


Thanks. CU

Olivier L. | Certified LabVIEW Developer

0 Kudos
Message 4 of 5



Finally There is two other possible options.


1- You can Stop a session and restart it immediately. In this way, the time you restart the session sends immediately a frame on the Bus, thus creating a kind of event frame.

The problem with this method is that your period is now synchronized with the reset of the session, not the original start.


2- You can create 2 sessions on the same Frame,a Single-Point session, and a Stream Session. The single point session will take care of the periodic behavior of the frame, than you can call a Write on the Stream Session to create the Event frame, because this mode doesn't take care of Timings in DBC.


Hope this could help anybody else.



Olivier L. | Certified LabVIEW Developer

0 Kudos
Message 5 of 5