uint8_t saveSettings(STORAGE& storage, const EncoderChannel& channel, int& addr) { eepromWriteInt(storage, addr, channel.average); addr += 2; eepromWriteInt(storage, addr, channel.minValue); addr += 2; eepromWriteInt(storage, addr, channel.maxValue); addr += 2; return true; }
//Description: Writes an unsigned long value to the specified addres in EEPROM // The value will be stored in Big Endian format. void eepromWriteLong(unsigned int uiAddress, unsigned long ulData) { unsigned int partialValue=0; partialValue = ulData >> 16; //Get the 2 high bytes from the data to be stored. eepromWriteInt(uiAddress, partialValue); partialValue = (unsigned int)ulData; //Get the 2 lower bytes from the data to be stored. eepromWriteInt(uiAddress + 2, partialValue); }
void Settings::save() { ssidLen = ssid.length (); passwordLen = password.length (); EEPROM.write ( ssidLenAdr, ssidLen ); EEPROM.write ( passwordLenAdr, passwordLen ); for ( int i = 0; i < ssidLen; i++ ) { EEPROM.write ( ssidAdr + i, ssid[i] ); } for ( int i = 0; i < passwordLen; i++ ) { EEPROM.write ( passwordAdr + i, password[i] ); } EEPROM.write ( ssidHiddenAdr, ssidHidden ); EEPROM.write ( apChannelAdr, apChannel ); EEPROM.write ( isMacAPRandAdr, isMacAPRand ); for ( int i = 0; i < 6; i++ ) { EEPROM.write ( macAPAdr + i, macAP._get ( i ) ); } EEPROM.write ( wifiClientAdr, wifiClient ); ssidClientLen = ssidClient.length (); EEPROM.write ( ssidClientLenAdr, ssidClientLen ); for ( int i = 0; i < ssidClientLen; i++ ) { EEPROM.write ( ssidClientAdr + i, ssidClient[i] ); } passwordClientLen = passwordClient.length (); EEPROM.write ( passwordClientLenAdr, passwordClientLen ); for ( int i = 0; i < passwordClientLen; i++ ) { EEPROM.write ( passwordClientAdr + i, passwordClient[i] ); } hostnameLen = hostname.length (); EEPROM.write ( hostnameLenAdr, hostnameLen ); for ( int i = 0; i < hostnameLen; i++ ) { EEPROM.write ( hostnameAdr + i, hostname[i] ); } EEPROM.write ( apScanHiddenAdr, apScanHidden ); EEPROM.write ( deauthReasonAdr, deauthReason ); eepromWriteInt ( attackTimeoutAdr, attackTimeout ); EEPROM.write ( attackPacketRateAdr, attackPacketRate ); EEPROM.write ( clientScanTimeAdr, clientScanTime ); EEPROM.write ( useLedAdr, useLed ); EEPROM.write ( channelHopAdr, channelHop ); EEPROM.write ( multiAPsAdr, multiAPs ); EEPROM.write ( multiAttacksAdr, multiAttacks ); EEPROM.write ( checkNumAdr, checkNum ); eepromWriteInt ( macIntervalAdr, macInterval ); EEPROM.write ( beaconIntervalAdr, beaconInterval ); EEPROM.write ( ledPinAdr, ledPin ); EEPROM.write ( darkModeAdr, darkMode ); EEPROM.write ( cacheAdr, cache ); EEPROM.write ( serverCacheAdr, serverCache ); EEPROM.write ( newUserAdr, newUser ); EEPROM.write ( detectorChannelAdr, detectorChannel ); EEPROM.write ( detectorAllChannelsAdr, detectorAllChannels ); EEPROM.write ( alertPinAdr, alertPin ); EEPROM.write ( invertAlertPinAdr, invertAlertPin ); EEPROM.write ( detectorScanTimeAdr, detectorScanTime ); pinNamesLen = pinNames.length (); EEPROM.write ( pinNamesLenAdr, pinNamesLen ); for ( int i = 0; i < pinNamesLen; i++ ) { EEPROM.write ( pinNamesAdr + i, pinNames[i] ); } EEPROM.commit (); /*int i=0; int pinNumber = 3; Serial.println("START"); while (i < 6) { int pinState = pins[i++]; if (pinState == 49) { Serial.println("Making high: " + (String)pinNumber); } Serial.println((String)pinNumber + (String)": " + pinState); pinNumber++; } Serial.println("END");*/ if ( debug ) { info (); Serial.println ( "[I] Settings saved!" ); } }
void deviceEepromHandleRawData(char commandHeader, InputStream* inputStream, OutputStream* outputStream) { _deviceEepromCheckInitialized(); if (commandHeader == COMMAND_RELOAD_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_RELOAD_EEPROM); eeprom_->eepromLoad(eeprom_); } else if (commandHeader == COMMAND_DUMP_TO_FILE_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_DUMP_TO_FILE_EEPROM); eeprom_->eepromDump(eeprom_); } else if (commandHeader == COMMAND_DUMP_TO_LOG_OUTPUT_STREAM_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_DUMP_TO_LOG_OUTPUT_STREAM_EEPROM); OutputStream* debugOutputStream = getInfoOutputStreamLogger(); dumpEepromToOutputStream(eeprom_, debugOutputStream, 0, eeprom_->maxIndex); } else if (commandHeader == COMMAND_DUMP_PARTIAL_CONTENT_TO_LOG_OUTPUT_STREAM_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_DUMP_PARTIAL_CONTENT_TO_LOG_OUTPUT_STREAM_EEPROM); unsigned long startAddress = readHex4(inputStream); checkIsSeparator(inputStream); unsigned long length = readHex4(inputStream); OutputStream* debugOutputStream = getInfoOutputStreamLogger(); dumpEepromToOutputStream(eeprom_, debugOutputStream, startAddress, startAddress + length); } else if (commandHeader == COMMAND_CLEAR_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_CLEAR_EEPROM); unsigned long startAddress = readHex4(inputStream); checkIsSeparator(inputStream); unsigned long endAddress = readHex4(inputStream); clearEeprom(eeprom_, startAddress, endAddress); } else if (commandHeader == COMMAND_READ_BYTE_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_READ_BYTE_EEPROM); unsigned long address = readHex4(inputStream); char value = eeprom_->eepromReadChar(eeprom_, address); appendHex2(outputStream, value); } else if (commandHeader == COMMAND_READ_INT_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_READ_INT_EEPROM); unsigned long address = readHex4(inputStream); int value = eepromReadInt(eeprom_, address); appendHex4(outputStream, value); } else if (commandHeader == COMMAND_WRITE_BYTE_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_WRITE_BYTE_EEPROM); unsigned long address = readHex4(inputStream); checkIsSeparator(inputStream); char data = readHex2(inputStream); eeprom_->eepromWriteChar(eeprom_, address, data); } else if (commandHeader == COMMAND_WRITE_INT_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_WRITE_INT_EEPROM); unsigned long address = readHex4(inputStream); checkIsSeparator(inputStream); int data = readHex4(inputStream); eepromWriteInt(eeprom_, address, data); } else if (commandHeader == COMMAND_READ_BLOCK_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_READ_BLOCK_EEPROM); unsigned long address = readHex4(inputStream); int index; for (index = 0; index < EEPROM_DEVICE_READ_BLOCK_LENGTH; index++) { char value = eeprom_->eepromReadChar(eeprom_, address + index); if (index > 0) { appendSeparator(outputStream); } appendHex2(outputStream, value); } } else if (commandHeader == COMMAND_WRITE_BLOCK_EEPROM) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_WRITE_BLOCK_EEPROM); unsigned long address = readHex4(inputStream); char data; int index; for (index = 0; index < EEPROM_DEVICE_WRITE_BLOCK_LENGTH; index++) { checkIsSeparator(inputStream); data = readHex2(inputStream); eeprom_->eepromWriteChar(eeprom_, address + index, data); } } else if (commandHeader == COMMAND_INTENSIVE_TEST) { ackCommand(outputStream, EEPROM_DEVICE_HEADER, COMMAND_INTENSIVE_TEST); unsigned long address = readHex4(inputStream); checkIsSeparator(inputStream); unsigned long length = readHex4(inputStream); unsigned int errorCount = 0; unsigned int index; // Writes for (index = 0; index < length; index++) { unsigned char value = (unsigned char) index; eeprom_->eepromWriteChar(eeprom_, address + index, value); } // Reads for (index = 0; index < length; index++) { unsigned char value = (unsigned char) eeprom_->eepromReadChar(eeprom_, address + index); if (value != (unsigned char)index) { if (errorCount < 255) { errorCount++; } } } appendHex4(outputStream, errorCount); } }