-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtelemetry.h
49 lines (41 loc) · 1.7 KB
/
telemetry.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
* File: .h
* Author: Peter Thornton
* Purpose:
* Created on:
*/
// SFM addresses for telemetry meta-data, level-0
#define TM0_ADDR1 0x00
#define TM0_ADDR2 0x30
#define TM0_ADDR3 0x00
// SFM addresses for telemetry meta-data, level-1
#define TM1_ADDR1 0x00
#define TM1_ADDR2 0x40
#define TM1_ADDR3 0x00
// SFM addresses for telemetry meta-data, level-2
#define TM2_ADDR1 0x00
#define TM2_ADDR2 0x50
#define TM2_ADDR3 0x00
// telemetry control data structure
typedef struct
{
int is_active; // 1 = gather telemetry, 0 = don't gather telemetry
int record_period; // number of minutes between each telemetry record
int rec_per_page; // number of records per page on SFM
int page_per_block; // number of pages between each timestamp
int first_sector; // first sector on SFM to store this telemetry
int num_sectors; // how many sectors to use for this telemetry before wrapping
long int record_count;// the current number of records written
int page_count; // the current number of pages written
char first_timestamp[30]; // first timestamp written for this telemetry
char last_timestamp[30]; // latest timestamp written for this telemetry
char pagedata[256]; // the current page of telemetry data
} telem_control_type;
// function prototypes
void telem_form_beacon(char *beacon_str);
void telem_lev0_read_metadata(telem_control_type* c);
void telem_lev1_read_metadata(telem_control_type* c);
void telem_lev2_read_metadata(telem_control_type* c);
void telem_gather_lev0(telem_control_type* c);
void telem_gather_lev1(telem_control_type* c);
void telem_gather_lev2(telem_control_type* c);