Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
settings_arch.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2009-2015 The Paparazzi Team
3 *
4 * This file is part of paparazzi.
5 *
6 * paparazzi is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
9 * any later version.
10 *
11 * paparazzi is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with paparazzi; see the file COPYING. If not, write to
18 * the Free Software Foundation, 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
20 */
21
30#include <stdio.h>
31
33#ifndef PERSISTENT_SETTINGS_FILE
34#define PERSISTENT_SETTINGS_FILE "pprz_persistent_settings.binary"
35#endif
36
38{
40 if (file != NULL) {
41 fwrite(ptr, size, 1, file);
42 fclose(file);
43 return 0;
44 }
45 printf("Could not open settings file %s to write!\n", PERSISTENT_SETTINGS_FILE);
46 return -1;
47}
48
50{
52 if (file == NULL) {
53 printf("Could not open settings file %s to read!\n", PERSISTENT_SETTINGS_FILE);
54 return -1;
55 }
56 /* check if binary file size matches requested struct size */
57 fseek(file, 0, SEEK_END);
58 if (ftell(file) != size) {
59 printf("Settings file %s size does not match, deleting it!\n", PERSISTENT_SETTINGS_FILE);
60 fclose(file);
62 return -1;
63 }
64 fseek(file, 0, SEEK_SET);
65 int bytes_read = fread(ptr, size, 1, file);
66 if (bytes_read != size) {
67 printf("Could only read %d of %d bytes from %s!\n", bytes_read, size,
69 }
70 fclose(file);
71 return 0;
72}
73
int32_t persistent_write(void *ptr, uint32_t size)
int32_t persistent_read(void *ptr, uint32_t size)
int32_t persistent_clear(void)
#define PERSISTENT_SETTINGS_FILE
Default file used to store persistent settings.
uint16_t foo
Definition main_demo5.c:58
Persistent settings interface.
int int32_t
Typedef defining 32 bit int type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.