| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #include "Comunication.h"
- #include "spi.h"
- #include "Tab.h"
- #include "PWM.h"
- #include "Eeprom.h"
- uint8_t Com_dispactch(uint8_t* mes){
- switch(mes[0]|MASKMES){
- case (WRITETABHEU):
- Com_WriteTabHeure(mes);
- return 0;
- case (WRITETABVAL):
- Com_WriteTabVal(mes);
- return 0;
- case (READVENT):
- Com_ReadVent(mes);
- return 0;
- case (WRITVENT):
- Com_WriteVent(mes);
- return 0;
- case (ERRORCOM):
- Com_ERROR(mes);
- return 0;
- case (WRITEVAL):
- Com_WriteVal(mes);
- return 0;
- case (STOP):
- Com_STOP(mes);
- return 0;
- case (RETABLIR):
- Com_Retablir(mes);
- return 0;
- case (SYNCRTC):
- Com_SyncRTC(mes);
- return 0;
- default:
- return -1;//erreur
- }
- }
- void Com_WriteTabHeure(uint8_t* mes){
- int i = mes[0] & MASKID;
- Heure h;
- h.heure=mes[1];
- h.minute=mes[2];
- if ((mes[0]&MASKTYPE)>>4)
- tabSortie[i].Demmarage=h;
- else
- tabSortie[i].Extinxtion=h;
- uint16_t add = (mes[0]*2)-2; //On ecrit la valeurs que l'on viens de modifier dans l'eeprom. Adresse dans l'eeprom = mes[0]*2-2 voir Tableau excel address
- writeData(add,&mes[1],2);
- }
- void Com_WriteTabVal(uint8_t* mes){
- int i = mes[0] & MASKID;
- if ((mes[0]&MASKTYPE)>>4)
- tabSortie[i].PuissanceMax=mes[1];
- else
- tabSortie[i].Pente=mes[1];
- uint16_t add = (mes[0]*2)+22;//On ecrit la valeurs que l'on viens de modifier dans l'eeprom. Adresse dans l'eeprom = mes[0]*2+22 voir Tableau excel address
- writeData(add,&mes[1],1);
- }
- void Com_ReadVent(uint8_t* mes){
- //TODO Rajout plus tard si ventilation sur la rampe
- }
- void Com_WriteVent(uint8_t* mes){
- //TODO Rajout plus tard si ventilation sur la rampe
- }
- void Com_ERROR(uint8_t* mes){
- //TODO
- }
- void Com_WriteVal(uint8_t* mes){
- int i = mes[0] & 0x0F;
- if (mes[1]!=0){//Si on force avec le slider blynk (mes!=0) la valeur de l'allumage est la valeurs envoyer -1.
- PWMSetDutyCycle(i,mes[1]-1);
- tabSortie[i].Fonctionement=1;
- }
- else{//Si on remet le slider a 0 on reprend le fonctionnement normal imediatement.
- Heure h;
- readHeure(&h);
- PWMSetDutyCycle(i,PWMPourcentage(&h,&tabSortie[i]));
- tabSortie[i].Fonctionement=0;
- }
- PWMStart(i);// On demare la sortie
- }
- void Com_STOP(uint8_t* mes){
- for (int i = 0; i<10; i++){
- PWMSetDutyCycle(i,0);
- PWMStart(i);
- tabSortie[i].Fonctionement=1;
- }
- }
- void Com_Retablir(uint8_t* mes){
- for (int i = 0; i<10; i++)
- tabSortie[i].Fonctionement=0;
- }
- void Com_SyncRTC(uint8_t* mes){
- Date d;
- d.annee=mes[1];
- d.mois=mes[2];
- d.jour=mes[3];
- d.joursemaine=mes[4];
- d.heure=mes[5];
- d.minute=mes[6];
- d.second=mes[7];
- writeDate();
- }
|