unsigned char savePassword(long g){ if(g>0){ processNumber(g); unsigned char ca=getFCell(); writeEEPROM(ca,num1); writeEEPROM((ca+1),num2); writeEEPROM((ca+2),num3); } return 1; }
bool Weather::ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) { // first check if it's for our device if (dev != nullptr && strcmp(dev, getDeviceName()) == 0) { if (strcmp(name, "GEOGRAPHIC_COORD") == 0) { int latindex = IUFindIndex("LAT", names, n); int longindex = IUFindIndex("LONG", names, n); int elevationindex = IUFindIndex("ELEV", names, n); if (latindex == -1 || longindex == -1 || elevationindex == -1) { LocationNP.s = IPS_ALERT; IDSetNumber(&LocationNP, "Location data missing or corrupted."); } double targetLat = values[latindex]; double targetLong = values[longindex]; double targetElev = values[elevationindex]; return processLocationInfo(targetLat, targetLong, targetElev); } // Update period if (strcmp(name, "WEATHER_UPDATE") == 0) { IUUpdateNumber(&UpdatePeriodNP, values, names, n); UpdatePeriodNP.s = IPS_OK; IDSetNumber(&UpdatePeriodNP, nullptr); if (UpdatePeriodN[0].value == 0) DEBUG(Logger::DBG_SESSION, "Periodic updates are disabled."); else { if (updateTimerID > 0) RemoveTimer(updateTimerID); updateTimerID = SetTimer(UpdatePeriodN[0].value * 1000); } return true; } // Pass to weather interface if (processNumber(dev, name, values, names, n)) return true; } return DefaultDevice::ISNewNumber(dev, name, values, names, n); }
unsigned char validatePassword(long f){ if(f>0){ processNumber(f); for(int i=0;i<1024;i++){ if(i%3==0){ unsigned char a=readEEPROM(i); if(a==num1){ unsigned char b=readEEPROM((i+1)); if(b==num2){ unsigned char c=readEEPROM((i+2)); if(c==num3){ return 1; } } } } i+=3; } } return 0; }
unsigned char deletePassword(long number){ if(number>0){ processNumber(number); for(int i=0;i<1024;i++){ if(i%3==0){ unsigned char a=readEEPROM(i); if(a==num1){ unsigned char b=readEEPROM((i+1)); if(b==num2){ unsigned char c=readEEPROM((i+2)); if(c==num3){ writeEEPROM(i,0); writeEEPROM((i+1),0); writeEEPROM((i+2),0); return 1; } } } } i+=3; } } return 0; }