From c62ba3a83999bb722cae994e321483e94d7d630b Mon Sep 17 00:00:00 2001 From: Dominik Loidolt <dominik.loidolt@univie.ac.at> Date: Mon, 24 Apr 2023 17:21:40 +0200 Subject: [PATCH] Remove wrong error message when using rdcu_pkt option without .rdcu_pkt_mode_cfg file --- lib/rdcu_pkt_to_file.c | 54 ++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 33 deletions(-) diff --git a/lib/rdcu_pkt_to_file.c b/lib/rdcu_pkt_to_file.c index 723ab9b..36e200b 100644 --- a/lib/rdcu_pkt_to_file.c +++ b/lib/rdcu_pkt_to_file.c @@ -150,7 +150,7 @@ static int32_t rmap_tx_to_file(const void *hdr, uint32_t hdr_size, n = rdcu_package(NULL, hdr, hdr_size, non_crc_bytes, data, data_size); if (n <= 0) return -1; - blob = malloc(n); + blob = malloc((unsigned int)n); if (!blob) { printf("malloc for tx_pkt faild\n"); return -1; @@ -211,26 +211,26 @@ static uint32_t rmap_rx_dummy(uint8_t *pkt) */ static int read_rdcu_pkt_mode_cfg(uint8_t *icu_addr, uint8_t *rdcu_addr, - int *mtu) + unsigned long *mtu) { /* TODO: Build string" %s/.rdcu_pkt_mode_cfg", RDCU_PKT_MODE_DIR */ char line[256]; char *end; - unsigned int read_all = 0; FILE *fp = fopen(".rdcu_pkt_mode_cfg", "r"); - *icu_addr = 0; - *rdcu_addr = 0; - *mtu = 0; + *icu_addr = DEF_ICU_ADDR; + *rdcu_addr = DEF_RDCU_ADDR; + *mtu = DEF_MTU; if (fp == NULL) { - perror("fopen()"); - return -1; + /* use default values */ + printf("Use ICU_ADDR = %#02X, RDCU_ADDR = %#02X and MTU = %lu for the RAMP packets.\n", *icu_addr, *rdcu_addr, *mtu); + return 0; } while (fgets(line, sizeof(line), fp)) { size_t l; - long i; + unsigned long i; char *p; p = strchr(line, '\n'); @@ -247,56 +247,46 @@ static int read_rdcu_pkt_mode_cfg(uint8_t *icu_addr, uint8_t *rdcu_addr, if (!strncmp(line, "ICU_ADDR", l = strlen("ICU_ADDR"))) { end = NULL; errno = 0; - i = strtol(line + l, &end, 0); - if (end == line + l || errno == ERANGE || i < 0 || - i > 0xFF) { + i = strtoul(line + l, &end, 0); + if (end == line + l || errno == ERANGE || i > 0xFF) { fprintf(stderr, "Error reading ICU_ADDR.\n"); errno = 0; fclose(fp); return -1; } *icu_addr = (uint8_t)i; - read_all |= 1UL << 0; continue; } if (!strncmp(line, "RDCU_ADDR", l = strlen("RDCU_ADDR"))) { end = NULL; errno = 0; - i = strtol(line + l, &end, 0); - if (end == line + l || errno == ERANGE || i < 0 - || i > 0xFF) { + i = strtoul(line + l, &end, 0); + if (end == line + l || errno == ERANGE || i > 0xFF) { fprintf(stderr, "Error reading RDCU_ADDR.\n"); errno = 0; fclose(fp); return -1; } *rdcu_addr = (uint8_t)i; - read_all |= 1UL << 1; continue; } if (!strncmp(line, "MTU", l = strlen("MTU"))) { end = NULL; errno = 0; - i = strtol(line + l, &end, 0); - if (end == line + l || errno == ERANGE || i < 0 || - i > INT_MAX) { + i = strtoul(line + l, &end, 0); + if (end == line + l || errno == ERANGE || i > INT_MAX) { fprintf(stderr, "Error reading MTU.\n"); errno = 0; fclose(fp); return -1; } - *mtu = (int)i; - read_all |= 1UL << 2; + *mtu = i; continue; } } fclose(fp); - /* all keywords read? */ - if (read_all < 0x7) - return -1; - - printf("Use ICU_ADDR = %#02X, RDCU_ADDR = %#02X and MTU = %d for the RAMP packets.\n", *icu_addr, *rdcu_addr, *mtu); + printf("Use ICU_ADDR = %#02X, RDCU_ADDR = %#02X and MTU = %lu for the RAMP packets.\n", *icu_addr, *rdcu_addr, *mtu); return 0; } @@ -314,13 +304,11 @@ static int read_rdcu_pkt_mode_cfg(uint8_t *icu_addr, uint8_t *rdcu_addr, int init_rmap_pkt_to_file(void) { uint8_t icu_addr, rdcu_addr; - int mtu; + unsigned long mtu; + + if (read_rdcu_pkt_mode_cfg(&icu_addr, &rdcu_addr, &mtu)) + return -1; - if (read_rdcu_pkt_mode_cfg(&icu_addr, &rdcu_addr, &mtu)) { - icu_addr = DEF_ICU_ADDR; - rdcu_addr = DEF_RDCU_ADDR; - mtu = DEF_MTU; - } rdcu_ctrl_init(); rdcu_set_source_logical_address(icu_addr); rdcu_set_destination_logical_address(rdcu_addr); -- GitLab