First class data visualization and communication library with embedded devices. Code is maintained at github.com/Overdrivr/Telemetry
Dependents: telemetry_car_demo telemetry_demo_FRDM-TFC telemetry_example_01 telemetry_indexed_data_demo ... more
c_api/dictionnary.h@7:d224bddd5405, 2016-04-12 (annotated)
- Committer:
- Overdrivr
- Date:
- Tue Apr 12 07:40:10 2016 +0000
- Revision:
- 7:d224bddd5405
Release 2.0.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Overdrivr | 7:d224bddd5405 | 1 | #ifndef TELEMETRY_DICTIONNARY_H_ |
Overdrivr | 7:d224bddd5405 | 2 | #define TELEMETRY_DICTIONNARY_H_ |
Overdrivr | 7:d224bddd5405 | 3 | |
Overdrivr | 7:d224bddd5405 | 4 | #include "stdint.h" |
Overdrivr | 7:d224bddd5405 | 5 | |
Overdrivr | 7:d224bddd5405 | 6 | |
Overdrivr | 7:d224bddd5405 | 7 | enum ptr_type { |
Overdrivr | 7:d224bddd5405 | 8 | ptr_f32 = 0, |
Overdrivr | 7:d224bddd5405 | 9 | ptr_u8 = 1, |
Overdrivr | 7:d224bddd5405 | 10 | ptr_u16 = 2, |
Overdrivr | 7:d224bddd5405 | 11 | ptr_u32 = 3, |
Overdrivr | 7:d224bddd5405 | 12 | ptr_i8 = 4, |
Overdrivr | 7:d224bddd5405 | 13 | ptr_i16 = 5, |
Overdrivr | 7:d224bddd5405 | 14 | ptr_i32 = 6, |
Overdrivr | 7:d224bddd5405 | 15 | ptr_function = 8 |
Overdrivr | 7:d224bddd5405 | 16 | }; |
Overdrivr | 7:d224bddd5405 | 17 | |
Overdrivr | 7:d224bddd5405 | 18 | typedef enum ptr_type ptr_type; |
Overdrivr | 7:d224bddd5405 | 19 | |
Overdrivr | 7:d224bddd5405 | 20 | struct nlist { /* table entry: */ |
Overdrivr | 7:d224bddd5405 | 21 | struct nlist *next; /* next entry in chain */ |
Overdrivr | 7:d224bddd5405 | 22 | char * key; |
Overdrivr | 7:d224bddd5405 | 23 | |
Overdrivr | 7:d224bddd5405 | 24 | // Table can store for a given key all following pointers |
Overdrivr | 7:d224bddd5405 | 25 | float * ptr_f32; |
Overdrivr | 7:d224bddd5405 | 26 | uint8_t * ptr_u8; |
Overdrivr | 7:d224bddd5405 | 27 | uint16_t * ptr_u16; |
Overdrivr | 7:d224bddd5405 | 28 | uint32_t * ptr_u32; |
Overdrivr | 7:d224bddd5405 | 29 | int8_t * ptr_i8; |
Overdrivr | 7:d224bddd5405 | 30 | int16_t * ptr_i16; |
Overdrivr | 7:d224bddd5405 | 31 | int32_t * ptr_i32; |
Overdrivr | 7:d224bddd5405 | 32 | void * ptr_function; |
Overdrivr | 7:d224bddd5405 | 33 | }; |
Overdrivr | 7:d224bddd5405 | 34 | |
Overdrivr | 7:d224bddd5405 | 35 | #define HASHSIZE 101 |
Overdrivr | 7:d224bddd5405 | 36 | |
Overdrivr | 7:d224bddd5405 | 37 | void init_table(struct nlist ** hashtab); |
Overdrivr | 7:d224bddd5405 | 38 | |
Overdrivr | 7:d224bddd5405 | 39 | /* lookup: look for s in hashtab */ |
Overdrivr | 7:d224bddd5405 | 40 | struct nlist * lookup(struct nlist ** hashtab, const char * key); |
Overdrivr | 7:d224bddd5405 | 41 | |
Overdrivr | 7:d224bddd5405 | 42 | struct nlist * install(struct nlist ** hashtab, const char * key, void * ptr, ptr_type type); |
Overdrivr | 7:d224bddd5405 | 43 | |
Overdrivr | 7:d224bddd5405 | 44 | #endif |