#!/bin/bash # Мониторинг CAN трафика с фильтрацией OBD2 INTERFACE=${1:-vcan0} echo "=== CAN Monitor (OBD2) ===" echo "Interface: $INTERFACE" echo "Filtering: 7DF (requests) and 7E8 (responses)" echo "Press Ctrl+C to stop" echo "" # Проверка candump if ! command -v candump &> /dev/null; then echo "Error: candump not found. Install can-utils:" echo " sudo apt install can-utils" exit 1 fi # Мониторинг с фильтром candump "$INTERFACE" | grep -E "(7DF|7E8)" | while read line; do timestamp=$(date +"%H:%M:%S.%3N") # Парсинг и форматирование if echo "$line" | grep -q "7DF"; then # Запрос pid=$(echo "$line" | awk '{print $3}' | cut -c5-6) echo "[$timestamp] REQUEST -> PID: 0x$pid" elif echo "$line" | grep -q "7E8"; then # Ответ echo "[$timestamp] RESPONSE <- $line" fi done