summaryrefslogtreecommitdiff
path: root/robot/sercomm.h
blob: b1f69c77d748de1295d21165f81ce3ed463d5187 (plain)
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
#pragma once

#include "../shared/bin.h"
#include "../shared/consts.h"
#include "../shared/protocol.h"

/** sercomm ring buffer */
extern w2_s_bin *g_w2_sercomm_buffer[W2_SERCOMM_BUFFER_SIZE];
/** stores head of ring buffer */
extern uint8_t g_w2_sercomm_index;
/** stores start of ring buffer */
extern uint8_t g_w2_sercomm_offset;

/** serial input (receive) buffer */
extern char g_w2_serial_buffer[W2_SERIAL_READ_BUFFER_SIZE];
/** serial input (receive) buffer current position */
extern uint8_t g_w2_serial_buffer_index;
/** serial input (receive) buffer head (sim only) */
extern uint8_t g_w2_serial_buffer_head;

/**
 * serial pc-robot communication module
 *
 * - reads and parses incoming serial data
 * - sends all data in the message buffer
 */
void w2_sercomm_main();

/** append binary message to send buffer */
void w2_sercomm_append_msg(w2_s_bin *data);