hardbyte / hardbyte/python-can
Socketcand UNIX Socket Support
- Linguagem predominante
- Python
- Estrelas
- 1.6k
- Forks
- 697
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
### Is your feature request related to a problem? Please describe.
I am working with CAN bus in Docker containers. I personally find it more reliable to pass a UNIX socket path from the host to a container than it is to use `host.containers.internal` or whatever they call it these days. Socketcand natively supports binding to a UNIX socket, but there is no API to connect to it via python-can.
### Describe the solution you'd like
An additional argument to `SocketCanDaemonBus` that allows specifying a socket path. When passed, it should allow for the host and port to be empty, and should change `socket.AF_INET` to `socket.AF_UNIX` on [this line](https://github.com/hardbyte/python-can/blob/b57bc514a64e61ff1579a7d456310ef2bc30c80d/can/interfaces/socketcand/socketcand.py#L47). The socket path should be passed to `socket.connect()` without the port.
### Describe alternatives you've considered
I have tried long and hard to get communication working via standard TCP/IP but it just seems to hate me. This seems like the next best option, and I think it should be supported since it's a core feature of Socketcand :)
Guia de contribuição
Direção de pesquisa
Start in can/interfaces/socketcand/socketcand.py at SocketCanDaemonBus and inspect the existing socket setup around line 47. Add support for an optional UNIX socket path while retaining the host/port behavior; done when the bus can connect using the path without requiring host or port.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- networking
- Tipo de issue
- Funcionalidade
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Status de atividade
- Estagnada
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 58/100