mirror of
https://github.com/eclipse-openvehicle-api/openvehicle-api.git
synced 2026-07-02 05:35:11 +00:00
77
tests/unit_tests/socket_can_com_tests/README.md
Normal file
77
tests/unit_tests/socket_can_com_tests/README.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user