commit aadaa89dc7bdee43839e0f8f4a8eb34874256c51
parent 29802bf51a1760c02e4b8ee4dfaed156ca1d694f
Author: Tonton <tonterface@proton.me>
Date: Thu, 9 Jul 2026 15:18:06 +0200
Implement decide properly
Diffstat:
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/src/sensor.cpp b/src/sensor.cpp
@@ -10,6 +10,7 @@
#define SAMPLE_NUMBER 10
#define SENSOR_NUMBER 1
#define INTERVAL_NUMBER 3
+#define SAMPLE_RATE 500
enum {
SENSOR_1 = 26,
@@ -25,7 +26,7 @@ struct interval {
/* function definitions*/
static int *read_series(int sensor);
-static int find_interval(int *series, int sensor);
+static int find_interval(int *series, int sensor, int *result);
static int in_range(int num, int u_lim, int l_lim);
static int get_average(int *series);
static int decide_result(int *ser);
@@ -69,7 +70,7 @@ read_series(int sensor)
ser[i] = sensor_read(sensor);
Serial.print(ser[i]);
Serial.print("\n\r");
- delay(500);
+ delay(SAMPLE_RATE);
}
return ser;
}
@@ -101,9 +102,9 @@ get_average(int *series, int size)
return avg;
}
-/* find which interval of a specific sensor an int is in */
+/* finds which of a sensors intervals an int is in */
static int
-find_interval(int in, int sensor)
+find_interval(int in, int sensor, int *result)
{
struct interval *ivl= NULL;
int u_lim, l_lim = 0;
@@ -114,6 +115,7 @@ find_interval(int in, int sensor)
u_lim = ivl[i].upper_limit;
if (in_range(in, u_lim, l_lim)) {
Serial.print("In interval: ");
+ result[i]++;
} else {
Serial.print("Not in interval: ");
}
@@ -127,8 +129,10 @@ find_interval(int in, int sensor)
static int
decide_result(int *ser)
{
- /* testing */
- return 1;
+ for (int i = 0; i < INTERVAL_NUMBER; i++) {
+ printf("Interval %i: %i\n", i + 1, ser[i]);
+ }
+ return 0;
}
void
@@ -157,6 +161,7 @@ int
sensor_analyze(void)
{
int *ser, *tmp, res, avg;
+ int result[INTERVAL_NUMBER] = { 0 };
ser = tmp = NULL;
res = avg = 0;
@@ -169,10 +174,11 @@ sensor_analyze(void)
goto out_free_ser;
}
avg = get_average(ser, SAMPLE_NUMBER);
- tmp[i] = find_interval(avg, i);
+ find_interval(avg, i, result);
}
- res = decide_result(tmp);
+ res = decide_result(result);
+
out_free_ser:
free(ser);