hardbyte / python-can

The can package provides controller area network support for Python developers
https://python-can.readthedocs.io
GNU Lesser General Public License v3.0
1.26k stars 599 forks source link

Supporting Tx/Rx message direction for each interface #776

Open sou1hacker opened 4 years ago

sou1hacker commented 4 years ago

Pull request #773 adds is_rx attribute to can.Message. Currently this attribute is set to True by default. Functionality needs to be added to each interface type to set this attribute appropriately when building CAN messages:

bessman commented 4 years ago

How should receive_own_messages behave with this change? Should messages transmitted by other applications have is_rx=False?

I'm looking at Kvaser's canlib, and I can see no obvious way to accomplish that.

tamenol commented 4 years ago

I was looking to implement this for the PCAN bus. However I can't seem to find a variable in the PCANbasic library I could use to check if it's RX or TX. Someone has an idea?

TPCANMessageType only has these values:

# PCAN message types
PCAN_MESSAGE_STANDARD = TPCANMessageType(
    0x00
)  # The PCAN message is a CAN Standard Frame (11-bit identifier)
PCAN_MESSAGE_RTR = TPCANMessageType(
    0x01
)  # The PCAN message is a CAN Remote-Transfer-Request Frame
PCAN_MESSAGE_EXTENDED = TPCANMessageType(
    0x02
)  # The PCAN message is a CAN Extended Frame (29-bit identifier)
PCAN_MESSAGE_FD = TPCANMessageType(
    0x04
)  # The PCAN message represents a FD frame in terms of CiA Specs
PCAN_MESSAGE_BRS = TPCANMessageType(
    0x08
)  # The PCAN message represents a FD bit rate switch (CAN data at a higher bit rate)
PCAN_MESSAGE_ESI = TPCANMessageType(
    0x10
)  # The PCAN message represents a FD error state indicator(CAN FD transmitter was error active)
PCAN_MESSAGE_ERRFRAME = TPCANMessageType(
    0x40
)  # The PCAN message represents an error frame
PCAN_MESSAGE_STATUS = TPCANMessageType(
    0x80
)  # The PCAN message represents a PCAN status message
chrisoro commented 4 years ago

@hardbyte @pierreluctg any indication when you release a version based on the develop branch? this feature is really interesting for us (vector devices for now)