This repository has been archived on 2025-03-02. You can view files and clone it, but cannot push or open issues or pull requests.
rc2007-soccer/source/Concept/Framework/defines.h
2007-02-26 21:25:01 +00:00

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