#include "Status.h"

#include "gpio.h"

uint8_t gl_tmpAir,gl_tmpEau,gl_PH,gl_Salinity;

uint8_t gl_Notification,gl_Erreur;

uint8_t readTempAir() {
	return gl_tmpAir;
}

uint8_t readTempEau() {
	return gl_tmpEau;
}

uint8_t readPH() {
	return gl_PH;
}

uint8_t readSalinity() {
	return gl_Salinity;
}

uint8_t readNiveau() {
	uint8_t res = 0;
	res = res | (HAL_GPIO_ReadPin(TechBas_GPIO_Port, TechBas_Pin) << 7);
	res = res | (HAL_GPIO_ReadPin(TechHaut_GPIO_Port, TechHaut_Pin) << 6);
	res = res | (HAL_GPIO_ReadPin(CuveHaut_GPIO_Port, CuveHaut_Pin) << 5);
	res = res | (HAL_GPIO_ReadPin(ReserveBAs_GPIO_Port, ReserveBAs_Pin) << 4);

	res = res | (HAL_GPIO_ReadPin(CaptAutre1_GPIO_Port, CaptAutre1_Pin) << 3);
	res = res | (HAL_GPIO_ReadPin(CaptAutre2_GPIO_Port, CaptAutre2_Pin) << 2);
	return res;
}


uint8_t ReadNotif(){
	uint8_t val = gl_Notification; //On lit et on remet a 0 les notif
	gl_Notification =0;
	return val;
}

uint8_t ReadErreur(){
	return gl_Erreur;
}

uint8_t convertADC_tmp(uint16_t val) {
	float V1 = val * 0.000871675; // Le chiffre a était trouvé par l'expérimentation
	float R = V1 / ((3.3 - V1) / 467.0); // tension mesuré / (tension de ref - tension mesure)/Résistance du pont avec PT100
	float tmp = ((R - 100) / ALPHA)-0.40; // conversion de la Resistance PT100 (R) en température -0.45 (Temperature d'echauffement)
	uint8_t t = (tmp - 10.0) * 10.0; //codage de la temperature en uint8_t (temp -15°C)  * 10
	return t;
}

int moyen(int tmp,int* oldtmp){
	int res = 0;
	for (int i = 0; i< 9;i++){
		oldtmp[i]=oldtmp[i+1];
		res += oldtmp[i];
	}
	res+=tmp;
	oldtmp[9]=tmp;
	return res/10;
}


