Move command registry from components/command/ into components/core/. New modules: mod_canbus, mod_honeypot, mod_fallback, mod_redteam, mod_ota. Replace mod_proxy with tun_core (multiplexed SOCKS5 tunnel). Kconfig extended with per-module settings and async worker config.
49 lines
1.3 KiB
C
49 lines
1.3 KiB
C
/*
|
|
* canbus_obd.h
|
|
* OBD-II (ISO 15031) PID decoder over ISO-TP.
|
|
*/
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
#include <stdbool.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Standard OBD-II CAN IDs */
|
|
#define OBD_REQUEST_ID 0x7DF /* Broadcast functional request */
|
|
#define OBD_RESPONSE_MIN 0x7E8
|
|
#define OBD_RESPONSE_MAX 0x7EF
|
|
|
|
/* Decoded PID result */
|
|
typedef struct {
|
|
uint8_t pid;
|
|
float value;
|
|
const char *unit; /* "rpm", "km/h", "C", etc. */
|
|
const char *name; /* "Engine RPM", "Vehicle Speed", etc. */
|
|
} obd_result_t;
|
|
|
|
/* Query a single PID (Mode 01). Returns 0 on success, -1 on error. */
|
|
int obd_query_pid(uint8_t mode, uint8_t pid, obd_result_t *out);
|
|
|
|
/* Query supported PIDs (Mode 01, PID 00/20/40/60). Returns count. */
|
|
int obd_query_supported(uint8_t pids_out[], int max_pids);
|
|
|
|
/* Read Vehicle Identification Number (Mode 09, PID 02). Returns 0 or -1. */
|
|
int obd_read_vin(char *vin_out, size_t cap);
|
|
|
|
/* Read Diagnostic Trouble Codes (Mode 03). Returns formatted string length. */
|
|
int obd_read_dtcs(char *dtc_buf, size_t cap);
|
|
|
|
/* Continuous monitoring: stream PIDs to C2 at interval */
|
|
void obd_monitor_start(const uint8_t *pids, int pid_count,
|
|
int interval_ms, const char *request_id);
|
|
void obd_monitor_stop(void);
|
|
bool obd_monitor_is_running(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|