Implement ISOBUS File Server (FS) Interface as a Personal Project

Introduce the ISOBUS File Server (FS) interface, compatible with ISO
11783-13. The implementation utilizes the kernel's existing CAN J1939
socket support.

For testing following setup can be used:
ip link add type vcan
ip l s dev vcan0 up

j1939acd -r 64-95 -c /tmp/1122334455667788.jacd 1122334455667788 vcan0 &
j1939acd -r 96-127 -c /tmp/1122334455667789.jacd 1122334455667789 vcan0 &

sleep 1

isobusfs-srv -i vcan0 -n 1122334455667788 -v vol1:/path/to/export/
isobusfs-cli -i vcan0 -n 0x1122334455667789 -m 0x1122334455667788 -I

Interactive mode currently support following commands:
exit - exit interactive mode
quit - exit interactive mode
help - show this help
dmesg - show log buffer
selftest - run selftest
ls - list directory
ll - list directory with long listing format
cd - change directory
pwd - print name of current/working directory
get - get file

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
This commit is contained in:
Oleksij Rempel
2024-02-02 13:44:07 +01:00
committed by Oleksij Rempel
parent 6004c64f06
commit 42edaeaf52
30 changed files with 9750 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
#!/bin/bash
# Arguments: path to the file and the file size
FILEPATH=$1
FILESIZE=$2
# Variable to store the increasing number
counter=0
# XOR pattern (change this to whatever you like)
pattern=0xdeadbeef
# Calculate the number of iterations needed
let iterations=$FILESIZE/4
# Use 'dd' command to generate the file with increasing numbers
for ((i=0; i<$iterations; i++)); do
# Print the 32-bit number in binary format to the file
printf "%08x" $((counter ^ pattern)) | xxd -r -p >> $FILEPATH
let counter=counter+1
done