lab3-2-3_working_with_c

This commit is contained in:
antopoid 2022-09-09 14:11:38 +02:00
parent fc803713dd
commit 6e8481a353

View File

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