Commit graph

47 commits

Author SHA1 Message Date
Robert Quattlebaum 535e90343c Merge pull request #144 from darconeous/pull-requests/settings-for-all-targets
core/lib/settings: Generalized settings manager to work on any platform
2013-05-18 12:03:09 -07:00
Robert Quattlebaum 28a1e40ebd core/lib/settings: Generalized Settings Manager to work on any platform
This commit moves the Settings Manager from the AVR codebase
into the Contiki core library. Any platform that implements
the Contiki EEPROM API can now use the Settings Manager's
key-value store for storing their persistent configuration info.

The Settings Manager is a EEPROM-based key-value store. Keys
are 16-bit integers and values may be up to 16,383 bytes long.
It is intended to be used to store configuration-related information,
like network settings, radio channels, etc.

 * Robust data format which requires no initialization.
 * Supports multiple values with the same key.
 * Data can be appended without erasing EEPROM.
 * Max size of settings data can be easily increased in the future,
   as long as it doesn't overlap with application data.

The format was inspired by the [OLPC manufacturing data format][].

Since the beginning of EEPROM often contains application-specific
information, the best place to store settings is at the end of EEPROM
(the "top"). Because we are starting at the end of EEPROM, it makes
sense to grow the list of key-value pairs downward, toward the start of
EEPROM.

Each key-value pair is stored in memory in the following format:

Order    | Size     | Name         | Description
--------:|---------:|--------------|-------------------------------
       0 |        2 | `key`        | 16-bit key
      -2 |        1 | `size_check` | One's-complement of next byte
      -3 |   1 or 2 | `size`       | The size of `value`, in bytes
-4 or -5 | variable | `value`      | Value associated with `key`

The end of the key-value pairs is denoted by the first invalid entry.
An invalid entry has any of the following attributes:

 * The `size_check` byte doesn't match the one's compliment of the
   `size` byte (or `size_low` byte).
 * The key has a value of 0x0000.

