git.droids-corp.org
/
aversive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vt100: include pgmspace.h as we use PROGMEM macro
[aversive.git]
/
projects
/
microb2010
/
mainboard
/
i2c_protocol.c
diff --git
a/projects/microb2010/mainboard/i2c_protocol.c
b/projects/microb2010/mainboard/i2c_protocol.c
index
7a2c378
..
49b707b
100644
(file)
--- a/
projects/microb2010/mainboard/i2c_protocol.c
+++ b/
projects/microb2010/mainboard/i2c_protocol.c
@@
-299,6
+299,10
@@
void i2c_recvevent(uint8_t * buf, int8_t size)
tmp = ans->rcob;
if (tmp != I2C_COB_NONE)
ballboard.rcob = tmp;
tmp = ans->rcob;
if (tmp != I2C_COB_NONE)
ballboard.rcob = tmp;
+ ballboard.opponent_x = ans->opponent_x;
+ ballboard.opponent_y = ans->opponent_y;
+ ballboard.opponent_a = ans->opponent_a;
+ ballboard.opponent_d = ans->opponent_d;
break;
}
break;
}
@@
-375,6
+379,10
@@
static int8_t i2c_req_ballboard_status(void)
struct i2c_req_ballboard_status buf;
buf.hdr.cmd = I2C_REQ_BALLBOARD_STATUS;
struct i2c_req_ballboard_status buf;
buf.hdr.cmd = I2C_REQ_BALLBOARD_STATUS;
+ /* robot position */
+ buf.x = position_get_x_s16(&mainboard.pos);
+ buf.y = position_get_y_s16(&mainboard.pos);
+ buf.a = position_get_a_deg_s16(&mainboard.pos);
return i2c_send(I2C_BALLBOARD_ADDR, (uint8_t*)&buf,
sizeof(buf), I2C_CTRL_GENERIC);
}
return i2c_send(I2C_BALLBOARD_ADDR, (uint8_t*)&buf,
sizeof(buf), I2C_CTRL_GENERIC);
}
@@
-403,22
+411,25
@@
int8_t i2c_led_control(uint8_t addr, uint8_t led, uint8_t state)
int8_t i2c_cobboard_set_mode(uint8_t mode)
{
#ifdef HOST_VERSION
int8_t i2c_cobboard_set_mode(uint8_t mode)
{
#ifdef HOST_VERSION
-
return robotsim_i2c_cobboard_set_mode(mode)
;
-#e
lse
+
cobboard.mode = mode
;
+#e
ndif
struct i2c_cmd_cobboard_set_mode buf;
buf.hdr.cmd = I2C_CMD_COBBOARD_SET_MODE;
buf.mode = mode;
return i2c_send_command(I2C_COBBOARD_ADDR, (uint8_t*)&buf, sizeof(buf));
struct i2c_cmd_cobboard_set_mode buf;
buf.hdr.cmd = I2C_CMD_COBBOARD_SET_MODE;
buf.mode = mode;
return i2c_send_command(I2C_COBBOARD_ADDR, (uint8_t*)&buf, sizeof(buf));
-#endif
}
static int8_t i2c_cobboard_set_spickle(uint8_t side, uint8_t flags)
{
}
static int8_t i2c_cobboard_set_spickle(uint8_t side, uint8_t flags)
{
+#ifdef HOST_VERSION
+ return robotsim_i2c_cobboard_set_spickles(side, flags);
+#else
if (side == I2C_LEFT_SIDE)
cobboard.lspickle = flags;
else
cobboard.rspickle = flags;
return 0;
if (side == I2C_LEFT_SIDE)
cobboard.lspickle = flags;
else
cobboard.rspickle = flags;
return 0;
+#endif
}
int8_t i2c_cobboard_pack(uint8_t side)
}
int8_t i2c_cobboard_pack(uint8_t side)
@@
-426,6
+437,11
@@
int8_t i2c_cobboard_pack(uint8_t side)
return i2c_cobboard_set_spickle(side, 0);
}
return i2c_cobboard_set_spickle(side, 0);
}
+int8_t i2c_cobboard_pack_weak(uint8_t side)
+{
+ return i2c_cobboard_set_spickle(side, I2C_COBBOARD_SPK_WEAK);
+}
+
int8_t i2c_cobboard_autoharvest(uint8_t side)
{
return i2c_cobboard_set_spickle(side,
int8_t i2c_cobboard_autoharvest(uint8_t side)
{
return i2c_cobboard_set_spickle(side,
@@
-460,3
+476,11
@@
int8_t i2c_ballboard_set_mode(uint8_t mode)
return i2c_send_command(I2C_BALLBOARD_ADDR, (uint8_t*)&buf, sizeof(buf));
}
return i2c_send_command(I2C_BALLBOARD_ADDR, (uint8_t*)&buf, sizeof(buf));
}
+int8_t i2c_ballboard_set_beacon(uint8_t enable)
+{
+ struct i2c_cmd_ballboard_start_beacon buf;
+ buf.hdr.cmd = I2C_CMD_BALLBOARD_SET_BEACON;
+ buf.enable = enable;
+ return i2c_send_command(I2C_BALLBOARD_ADDR, (uint8_t*)&buf, sizeof(buf));
+}
+