X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fcommon%2Fi2c_commands.h;h=d64ed8b8093102bdec4d8c5986ef8c496fcd511b;hp=d08e58023a7940fdf62fca7d1caf4cf05f888718;hb=aa68be2d5d596693bda1109e4ccd6489f613b4f7;hpb=c5092ef0e45256f7e5ff2ceea8e1aa1cb33027db diff --git a/projects/microb2010/common/i2c_commands.h b/projects/microb2010/common/i2c_commands.h index d08e580..d64ed8b 100644 --- a/projects/microb2010/common/i2c_commands.h +++ b/projects/microb2010/common/i2c_commands.h @@ -38,6 +38,9 @@ #define I2C_COB_BLACK 0 #define I2C_COB_WHITE 1 +#define I2C_COB_UNKNOWN 2 +#define I2C_COB_REMOVED 3 +#define I2C_COB_NONE 4 struct i2c_cmd_hdr { uint8_t cmd; @@ -52,7 +55,7 @@ struct i2c_cmd_hdr { struct i2c_cmd_led_control { struct i2c_cmd_hdr hdr; uint8_t led_num:7; - uint8_t state:1; + uint8_t state:1; }; /****/ @@ -71,12 +74,9 @@ struct i2c_cmd_generic_color { struct i2c_cmd_cobboard_set_mode { struct i2c_cmd_hdr hdr; -#define I2C_COBBOARD_MODE_L_DEPLOY 0x01 /* deploy the spickle */ -#define I2C_COBBOARD_MODE_L_HARVEST 0x02 /* auto harvest withe cobs */ -#define I2C_COBBOARD_MODE_R_DEPLOY 0x04 /* deploy the spickle */ -#define I2C_COBBOARD_MODE_R_HARVEST 0x08 /* auto harvest withe cobs */ -#define I2C_COBBOARD_MODE_EJECT 0x10 /* eject cobs */ -#define I2C_COBBOARD_MODE_INIT 0x20 /* init state machine */ +#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 */ uint8_t mode; }; @@ -85,13 +85,14 @@ struct i2c_cmd_cobboard_set_mode { struct i2c_cmd_ballboard_set_mode { struct i2c_cmd_hdr hdr; -#define I2C_BALLBOARD_MODE_OFF 0x00 -#define I2C_BALLBOARD_MODE_HARVEST 0x01 -#define I2C_BALLBOARD_MODE_EJECT 0x02 -#define I2C_BALLBOARD_MODE_PREP_L_FORK 0x03 -#define I2C_BALLBOARD_MODE_TAKE_L_FORK 0x04 -#define I2C_BALLBOARD_MODE_PREP_R_FORK 0x05 -#define I2C_BALLBOARD_MODE_TAKE_R_FORK 0x06 +#define I2C_BALLBOARD_MODE_INIT 0x00 +#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 uint8_t mode; }; @@ -104,19 +105,27 @@ struct i2c_cmd_ballboard_set_mode { struct i2c_req_cobboard_status { struct i2c_cmd_hdr hdr; - int16_t sickle_left1_current; + +#define I2C_COBBOARD_SPK_DEPLOY 0x01 /* deploy the spickle */ +#define I2C_COBBOARD_SPK_AUTOHARVEST 0x02 /* auto harvest the cobs */ +#define I2C_COBBOARD_SPK_NO_MOVE 0x04 /* if enabled, don't change state */ + uint8_t lspickle; + uint8_t rspickle; }; #define I2C_ANS_COBBOARD_STATUS 0x81 struct i2c_ans_cobboard_status { struct i2c_cmd_hdr hdr; + /* mode type are defined above: I2C_COBBOARD_MODE_xxx */ uint8_t mode; -#define I2C_COBBOARD_STATUS_F_READY 0x00 -#define I2C_COBBOARD_STATUS_F_BUSY 0x01 -#define I2C_COBBOARD_STATUS_F_EXCPT 0x02 +#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 uint8_t status; uint8_t cob_count; @@ -136,6 +145,7 @@ struct i2c_req_ballboard_status { struct i2c_ans_ballboard_status { struct i2c_cmd_hdr hdr; + uint8_t mode; #define I2C_BALLBOARD_STATUS_F_READY 0x00 #define I2C_BALLBOARD_STATUS_F_BUSY 0x01 @@ -143,6 +153,10 @@ struct i2c_ans_ballboard_status { uint8_t status; uint8_t ball_count; + + /* detection of cobs */ + uint8_t lcob; + uint8_t rcob; }; #endif /* _I2C_PROTOCOL_H_ */