Skip to content

Commit 37be768

Browse files
committed
Re-added loop to menu, removed yield, fixed data typing
1 parent 796757a commit 37be768

File tree

1 file changed

+73
-73
lines changed

1 file changed

+73
-73
lines changed

BUILD_DIR/t4_sensor2.c

Lines changed: 73 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -53,81 +53,81 @@ ESOS_CHILD_TASK(barGraph_child, uint16_t u16_num2graph){ //visual display of da
5353

5454
ESOS_CHILD_TASK(menu) {
5555
// neither of these will be used across yield or waits, so no need for static(-ness)
56-
static char proc_mode;
57-
static char num_samples;
56+
static uint8_t proc_mode = 0x00;
57+
static uint8_t num_samples = 0x00;
5858

5959
ESOS_TASK_BEGIN();
60-
ESOS_TASK_WAIT_ON_AVAILABLE_OUT_COMM(); // wait until we can grab the output stream
61-
// print a very pretty menu
62-
ESOS_TASK_WAIT_ON_SEND_STRING("\n+===========================+");
63-
ESOS_TASK_WAIT_ON_SEND_STRING("| Select Processing mode |\n");
64-
ESOS_TASK_WAIT_ON_SEND_STRING("| 1. one-shot |\n");
65-
ESOS_TASK_WAIT_ON_SEND_STRING("| 2. average |\n");
66-
ESOS_TASK_WAIT_ON_SEND_STRING("| 3. minimum |\n");
67-
ESOS_TASK_WAIT_ON_SEND_STRING("| 4. maximum |\n");
68-
ESOS_TASK_WAIT_ON_SEND_STRING("| 5. median |\n");
69-
ESOS_TASK_WAIT_ON_SEND_STRING("+===========================+\n\n");
70-
ESOS_TASK_WAIT_ON_SEND_STRING("> ");
71-
ESOS_TASK_SIGNAL_AVAILABLE_OUT_COMM(); // let everyone else know we are done with the out stream
72-
73-
ESOS_TASK_WAIT_ON_AVAILABLE_IN_COMM(); // wait until we can grab the input stream
74-
ESOS_TASK_WAIT_ON_GET_UINT8(proc_mode); // write the user's input to the aforementioned buffer
75-
ESOS_TASK_SIGNAL_AVAILABLE_IN_COMM(); // let everyone else know we are done with the in stream
76-
77-
// start the second part of the menu (largely same as above)
78-
ESOS_TASK_WAIT_ON_AVAILABLE_OUT_COMM();
79-
ESOS_TASK_WAIT_ON_SEND_STRING("\n+===========================+\n");
80-
ESOS_TASK_WAIT_ON_SEND_STRING("| Select Number of Samples |\n");
81-
ESOS_TASK_WAIT_ON_SEND_STRING("| 1. two |\n");
82-
ESOS_TASK_WAIT_ON_SEND_STRING("| 2. four |\n");
83-
ESOS_TASK_WAIT_ON_SEND_STRING("| 3. eight |\n");
84-
ESOS_TASK_WAIT_ON_SEND_STRING("| 4. sixteen |\n");
85-
ESOS_TASK_WAIT_ON_SEND_STRING("| 5. thirty-two |\n");
86-
ESOS_TASK_WAIT_ON_SEND_STRING("| 6. sixty-four |\n");
87-
ESOS_TASK_WAIT_ON_SEND_STRING("| 7. one-shot |\n");
88-
ESOS_TASK_WAIT_ON_SEND_STRING("+===========================+\n\n");
89-
ESOS_TASK_WAIT_ON_SEND_STRING("> ");
90-
ESOS_TASK_SIGNAL_AVAILABLE_OUT_COMM();
91-
92-
ESOS_TASK_WAIT_ON_AVAILABLE_IN_COMM();
93-
ESOS_TASK_WAIT_ON_GET_UINT8(num_samples);
94-
ESOS_TASK_SIGNAL_AVAILABLE_IN_COMM();
95-
96-
// assign the appropriate sensor_processing_mode based on user input
97-
// in the order defined in esos_sensor.h
98-
sensor_processing_mode =
99-
proc_mode == ONESHOT && num_samples == SAMPLES_ONESHOT ? ESOS_SENSOR_ONE_SHOT
100-
101-
: proc_mode == AVG && num_samples == SAMPLES2 ? ESOS_SENSOR_AVG2
102-
: proc_mode == AVG && num_samples == SAMPLES4 ? ESOS_SENSOR_AVG4
103-
: proc_mode == AVG && num_samples == SAMPLES8 ? ESOS_SENSOR_AVG8
104-
: proc_mode == AVG && num_samples == SAMPLES16 ? ESOS_SENSOR_AVG16
105-
: proc_mode == AVG && num_samples == SAMPLES32 ? ESOS_SENSOR_AVG32
106-
: proc_mode == AVG && num_samples == SAMPLES64 ? ESOS_SENSOR_AVG64
107-
108-
: proc_mode == MIN && num_samples == SAMPLES2 ? ESOS_SENSOR_MIN2
109-
: proc_mode == MIN && num_samples == SAMPLES4 ? ESOS_SENSOR_MIN4
110-
: proc_mode == MIN && num_samples == SAMPLES8 ? ESOS_SENSOR_MIN8
111-
: proc_mode == MIN && num_samples == SAMPLES16 ? ESOS_SENSOR_MIN16
112-
: proc_mode == MIN && num_samples == SAMPLES32 ? ESOS_SENSOR_MIN32
113-
: proc_mode == MIN && num_samples == SAMPLES64 ? ESOS_SENSOR_MIN16
114-
115-
: proc_mode == MAX && num_samples == SAMPLES2 ? ESOS_SENSOR_MAX2
116-
: proc_mode == MAX && num_samples == SAMPLES4 ? ESOS_SENSOR_MAX4
117-
: proc_mode == MAX && num_samples == SAMPLES8 ? ESOS_SENSOR_MAX8
118-
: proc_mode == MAX && num_samples == SAMPLES16 ? ESOS_SENSOR_MAX16
119-
: proc_mode == MAX && num_samples == SAMPLES32 ? ESOS_SENSOR_MAX32
120-
: proc_mode == MAX && num_samples == SAMPLES64 ? ESOS_SENSOR_MAX16
121-
122-
: proc_mode == MEDIAN && num_samples == SAMPLES2 ? ESOS_SENSOR_MEDIAN2
123-
: proc_mode == MEDIAN && num_samples == SAMPLES4 ? ESOS_SENSOR_MEDIAN4
124-
: proc_mode == MEDIAN && num_samples == SAMPLES8 ? ESOS_SENSOR_MEDIAN8
125-
: proc_mode == MEDIAN && num_samples == SAMPLES16 ? ESOS_SENSOR_MEDIAN16
126-
: proc_mode == MEDIAN && num_samples == SAMPLES32 ? ESOS_SENSOR_MEDIAN32
127-
: proc_mode == MEDIAN && num_samples == SAMPLES64 ? ESOS_SENSOR_MEDIAN16
128-
: 0x00;
129-
130-
ESOS_TASK_YIELD();
60+
for (;;) {
61+
ESOS_TASK_WAIT_ON_AVAILABLE_OUT_COMM(); // wait until we can grab the output stream
62+
// print a very pretty menu
63+
ESOS_TASK_WAIT_ON_SEND_STRING("\n+===========================+");
64+
ESOS_TASK_WAIT_ON_SEND_STRING("| Select Processing mode |\n");
65+
ESOS_TASK_WAIT_ON_SEND_STRING("| 1. one-shot |\n");
66+
ESOS_TASK_WAIT_ON_SEND_STRING("| 2. average |\n");
67+
ESOS_TASK_WAIT_ON_SEND_STRING("| 3. minimum |\n");
68+
ESOS_TASK_WAIT_ON_SEND_STRING("| 4. maximum |\n");
69+
ESOS_TASK_WAIT_ON_SEND_STRING("| 5. median |\n");
70+
ESOS_TASK_WAIT_ON_SEND_STRING("+===========================+\n\n");
71+
ESOS_TASK_WAIT_ON_SEND_STRING("> ");
72+
ESOS_TASK_SIGNAL_AVAILABLE_OUT_COMM(); // let everyone else know we are done with the out stream
73+
74+
ESOS_TASK_WAIT_ON_AVAILABLE_IN_COMM(); // wait until we can grab the input stream
75+
ESOS_TASK_WAIT_ON_GET_UINT8(proc_mode); // write the user's input to the aforementioned buffer
76+
ESOS_TASK_SIGNAL_AVAILABLE_IN_COMM(); // let everyone else know we are done with the in stream
77+
78+
// start the second part of the menu (largely same as above)
79+
ESOS_TASK_WAIT_ON_AVAILABLE_OUT_COMM();
80+
ESOS_TASK_WAIT_ON_SEND_STRING("\n+===========================+\n");
81+
ESOS_TASK_WAIT_ON_SEND_STRING("| Select Number of Samples |\n");
82+
ESOS_TASK_WAIT_ON_SEND_STRING("| 1. two |\n");
83+
ESOS_TASK_WAIT_ON_SEND_STRING("| 2. four |\n");
84+
ESOS_TASK_WAIT_ON_SEND_STRING("| 3. eight |\n");
85+
ESOS_TASK_WAIT_ON_SEND_STRING("| 4. sixteen |\n");
86+
ESOS_TASK_WAIT_ON_SEND_STRING("| 5. thirty-two |\n");
87+
ESOS_TASK_WAIT_ON_SEND_STRING("| 6. sixty-four |\n");
88+
ESOS_TASK_WAIT_ON_SEND_STRING("| 7. one-shot |\n");
89+
ESOS_TASK_WAIT_ON_SEND_STRING("+===========================+\n\n");
90+
ESOS_TASK_WAIT_ON_SEND_STRING("> ");
91+
ESOS_TASK_SIGNAL_AVAILABLE_OUT_COMM();
92+
93+
ESOS_TASK_WAIT_ON_AVAILABLE_IN_COMM();
94+
ESOS_TASK_WAIT_ON_GET_UINT8(num_samples);
95+
ESOS_TASK_SIGNAL_AVAILABLE_IN_COMM();
96+
97+
// assign the appropriate sensor_processing_mode based on user input
98+
// in the order defined in esos_sensor.h
99+
sensor_processing_mode =
100+
proc_mode == ONESHOT && num_samples == SAMPLES_ONESHOT ? ESOS_SENSOR_ONE_SHOT
101+
102+
: proc_mode == AVG && num_samples == SAMPLES2 ? ESOS_SENSOR_AVG2
103+
: proc_mode == AVG && num_samples == SAMPLES4 ? ESOS_SENSOR_AVG4
104+
: proc_mode == AVG && num_samples == SAMPLES8 ? ESOS_SENSOR_AVG8
105+
: proc_mode == AVG && num_samples == SAMPLES16 ? ESOS_SENSOR_AVG16
106+
: proc_mode == AVG && num_samples == SAMPLES32 ? ESOS_SENSOR_AVG32
107+
: proc_mode == AVG && num_samples == SAMPLES64 ? ESOS_SENSOR_AVG64
108+
109+
: proc_mode == MIN && num_samples == SAMPLES2 ? ESOS_SENSOR_MIN2
110+
: proc_mode == MIN && num_samples == SAMPLES4 ? ESOS_SENSOR_MIN4
111+
: proc_mode == MIN && num_samples == SAMPLES8 ? ESOS_SENSOR_MIN8
112+
: proc_mode == MIN && num_samples == SAMPLES16 ? ESOS_SENSOR_MIN16
113+
: proc_mode == MIN && num_samples == SAMPLES32 ? ESOS_SENSOR_MIN32
114+
: proc_mode == MIN && num_samples == SAMPLES64 ? ESOS_SENSOR_MIN16
115+
116+
: proc_mode == MAX && num_samples == SAMPLES2 ? ESOS_SENSOR_MAX2
117+
: proc_mode == MAX && num_samples == SAMPLES4 ? ESOS_SENSOR_MAX4
118+
: proc_mode == MAX && num_samples == SAMPLES8 ? ESOS_SENSOR_MAX8
119+
: proc_mode == MAX && num_samples == SAMPLES16 ? ESOS_SENSOR_MAX16
120+
: proc_mode == MAX && num_samples == SAMPLES32 ? ESOS_SENSOR_MAX32
121+
: proc_mode == MAX && num_samples == SAMPLES64 ? ESOS_SENSOR_MAX16
122+
123+
: proc_mode == MEDIAN && num_samples == SAMPLES2 ? ESOS_SENSOR_MEDIAN2
124+
: proc_mode == MEDIAN && num_samples == SAMPLES4 ? ESOS_SENSOR_MEDIAN4
125+
: proc_mode == MEDIAN && num_samples == SAMPLES8 ? ESOS_SENSOR_MEDIAN8
126+
: proc_mode == MEDIAN && num_samples == SAMPLES16 ? ESOS_SENSOR_MEDIAN16
127+
: proc_mode == MEDIAN && num_samples == SAMPLES32 ? ESOS_SENSOR_MEDIAN32
128+
: proc_mode == MEDIAN && num_samples == SAMPLES64 ? ESOS_SENSOR_MEDIAN16
129+
: 0x00;
130+
}
131131
ESOS_TASK_END();
132132
}
133133

0 commit comments

Comments
 (0)