2 * Copyright Droids Corporation (2007)
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 * Revision : $Id: i2c_commands.h,v 1.9 2009-05-27 20:04:06 zer0 Exp $
22 #ifndef _I2C_COMMANDS_H_
23 #define _I2C_COMMANDS_H_
25 #define I2C_MAINBOARD_ADDR 1
26 #define I2C_COBBOARD_ADDR 2
27 #define I2C_BALLBOARD_ADDR 3
29 #define I2C_LEFT_SIDE 0
30 #define I2C_RIGHT_SIDE 1
31 #define I2C_AUTO_SIDE 2
32 #define I2C_CENTER_SIDE 3
34 #define I2C_COLOR_RED 0
35 #define I2C_COLOR_GREEN 1
42 /* commands that do not need and answer */
45 #define I2C_CMD_GENERIC_LED_CONTROL 0x00
47 struct i2c_cmd_led_control {
48 struct i2c_cmd_hdr hdr;
55 #define I2C_CMD_GENERIC_SET_COLOR 0x01
57 struct i2c_cmd_generic_color {
58 struct i2c_cmd_hdr hdr;
64 #define I2C_CMD_COBBOARD_SET_MODE 0x02
66 struct i2c_cmd_cobboard_set_mode {
67 struct i2c_cmd_hdr hdr;
68 #define I2C_COBBOARD_MODE_INIT 0x00
69 #define I2C_COBBOARD_MODE_MANUAL 0x01
70 #define I2C_COBBOARD_MODE_HARVEST 0x02
71 #define I2C_COBBOARD_MODE_EXIT 0xFF
83 /* requests and their answers */
87 #define I2C_REQ_COBBOARD_STATUS 0x80
89 struct i2c_req_cobboard_status {
90 struct i2c_cmd_hdr hdr;
91 int16_t sickle_left1_current;
94 #define I2C_ANS_COBBOARD_STATUS 0x81
96 struct i2c_ans_cobboard_status {
97 struct i2c_cmd_hdr hdr;
98 /* mode type are defined above: I2C_COBBOARD_MODE_xxx */
101 #define I2C_COBBOARD_STATUS_F_READY 0x00
102 #define I2C_COBBOARD_STATUS_F_BUSY 0x01
103 #define I2C_COBBOARD_STATUS_F_EXCPT 0x02
109 #define I2C_REQ_BALLBOARD_STATUS 0x82
111 struct i2c_req_ballboard_status {
112 struct i2c_cmd_hdr hdr;
115 #define I2C_ANS_BALLBOARD_STATUS 0x83
117 struct i2c_ans_ballboard_status {
118 struct i2c_cmd_hdr hdr;
121 #define I2C_BALLBOARD_STATUS_F_READY 0x00
122 #define I2C_BALLBOARD_STATUS_F_BUSY 0x01
123 #define I2C_BALLBOARD_STATUS_F_EXCPT 0x02
129 #endif /* _I2C_PROTOCOL_H_ */