a hexidecimal number in a string. Many JSON parser cannot handle 64-bit
integers, which is why we are not using a numerical data type. Each byte in
the string *must* be represented with 2 characters, e.g. `0x1` is `0x01` - the
- complete string must have an even number of characters.
+ complete string must have an even number of characters. The `0x` prefix is
+ optional.
### Diagnostic Messages
**id** - the CAN arbitration ID for the request.
-**mode** - the OBD-II mode of the request - 1 through 255 (1 through 9 are the
+**mode** - the OBD-II mode of the request - 0x1 through 0xff (1 through 9 are the
standardized modes and 0x22 is a common proprietary mode).
**pid** - (optional) the PID for the request, if applicable.
represented as a hexadecimal number in a string. Many JSON parser cannot
handle 64-bit integers, which is why we are not using a numerical data type.
Each byte in the string *must* be represented with 2 characters, e.g. `0x1`
- is `0x01` - the complete string must have an even number of characters.
+ is `0x01` - the complete string must have an even number of characters. The
+ `0x` prefix is optional.
**name** - (optional, defaults to nothing) A human readable, string name for
this request. If provided, the response will have a `name` field (much like a
{ "command_response": "device_id", "message": "0012345678"}
+#### Passthrough CAN Mode
+
+The `passthrough` command controls whether low-level CAN messages are passed
+through from the CAN bus through the VI to the output stream. If the CAN
+acceptance filter is in bypass mode and passthrough is enabled, the output
+stream will include all received CAN messages. If the bypass filter is enabled,
+only those CAN messages that have been pre-defined in the firmware are
+forwarded.
+
+**Request**
+
+ { "command": "passthrough",
+ "bus": 1,
+ "enabled": true
+ }
+
+**Response**
+
+If the bus in the request was valid and the passthrough mode was changed, the
+`status` field in the response will be `true`. If `false`, the passthrough mode
+was not changed.
+
+ { "command_response": "passthrough", "status": true}
+
+#### Acceptance Filter Bypass
+
+The `af_bypass` command controls whether the CAN message acceptance filter is
+bypassed for each CAN controller. By default, hardware acceptance filter (AF) is
+enabled in the VI - only previously defined CAN message IDs will be received.
+Send this command with `bypass: true` to force the filters to bypassed.
+
+If `passthrough` mode is also enabled, when the AF is bypassed, the output will
+include all CAN messages received.
+
+**Request**
+
+ { "command": "af_bypass",
+ "bus": 1,
+ "bypass": true
+ }
+
+**Response**
+
+If the bus in the request was valid and the AF mode was changed, the `status`
+field in the response will be `true`. If `false`, the passthrough mode was not
+changed.
+
+ { "command_response": "af_bypass", "status": true}
+
### Trace File Format
An OpenXC vehicle trace file is a plaintext file that contains JSON objects,