Files
openvehicle-api/tests/unit_tests/socket_can_com_tests/README.md

77 lines
2.0 KiB
Markdown
Raw Normal View History

# Virtual CAN Interface Setup and Testing
This guide explains how to set up virtual CAN interfaces (`vcan0` and `vcan1`) on a Linux system and how to run tests using these interfaces.
## Prerequisites
- A Linux system with `iproute2` and `can-utils` installed.
- Root or sudo privileges.
## Setup Virtual CAN Interfaces
1. **Load the `vcan` kernel module:**
```bash
sudo modprobe vcan
```
2. **Create the virtual CAN interfaces:**
```bash
sudo ip link add dev vcan0 type vcan
sudo ip link add dev vcan1 type vcan
sudo ip link add dev vcan2 type vcan
sudo ip link add dev vcan3 type vcan
sudo ip link add dev vcan4 type vcan
```
3. **Bring the virtual CAN interfaces online:**
```bash
sudo ip link set up vcan0
sudo ip link set up vcan1
sudo ip link set up vcan2
sudo ip link set up vcan3
sudo ip link set up vcan4
```
4. **Verify the virtual CAN interfaces:**
```bash
ip addr | grep "vcan"
```
You should see `vcan0` and `vcan1` listed as available interfaces.
5. **Remove the virtual CAN interfaces:**
```bash
sudo ip link set down vcan0
sudo ip link delete vcan0
```
## Running Tests
1. **Listen for CAN messages on `vcan0`:**
```bash
candump vcan0
```
2. **Send a CAN message on `vcan0` (from another terminal):**
```bash
cansend vcan0 123#DEADBEEF
```
You should see the message `123#DEADBEEF` appear on `vcan0`.
## Explanation
This setup uses virtual CAN interfaces (`vcan0` and `vcan1`) to simulate a CAN bus environment. This is useful for testing CAN applications without the need for physical CAN hardware.
**After virtual can is ready uncomment this line `#add_subdirectory(manual_tests/socket_can_com_tests)` from `vapi-cpp-vehicle-api-platform/tests/CMakeLists.txt` and then reconfigure and build the project to run the tests.**
## Additional Resources
- SocketCAN Documentation
- [can-utils GitHub Repository](https://github.com/linux-can/can-utils)