From 6703f3cd6922986e3199d89d8af42dc285e4ab32 Mon Sep 17 00:00:00 2001 From: Martin Killenberg <martin.killenberg@desy.de> Date: Mon, 2 Dec 2024 14:49:35 +0100 Subject: [PATCH 1/2] fix: include order --- src/telnet_protocol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/telnet_protocol.c b/src/telnet_protocol.c index e161dfb..8264dae 100644 --- a/src/telnet_protocol.c +++ b/src/telnet_protocol.c @@ -32,7 +32,6 @@ #include "eeprom.h" #include "fan_current_monitor_lib.h" // added by Stanislav Chystiakov #include "fan_lib.h" // added by Stanislav Chystiakov -#include "version.h" #include "hw_info.h" #include "mgmt_protocol_master.h" #include "overcurrent_detction.h" @@ -40,6 +39,7 @@ #include "uptime_tracker.h" #include "usart_lib.h" #include "user_board.h" +#include "version.h" #include "xport_watchdog.h" #include <avr/eeprom.h> #include <ctype.h> -- GitLab From ea99914a77dc6cd112c0b3796e649d6fa922ace1 Mon Sep 17 00:00:00 2001 From: Martin Killenberg <martin.killenberg@desy.de> Date: Mon, 2 Dec 2024 14:53:54 +0100 Subject: [PATCH 2/2] fix: integer overrun The voltage printout was wrongly cast to int16, causing overflow at +-32 V. This is fixed, now limiting at +-99 Volts of the protocol formatting. --- src/telnet_protocol.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/telnet_protocol.c b/src/telnet_protocol.c index 8264dae..92fe24a 100644 --- a/src/telnet_protocol.c +++ b/src/telnet_protocol.c @@ -654,12 +654,12 @@ char uppercase(char c) { */ void printChannel(int nr) { uint8_t status = cl_getStatus(nr); - int voltage; + int32_t voltage; uint16_t current; char name_upper[EEPROM_CHNAME_LEN]; current = pm_getCurrent(nr); - voltage = (int)pm_getVoltage(nr); + voltage = pm_getVoltage(nr); if(current == 0xffff || voltage == 0x7fffffff) { // I2C error current = 0; @@ -675,7 +675,7 @@ void printChannel(int nr) { name_upper[i] = uppercase(name_upper[i]); } - printf("\r\n%1d %02X %6d %" PRIu16 " %-20s", nr, status, voltage, current, name_upper); + printf("\r\n%1d %02X %6ld %" PRIu16 " %-20s", nr, status, voltage, current, name_upper); } void printAlarmMasks(void) { -- GitLab