SID text Canbus Del 2 +,+

Det har ju blivit vintertid så då måste man fixa SID tiden (med en snabb fix).
case 0x730 : //        ID   Byte 0  Byte 1  Byte 2  Byte 3  Byte 4  Byte 5  Byte 6  Byte 7
              //      730h   -       SEC     MIN     HOUR    DAY     MONTH   ENGCOLD   -
value=3 ;  CanbusRead(); Rx = Rx-1; //  byte 3 Hour  (Rx = Rx-1;) ger vintertid
Convert(); HourA=RxA; HourB=RxB;  // Serial.println("Time Recived! ");


Sedan passade jag på att lägga in en HalkVarning som ploppar upp vid nollgrader eller kallare.
Fungerar i Night Panel läget (man har ju ingen Temp. kontroll då).

Läser av Canbus och konv. värdet:

case 0x7A0:                                   //  Outside temp
value=2 ;CanbusRead(); OTemp0 = Rx;
value=1 ;CanbusRead(); OTemp1 = Rx;
OTemp = (OTemp1 * 256)+OTemp0 ;   // konv. 2 8bit till 16 bit och Decimal
OTemp = OTemp/10-40;  Serial.print("Outside Temp ");Serial.println(OTemp);
Rx=OTemp; Convert(); OTempA=RxA; OTempB=RxB;
break;

Kontrollerar om ute temp är noll eller lägre:
if (OTemp <= 0 && currentSekund >= 60 && Cold == 0) {request = 1; Status=4; Cold=1;      // Outside temp =< 0
                byte sndStat = CAN0.sendMsgBuf(0x430, 0, 8, dataB);delay(30);} // send Beep 430 when Outside temp =< 0
      if (OTemp > 1)  Cold = 0;  // liten hystres: +2 innan halk varning kan återkomma

SID texten:
byte dataD1[8]= {0x02, 0x96, 0x02, 0x48, 0x61, 0x6C, 0x6B, 0x2E};  //  Halk.  
byte dataD2[8]= {0x01, 0x96, 0x02, 0x61, 0x72, 0x6E, 0x56, 0x2D,};  //  Varn-
byte dataD3[8]= {0x00, 0x96, 0x02, OTempB, OTempA,0x20, 0x20, 0x20};  //  Outside temp. values


2017-12
Lite modifieringar så att man kan trycka på CLR knappen när Parkeringshjälpen varnar och om man tryckt på SET-knappen
och vill nolla något. Satt tiden  till 10 sek,

case 0x439:  //-------------------- SPA är aktiv
CLRtime = currentSek ;  // nollar CLR timer = inaktiverar request i 10 sek.
Serial.println("SPA aktiv  ");
break;


case 0x290: //-------------------set eller clr button pressed
  value=3 ;   //// 80 = vol-   && (rxBuf[5] == 0x80)
  CanbusRead();
     if (Rx == 0x40) CLRtime = currentSek ;  // vid SET nollar CLR timer = inaktiverar CLR request i 10 sek.  
     if (Rx == 0x80 && currentSek-CLRtime >= 10 && currentSek >= 40) {request = 1; Status=0;}   // inakriverar clr funktionen under 30 sek.
break;


Inga kommentarer:

Skicka en kommentar