256 lines
4.2 KiB
C
256 lines
4.2 KiB
C
#ifndef _DEFINES_H
|
|
#define _DEFINES_H
|
|
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
|
|
//Integer definition
|
|
#ifndef int8
|
|
#ifdef __int8
|
|
#define int8 __int8
|
|
#else
|
|
#define int8 char
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef int16
|
|
#ifdef __int16
|
|
#define int16 __int16
|
|
#else
|
|
#define int16 int
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef int32
|
|
#ifdef __int32
|
|
#define int32 __int32
|
|
#else
|
|
#define int32 long
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef int64
|
|
#ifdef __int64
|
|
#define int64 __int64
|
|
#else
|
|
#define int64 long long
|
|
#endif
|
|
#endif
|
|
|
|
//Unsigned
|
|
#ifndef uint8
|
|
#define uint8 unsigned int8
|
|
#endif
|
|
|
|
#ifndef uint16
|
|
#define uint16 unsigned int16
|
|
#endif
|
|
|
|
#ifndef uint32
|
|
#define uint32 unsigned int32
|
|
#endif
|
|
|
|
#ifndef uint64
|
|
#define uint64 unsigned int64
|
|
#endif
|
|
|
|
//Constants
|
|
#define SPEED_PER_PWM 1
|
|
#define DISTANCE_PER_VALUE 1
|
|
#define TICKS_PER_CM 205.0f
|
|
//#define TICKS_PER_CM 90.0f
|
|
#define ULTRASONIC_PER_CM 2.0f
|
|
|
|
#define WIRELESS_ACTIVE false
|
|
|
|
#define PI 3.14159265358979323846f
|
|
#define CYCLES_PER_CORRECTION 20
|
|
#define EMPTY_FLOAT 81188.1484f
|
|
|
|
#define BALL_HELD_INTENSITY 900
|
|
|
|
#define KEEPER_LEFT_ANGLE 20.0f * PI / 180.0f
|
|
#define KEEPER_RIGHT_ANGLE (2 * PI) - (20.0f * PI / 180.0f)
|
|
|
|
#define COMMAND_BUFFER_SIZE 20
|
|
|
|
#define DEFAULT_SPEED 200
|
|
#define DEFAULT_ROTATION_SPEED 200
|
|
|
|
#define AREA_BOUNDS_X 20000.0f
|
|
#define AREA_BOUNDS_Y 5000.0f
|
|
|
|
#define WALL_DISTANCE_TOLERANCE 30.0f
|
|
#define ENEMY_ROBOT_RADIUS 40.0f
|
|
|
|
#define HOME_LOC_X -500.0f
|
|
#define HOME_LOC_Y 0
|
|
#define ENEMY_LOC_X 500.0f
|
|
#define ENEMY_LOC_Y 0
|
|
#define DEFENCE_L_LOC_X -500.0f
|
|
#define DEFENCE_L_LOC_Y 70.0f
|
|
#define DEFENCE_R_LOC_X -500.0f
|
|
#define DEFENCE_R_LOC_Y -70.0f
|
|
|
|
#define DISTANCE_TOLERANCE 1.0f
|
|
#define ORIENTATION_TOLERANCE 0.1f
|
|
|
|
#define MAX_OBSTACLE_COUNT 20
|
|
|
|
#define OBSTACLE_DECAY 100
|
|
|
|
#define BALL_DIRECTION_FRONT_L 45.0f * PI / 180.0f
|
|
#define BALL_DIRECTION_FRONT_R 315.0f * PI / 180.0f
|
|
|
|
#define WIRELESS_CODE "SPASS!"
|
|
enum WirelessCommands
|
|
{
|
|
WLESS_CMD_CONFIRM,
|
|
WLESS_CMD_RECIEVED_BALL,
|
|
};
|
|
|
|
//IO Module Names
|
|
enum IOModuleNames
|
|
{
|
|
//General
|
|
IO_START,
|
|
|
|
//Engines
|
|
IO_ENGINE_START = IO_START,
|
|
|
|
IO_ENGINE_DRIVE_LEFT = IO_ENGINE_START,
|
|
IO_ENGINE_DRIVE_RIGHT,
|
|
IO_ENGINE_DRIVE_BACK,
|
|
|
|
IO_ENGINE_END,
|
|
|
|
//Dribbler
|
|
|
|
IO_DRIBBLER_START = IO_ENGINE_END,
|
|
|
|
IO_DRIBBLER_MAIN = IO_DRIBBLER_START,
|
|
|
|
IO_DRIBBLER_END,
|
|
|
|
//Kicker
|
|
|
|
IO_KICKER_START = IO_DRIBBLER_END,
|
|
|
|
IO_KICKER_MAIN = IO_KICKER_START,
|
|
|
|
IO_KICKER_END,
|
|
|
|
// Aktuator
|
|
|
|
IO_AKTUATOR_START = IO_KICKER_END,
|
|
|
|
IO_AKTUATOR_MAIN = IO_AKTUATOR_START,
|
|
|
|
IO_AKTUATOR_END,
|
|
|
|
// Wireless
|
|
|
|
IO_WIRELESS_START = IO_AKTUATOR_END,
|
|
|
|
IO_WIRELESS_MAIN = IO_WIRELESS_START,
|
|
|
|
IO_WIRELESS_END,
|
|
|
|
//Sensors
|
|
IO_SENSOR_START = IO_WIRELESS_END,
|
|
|
|
IO_SENSOR_IR_0_DEG = IO_SENSOR_START,
|
|
IO_SENSOR_IR_30_DEG,
|
|
IO_SENSOR_IR_60_DEG,
|
|
IO_SENSOR_IR_100_DEG,
|
|
IO_SENSOR_IR_180_DEG,
|
|
IO_SENSOR_IR_260_DEG,
|
|
IO_SENSOR_IR_300_DEG,
|
|
IO_SENSOR_IR_330_DEG,
|
|
IO_SENSOR_DISTANCE_0_DEG,
|
|
IO_SENSOR_DISTANCE_90_DEG,
|
|
IO_SENSOR_DISTANCE_180_DEG,
|
|
IO_SENSOR_DISTANCE_270_DEG,
|
|
IO_SENSOR_MOUSE_LEFT,
|
|
IO_SENSOR_MOUSE_RIGHT,
|
|
|
|
IO_SENSOR_END,
|
|
|
|
//Leds
|
|
|
|
IO_LED_START = IO_SENSOR_END,
|
|
|
|
IO_LED_MAIN = IO_LED_START,
|
|
|
|
IO_LED_END,
|
|
|
|
//Displays
|
|
|
|
IO_DISPLAY_START = IO_LED_END,
|
|
|
|
IO_DISPLAY_MAIN = IO_DISPLAY_START,
|
|
|
|
IO_DISPLAY_END,
|
|
|
|
//Keyboards
|
|
|
|
IO_KEYBOARD_START = IO_DISPLAY_END,
|
|
|
|
IO_KEYBOARD_MAIN = IO_KEYBOARD_START,
|
|
|
|
IO_KEYBOARD_END,
|
|
|
|
//Command Handler
|
|
|
|
IO_COMMAND_HANDLER_START = IO_KEYBOARD_END,
|
|
|
|
IO_COMMAND_HANDLER_MAIN = IO_COMMAND_HANDLER_START,
|
|
|
|
IO_COMMAND_HANDLER_END,
|
|
|
|
//Position Tracker
|
|
|
|
IO_POSITION_TRACKER_START = IO_COMMAND_HANDLER_END,
|
|
|
|
IO_POSITION_TRACKER_MAIN,
|
|
|
|
IO_POSITION_TRACKER_END,
|
|
|
|
//Obstacle Tracker
|
|
|
|
IO_OBSTACLE_TRACKER_START = IO_POSITION_TRACKER_END,
|
|
|
|
IO_OBSTACLE_TRACKER_MAIN,
|
|
|
|
IO_OBSTACLE_TRACKER_END,
|
|
|
|
//Ball Tracker
|
|
|
|
IO_BALL_TRACKER_START = IO_OBSTACLE_TRACKER_END,
|
|
|
|
IO_BALL_TRACKER_MAIN,
|
|
|
|
IO_BALL_TRACKER_END,
|
|
|
|
//Navigators
|
|
|
|
IO_NAVIGATOR_START = IO_BALL_TRACKER_END,
|
|
|
|
IO_NAVIGATOR_MAIN,
|
|
|
|
IO_NAVIGATOR_END,
|
|
|
|
//Logics
|
|
|
|
IO_LOGIC_START = IO_NAVIGATOR_END,
|
|
|
|
IO_LOGIC_MAIN,
|
|
|
|
IO_LOGIC_END,
|
|
|
|
//General
|
|
IO_END = IO_NAVIGATOR_END,
|
|
};
|
|
|
|
#endif
|