RocketLogger  1.1
web.h
Go to the documentation of this file.
1 
31 #ifndef WEB_H_
32 #define WEB_H_
33 
34 #include <stdint.h>
35 
36 #include "log.h"
37 #include "types.h"
38 #include "util.h"
39 
41 #define WEB_RING_BUFFER_COUNT 3
42 #define BUF1_INDEX 0
44 #define BUF10_INDEX 1
46 #define BUF100_INDEX 2
48 
52 enum time_scale {
53  S1 = 0,
54  S10 = 1,
55  S100 = 2
56 };
57 
59 #define BUFFER1_SIZE 100
60 #define BUFFER10_SIZE 10
62 #define BUFFER100_SIZE 1
64 
66 #define NUM_WEB_CHANNELS 12 // 6 analog + 6 digital
67 #define NUM_WEB_POINTS 1000
69 #define NUM_WEB_DIVS 10
71 
73 #define H_L_SCALE 100
74 
78 struct ringbuffer {
80  uint32_t element_size;
82  uint32_t length;
84  uint32_t filled;
86  uint32_t head;
89 };
90 
94 struct web_shm {
96  int64_t time;
98  uint32_t num_channels;
101 };
102 
103 struct web_shm* web_create_shm(void);
104 struct web_shm* web_open_shm(void);
105 
106 void web_buffer_reset(struct ringbuffer* buffer, int element_size, int length);
107 
108 void web_buffer_add(struct ringbuffer* buffer, int64_t* data);
109 
110 int64_t* web_buffer_get(struct ringbuffer* buffer, int num);
111 
112 void web_handle_data(struct web_shm* web_data_ptr, int sem_id,
113  void* buffer_addr, uint32_t sample_data_size,
114  uint32_t samples_count,
115  struct time_stamp* timestamp_realtime,
116  struct rl_conf* conf);
117 
118 #endif /* WEB_H_ */
struct web_shm * web_create_shm(void)
Definition: web.c:46
int64_t * web_buffer_get(struct ringbuffer *buffer, int num)
Definition: web.c:128
#define NUM_WEB_CHANNELS
Maximum number of channels in web interface (6 analog + 6 digital)
Definition: web.h:66
1 samples/s
Definition: web.h:55
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:200
#define NUM_WEB_POINTS
Number of data points in web plot.
Definition: web.h:68
uint32_t num_channels
Number of channels sampled.
Definition: web.h:98
int64_t data[NUM_WEB_CHANNELS *NUM_WEB_POINTS]
Data array.
Definition: web.h:88
100 sample/s
Definition: web.h:53
int sem_id
ID of semaphore set.
Definition: rl_server.c:52
void web_buffer_add(struct ringbuffer *buffer, int64_t *data)
Definition: web.c:112
Definition: types.h:246
uint32_t filled
Number of elements in buffer.
Definition: web.h:84
10 samples/s
Definition: web.h:54
struct web_shm * web_open_shm(void)
Definition: web.c:72
int64_t time
Time stamp of most recent datum (in UNIX time, UTC)
Definition: web.h:96
uint32_t head
Current position (in elements)
Definition: web.h:86
#define WEB_RING_BUFFER_COUNT
Number of ring buffers in shared memory.
Definition: web.h:41
Definition: web.h:94
uint32_t element_size
Size of buffer element.
Definition: web.h:80
uint32_t length
Size of buffer in elements.
Definition: web.h:82
Definition: web.h:78
void web_buffer_reset(struct ringbuffer *buffer, int element_size, int length)
Definition: web.c:100
time_scale
Definition: web.h:52