
simple project to control mirrorless camera
Dependencies: mbed BLE_API nRF51822
Store/FlashStore.h@0:81f1818af032, 2015-10-21 (annotated)
- Committer:
- suhamera
- Date:
- Wed Oct 21 11:32:45 2015 +0000
- Revision:
- 0:81f1818af032
Beta 1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suhamera | 0:81f1818af032 | 1 | #ifndef MBED_FLASHSTORE_H |
suhamera | 0:81f1818af032 | 2 | #define MBED_FLASHSTORE_H |
suhamera | 0:81f1818af032 | 3 | |
suhamera | 0:81f1818af032 | 4 | #include "mbed.h" |
suhamera | 0:81f1818af032 | 5 | |
suhamera | 0:81f1818af032 | 6 | #include "pstorage.h" |
suhamera | 0:81f1818af032 | 7 | #include "nrf_error.h" |
suhamera | 0:81f1818af032 | 8 | |
suhamera | 0:81f1818af032 | 9 | struct settings { |
suhamera | 0:81f1818af032 | 10 | char devicever[10]; |
suhamera | 0:81f1818af032 | 11 | char devicepin[4]; |
suhamera | 0:81f1818af032 | 12 | char devicename[20]; |
suhamera | 0:81f1818af032 | 13 | int deviceblemajor; |
suhamera | 0:81f1818af032 | 14 | int devicebleminor; |
suhamera | 0:81f1818af032 | 15 | int devicepower; |
suhamera | 0:81f1818af032 | 16 | }; |
suhamera | 0:81f1818af032 | 17 | |
suhamera | 0:81f1818af032 | 18 | struct measure { |
suhamera | 0:81f1818af032 | 19 | long madatetime; |
suhamera | 0:81f1818af032 | 20 | float measurevaue; |
suhamera | 0:81f1818af032 | 21 | }; |
suhamera | 0:81f1818af032 | 22 | |
suhamera | 0:81f1818af032 | 23 | |
suhamera | 0:81f1818af032 | 24 | |
suhamera | 0:81f1818af032 | 25 | class FlashStore { |
suhamera | 0:81f1818af032 | 26 | public: |
suhamera | 0:81f1818af032 | 27 | |
suhamera | 0:81f1818af032 | 28 | FlashStore(Serial &_Serial) : Tserial(_Serial) |
suhamera | 0:81f1818af032 | 29 | { |
suhamera | 0:81f1818af032 | 30 | storestate = 0; |
suhamera | 0:81f1818af032 | 31 | void setupStore(void); |
suhamera | 0:81f1818af032 | 32 | } |
suhamera | 0:81f1818af032 | 33 | |
suhamera | 0:81f1818af032 | 34 | void saveSettings(char name[20], char pin[4], int power, int bleMinor, int bleMajor, char version[10]) { |
suhamera | 0:81f1818af032 | 35 | |
suhamera | 0:81f1818af032 | 36 | settings toSave; |
suhamera | 0:81f1818af032 | 37 | |
suhamera | 0:81f1818af032 | 38 | // toSave.devicename = name; |
suhamera | 0:81f1818af032 | 39 | // toSave.devicepin = pin; |
suhamera | 0:81f1818af032 | 40 | toSave.devicepower = power; |
suhamera | 0:81f1818af032 | 41 | toSave.devicebleminor = bleMinor; |
suhamera | 0:81f1818af032 | 42 | toSave.deviceblemajor = bleMajor; |
suhamera | 0:81f1818af032 | 43 | // toSave.devicever = version; |
suhamera | 0:81f1818af032 | 44 | |
suhamera | 0:81f1818af032 | 45 | tempstate = pstorage_store(&settingsHandle, (uint8_t *)&toSave, sizeof(toSave), 0); |
suhamera | 0:81f1818af032 | 46 | Tserial.printf("FlashStore saveSettings\r\n"); |
suhamera | 0:81f1818af032 | 47 | |
suhamera | 0:81f1818af032 | 48 | if (tempstate == NRF_SUCCESS) { |
suhamera | 0:81f1818af032 | 49 | Tserial.printf("FlashStore saveSettings - ok! \r\n"); |
suhamera | 0:81f1818af032 | 50 | } |
suhamera | 0:81f1818af032 | 51 | |
suhamera | 0:81f1818af032 | 52 | } |
suhamera | 0:81f1818af032 | 53 | |
suhamera | 0:81f1818af032 | 54 | void readSettings(void) { |
suhamera | 0:81f1818af032 | 55 | |
suhamera | 0:81f1818af032 | 56 | settings toLoad; |
suhamera | 0:81f1818af032 | 57 | |
suhamera | 0:81f1818af032 | 58 | tempstate = pstorage_load((uint8_t *)&toLoad, &settingsHandle, sizeof(toLoad), 0); |
suhamera | 0:81f1818af032 | 59 | Tserial.printf("FlashStore readSettings\r\n"); |
suhamera | 0:81f1818af032 | 60 | if (tempstate == NRF_SUCCESS) { |
suhamera | 0:81f1818af032 | 61 | |
suhamera | 0:81f1818af032 | 62 | Tserial.printf("FlashStore readSettings - ok: %s\r\n", toLoad.devicename ); |
suhamera | 0:81f1818af032 | 63 | |
suhamera | 0:81f1818af032 | 64 | } |
suhamera | 0:81f1818af032 | 65 | |
suhamera | 0:81f1818af032 | 66 | |
suhamera | 0:81f1818af032 | 67 | |
suhamera | 0:81f1818af032 | 68 | Tserial.printf("FlashStore Read It\r\n"); |
suhamera | 0:81f1818af032 | 69 | } |
suhamera | 0:81f1818af032 | 70 | |
suhamera | 0:81f1818af032 | 71 | |
suhamera | 0:81f1818af032 | 72 | |
suhamera | 0:81f1818af032 | 73 | |
suhamera | 0:81f1818af032 | 74 | private: |
suhamera | 0:81f1818af032 | 75 | Serial &Tserial; // tx, rx |
suhamera | 0:81f1818af032 | 76 | uint32_t storestate; // 0 - not init, 1 - not register, 2 - not measure register, 3 - ok |
suhamera | 0:81f1818af032 | 77 | uint32_t tempstate; |
suhamera | 0:81f1818af032 | 78 | pstorage_handle_t settingsHandle, measureHandle; |
suhamera | 0:81f1818af032 | 79 | pstorage_module_param_t settingsParams, measureParams; |
suhamera | 0:81f1818af032 | 80 | |
suhamera | 0:81f1818af032 | 81 | void setupStore(void) { |
suhamera | 0:81f1818af032 | 82 | tempstate = pstorage_init(); |
suhamera | 0:81f1818af032 | 83 | |
suhamera | 0:81f1818af032 | 84 | if(tempstate == NRF_SUCCESS) { |
suhamera | 0:81f1818af032 | 85 | |
suhamera | 0:81f1818af032 | 86 | storestate = 1; |
suhamera | 0:81f1818af032 | 87 | |
suhamera | 0:81f1818af032 | 88 | settingsParams.block_size = sizeof(settings); |
suhamera | 0:81f1818af032 | 89 | settingsParams.block_count = 1; |
suhamera | 0:81f1818af032 | 90 | settingsParams.cb = cb_handler; |
suhamera | 0:81f1818af032 | 91 | tempstate = pstorage_register(&settingsParams, &settingsHandle); |
suhamera | 0:81f1818af032 | 92 | |
suhamera | 0:81f1818af032 | 93 | if (tempstate == NRF_SUCCESS) |
suhamera | 0:81f1818af032 | 94 | { |
suhamera | 0:81f1818af032 | 95 | storestate = 2; |
suhamera | 0:81f1818af032 | 96 | } |
suhamera | 0:81f1818af032 | 97 | } |
suhamera | 0:81f1818af032 | 98 | |
suhamera | 0:81f1818af032 | 99 | Tserial.printf("FlashStore up\r\n"); |
suhamera | 0:81f1818af032 | 100 | } |
suhamera | 0:81f1818af032 | 101 | |
suhamera | 0:81f1818af032 | 102 | |
suhamera | 0:81f1818af032 | 103 | static void cb_handler(pstorage_handle_t * handle, |
suhamera | 0:81f1818af032 | 104 | uint8_t op_code, |
suhamera | 0:81f1818af032 | 105 | uint32_t result, |
suhamera | 0:81f1818af032 | 106 | uint8_t * p_data, |
suhamera | 0:81f1818af032 | 107 | uint32_t data_len) |
suhamera | 0:81f1818af032 | 108 | { |
suhamera | 0:81f1818af032 | 109 | //Tserial.printf("Callback handler successful\r\n"); |
suhamera | 0:81f1818af032 | 110 | } |
suhamera | 0:81f1818af032 | 111 | |
suhamera | 0:81f1818af032 | 112 | |
suhamera | 0:81f1818af032 | 113 | |
suhamera | 0:81f1818af032 | 114 | }; |
suhamera | 0:81f1818af032 | 115 | |
suhamera | 0:81f1818af032 | 116 | #endif |