Buenas,
Estoy siguiendo una serie de tutoriales que ha caído en mis manos, pero buena parte del código viene sin explicación, lo cual me obliga a indagar un poco más (lo cual es bueno para aprender).
Pero hay unas líneas que utiliza unos operadores o símbolos que no conozco y no los encuentro en la sección /Resources/Reference de este sitio web. A ver si alguien me ayuda a descifrarlo. Pego una fracción del código (la función que lo incluye):
void updateAnalogInput(int zone, int index) {
int input_num = analogInputs[zone][index];
int value = analogRead(input_num);
int minValue = value > ANALOG_INPUTS_THRESHOLD ? value - ANALOG_INPUTS_THRESHOLD : 0;
int maxValue = value < 1023 - ANALOG_INPUTS_THRESHOLD ? value + ANALOG_INPUTS_THRESHOLD : 1023;
if ((analogInputsValues[zone][index] < minValue) || (analogInputsValues[zone][index] > maxValue)) {
analogInputsValues[zone][index] = value;
publishInput(zone, input_num, value);
Esta función actualiza un array que contiene los valores de las entradas analógicas cuando alguna entrada ha variado (sólo actualiza cuando la magnitud del cambio supera un umbral) y "publica" el nuevo valor de la entrada (mediante mqtt).
Las líneas 4 y 5 (donde se asigna valor a minValue y maxValue) son las que no acabo de entender. No conozco cómo actúa el símbolo '?' y el ':' , así como el operador de comparación en el contexto de la asignación.
Recurro a vosotros porque ya no sé dónde buscar estas cosas (introducir '?' o ':' en el buscador, como supondréis, no ayuda mucho...).
Como siempre, cualquier ayuda es de agradecer.
Saludos