Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

[XNET] Handling Event and Cyclic Frames

Hi,

 

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?

 

Regards,

Olivier L. | Certified LabVIEW Developer


0 Kudos
Message 1 of 5
(6,811 Views)

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
(6,780 Views)

Hello,

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
(6,774 Views)

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
(6,769 Views)

Hi,

 

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.

 

Regards,

Olivier L. | Certified LabVIEW Developer


0 Kudos
Message 5 of 5
(6,733 Views)