Skip to content

Commit

Permalink
clear
Browse files Browse the repository at this point in the history
  • Loading branch information
organic-nailer committed Nov 18, 2024
0 parents commit bce93f7
Show file tree
Hide file tree
Showing 6 changed files with 314 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info

# Virtual environments
.venv
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[email protected]
Empty file added README.md
Empty file.
53 changes: 53 additions & 0 deletions hello.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import can
import time
import threading

class CanController:
def __init__(self) -> None:
self.bus = can.interface.Bus(bustype='socketcan', channel='can0', bitrate=500000)

self.message_to_send: dict[int, bytearray] = {}
self.message_received: dict[int, bytearray] = {}
self._sender_flag = True
self._receiver_flag = True

self.sender_thread = threading.Thread(target=self.run_sender)
self.sender_thread.start()
self.receiver_thread = threading.Thread(target=self.run_receiver)
self.receiver_thread.start()

def close(self):
self._sender_flag = False
self._receiver_flag = False
self.sender_thread.join()
self.receiver_thread.join()
self.bus.shutdown()

def run_sender(self):
while self._sender_flag:
for msg_id, msg_data in self.message_to_send.items():
msg = can.Message(arbitration_id=msg_id, data=msg_data)
self.bus.send(msg)
time.sleep(0.05)

def run_receiver(self):
while self._receiver_flag:
for i, msg in enumerate(self.bus):
self.message_received[msg.arbitration_id] = msg.data
if i > 20:
break
time.sleep(0.05)

def main():
controller = CanController()

try:
while True:
time.sleep(0.1)
except KeyboardInterrupt:
controller.close()
print("Exit")


if __name__ == "__main__":
main()
10 changes: 10 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[project]
name = "seminar2024-pixkit-can"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.8"
dependencies = [
"pygame>=2.6.1",
"python-can>=4.4.2",
]
Loading

0 comments on commit bce93f7

Please sign in to comment.