Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Loading...
Searching...
No Matches
settings.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2009-2014 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
29#include "generated/settings.h"
30#include "generated/airframe.h"
31#include "pprzlink/messages.h"
32#include "pprzlink/dl_protocol.h"
33
35
42
44
45
46void settings_init(void)
47{
48#if USE_PERSISTENT_SETTINGS
49 if (persistent_read((void *)&pers_settings, sizeof(struct PersistentSettings))) {
50 return; // return -1 ?
51 }
52 /* from generated/settings.h */
54#endif
55}
56
61{
62#if USE_PERSISTENT_SETTINGS
64 /* from generated/settings.h */
66 if (!persistent_write((void *)&pers_settings, sizeof(struct PersistentSettings))) {
67 /* persistent write was successful */
69 return 0;
70 }
71 }
72#endif
73 settings_store_flag = false;
74 return -1;
75}
76
81{
82#if USE_PERSISTENT_SETTINGS
84 if (!persistent_clear()) {
85 /* clearing all persistent settings was successful */
87 return 0;
88 }
89 }
90#endif
91 settings_clear_flag = false;
92 return -1;
93}
94
96{
97#ifndef INTERMCU_FBW
98 if (DL_SETTING_ac_id(buf) != AC_ID) { return; }
100 uint8_t i = DL_SETTING_index(buf);
101 float var = DL_SETTING_value(buf);
102 DlSetting(i, var);
103 // Reply to the sender of the message
104 struct pprzlink_msg msg;
105 msg.trans = trans;
106 msg.dev = dev;
107 msg.sender_id = AC_ID;
108 msg.receiver_id = sender_id;
109 msg.component_id = 0;
111#else
112 (void)dev;
113 (void)trans;
114 (void)buf;
115#endif
116}
117
119{
120#ifndef INTERMCU_FBW
121 if (DL_GET_SETTING_ac_id(buf) != AC_ID) { return; }
124 float val = settings_get_value(i);
125 // Reply to the sender of the message
126 struct pprzlink_msg msg;
127 msg.trans = trans;
128 msg.dev = dev;
129 msg.sender_id = AC_ID;
130 msg.receiver_id = sender_id;
131 msg.component_id = 0;
133#else
134 (void)dev;
135 (void)trans;
136 (void)buf;
137#endif
138}
139
int32_t persistent_write(void *ptr, uint32_t size)
int32_t persistent_read(void *ptr, uint32_t size)
uint8_t msg[10]
Buffer used for general comunication over SPI (out buffer)
int32_t persistent_clear(void)
uint16_t foo
Definition main_demo5.c:58
bool settings_clear_flag
Definition settings.c:43
void settings_parse_msg_GET_SETTING(struct link_device *dev, struct transport_tx *trans, uint8_t *buf)
Definition settings.c:118
void settings_init(void)
Definition settings.c:46
int32_t settings_clear(void)
clear all persistent settings from flash
Definition settings.c:80
void settings_parse_msg_SETTING(struct link_device *dev, struct transport_tx *trans, uint8_t *buf)
Definition settings.c:95
bool settings_store_flag
flag for setting feedback.
Definition settings.c:41
struct PersistentSettings pers_settings
Definition settings.c:34
int32_t settings_store(void)
store settings marked as persistent to flash
Definition settings.c:60
Persistent settings interface.
static const struct usb_device_descriptor dev
Definition usb_ser_hw.c:74
uint16_t val[TCOUPLE_NB]
int int32_t
Typedef defining 32 bit int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.