Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for #1849 (PCAN fails when PCAN_ERROR_ILLDATA is read via ReadFD) #1850

Merged
merged 2 commits into from
Sep 6, 2024

Conversation

bures
Copy link
Contributor

@bures bures commented Sep 4, 2024

When there is an invalid frame on CAN bus (in our case CAN FD), PCAN first reports result PCAN_ERROR_ILLDATA and then it send the error frame. If the PCAN_ERROR_ILLDATA is not ignored, python-can throws an exception. Reported as #1849

This fix adds a branch in pcan.py:_recv_internal, which ignores the PCAN_ERROR_ILLDATA.

…first reports result PCAN_ERROR_ILLDATA and then it send the error frame. If the PCAN_ERROR_ILLDATA is not ignored, python-can throws an exception.

This fix add the ignore on the PCAN_ERROR_ILLDATA.
@bures bures changed the title Fix for #1849 Fix for #1849 (PCAN fails when PCAN_ERROR_ILLDATA is read via ReadFD) Sep 4, 2024
@@ -555,6 +556,10 @@ def _recv_internal(
elif result & (PCAN_ERROR_BUSLIGHT | PCAN_ERROR_BUSHEAVY):
log.warning(self._get_formatted_error(result))

elif result == PCAN_ERROR_ILLDATA:
# Ignore this
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add some explanation here and fix the import order, then i'll merge.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. Thanks.

…block is un-sorted or un-formatted`

Added comment explaining why to ignore the PCAN_ERROR_ILLDATA.
@zariiii9003 zariiii9003 merged commit 7302127 into hardbyte:main Sep 6, 2024
33 checks passed
SWolfSchunk pushed a commit to SWolfSchunk/python-can that referenced this pull request Sep 9, 2024
… ReadFD) (hardbyte#1850)

* When there is an invalid frame on CAN bus (in our case CAN FD), PCAN first reports result PCAN_ERROR_ILLDATA and then it send the error frame. If the PCAN_ERROR_ILLDATA is not ignored, python-can throws an exception.

This fix add the ignore on the PCAN_ERROR_ILLDATA.

* Fix for ruff error `can/interfaces/pcan/pcan.py:5:1: I001 [*] Import block is un-sorted or un-formatted`
Added comment explaining why to ignore the PCAN_ERROR_ILLDATA.
zariiii9003 pushed a commit that referenced this pull request Oct 8, 2024
* Add autostart option (kwarg) to BusABC.send_periodic() to fix issue #1848

* Fix for #1849 (PCAN fails when PCAN_ERROR_ILLDATA is read via ReadFD) (#1850)

* When there is an invalid frame on CAN bus (in our case CAN FD), PCAN first reports result PCAN_ERROR_ILLDATA and then it send the error frame. If the PCAN_ERROR_ILLDATA is not ignored, python-can throws an exception.

This fix add the ignore on the PCAN_ERROR_ILLDATA.

* Fix for ruff error `can/interfaces/pcan/pcan.py:5:1: I001 [*] Import block is un-sorted or un-formatted`
Added comment explaining why to ignore the PCAN_ERROR_ILLDATA.

* Format with black to pass checks

* Do not ignore autostart parameter for Bus.send_periodic() on IXXAT devices

* Do not ignore autostart parameter for Bis.send_periodic() on socketcan devices

* Fix double start socketcan periodic

* Fix link methods in docstring for start() methods of  the tasks can.broadcastmanager.CyclicTask.start

* Change the behaviour of autostart parameter in socketcan implementation of  CyclicSendTask to not call _tx_setup() method instead of adding a parameter to it.

* Fix code style (max 100 chars per line)
Fix wrong docstring reference.

---------

Co-authored-by: Tomas Bures <[email protected]>
Co-authored-by: Sebastian Wolf <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants