simple project to control mirrorless camera

Dependencies:   mbed BLE_API nRF51822

Store/FlashStore.h

Committer:
vilesovds
Date:
2019-08-02
Revision:
4:adfb32273577
Parent:
0:81f1818af032

File content as of revision 4:adfb32273577:

#ifndef MBED_FLASHSTORE_H
#define MBED_FLASHSTORE_H
 
#include "mbed.h"

#include "pstorage.h"
#include "nrf_error.h"

struct settings {
    char devicever[10];
    char devicepin[4];
    char devicename[20];
    int deviceblemajor;
    int devicebleminor;
    int devicepower;
};

struct measure {
  long madatetime;
  float measurevaue;
};



class FlashStore {
public:
    
    FlashStore(Serial &_Serial) : Tserial(_Serial)        
    {
        storestate = 0;
        void setupStore(void);
    }       
    
    void saveSettings(char name[20], char pin[4], int power, int bleMinor, int bleMajor, char version[10]) {
                
        settings toSave;
                
      //  toSave.devicename = name;
      //  toSave.devicepin = pin;
        toSave.devicepower = power;
        toSave.devicebleminor = bleMinor;
        toSave.deviceblemajor = bleMajor;
      //  toSave.devicever = version;
        
        tempstate = pstorage_store(&settingsHandle, (uint8_t *)&toSave, sizeof(toSave), 0);
        Tserial.printf("FlashStore saveSettings\r\n");
        
        if (tempstate == NRF_SUCCESS) {
            Tserial.printf("FlashStore saveSettings - ok! \r\n");
        }
        
    }
    
     void readSettings(void) {
        
        settings toLoad;
        
        tempstate = pstorage_load((uint8_t *)&toLoad, &settingsHandle, sizeof(toLoad), 0);
        Tserial.printf("FlashStore readSettings\r\n");
        if (tempstate == NRF_SUCCESS) {
        
            Tserial.printf("FlashStore readSettings - ok: %s\r\n", toLoad.devicename );     
             
        }
        
        
        
        Tserial.printf("FlashStore Read It\r\n");
    }



    
private:  
   Serial &Tserial; // tx, rx
   uint32_t storestate; // 0 - not init, 1 - not register, 2 - not measure register, 3 - ok
   uint32_t tempstate;
   pstorage_handle_t settingsHandle, measureHandle;
   pstorage_module_param_t settingsParams, measureParams;
   
    void setupStore(void) {
        tempstate = pstorage_init(); 
        
        if(tempstate == NRF_SUCCESS) {
            
            storestate = 1;                    
            
            settingsParams.block_size  = sizeof(settings);
            settingsParams.block_count = 1; 
            settingsParams.cb = cb_handler;            
            tempstate = pstorage_register(&settingsParams, &settingsHandle);
            
            if (tempstate == NRF_SUCCESS)
            {
                storestate = 2;                                                
            }                           
        }
        
        Tserial.printf("FlashStore up\r\n");
    }
   
   
    static void cb_handler(pstorage_handle_t  * handle,
                               uint8_t              op_code,
                               uint32_t             result,
                               uint8_t            * p_data,
                               uint32_t             data_len)
    {
        //Tserial.printf("Callback handler successful\r\n");
    }
    
   
    
};
 
#endif