56 lines
1.5 KiB
C++
56 lines
1.5 KiB
C++
#include "pxt.h"
|
|
|
|
/**
|
|
* Provides access to persistent storage functionality.
|
|
*/
|
|
namespace storage {
|
|
/**
|
|
* Saves a key value pair in the non volatile storage
|
|
* @param key the key for accesing the value
|
|
* @param value value to store
|
|
*/
|
|
//% weight=100 blockGap=16
|
|
//% block="Put into %key a value of %value as number"
|
|
//% blockId=storage_put_value
|
|
//% value.defl=0
|
|
//% group="Put"
|
|
//% blockHidden=true
|
|
void putValue(String key, String value) {
|
|
uBit.storage.put(MSTR(key), (uint8_t *)&value, sizeof(int));
|
|
}
|
|
|
|
/**
|
|
* Reads a key value pair from the non volatile storage
|
|
* @param key the key for accesing the value
|
|
*/
|
|
//% weight=100 blockGap=16
|
|
//% block="get number from %key"
|
|
//% blockId=storage_get_value
|
|
//% group="Get"
|
|
//% blockHidden=true
|
|
String getValue(String key) {
|
|
KeyValuePair* data = uBit.storage.get(MSTR(key));
|
|
String stored;
|
|
if(data == NULL) {
|
|
return mkString("", -1);
|
|
} else {
|
|
memcpy(&stored, data->value, sizeof(int));
|
|
delete data;
|
|
return stored;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Reads a key value pair from the non volatile storage
|
|
* @param key the key for accesing the value
|
|
*/
|
|
//% weight=100 blockGap=16
|
|
//% block="remove %key"
|
|
//% blockId=storage_remove
|
|
//% group="Remove"
|
|
//% blockHidden=true
|
|
void remove(String key) {
|
|
uBit.storage.remove(MSTR(key));
|
|
}
|
|
|
|
} |