From 231e9a238d8a97fb5e0165232025fe3be0d7c5ab Mon Sep 17 00:00:00 2001 From: Sven Date: Fri, 9 Feb 2024 22:20:36 +0100 Subject: [PATCH] fix to close device on failure, typo in script --- icsbaudset.c | 33 ++++++++++++++++++++++----------- setbaud.sh | 2 +- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/icsbaudset.c b/icsbaudset.c index 498cea1..e5cf52e 100644 --- a/icsbaudset.c +++ b/icsbaudset.c @@ -22,10 +22,21 @@ int64_t fdbaudrate = 500000; const neodevice_t* selectedDevice = NULL; +int closeonfail(const neodevice_t* device) { + printf ("!!!!!!!\n"); + if(icsneo_closeDevice(device)) { + printf("%s successfully closed!\n", device->serial); + } else { + printf("%s failed to close!\n", device->serial); + } + exit(1); + +} + int main(int argc, char *argv[]) { if (argc != 5) { - printf("Please check parameters!\n\n"); + printf("Please check parameters!\n"); exit(1); } @@ -58,30 +69,30 @@ int main(int argc, char *argv[]) { if(strcmp(devices[i].serial,argv[1]) == 0) { if(icsneo_openDevice(&devices[i])) { - printf("%s successfully opened!\n\n", devices[i].serial); + printf("%s successfully opened!\n", devices[i].serial); } else { - printf("%s failed to open!\n\n", devices[i].serial); + printf("%s failed to open!\n", devices[i].serial); exit(1); } if(icsneo_setBaudrate(&devices[i], netid, baudrate) && icsneo_settingsApply(&devices[i])) { - printf("Successfully set %s baudrate for %s to %d!\n\n", argv[2], devices[i].serial, baudrate); + printf("Successfully set %s baudrate for %s to %d!\n", argv[2], devices[i].serial, baudrate); } else { - printf("FAILED to set %s baudrate for %s to %d!\n\n", argv[2], devices[i].serial, baudrate); - exit(1); + printf("FAILED to set %s baudrate for %s to %d!\n", argv[2], devices[i].serial, baudrate); + closeonfail(&devices[i]); } if(icsneo_setFDBaudrate(&devices[i], netid, fdbaudrate) && icsneo_settingsApply(&devices[i])) { - printf("Successfully set %s FD baudrate for %s to %d!\n\n", argv[2], devices[i].serial, fdbaudrate); + printf("Successfully set %s FD baudrate for %s to %d!\n", argv[2], devices[i].serial, fdbaudrate); } else { - printf("FAILED to set %s FD baudrate for %s to %d!\n\n", argv[2], devices[i].serial, fdbaudrate); - exit(1); + printf("FAILED to set %s FD baudrate for %s to %d!\n", argv[2], devices[i].serial, fdbaudrate); + closeonfail(&devices[i]); } if(icsneo_closeDevice(&devices[i])) { - printf("%s successfully closed!\n\n", devices[i].serial); + printf("%s successfully closed!\n", devices[i].serial); } else { - printf("%s failed to close!\n\n", devices[i].serial); + printf("%s failed to close!\n", devices[i].serial); exit(1); } diff --git a/setbaud.sh b/setbaud.sh index 857de44..cfcf9ea 100755 --- a/setbaud.sh +++ b/setbaud.sh @@ -6,7 +6,7 @@ ARGS=$(ip link | awk 'BEGIN{ORS=" "};/can.*/{ if(/can.*:/){print $2};if(/alias/) echo $1 $ARGS $2 $3 -sudo libicsneo_setbaud $ARGS $2 $3 +sudo libicsneo-setbaud $ARGS $2 $3 sudo ip link set $1 up