From d189f48e4decf7ca4f4adfc168ee1a72f3074d73 Mon Sep 17 00:00:00 2001
From: fuchsi <fuchsi@hemio.de>
Date: Tue, 19 Nov 2019 23:05:46 +0100
Subject: [PATCH] fix(bhi, leds): fixed faulty error handling due to
 always-false unsigned comparisons

---
 epicardium/modules/bhi.c     | 4 ++--
 pycardium/modules/sys_leds.c | 4 ++--
 pycardium/mphalport.c        | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/epicardium/modules/bhi.c b/epicardium/modules/bhi.c
index b88e1dc2..b04d2fd5 100644
--- a/epicardium/modules/bhi.c
+++ b/epicardium/modules/bhi.c
@@ -131,7 +131,7 @@ int epic_bhi160_enable_sensor(
 	int result = 0;
 
 	bhy_virtual_sensor_t vs_id = bhi160_lookup_vs_id(sensor_type);
-	if (vs_id < 0) {
+	if (vs_id == (bhy_virtual_sensor_t)-1) {
 		return -ENODEV;
 	}
 
@@ -188,7 +188,7 @@ int epic_bhi160_disable_sensor(enum bhi160_sensor_type sensor_type)
 	int result = 0;
 
 	bhy_virtual_sensor_t vs_id = bhi160_lookup_vs_id(sensor_type);
-	if (vs_id < 0) {
+	if (vs_id == (bhy_virtual_sensor_t)-1) {
 		return -ENODEV;
 	}
 
diff --git a/pycardium/modules/sys_leds.c b/pycardium/modules/sys_leds.c
index a5f57479..16efdcc9 100644
--- a/pycardium/modules/sys_leds.c
+++ b/pycardium/modules/sys_leds.c
@@ -202,8 +202,8 @@ static MP_DEFINE_CONST_FUN_OBJ_2(leds_set_rocket_obj, mp_leds_set_rocket);
 
 static mp_obj_t mp_leds_get_rocket(mp_obj_t led_in)
 {
-	int led     = mp_obj_get_int(led_in);
-	uint8_t ret = epic_leds_get_rocket(led);
+	int led = mp_obj_get_int(led_in);
+	int ret = epic_leds_get_rocket(led);
 	if (ret == -EINVAL) {
 		mp_raise_ValueError(
 			"invalid value: maybe the led does not exists"
diff --git a/pycardium/mphalport.c b/pycardium/mphalport.c
index 95954bba..5ae9cee4 100644
--- a/pycardium/mphalport.c
+++ b/pycardium/mphalport.c
@@ -112,7 +112,7 @@ void epic_isr_ctrl_c(void)
 
 void mp_hal_set_interrupt_char(char c)
 {
-	if (c != -1) {
+	if (c != '\xFF') {
 		mp_obj_exception_clear_traceback(
 			MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception))
 		);
-- 
GitLab