Skip to content

Commit 2710d45

Browse files
committed
rotate cmd ok
rem: ucPack dep
1 parent f8dbd06 commit 2710d45

File tree

3 files changed

+36
-56
lines changed

3 files changed

+36
-56
lines changed

examples/firmware_i2c/firmware_i2c.ino

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -94,39 +94,37 @@ void publishImu() {
9494
sendMessage(packeter.msg, msg_size);
9595
}
9696

97-
void parseMessage() {
97+
void getData(size_t size) {
98+
99+
for (size_t i=0; i<size; i++){
100+
data[i]=alvik.ext_wire->read();
101+
}
102+
103+
}
98104

105+
void rotateCmd() {
99106
float angle;
100-
uint8_t code;
107+
size_t sz = sizeof(angle);
108+
getData(sz);
109+
memcpy(&angle, data, sz);
110+
111+
alvik.rotate(angle);
112+
}
113+
114+
void parseMessage() {
101115

102116
switch (command){
103117
case 'R':
104-
// for (size_t i = 0; i < 9; i++) {
105-
// packeter.buffer.push(alvik.ext_wire->read());
106-
// }
107-
data[0]=alvik.ext_wire->read();
108-
data[1]=alvik.ext_wire->read();
109-
data[2]=alvik.ext_wire->read();
110-
data[3]=alvik.ext_wire->read();
111-
memcpy(&angle, data, 4);
112-
113-
// packeter.unpacketC1F(code, angle);
114-
// alvik.rotate(angle);
115-
alvik.serial->println(angle);
116-
if (angle > 0) {
117-
alvik.setLedRight(COLOR_VIOLET);
118-
} else {
119-
alvik.setLedRight(COLOR_RED);
120-
}
121-
//Serial.println("rotate");
118+
rotateCmd();
119+
break;
120+
default:
122121
break;
123122
}
124123

125124
}
126125

127126
void receiveEvent(int event){
128127
command=alvik.ext_wire->read();
129-
//Serial.println("requested\t"+String(command));
130128
parseMessage();
131129

132130
}

examples/firmware_i2c/unoq/AlvikI2C.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#define ARDUINO_ALVIKCARRIER_ALVIKI2C_H
44

55
#include <Wire.h>
6-
#include <ucPack.h>
76
#define wire Wire1
87

98
#define ALVIK_I2C_ADDRESS 0x2B
@@ -37,6 +36,17 @@ class AlvikI2C{
3736
wire.readBytes(version, 3);
3837
}
3938

39+
void rotate(float angle) {
40+
int msg_size = sizeof(angle);
41+
uint8_t msg[msg_size];
42+
43+
wire.beginTransmission(address);
44+
wire.write('R');
45+
memcpy(msg, &angle, sizeof(angle));
46+
wire.write(msg, sizeof(angle));
47+
wire.endTransmission();
48+
}
49+
4050
String getVersionString() {
4151
String versionStr = String(version[0]) + "." +
4252
String(version[1]) + "." +

examples/firmware_i2c/unoq/unoq.ino

Lines changed: 6 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,6 @@
44

55
AlvikI2C alvik;
66

7-
int msg_size;
8-
9-
float f = 90;
10-
uint8_t msg[100];
11-
127
void setup() {
138

149
alvik.begin();
@@ -25,40 +20,17 @@ void setup() {
2520

2621
}
2722

28-
void print_msg(size_t size) {
29-
30-
for (size_t i = 0; i < size; i++) {
31-
Monitor.print(msg[i], HEX);
32-
Monitor.print(" ");
33-
}
34-
Monitor.println("");
35-
36-
}
37-
3823
void loop() {
3924

4025
Monitor.println(alvik.getVersionString());
4126
delay(1000);
4227

43-
// f = 90.0;
44-
// wire.beginTransmission(address);
45-
// wire.write('R');
46-
// //msg_size = packeter.packetC1F('R', f);
47-
// memcpy(msg, &f, sizeof(f));
48-
// //wire.write(packeter.msg, msg_size);
49-
// wire.write(msg, sizeof(f));
50-
// wire.endTransmission();
51-
// delay(1000);
52-
//
53-
// f = -90.0;
54-
// wire.beginTransmission(address);
55-
// wire.write('R');
56-
// //msg_size = packeter.packetC1F('R', f);
57-
// memcpy(msg, &f, sizeof(f));
58-
// //wire.write(packeter.msg, msg_size);
59-
// wire.write(msg, sizeof(f));
60-
// wire.endTransmission();
61-
// delay(1000);
28+
alvik.rotate(10.0);
29+
delay(1000);
30+
31+
alvik.rotate(-10.0);
32+
delay(1000);
33+
6234
//
6335
// wire.beginTransmission(address);
6436
// wire.write('I');

0 commit comments

Comments
 (0)