Contiki 3.x
params.h
1 #ifndef PARAMS_H_
2 #define PARAMS_H_
3 /* PARAMETER_STORAGE =
4  * 0 Hard coded, minmal program and eeprom usage.
5  * 1 Stored in fixed eeprom locations, rewritten from flash if corrupt.
6  * This allows parameter changes using a hardware programmer or custom application code.
7  * Corruption test is based on channel verify so get the channel before anything else!
8  * 2 Obtained from eeprom using the general settings manager and read from program flash if not present.
9  * Useful for for testing builds without wearing out eeprom memory.
10  * 3 Obtained from eeprom using the settings manager and rewritten from flash if not present.
11  * This ensures all parameters are present in upper eeprom flash.
12  *
13  * Note the parameters in this file can be changed without forcing a complete rebuild.
14  */
15 //#define PARAMETER_STORAGE 0
16 //#define PARAMETER_STORAGE 1 //+476
17 //#define PARAMETER_STORAGE 2 //+2045
18 //#define PARAMETER_STORAGE 3 //+2144
19 
20 //#define CONTIKI_CONF_SETTINGS_MANAGER 1
21 //#define CONTIKI_CONF_RANDOM_MAC 1 //adds 78 bytes
22 
23 #if CONTIKI_CONF_SETTINGS_MANAGER
24 #if MCU_CONF_LOW_WEAR
25 #define PARAMETER_STORAGE 2
26 #else
27 #define PARAMETER_STORAGE 3
28 #endif
29 #else
30 #if MCU_CONF_LOW_WEAR
31 #define PARAMETER_STORAGE 0
32 #else
33 #define PARAMETER_STORAGE 1
34 #endif
35 #endif
36 
37 /* Include settings.h, then dummy out the write routines */
38 #include "settings.h"
39 #if PARAMETER_STORAGE==2
40 #define settings_add(...) 0
41 #define settings_add_uint8(...) 0
42 #define settings_add_uint16(...) 0
43 #endif
44 
45 #if AVR_WEBSERVER
46 /* Webserver builds can set some defaults in httpd-fsdata.c via makefsdata.h */
47 extern uint8_t eemem_mac_address[8];
48 extern uint8_t eemem_server_name[16];
49 extern uint8_t eemem_domain_name[30];
50 #endif
51 
52 #ifdef SERVER_NAME
53 #define PARAMS_SERVERNAME SERVER_NAME
54 #else
55 #define PARAMS_SERVERNAME "Raven_webserver"
56 #endif
57 #ifdef DOMAIN_NAME
58 #define PARAMS_DOMAINNAME DOMAIN_NAME
59 #else
60 #define PARAMS_DOMAINNAME "localhost"
61 #endif
62 #ifdef NODE_ID
63 #define PARAMS_NODEID NODE_ID
64 #else
65 #define PARAMS_NODEID 0
66 #endif
67 #ifdef CHANNEL_802_15_4
68 #define PARAMS_CHANNEL CHANNEL_802_15_4
69 #else
70 #define PARAMS_CHANNEL 26
71 #endif
72 #ifdef IEEE802154_PANID
73 #define PARAMS_PANID IEEE802154_PANID
74 #else
75 #define PARAMS_PANID 0xABCD
76 #endif
77 #ifdef IEEE802154_PANADDR
78 #define PARAMS_PANADDR IEEE802154_PANADDR
79 #else
80 #define PARAMS_PANADDR 0
81 #endif
82 #ifdef RF230_MAX_TX_POWER
83 #define PARAMS_TXPOWER RF230_MAX_TX_POWER
84 #else
85 #define PARAMS_TXPOWER 0
86 #endif
87 #ifdef EUI64_ADDRESS
88 #define PARAMS_EUI64ADDR EUI64_ADDRESS
89 #else
90 /* This form of of EUI64 mac allows full 6LoWPAN header compression from mac address */
91 #if UIP_CONF_LL_802154
92 //#define PARAMS_EUI64ADDR {0x02, 0xNN, 0xNN, 0xNN, 0xNN, 0xNN, 0xNN, 0xNN}
93 #define PARAMS_EUI64ADDR {0x02, 0x11, 0x22, 0xff, 0xfe, 0x33, 0x44, 0x55};
94 #else
95 //#define PARAMS_EUI64ADDR {0x02, 0xNN, 0xNN, 0xff, 0xfe, 0xNN, 0xNN, 0xNN}
96 #define PARAMS_EUI64ADDR {0x02, 0x11, 0x22, 0xff, 0xfe, 0x33, 0x44, 0x55};
97 #endif
98 /* This form of of EUI64 mac allows 16 bit 6LoWPAN header compression on multihops */
99 //#define PARAMS_EUI64ADDR {0x02, 0x00, 0x00, 0xff, 0xfe, 0x00, 0xNN, 0xNN}
100 #endif
101 
102 uint8_t params_get_eui64(uint8_t *eui64);
103 #if PARAMETER_STORAGE==0
104 /* Hard coded program flash parameters */
105 #define params_get_servername(...)
106 #define params_get_nodeid(...) PARAMS_NODEID
107 #define params_get_channel(...) PARAMS_CHANNEL
108 #define params_get_panid(...) PARAMS_PANID
109 #define params_get_panaddr(...) PARAMS_PANADDR
110 #define params_get_txpower(...) PARAMS_TXPOWER
111 #else
112 /* Parameters stored in eeprom */
113 uint16_t params_get_nodeid(void);
114 uint8_t params_get_channel(void);
115 uint16_t params_get_panid(void);
116 uint16_t params_get_panaddr(void);
117 uint8_t params_get_txpower(void);
118 #endif
119 
120 #endif /* PARAMS_H_ */
Settings Manager.