Tema SCPI Negru Rares-Razvan
Dependencies: BLE_API mbed nRF51822
Fork of nRF51822_TemperatureEx by
myData.h@9:303d3628986a, 2016-04-25 (annotated)
- Committer:
- tanasaro10
- Date:
- Mon Apr 25 19:34:39 2016 +0000
- Revision:
- 9:303d3628986a
- Parent:
- 8:f28ad4600b0f
- Child:
- 11:baafa4f7a15e
Major rework on the code and extended functionality added. Detailed explanations are given in read_me.md file.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tanasaro10 | 9:303d3628986a | 1 | #include "ble_flash.h" |
tanasaro10 | 9:303d3628986a | 2 | #include "mbed.h" |
tanasaro10 | 9:303d3628986a | 3 | |
tanasaro10 | 9:303d3628986a | 4 | #define MAXBUFFER 99u //(((BLE_FLASH_PAGE_SIZE - 4 - sizeof(myData_t))/sizeof(myDataL_t)) |
tanasaro10 | 9:303d3628986a | 5 | #define MAX_WORD_PAGE_DATA 254u // to be computed as round_next_int(MAXBUFFER*sizeof(myDataL_t)+sizeof(myData_t)) |
tanasaro10 | 9:303d3628986a | 6 | |
tanasaro10 | 9:303d3628986a | 7 | #define MAX_PAGE_NUM (NRF_FICR->CODESIZE - 1) // 255 |
tanasaro10 | 9:303d3628986a | 8 | #define MIN_PAGE_NUM 155u |
tanasaro10 | 8:f28ad4600b0f | 9 | |
tanasaro10 | 8:f28ad4600b0f | 10 | typedef struct{ |
tanasaro10 | 8:f28ad4600b0f | 11 | uint8_t hour; |
tanasaro10 | 8:f28ad4600b0f | 12 | uint8_t min; |
tanasaro10 | 8:f28ad4600b0f | 13 | uint8_t sec; |
tanasaro10 | 8:f28ad4600b0f | 14 | } mtime_t; |
tanasaro10 | 8:f28ad4600b0f | 15 | |
tanasaro10 | 8:f28ad4600b0f | 16 | typedef struct{ |
tanasaro10 | 8:f28ad4600b0f | 17 | mtime_t currentTime; |
tanasaro10 | 8:f28ad4600b0f | 18 | mtime_t newTime; |
tanasaro10 | 8:f28ad4600b0f | 19 | bool updateTime; // true if currentTime needs to be updated with newTime; |
tanasaro10 | 8:f28ad4600b0f | 20 | } mtime_manager_t; |
tanasaro10 | 8:f28ad4600b0f | 21 | |
tanasaro10 | 8:f28ad4600b0f | 22 | |
tanasaro10 | 8:f28ad4600b0f | 23 | typedef struct { |
tanasaro10 | 9:303d3628986a | 24 | uint8_t year; // 20_XX, 2016 => 16; |
tanasaro10 | 8:f28ad4600b0f | 25 | uint8_t month; // 1..12 |
tanasaro10 | 9:303d3628986a | 26 | uint8_t day; // 1..31 |
tanasaro10 | 8:f28ad4600b0f | 27 | }date_t; |
tanasaro10 | 8:f28ad4600b0f | 28 | |
tanasaro10 | 8:f28ad4600b0f | 29 | |
tanasaro10 | 8:f28ad4600b0f | 30 | typedef struct{ |
tanasaro10 | 8:f28ad4600b0f | 31 | date_t currentDate; |
tanasaro10 | 8:f28ad4600b0f | 32 | date_t newDate; |
tanasaro10 | 8:f28ad4600b0f | 33 | bool updateDate; // true if currentDate needs to be updated with newDate; |
tanasaro10 | 8:f28ad4600b0f | 34 | } mdate_manager_t; |
tanasaro10 | 8:f28ad4600b0f | 35 | |
tanasaro10 | 9:303d3628986a | 36 | typedef enum { |
tanasaro10 | 9:303d3628986a | 37 | eStartAdvertising =0, |
tanasaro10 | 9:303d3628986a | 38 | eStopAdvertising =1, |
tanasaro10 | 9:303d3628986a | 39 | eDisconnect =2 |
tanasaro10 | 9:303d3628986a | 40 | } connection_update_t; |
tanasaro10 | 8:f28ad4600b0f | 41 | |
tanasaro10 | 8:f28ad4600b0f | 42 | typedef struct { |
tanasaro10 | 9:303d3628986a | 43 | uint16_t light; |
tanasaro10 | 9:303d3628986a | 44 | uint16_t gndV; |
tanasaro10 | 9:303d3628986a | 45 | uint16_t temp; |
tanasaro10 | 8:f28ad4600b0f | 46 | bool led_on; |
tanasaro10 | 9:303d3628986a | 47 | bool led2_on; |
tanasaro10 | 9:303d3628986a | 48 | } myPayload_t; |
tanasaro10 | 9:303d3628986a | 49 | |
tanasaro10 | 9:303d3628986a | 50 | |
tanasaro10 | 9:303d3628986a | 51 | typedef struct { |
tanasaro10 | 9:303d3628986a | 52 | myPayload_t data; |
tanasaro10 | 9:303d3628986a | 53 | uint8_t sec; |
tanasaro10 | 9:303d3628986a | 54 | uint8_t min; |
tanasaro10 | 9:303d3628986a | 55 | } myDataL_t; |
tanasaro10 | 9:303d3628986a | 56 | |
tanasaro10 | 9:303d3628986a | 57 | typedef struct { |
tanasaro10 | 9:303d3628986a | 58 | myPayload_t data; |
tanasaro10 | 8:f28ad4600b0f | 59 | mtime_t time; |
tanasaro10 | 8:f28ad4600b0f | 60 | date_t date; |
tanasaro10 | 8:f28ad4600b0f | 61 | } myData_t; |
tanasaro10 | 8:f28ad4600b0f | 62 | |
tanasaro10 | 9:303d3628986a | 63 | typedef struct { |
tanasaro10 | 9:303d3628986a | 64 | myData_t startData; |
tanasaro10 | 9:303d3628986a | 65 | myDataL_t myData[MAXBUFFER]; |
tanasaro10 | 9:303d3628986a | 66 | } myDataLog_t; |
tanasaro10 | 9:303d3628986a | 67 | |
tanasaro10 | 9:303d3628986a | 68 | typedef struct { |
tanasaro10 | 9:303d3628986a | 69 | myData_t startData; |
tanasaro10 | 9:303d3628986a | 70 | myDataL_t myData; |
tanasaro10 | 9:303d3628986a | 71 | } myDataLogShort_t; |
tanasaro10 | 9:303d3628986a | 72 | |
tanasaro10 | 9:303d3628986a | 73 | /* Return current page to be written in Flash */ |
tanasaro10 | 9:303d3628986a | 74 | uint8_t flash_currPage(); |
tanasaro10 | 9:303d3628986a | 75 | |
tanasaro10 | 9:303d3628986a | 76 | /* Return next page to be written in Flash */ |
tanasaro10 | 9:303d3628986a | 77 | uint8_t flash_go_nextPage(); |
tanasaro10 | 9:303d3628986a | 78 | |
tanasaro10 | 9:303d3628986a | 79 | /* Return page-N (thas has been written in Flash) */ |
tanasaro10 | 9:303d3628986a | 80 | uint8_t flash_prev_N_Page(uint8_t nr_of_pages); |
tanasaro10 | 8:f28ad4600b0f | 81 | |
tanasaro10 | 9:303d3628986a | 82 | /* save the current page Nr to flash*/ |
tanasaro10 | 9:303d3628986a | 83 | void save_flash_curr_pageNr(date_t mdata); |
tanasaro10 | 9:303d3628986a | 84 | |
tanasaro10 | 9:303d3628986a | 85 | /* load from flash the current PageNr*/ |
tanasaro10 | 9:303d3628986a | 86 | void load_flash_curr_pageNr(date_t* mdata); |
tanasaro10 | 9:303d3628986a | 87 | |
tanasaro10 | 9:303d3628986a | 88 | /*search the latest page written and extract the page_nr, date, and time*/ |
tanasaro10 | 9:303d3628986a | 89 | void search_latest_in_flash(date_t * outDate, mtime_t * outTime); |
tanasaro10 | 9:303d3628986a | 90 | |
tanasaro10 | 9:303d3628986a | 91 | /* Update current date and time with tseconds and also if there is a new date/time given */ |
tanasaro10 | 9:303d3628986a | 92 | void update_time(mtime_manager_t* myTimeVar, mdate_manager_t* myDateVar, uint16_t tseconds); |
tanasaro10 | 9:303d3628986a | 93 | |
tanasaro10 | 9:303d3628986a | 94 | /* Update buzzer with period in ms =0..9 and duty cycle = 0..9*/ |
tanasaro10 | 9:303d3628986a | 95 | int buzz_int(PwmOut* buzzer, uint8_t period, uint8_t duty_cycle); |
tanasaro10 | 9:303d3628986a | 96 | |
tanasaro10 | 9:303d3628986a | 97 | /* Print on serial some error from main app*/ |
tanasaro10 | 9:303d3628986a | 98 | void assert_error_app(bool condition, Serial *pc, uint16_t error, uint16_t line, const char* file); |
tanasaro10 | 9:303d3628986a | 99 |