RocketLogger  1.0
web.h
Go to the documentation of this file.
1 
5 #ifndef IPC_H
6 #define IPC_H
7 
8 #include "types.h"
9 #include "log.h"
10 #include "util.h"
11 
13 #define WEB_RING_BUFFER_COUNT 3
14 #define BUF1_INDEX 0
16 #define BUF10_INDEX 1
18 #define BUF100_INDEX 2
20 
24 enum time_scale {
25  S1 = 0,
26  S10 = 1,
27  S100 = 2
28 };
29 
31 #define BUFFER1_SIZE 100
32 #define BUFFER10_SIZE 10
34 #define BUFFER100_SIZE 1
36 
38 #define NUM_WEB_CHANNELS 12 // 6 analog + 6 digital
39 #define NUM_WEB_POINTS 1000
41 #define NUM_WEB_DIVS 10
43 
44 
48 struct ringbuffer {
50  uint32_t element_size;
52  uint32_t length;
54  uint32_t filled;
56  uint32_t head;
59 };
60 
64 struct web_shm {
66  int64_t time;
68  uint32_t num_channels;
71 };
72 
73 
74 
75 struct web_shm* create_web_shm(void);
76 struct web_shm* open_web_shm(void);
77 
78 void reset_buffer(struct ringbuffer* buffer, int element_size, int length);
79 
80 void buffer_add(struct ringbuffer* buffer, int64_t* data);
81 
82 int64_t* buffer_get(struct ringbuffer* buffer, int num);
83 
84 
85 #endif
#define NUM_WEB_CHANNELS
Maximum number of channels in web interface (6 analog + 6 digital)
Definition: web.h:38
1 samples/s
Definition: web.h:27
void reset_buffer(struct ringbuffer *buffer, int element_size, int length)
Definition: web.c:55
#define NUM_WEB_POINTS
Number of data points in web plot.
Definition: web.h:40
struct web_shm * create_web_shm(void)
Definition: web.c:11
void buffer_add(struct ringbuffer *buffer, int64_t *data)
Definition: web.c:67
uint32_t num_channels
Number of channels sampled.
Definition: web.h:68
int64_t data[NUM_WEB_CHANNELS *NUM_WEB_POINTS]
Data array.
Definition: web.h:58
100 sample/s
Definition: web.h:25
struct web_shm * open_web_shm(void)
Definition: web.c:32
int64_t * buffer_get(struct ringbuffer *buffer, int num)
Definition: web.c:82
uint32_t filled
Number of elements in buffer.
Definition: web.h:54
10 samples/s
Definition: web.h:26
int64_t time
Time stamp of most recent datum (in UNIX time, UTC)
Definition: web.h:66
uint32_t head
Current position (in elements)
Definition: web.h:56
#define WEB_RING_BUFFER_COUNT
Number of ring buffers in shared memory.
Definition: web.h:13
Definition: web.h:64
uint32_t element_size
Size of buffer element.
Definition: web.h:50
uint32_t length
Size of buffer in elements.
Definition: web.h:52
Definition: web.h:48
time_scale
Definition: web.h:24