public:can-utils_tipps
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| public:can-utils_tipps [2020/09/12 18:10] – [Gateway] geier99 | public:can-utils_tipps [2026/03/16 13:47] (aktuell) – [Senden - cansend] geier99 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== can-utils Tipps ====== | ====== can-utils Tipps ====== | ||
| + | Ist eigentlich nur eine Ansammlung von Stichwörten welche mir als Gedankenhilfe zu den can-utils dienen. | ||
| + | |||
| + | Und hier noch der Hinweis zum aktullen Release (... cansniffer jetzt mit canfd..): | ||
| + | * [[https:// | ||
| ===== Senden - cansend ===== | ===== Senden - cansend ===== | ||
| Zeile 14: | Zeile 18: | ||
| bestimmte Botschaften aus Logfile senden (geht auch mit canplayer): | bestimmte Botschaften aus Logfile senden (geht auch mit canplayer): | ||
| candump vcan0 | grep " 244 " | while read line; do cansend vcan0 244# | candump vcan0 | grep " 244 " | while read line; do cansend vcan0 244# | ||
| + | |||
| + | 3 Botschaften gleichzeitig: | ||
| + | while true; do cansend can0 122# | ||
| </ | </ | ||
| + | bzw. eine Text-Datei einlesen und dann mit Pythonskript senden: | ||
| + | send_can.py | ||
| + | <sxh py># | ||
| + | import time | ||
| + | import subprocess | ||
| + | MESSAGE_FILE = " | ||
| + | |||
| + | def send_can_message(interface, | ||
| + | subprocess.run([" | ||
| + | |||
| + | def main(): | ||
| + | messages = [] | ||
| + | |||
| + | # Datei einlesen | ||
| + | with open(MESSAGE_FILE, | ||
| + | for line in f: | ||
| + | line = line.strip() | ||
| + | if not line or line.startswith("#" | ||
| + | continue | ||
| + | |||
| + | parts = line.split() | ||
| + | if len(parts) != 3: | ||
| + | print(f" | ||
| + | continue | ||
| + | |||
| + | iface, frame, delay_ms = parts | ||
| + | messages.append((iface, | ||
| + | |||
| + | print(f" | ||
| + | |||
| + | # Endlosschleife | ||
| + | while True: | ||
| + | for iface, frame, delay in messages: | ||
| + | send_can_message(iface, | ||
| + | time.sleep(delay / 1000.0) | ||
| + | |||
| + | if __name__ == " | ||
| + | main() | ||
| + | </ | ||
| + | can0 122# | ||
| + | can0 2FA# | ||
| + | can0 34E# | ||
| + | </ | ||
| + | ./ | ||
| + | </ | ||
| ===== Senden - canplayer ===== | ===== Senden - canplayer ===== | ||
| < | < | ||
| Zeile 188: | Zeile 240: | ||
| * < | * < | ||
| * < | * < | ||
| + | |||
| + | ===== cansniffer ===== | ||
| + | to do | ||
| + | |||
| todo... obiges dirket auf den Wiki-Seiten hinzufügen | todo... obiges dirket auf den Wiki-Seiten hinzufügen | ||
public/can-utils_tipps.1599934255.txt.gz · Zuletzt geändert: von geier99
