// write config to uSD int8_t configWriteFile(char *fname) { char buf[128]; int8_t fh; int8_t ret; int n; int i; if (fname == 0) fname = CONFIG_FILE_NAME; if ((fh = filerGetHandle(fname)) < 0) { AQ_NOTICE("config: cannot get write file handle\n"); return -1; } for (i = 0; i < CONFIG_NUM_PARAMS; i++) { n = configFormatParam(buf, i); ret = filerWrite(fh, buf, -1, n); if (ret < n) { AQ_NOTICE("config: file write error\n"); ret = -1; break; } } filerClose(fh); return ret; }
// write config to uSD int8_t configWriteFile(char *fname) { char *buf; int8_t fh; int8_t ret; int n; int i; if (fname == 0) fname = CONFIG_FILE_NAME; if ((fh = filerGetHandle(fname)) < 0) { AQ_NOTICE("config: cannot get write file handle\n"); return -1; } if (!(buf = (char *)aqCalloc(128, sizeof(char)))) { AQ_NOTICE("config: Error writing to file, cannot allocate memory.\n"); filerClose(fh); return -1; } for (i = 0; i < CONFIG_NUM_PARAMS; i++) { n = configFormatParam(buf, i); if (n) ret = filerWrite(fh, buf, -1, n); if (!n || ret < n) { ret = -1; break; } } filerClose(fh); if (buf) aqFree(buf, 128, sizeof(char)); if (ret > -1) AQ_NOTICE("config: Parameters saved to local storage file.\n"); else AQ_NOTICE("config: Error writing parameters to file.\n"); return ret; }
static void dIMUWriteCalib(void) { #ifdef DIMU_HAVE_EEPROM char *lineBuf; uint8_t *buf; int n; int i, j, k; if (!(lineBuf = (char *)aqCalloc(128, sizeof(char)))) { AQ_NOTICE("DIMU: Error writing to EEPROM, cannot allocate memory.\n"); return; } buf = eepromOpenWrite(); k = 0; for (i = 0; i < sizeof(dImuCalibParameters) / sizeof(uint16_t); i++) { n = configFormatParam(lineBuf, dImuCalibParameters[i]); for (j = 0; j < n; j++) { buf[k++] = lineBuf[j]; if (k == DIMU_EEPROM_BLOCK_SIZE) { eepromWrite(); k = 0; } } } if (k != 0) eepromWrite(); if (lineBuf) aqFree(lineBuf, 128, sizeof(char)); AQ_NOTICE("DIMU: wrote calibration parameters to EEPROM\n"); eepromClose(); #endif }