RocketLogger  1.1.4
web.h
Go to the documentation of this file.
1 
32 #ifndef WEB_H_
33 #define WEB_H_
34 
35 #include <stdint.h>
36 
37 #include "log.h"
38 #include "types.h"
39 #include "util.h"
40 
42 #define WEB_RING_BUFFER_COUNT 3
43 #define BUF1_INDEX 0
45 #define BUF10_INDEX 1
47 #define BUF100_INDEX 2
49 
53 enum time_scale {
54  S1 = 0,
55  S10 = 1,
56  S100 = 2
57 };
58 
60 #define BUFFER1_SIZE 100
61 #define BUFFER10_SIZE 10
63 #define BUFFER100_SIZE 1
65 
67 #define NUM_WEB_CHANNELS 12 // 6 analog + 6 digital
68 #define NUM_WEB_POINTS 1000
70 #define NUM_WEB_DIVS 10
72 
74 #define H_L_SCALE 100
75 
79 struct ringbuffer {
81  uint32_t element_size;
83  uint32_t length;
85  uint32_t filled;
87  uint32_t head;
90 };
91 
95 struct web_shm {
97  int64_t time;
99  uint32_t num_channels;
102 };
103 
104 struct web_shm* web_create_shm(void);
105 struct web_shm* web_open_shm(void);
106 
107 void web_buffer_reset(struct ringbuffer* buffer, int element_size, int length);
108 
109 void web_buffer_add(struct ringbuffer* buffer, int64_t* data);
110 
111 int64_t* web_buffer_get(struct ringbuffer* buffer, int num);
112 
113 void web_handle_data(struct web_shm* web_data_ptr, int sem_id,
114  void* buffer_addr, uint32_t sample_data_size,
115  uint32_t samples_count,
116  struct time_stamp* timestamp_realtime,
117  struct rl_conf* conf);
118 
119 #endif /* WEB_H_ */
struct web_shm * web_create_shm(void)
Definition: web.c:47
int64_t * web_buffer_get(struct ringbuffer *buffer, int num)
Definition: web.c:129
#define NUM_WEB_CHANNELS
Maximum number of channels in web interface (6 analog + 6 digital)
Definition: web.h:67
1 samples/s
Definition: web.h:56
void web_handle_data(struct web_shm *web_data_ptr, int sem_id, void *buffer_addr, uint32_t sample_data_size, uint32_t samples_count, struct time_stamp *timestamp_realtime, struct rl_conf *conf)
Definition: web.c:201
#define NUM_WEB_POINTS
Number of data points in web plot.
Definition: web.h:69
uint32_t num_channels
Number of channels sampled.
Definition: web.h:99
int64_t data[NUM_WEB_CHANNELS *NUM_WEB_POINTS]
Data array.
Definition: web.h:89
100 sample/s
Definition: web.h:54
int sem_id
ID of semaphore set.
Definition: rl_server.c:53
void web_buffer_add(struct ringbuffer *buffer, int64_t *data)
Definition: web.c:113
Definition: types.h:247
uint32_t filled
Number of elements in buffer.
Definition: web.h:85
10 samples/s
Definition: web.h:55
struct web_shm * web_open_shm(void)
Definition: web.c:73
int64_t time
Time stamp of most recent datum (in UNIX time, UTC)
Definition: web.h:97
uint32_t head
Current position (in elements)
Definition: web.h:87
#define WEB_RING_BUFFER_COUNT
Number of ring buffers in shared memory.
Definition: web.h:42
Definition: web.h:95
uint32_t element_size
Size of buffer element.
Definition: web.h:81
uint32_t length
Size of buffer in elements.
Definition: web.h:83
Definition: web.h:79
void web_buffer_reset(struct ringbuffer *buffer, int element_size, int length)
Definition: web.c:101
time_scale
Definition: web.h:53