diff --git a/part1_iot_framework/lab3-2-2_working_with_c/main/main.c b/part1_iot_framework/lab3-2-2_working_with_c/main/main.c index 1ec321f..adbd792 100644 --- a/part1_iot_framework/lab3-2-2_working_with_c/main/main.c +++ b/part1_iot_framework/lab3-2-2_working_with_c/main/main.c @@ -45,8 +45,6 @@ typedef struct SensorSetStruct { Sensor temperature; Sensor pressure; - void (* Update)(struct SensorSetStruct *sensorSet); - void (* Display)(struct SensorSetStruct *sensorSet); } SensorSet; /** @@ -55,6 +53,7 @@ typedef struct SensorSetStruct * @param sensorSet */ void defaultUpdateSensorValues(struct SensorSetStruct *sensorSet) { + int random = abs(esp_random()); sensorSet->temperature.value.f = (random % 400) / 10; random = abs(esp_random()); @@ -76,9 +75,9 @@ void defaultPrintSensorValues(struct SensorSetStruct *sensorSet) { * * @param sensorSet */ -void updateAndDisplaySensorValues(struct SensorSetStruct *sensorSet) { - sensorSet->Update(sensorSet); - sensorSet->Display(sensorSet); +void updateAndDisplaySensorValues(struct SensorSetStruct *sensorSet ,void (* Update)(struct SensorSetStruct *sensorSet),void (* Display)(struct SensorSetStruct *sensorSet)) { + Update(sensorSet); + Display(sensorSet); } @@ -89,13 +88,11 @@ void updateAndDisplaySensorValues(struct SensorSetStruct *sensorSet) { void app_main(void) { - - /* TODO: Declare and init sensorSet variable (structure is SensorSetStruct) Tip: Use designated initializer */ - static struct SensorSetStruct houlou = { + struct SensorSetStruct houlou = { .temperature= { .name="TEMP", @@ -107,15 +104,14 @@ void app_main(void) { .name="PRES", .type=INT, .value={.i=0} - }, - .Update= defaultUpdateSensorValues, - .Display= defaultPrintSensorValues + } }; + while (1) { // Wait for 1 sec. usleep(1000000); - updateAndDisplaySensorValues(&houlou); + updateAndDisplaySensorValues(&houlou,defaultUpdateSensorValues,defaultPrintSensorValues); /*printf ("\n%d\n", sizeof (int)); printf ("\n%d\n", sizeof (float));