X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=projects%2Fmicrob2010%2Fcommon%2Fi2c_commands.h;h=1168100f4cd81802e5a2c10e8fdb07c2ebc2a742;hb=HEAD;hp=b5c9d36897e6ee80ae32d5209255621ef6b12818;hpb=d23a4fdeed4e90d004d407942b230c188d012465;p=aversive.git diff --git a/projects/microb2010/common/i2c_commands.h b/projects/microb2010/common/i2c_commands.h index b5c9d36..1168100 100644 --- a/projects/microb2010/common/i2c_commands.h +++ b/projects/microb2010/common/i2c_commands.h @@ -1,6 +1,6 @@ /* - * Copyright Droids Corporation (2007) - * + * Copyright Droids Corporation (2010) + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -23,6 +23,7 @@ #define _I2C_COMMANDS_H_ #define I2C_OPPONENT_NOT_THERE -1000 +#define I2C_BEACON_NOT_FOUND -1000 #define I2C_MAINBOARD_ADDR 1 #define I2C_COBBOARD_ADDR 2 @@ -78,6 +79,8 @@ struct i2c_cmd_cobboard_set_mode { #define I2C_COBBOARD_MODE_HARVEST 0x01 /* harvest mode */ #define I2C_COBBOARD_MODE_EJECT 0x02 /* eject cobs */ #define I2C_COBBOARD_MODE_INIT 0x03 /* init state machine */ +#define I2C_COBBOARD_MODE_KICKSTAND_UP 0x04 /* help to climb the hill */ +#define I2C_COBBOARD_MODE_KICKSTAND_DOWN 0x05 /* help to climb the hill */ uint8_t mode; }; @@ -90,13 +93,18 @@ struct i2c_cmd_ballboard_set_mode { #define I2C_BALLBOARD_MODE_OFF 0x01 #define I2C_BALLBOARD_MODE_HARVEST 0x02 #define I2C_BALLBOARD_MODE_EJECT 0x03 -#define I2C_BALLBOARD_MODE_PREP_L_FORK 0x04 -#define I2C_BALLBOARD_MODE_TAKE_L_FORK 0x05 -#define I2C_BALLBOARD_MODE_PREP_R_FORK 0x06 -#define I2C_BALLBOARD_MODE_TAKE_R_FORK 0x07 +#define I2C_BALLBOARD_MODE_PREP_FORK 0x04 +#define I2C_BALLBOARD_MODE_TAKE_FORK 0x05 uint8_t mode; }; +#define I2C_CMD_BALLBOARD_SET_BEACON 0x04 + +struct i2c_cmd_ballboard_start_beacon { + struct i2c_cmd_hdr hdr; + uint8_t enable; +}; + /****/ /* requests and their answers */ /****/ @@ -123,11 +131,13 @@ struct i2c_ans_cobboard_status { /* mode type are defined above: I2C_COBBOARD_MODE_xxx */ uint8_t mode; -#define I2C_COBBOARD_STATUS_READY 0x00 -#define I2C_COBBOARD_STATUS_OFF 0x01 -#define I2C_COBBOARD_STATUS_LBUSY 0x02 -#define I2C_COBBOARD_STATUS_RBUSY 0x03 -#define I2C_COBBOARD_STATUS_EJECT 0x04 +#define I2C_COBBOARD_STATUS_READY 0x00 +#define I2C_COBBOARD_STATUS_OFF 0x01 +#define I2C_COBBOARD_STATUS_LBUSY 0x02 +#define I2C_COBBOARD_STATUS_RBUSY 0x03 +#define I2C_COBBOARD_STATUS_EJECT 0x04 +#define I2C_COBBOARD_STATUS_KICKSTAND_UP 0x05 +#define I2C_COBBOARD_STATUS_KICKSTAND_DOWN 0x06 uint8_t status; uint8_t cob_count; @@ -140,6 +150,11 @@ struct i2c_ans_cobboard_status { struct i2c_req_ballboard_status { struct i2c_cmd_hdr hdr; + + /* position sent by mainboard */ + int16_t x; + int16_t y; + int16_t a; }; #define I2C_ANS_BALLBOARD_STATUS 0x83 @@ -154,6 +169,11 @@ struct i2c_ans_ballboard_status { #define I2C_BALLBOARD_STATUS_F_EXCPT 0x02 uint8_t status; + int16_t opponent_x; + int16_t opponent_y; + int16_t opponent_a; + int16_t opponent_d; + uint8_t ball_count; /* detection of cobs */