Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

NI-XNET: Setting Echo Transmit Property returns 0x8FF63024

On the NI-XNET API for C, trying to set the Interface:Echo Transmit? property to True immediately after creating a Frame Input Queued Session returns 0xBFF63024, which means the property being configured conflicts with the type of session. According to the documentation this property can be set in Frame or Signal Input. Doing this in LabVIEW with the same kind of session yields no error.

 

This is the part of my code where I'm trying to do this:

 

nxSessionRef_t* m_SessionRef;
nxStatus_t l_Status = 0; l_Status = nxCreateSession(CAN_DataBase, CAN_Cluster, SelectedFrame, Interface, nxMode_FrameInQueued, m_SessionRef); if (nxSuccess != l_Status) { DisplayErrorAndExit(l_Status, "nxCreateSession", *m_SessionRef); } u8 value = 1; u32 propertySize; l_Status = nxGetPropertySize(*m_SessionRef, nxPropSession_IntfEchoTx, &propertySize); l_Status = nxSetProperty(*m_SessionRef, nxPropSession_IntfEchoTx, propertySize, &value); if (nxSuccess != l_Status) { (void)DisplayErrorAndExit(l_Status, "nxSetProperty", *m_SessionRef); }

Any idea of why this doesn't work and/or what I'm doing wrong?

 

0 Kudos
Message 1 of 4
(2,815 Views)

Are you using J1939 at all?

Jeff L
National Instruments
0 Kudos
Message 2 of 4
(2,782 Views)

My answer from another thread...

If the Session:Application Protocol property is set to J1939 for the session, which it is by default with a J1939 database, the Interface: Echo Transmit property cannot be set to true for that session. Instead you must create a separate Frame Stream Input session on the same interface that has the application protocol property set to false and then set the echo transmit property to true on that session.

 

The reasoning behind this is that the concept of a frame in J1939 can be a bit murky. What does it mean to echo a J1939 frame? Do you only display the frame contents, or do you include transport protocol frames? Since the echo transmit property is an interface property it will be shared by all other sessions on the interface. The frame stream input sessions provides you will all frames transmitted and allows you to decide what is important and what is not. 

Jeff L
National Instruments
Message 3 of 4
(2,773 Views)

I was indeed using a J1939 Database. I got the Echo property working after specifying no application protocol.

 

Thank you for your reply.

0 Kudos
Message 4 of 4
(2,769 Views)