Commit graph

91 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
Robert Quattlebaum d454a7ca96 httpd-simple-avr: 'isused' seems to not be used anymore. 2013-02-28 22:08:28 -08:00
Adam Dunkels 944537fccf Removed all old RCS tags in the Contiki source tree. Those RCS tags are not used any more, as we are now using git to manage the Contiki source tree 2012-10-26 15:54:49 +02: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
David Kopf 6e45dfe5ff PROGMEM changes needed for newer avr-gcc compiler 2012-02-21 11:10:57 -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
Nicolas Tsiftes 0e32956a63 Merge remote-tracking branch 'sf/master' into rpl-patch 2011-11-21 14:59:31 +01:00
David Kopf bdec65b889 Fix typos and file endings 2011-08-28 16:04:36 -04: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
David Kopf f36c97a9a4 Get random seed from noisy ADC conversion at startup. 2011-08-13 11:31:20 -04:00
David Kopf 6355545ded Add template for AUTOSTART_PROCESS 2011-07-11 11:34:04 -04:00
Vincent Brillault dc9cbe647d Changes in RPL implementation :
- Structural modification of RPL data storage.
- Support multiple gateways (multiple DODAG-ID with a unique InstanceID)
- Use Lollipop counters
- Add leaf-only configuration option for RPL
Bugfix :
- Correctly send "Grounded" flag in DIO
2011-07-11 16:52:45 +02: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 fcb41fa5c2 Refactor with settings manager and better usb enumeration for debug prints 2011-03-23 18:10:49 -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 b33b89216f Delete obsolete file 2011-02-07 14:35:19 -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 aa7ad8c807 Add rf230_listen_channel routine to force RX_ON state for sniffing and to read rssi for energy scan. 2010-12-15 16:50:44 +00:00
dak664 ced88c2eff Give jackdaw fe80::0 address and number webservers from fe80::1 2010-12-14 23:22:01 +00:00
dak664 1d2a5ca671 Minor format and comment changes 2010-12-14 22:51:04 +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 35b2ce0cdb Add status page link, show correct rssi, fix indexing off array in ipv4 builds 2010-12-04 21:32:35 +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 5a4fa388da Refuse to play ping-pong with host interface 2010-11-29 21:22:41 +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 da8ad17c02 Save 256 bytes of RAM by excluding floating point routine 2010-11-21 17:56:36 +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 fe19719a16 Fix printf_P error 2010-11-18 14:33:10 +00:00
dak664 cc7fea92d2 Force ipv6 when building with fakeuip 2010-11-13 16:28:46 +00:00
dak664 72d49c20af Allow non-ipv6 build (hello world) 2010-11-12 20:49:03 +00:00
dak664 acd9d516d8 Add RPL neighbors and routes printout to Jackdaw menu 2010-11-05 20:35:15 +00:00
dak664 9194b3ac69 Fix error when RS232 not enabled 2010-10-28 19:31:28 +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