simple project to control mirrorless camera

Dependencies:   mbed BLE_API nRF51822

Committer:
vilesovds
Date:
Fri Aug 02 08:22:18 2019 +0000
Revision:
4:adfb32273577
Parent:
0:81f1818af032
Simple project to control mirrorless camera

Who changed what in which revision?

UserRevisionLine numberNew 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