14 #ifndef OPEN_INTERFACE_H_ 15 #define OPEN_INTERFACE_H_ 17 #define M_PI 3.14159265358979323846 22 uint32_t wheelDropLeft : 1;
23 uint32_t wheelDropRight : 1;
24 uint32_t bumpLeft : 1;
25 uint32_t bumpRight : 1;
26 uint32_t cliffLeft : 1;
27 uint32_t cliffFrontLeft : 1;
28 uint32_t cliffFrontRight : 1;
29 uint32_t cliffRight : 1;
31 uint32_t lightBumperRight : 1;
32 uint32_t lightBumperFrontRight : 1;
33 uint32_t lightBumperCenterRight : 1;
34 uint32_t lightBumperCenterLeft : 1;
35 uint32_t lightBumperFrontLeft : 1;
36 uint32_t lightBumperLeft : 1;
38 uint32_t wallSensor : 1;
39 uint32_t virtualWall : 1;
41 uint32_t overcurrentLeftWheel : 1;
42 uint32_t overcurrentRightWheel : 1;
43 uint32_t overcurrentMainBrush : 1;
44 uint32_t overcurrentSideBrush : 1;
46 uint32_t buttonClock : 1;
47 uint32_t buttonSchedule : 1;
48 uint32_t buttonDay : 1;
49 uint32_t buttonHour : 1;
50 uint32_t buttonMinute : 1;
51 uint32_t buttonDock : 1;
52 uint32_t buttonSpot : 1;
53 uint32_t buttonClean : 1;
56 uint16_t cliffLeftSignal;
57 uint16_t cliffFrontLeftSignal;
58 uint16_t cliffFrontRightSignal;
59 uint16_t cliffRightSignal;
62 uint16_t lightBumpLeftSignal;
63 uint16_t lightBumpFrontLeftSignal;
64 uint16_t lightBumpCenterLeftSignal;
65 uint16_t lightBumpCenterRightSignal;
66 uint16_t lightBumpFrontRightSignal;
67 uint16_t lightBumpRightSignal;
74 int16_t leftMotorCurrent;
75 int16_t rightMotorCurrent;
76 int16_t mainBrushMotorCurrent;
77 int16_t sideBrushMotorCurrent;
82 int8_t requestedVelocity;
83 int8_t requestedRadius;
84 int16_t requestedRightVelocity;
85 int16_t requestedLeftVelocity;
86 uint16_t leftEncoderCount;
87 uint16_t rightEncoderCount;
90 char infraredCharOmni;
91 char infraredCharLeft;
92 char infraredCharRight;
95 uint8_t chargingState;
96 uint8_t chargingSourcesAvailable;
97 uint16_t batteryVoltage;
98 int16_t batteryCurrent;
99 uint8_t batteryTemperature;
100 uint16_t batteryCharge;
101 uint16_t batteryCapacity;
109 uint8_t numberOfStreamPackets;
119 void oi_free(
oi_t *
self);
123 void oi_init(
oi_t *
self);
128 void oi_update(
oi_t *
self);
135 void oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity);
140 void oi_setWheels(int16_t right_wheel, int16_t left_wheel);
148 void oi_loadSong(
int song_index,
int num_notes,
unsigned char *notes,
unsigned char *duration);
152 void oi_play_song(
int index);
156 void go_charge(
void);
158 char* oi_checkFirmware();
161 void oi_shutoff_init(
void);
164 void GPIOF_Handler(
void);
167 int getDegrees(
oi_t *
self);
iRobot Create Sensor Data