X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fcobboard%2Fi2c_protocol.c;h=9de2d4ccbf17d423e4e9633be8bffa851a6c85e5;hp=b790128b86ded7389bc857bd05d7c5efa4a0fb11;hb=fa8546ea39c7442ad3bf5a822a72a2b50a41045d;hpb=8d6a47e9e21a9a31f4bc12d32fb3d11091a4b305 diff --git a/projects/microb2010/cobboard/i2c_protocol.c b/projects/microb2010/cobboard/i2c_protocol.c index b790128..9de2d4c 100644 --- a/projects/microb2010/cobboard/i2c_protocol.c +++ b/projects/microb2010/cobboard/i2c_protocol.c @@ -93,36 +93,41 @@ static void i2c_send_status(void) /* status */ ans.mode = state_get_mode(); - ans.status = 0x55; + ans.status = 0x55; /* TODO */ + ans.left_cobroller_speed = cobboard.left_cobroller_speed; + ans.right_cobroller_speed = cobboard.right_cobroller_speed; + + ans.cob_count = state_get_cob_count(); +; i2c_send(I2C_ADD_MASTER, (uint8_t *) &ans, sizeof(ans), I2C_CTRL_GENERIC); } static int8_t i2c_set_mode(struct i2c_cmd_cobboard_set_mode *cmd) { - state_set_mode(cmd); + state_set_mode(cmd->mode); return 0; } void i2c_recvevent(uint8_t * buf, int8_t size) { void *void_cmd = buf; - + static uint8_t a = 0; - + a++; if (a & 0x10) LED2_TOGGLE(); - + if (size <= 0) { goto error; } - + switch (buf[0]) { /* Commands (no answer needed) */ - case I2C_CMD_GENERIC_LED_CONTROL: + case I2C_CMD_GENERIC_LED_CONTROL: { struct i2c_cmd_led_control *cmd = void_cmd; if (size != sizeof (*cmd)) @@ -130,7 +135,7 @@ void i2c_recvevent(uint8_t * buf, int8_t size) i2c_led_control(cmd->led_num, cmd->state); break; } - + case I2C_CMD_COBBOARD_SET_MODE: { struct i2c_cmd_cobboard_set_mode *cmd = void_cmd;