aboutsummaryrefslogtreecommitdiff
path: root/robot/consts.h
blob: a81908de979717e1f24c3bfc524d97d2647ea9a4 (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
31
32
33
34
35
36
#pragma once

#ifndef W2_BUILD_STR
// is defined by CFLAGS += -DW2_BUILD_STR in makefile
#define W2_BUILD_STR ("????????")
#endif

#define W2_MAX_MODULE_CYCLE_MS (20)
#define W2_SERIAL_BAUD (9600)
#define W2_ERROR_BUFFER_SIZE (16)

#define W2_ERR_TYPE_CRIT (0b00 << 6)
#define W2_ERR_TYPE_WARN (0b01 << 6)
#define W2_ERR_TYPE_INFO (0b10 << 6)
#define W2_ERR_TYPE_VERB (0b11 << 6)
#define W2_ERR_TYPE_MASK (0b11 << 6)

/**
 * enum storing all error codes
 *
 * error codes are between 0-63 because the two most significant bits are
 * reserved for error type checking
 */
enum w2_e_errorcodes {
	// critical error codes
	W2_ERR_CONN_LOST	   = 0x00 | W2_ERR_TYPE_CRIT,
	W2_ERR_COM_UNAVAILABLE = 0x01 | W2_ERR_TYPE_CRIT, // client-only
	W2_ERR_LINE_LOST	   = 0x02 | W2_ERR_TYPE_CRIT,
	W2_ERR_OBSTACLE_STUCK  = 0x03 | W2_ERR_TYPE_CRIT,

	// warnings
	W2_ERR_BATTERY_LOW		 = 0x00 | W2_ERR_TYPE_WARN,
	W2_ERR_OBSTACLE_DETECTED = 0x01 | W2_ERR_TYPE_WARN,
	W2_ERR_CYCLE_EXPIRED	 = 0x02 | W2_ERR_TYPE_WARN,
	W2_ERR_UNCAUGHT_ERROR	 = 0x03 | W2_ERR_TYPE_WARN,
};