hardbyte / hardbyte/python-can

No remote request flag is set when sending such frame with interface socketcand

Open
#2,091 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
1.6k
Forks
697
PR merge metrics
No merged PRs in 30d

Description

### Describe the bug
When sending a frame like
```python
bus = can.interface.Bus(interface='socketcand', channel='can0', host='the.ipa.ddr.ess', port=29536)
...
can_msg = can.Message(is_extended_id = False, arbitration_id = address, is_remote_frame = True)
self.bus.send(can_msg)
```
the terminal message print is:
```
Timestamp: 0.000000 ID: 403 S Rx R DL: 0
```
but on the bus be get (using candump):
```
can0 403 [0] ''
```
kinda empty frames.

When using the direct can0 interface (no socketcand) I get correctly:
```
can0 403 [0] remote request
```

### To Reproduce
Using python_can==4.6.1 on a Mac with Python 3.9.6.
socketcand Version 0.6.1 is running on a Debian 13.

### Expected behavior
Seeing correct remote request frames

Contributor guide

Open the contributing guide

Research direction

Start at can.interface.Bus with interface='socketcand' and trace self.bus.send(can_msg) when can.Message sets is_remote_frame=True. Compare the socketcand path with the direct can0 path and use candump to verify the result. Done means the transmitted frame is reported as a remote request rather than an empty data frame.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot, networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.