void ConfigSD_StoreSettings() { if(!IS_SD_INSERTED || card.isFileOpen() || card.sdprinting) return; set_sd_dot(); card.setroot(true); card.startWrite((char *)CFG_SD_FILE, false); char buff[CFG_SD_MAX_VALUE_LEN]; ltoa(print_job_counter.data.completePrints, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_CPR], buff); ltoa(print_job_counter.data.filamentUsed, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_FIL], buff); ltoa(print_job_counter.data.numberPrints, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_NPR], buff); #if HAS(POWER_CONSUMPTION_SENSOR) ltoa(power_consumption_hour, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_PWR], buff); #endif ltoa(print_job_counter.data.printer_usage_seconds, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_TME], buff); ltoa(print_job_counter.data.printTime, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_TPR], buff); card.closeFile(); card.setlast(); unset_sd_dot(); }
void ConfigSD_StoreSettings() { if(!IS_SD_INSERTED || card.isFileOpen() || card.sdprinting) return; set_sd_dot(); card.setroot(true); card.startWrite((char *)CFG_SD_FILE, false); char buff[CFG_SD_MAX_VALUE_LEN]; #if HAS(POWER_CONSUMPTION_SENSOR) ltoa(power_consumption_hour, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_PWR], buff); #endif ltoa(printer_usage_seconds, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_TME], buff); ltoa(printer_usage_filament, buff, 10); card.unparseKeyLine(cfgSD_KEY[SD_CFG_FIL], buff); card.closeFile(); card.setlast(); config_last_update = millis(); unset_sd_dot(); }
void ConfigSD_RetrieveSettings(bool addValue) { if(!IS_SD_INSERTED || card.isFileOpen() || card.sdprinting || !card.cardOK) return; set_sd_dot(); char key[CFG_SD_MAX_KEY_LEN], value[CFG_SD_MAX_VALUE_LEN]; int k_idx; int k_len, v_len; card.setroot(true); card.selectFile((char *)CFG_SD_FILE); while(true) { k_len = CFG_SD_MAX_KEY_LEN; v_len = CFG_SD_MAX_VALUE_LEN; card.parseKeyLine(key, value, k_len, v_len); if(k_len == 0 || v_len == 0) break; // no valid key or value founded k_idx = ConfigSD_KeyIndex(key); if(k_idx == -1) continue; // unknow key ignore it switch(k_idx) { #if HAS(POWER_CONSUMPTION_SENSOR) case SD_CFG_PWR: { if(addValue) power_consumption_hour += (unsigned long)atol(value); else power_consumption_hour = (unsigned long)atol(value); } break; #endif case SD_CFG_TME: { if(addValue) printer_usage_seconds += (unsigned long)atol(value); else printer_usage_seconds = (unsigned long)atol(value); } break; case SD_CFG_FIL: { if(addValue) printer_usage_filament += (unsigned long)atol(value); else printer_usage_filament = (unsigned long)atol(value); } break; } } card.closeFile(); card.setlast(); config_readed = true; unset_sd_dot(); }