@@ -53,81 +53,81 @@ ESOS_CHILD_TASK(barGraph_child, uint16_t u16_num2graph){ //visual display of da
53
53
54
54
ESOS_CHILD_TASK (menu ) {
55
55
// 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 ;
58
58
59
59
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
+ }
131
131
ESOS_TASK_END ();
132
132
}
133
133
0 commit comments