1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| serveur.on("/API", HTTP_GET, [](AsyncWebServerRequest *req){
if(!clientConnected){
req->send(408,"text/html", "Timeout");
return;
}
String reponse = "" , equipement= "", taux = "";
String commande[8], action[8];
int nbArgs = req->args();
for(int i=0;i<nbArgs;i++){
commande[i] = req->argName(i);
action[i]=req->arg(i);
}
//modification d'un programme horaire
if(commande[0] == "Cmd" && action[0]=="modif"){
uint8_t prg = action[1].toInt();
reponse= String(pg[prg]);
req->send(200,"text/plain", reponse);
}
//demande ouverture volet
else if( commande[0] == "Cmd" && action[0] == "O" && commande[1] == "volet") {
equipement = req->arg(1);
taux = req->arg(2);
reponse = "Ok" + equipement + "O" + taux;
req->send(200,"text/plain", reponse);
if(taux=="100") taux="00";
cmdCl[0]= 'O'; cmdCl[1]= equipement.charAt(0); cmdCl[2]= taux.charAt(0); cmdCl[3]=taux.charAt(1);
cmdCl[4]='Z'; cmdCl[5]='\0';
commandeRecu=true;
}
//demande fermeture volet
else if(commande[0] == "Cmd" && action[0] == "F" && commande[1] == "volet" ){
equipement = req->arg(1);
reponse = "Ok"+ equipement + "F" + "00";
req->send(200,"text/plain", reponse);
cmdCl[0]= 'F'; cmdCl[1]= equipement.charAt(0); cmdCl[2]= 'Z'; cmdCl[3]='\0';
commandeRecu=true;
}
//demande etat volet(s)
else if(commande[0] == "Cmd" && action[0] == "E" && commande[1] == "volet" ){
//E=Cmd Etat & commande[1] carte=arg[1]=A (c'est un volet) & commande[2] valeur=arg[2]=adresse carte
equipement = req->arg(2);
String tempo = "";
if(equipement != "0"){ //****un seul volet****
uint8_t etatduVolet = etatVol[equipement.toInt() -1];
if(etatduVolet == 0){
reponse = "Ok" + equipement + "00"; //en fermeture totale
}
else{
tempo = (etatduVolet == 100)? "OT" : String(etatduVolet-100);
reponse = "Ok" + equipement + tempo;
}
req->send(200,"text/plain", reponse);
}
else{ //****tous les volets****
reponse = "Ok";
for(i=0; i<NB_VOLETS; i++){
if(etatVol[i]== 0) tempo = "00";
else if(etatVol[i]==100) tempo="OT";
else tempo= String(etatVol[i]-100);
reponse += tempo;
}
req->send(200,"text/plain",reponse);
}
}
.............
} |
Partager