Tema SCPI Negru Rares-Razvan
Dependencies: BLE_API mbed nRF51822
Fork of nRF51822_TemperatureEx by
myData.h@12:7772974713ac, 2016-10-08 (annotated)
- Committer:
- tanasaro10
- Date:
- Sat Oct 08 10:30:15 2016 +0000
- Revision:
- 12:7772974713ac
- Parent:
- 11:baafa4f7a15e
Version ready for use to exercise.
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 | 12:7772974713ac | 8 | #define MIN_PAGE_NUM 180u |
tanasaro10 | 8:f28ad4600b0f | 9 | |
tanasaro10 | 8:f28ad4600b0f | 10 | |
tanasaro10 | 8:f28ad4600b0f | 11 | typedef struct{ |
tanasaro10 | 9:303d3628986a | 12 | uint8_t year; // 20_XX, 2016 => 16; |
tanasaro10 | 8:f28ad4600b0f | 13 | uint8_t month; // 1..12 |
tanasaro10 | 9:303d3628986a | 14 | uint8_t day; // 1..31 |
tanasaro10 | 11:baafa4f7a15e | 15 | uint8_t hours; |
tanasaro10 | 11:baafa4f7a15e | 16 | uint8_t minutes; |
tanasaro10 | 11:baafa4f7a15e | 17 | uint8_t seconds; |
tanasaro10 | 11:baafa4f7a15e | 18 | } mdate_time_t; |
tanasaro10 | 8:f28ad4600b0f | 19 | |
tanasaro10 | 8:f28ad4600b0f | 20 | |
tanasaro10 | 8:f28ad4600b0f | 21 | typedef struct{ |
tanasaro10 | 11:baafa4f7a15e | 22 | mdate_time_t currentDateTime; |
tanasaro10 | 11:baafa4f7a15e | 23 | mdate_time_t newDateTime; |
tanasaro10 | 11:baafa4f7a15e | 24 | bool updateDateTime; // true if currentTime needs to be updated with newTime; |
tanasaro10 | 11:baafa4f7a15e | 25 | } mdatetime_manager_t; |
tanasaro10 | 11:baafa4f7a15e | 26 | |
tanasaro10 | 8:f28ad4600b0f | 27 | |
tanasaro10 | 9:303d3628986a | 28 | typedef enum { |
tanasaro10 | 9:303d3628986a | 29 | eStartAdvertising =0, |
tanasaro10 | 9:303d3628986a | 30 | eStopAdvertising =1, |
tanasaro10 | 9:303d3628986a | 31 | eDisconnect =2 |
tanasaro10 | 9:303d3628986a | 32 | } connection_update_t; |
tanasaro10 | 8:f28ad4600b0f | 33 | |
tanasaro10 | 8:f28ad4600b0f | 34 | typedef struct { |
tanasaro10 | 12:7772974713ac | 35 | int16_t x; |
tanasaro10 | 12:7772974713ac | 36 | int16_t y; |
tanasaro10 | 12:7772974713ac | 37 | int16_t z; |
tanasaro10 | 9:303d3628986a | 38 | uint16_t temp; |
tanasaro10 | 9:303d3628986a | 39 | } myPayload_t; |
tanasaro10 | 9:303d3628986a | 40 | |
tanasaro10 | 9:303d3628986a | 41 | |
tanasaro10 | 9:303d3628986a | 42 | typedef struct { |
tanasaro10 | 9:303d3628986a | 43 | myPayload_t data; |
tanasaro10 | 11:baafa4f7a15e | 44 | uint8_t seconds; |
tanasaro10 | 11:baafa4f7a15e | 45 | uint8_t minutes; |
tanasaro10 | 9:303d3628986a | 46 | } myDataL_t; |
tanasaro10 | 9:303d3628986a | 47 | |
tanasaro10 | 9:303d3628986a | 48 | typedef struct { |
tanasaro10 | 11:baafa4f7a15e | 49 | mdate_time_t datetime; // 6 bytes length |
tanasaro10 | 11:baafa4f7a15e | 50 | myPayload_t data; // 8 bytes lenth |
tanasaro10 | 8:f28ad4600b0f | 51 | } myData_t; |
tanasaro10 | 8:f28ad4600b0f | 52 | |
tanasaro10 | 9:303d3628986a | 53 | typedef struct { |
tanasaro10 | 9:303d3628986a | 54 | myData_t startData; |
tanasaro10 | 9:303d3628986a | 55 | myDataL_t myData[MAXBUFFER]; |
tanasaro10 | 9:303d3628986a | 56 | } myDataLog_t; |
tanasaro10 | 9:303d3628986a | 57 | |
tanasaro10 | 9:303d3628986a | 58 | typedef struct { |
tanasaro10 | 9:303d3628986a | 59 | myData_t startData; |
tanasaro10 | 9:303d3628986a | 60 | myDataL_t myData; |
tanasaro10 | 9:303d3628986a | 61 | } myDataLogShort_t; |
tanasaro10 | 9:303d3628986a | 62 | |
tanasaro10 | 9:303d3628986a | 63 | /* Return current page to be written in Flash */ |
tanasaro10 | 9:303d3628986a | 64 | uint8_t flash_currPage(); |
tanasaro10 | 9:303d3628986a | 65 | |
tanasaro10 | 9:303d3628986a | 66 | /* Return next page to be written in Flash */ |
tanasaro10 | 9:303d3628986a | 67 | uint8_t flash_go_nextPage(); |
tanasaro10 | 9:303d3628986a | 68 | |
tanasaro10 | 9:303d3628986a | 69 | /* Return page-N (thas has been written in Flash) */ |
tanasaro10 | 9:303d3628986a | 70 | uint8_t flash_prev_N_Page(uint8_t nr_of_pages); |
tanasaro10 | 8:f28ad4600b0f | 71 | |
tanasaro10 | 9:303d3628986a | 72 | /*search the latest page written and extract the page_nr, date, and time*/ |
tanasaro10 | 11:baafa4f7a15e | 73 | void search_latest_in_flash(mdate_time_t * outDateTime); |
tanasaro10 | 9:303d3628986a | 74 | |
tanasaro10 | 9:303d3628986a | 75 | /* Update current date and time with tseconds and also if there is a new date/time given */ |
tanasaro10 | 11:baafa4f7a15e | 76 | void update_time(mdatetime_manager_t* myDateTimeVar, uint16_t tseconds); |
tanasaro10 | 9:303d3628986a | 77 | |
tanasaro10 | 9:303d3628986a | 78 | /* Update buzzer with period in ms =0..9 and duty cycle = 0..9*/ |
tanasaro10 | 9:303d3628986a | 79 | int buzz_int(PwmOut* buzzer, uint8_t period, uint8_t duty_cycle); |
tanasaro10 | 9:303d3628986a | 80 | |
tanasaro10 | 9:303d3628986a | 81 | /* Print on serial some error from main app*/ |
tanasaro10 | 9:303d3628986a | 82 | void assert_error_app(bool condition, Serial *pc, uint16_t error, uint16_t line, const char* file); |