[OLPC manufacturing data format]: http://wiki.laptop.org/go/Manufacturing_data
2013-03-20 11:57:13 -07:00
Adam Dunkels 277a348f60 Changed the name of the IPv6 number of route entries configuration from UIP_CONF_DS6_ROUTE_NBU to UIP_CONF_MAX_ROUTES. 2013-03-18 11:12:44 +01:00
Ivan Delamer b43dad00b0 Cleaned up RF230BB, and refactored FRAME_RETRIES and CSMA_RETRIES
#defines.
2012-09-04 11:12:18 -06:00
David Kopf cac4e9a222 Add clock_delay_us and clock_set_seconds to clock.h. Modify clock_wait to use clock_time_t.
Remove the troublesome avr/dev/delay.* files.
Add PLATFORM_NAME and combine the confusing *_REVISION defines into a single PLATFORM_TYPE
2012-04-09 15:49:53 -04:00
Matthias Kovatsch 87cd18539b Eliminated RPL_CONF_ADJUST_LLH_LEN correction by using uip_l3_icmp_hdr_len instead of uip_l2_l3_icmp_hdr_len. 2012-03-08 00:48:04 +01:00
David Kopf deb75d3d97 Several bugfixes 2012-02-21 11:14:52 -05:00
Nicholas J Humfrey 680225e99d Converted u8_t to uint8_t and u16_t to uint16_t in the platforms directory.
Added "These names are deprecated, use C99 names" warnings the contiki-conf.h files that were missing it.
2012-02-21 08:33:25 -05:00
David Kopf dff77aea61 Correct typo 2011-08-25 14:37:12 -04:00
David Kopf 83e3b99d54 Let RPL examples enable platform RPL 2011-08-15 14:45:44 -04:00
David Kopf 50d1086553 Add changes needed for contikimac 2011-08-13 11:38:38 -04:00
dak664 d6db9e4e86 Add project-conf.h to platform contiki-conf.h files.
Fix jackdaw comments.
2011-06-08 09:12:57 -04:00
dak664 4e8b4e408c Temporary fix for RNDIS enumeration before the mac address is set up.
(Turn on RS232 debug to bypass the enumeration wait and let the mac address get set first)
2011-03-27 14:21:47 -04:00
dak664 a9cbbb4570 Add sneezer mode and tx power change 2011-03-23 18:08:07 -04:00
dak664 5dd7500d0b Add configurable auto cca threshold and implement driver cca call.
Show smallest rssi in jackdaw menu.
2011-03-21 11:10:30 -04:00
dak664 ef4bb08c3e Add stack monitor. Change internal uip address to 200 for RPL. 2011-02-23 14:14:21 -05:00
dak664 b438b78097 Fix configuration for RPL build (no packet queuing, default no TCP) 2010-12-18 22:37:02 +00:00
dak664 9575daede2 Add working cx-max configuration values. 2010-12-18 20:53:36 +00:00
dak664 d8fe44645c Refactor, tune, add SICSLOWPAN_CONF_ACK_ALL defines for testing radio acks 2010-12-14 22:39:38 +00:00
dak664 a9dedfee4f Refactor contiki-conf files, remove obsolete defines. 2010-12-13 23:31:13 +00:00
dak664 58b7a19803 Hardware/software radio HAL patch from Roger Larsson.
Use CHANNEL_802_15_4 define for RF channel on all AVR platforms, default 26.
Remove hopefully unnecessary interrupt disable wrapper on eeprom reads and writes.
2010-12-03 20:42:01 +00:00
dak664 3d3ad9e2c2 Fixes to allow ipv4 (hello world) builds 2010-12-01 16:23:55 +00:00
dak664 0735b431aa Enable RPL neighbor webserver page 2010-11-29 21:21:36 +00:00
dak664 dc028b3f85 Get rssi correctly in either rx mode, clean up radio driver debugging 2010-11-26 20:39:15 +00:00
dak664 880233a451 RSSI read fix (use ED register in AACK mode), add reduced power configuration for miniature mesh testing. 2010-11-24 18:46:57 +00:00
dak664 b3324c6d23 Add menu option to temporarily disable RS232 debug output for higher 6lowpan throughput.
Functional rpl with RNDIS/Ubuntu (tested on Raven single hops)
2010-11-19 20:02:25 +00:00
dak664 72d49c20af Allow non-ipv6 build (hello world) 2010-11-12 20:49:03 +00:00
dak664 ad6712736b Fix Windows XP RNDIS+CDC serial port enumeration 2010-10-28 19:30:14 +00:00
dak664 258e3cc93a Allow simultaneous use of RS232 and USB serial ports 2010-10-27 14:51:20 +00:00
dak664 123e3cae41 Fix compiler warnings 2010-10-23 15:26:46 +00:00
dak664 110bc0242e Merge CDC-ECM, RNG, DFU bootloader, watchdog, settings manager, energy scan routines of Robert Quattlebaum 2010-09-17 21:59:09 +00:00
dak664 6d3c276e7e Add rpl configuration and webserver options. 2010-09-14 19:13:05 +00:00
dak664 b706c48efd Add experimental RPL code
Change RF channel to 26 for econotag compatibility
2010-08-03 19:55:42 +00:00
dak664 cae40439d7 Add optional RS232 debugging 2010-03-15 18:56:13 +00:00
dak664 d3697344ec Update for NETSTACK_CONF_FRAMER 2010-03-02 16:25:47 +00:00
dak664 feb6aa0ed2 Change back to SICSLOWPAN_COMPRESSION_HC06 from SICSLOWPAN_COMPRESSION_HC01 2010-02-28 21:39:40 +00:00
dak664 39e6f6a830 Clean up, functional webserver for further testing of low power protocols 2010-02-28 21:29:19 +00:00
c_oflynn b5b77ac47a Use new HC06 2010-02-26 10:55:00 +00:00
dak664 64d57a3dd8 Update jackdaw to new radio driver interface 2010-02-23 17:35:49 +00:00
dak664 6df1e0ca58 add experimental cxmac code 2010-02-18 17:24:12 +00:00
dak664 72e1528ea7 Make sicslowmac the default! 2010-02-16 23:42:06 +00:00
dak664 53801ffbb1 Add optional RF230BB radio driver 2010-02-16 22:17:51 +00:00
dak664 e12e794a74 QUEUEBUF fragmentation defines 2010-02-08 22:22:27 +00:00
c_oflynn 5ec6412fbc *Support for Atmel 'Router Under Mac' (RUM) in Jackdaw 2008-12-10 21:26:05 +00:00
c_oflynn 9fb2c9d836 * Addition of Meshnetics Zigbig platform by Frederic Thepaut <frederic.thepaut@inooi.com>
* Changed default RavenUSB timeout to 3 seconds... seems to give most reliable transmissions
2008-11-29 15:55:02 +00:00
c_oflynn 42dd7c37fc Changed timeout to 1 second on fragmentation 2008-11-16 16:07:13 +00:00
adamdunkels 0a961b2ada Contiki port for the Atmel AVR Raven board 2008-10-14 09:40:30 +00:00