Skip to content

Commit 291d798

Browse files
committed
partial fix on ack
1 parent 969ac08 commit 291d798

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

examples/firmware_01/firmware_01.ino

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ uint8_t code;
2828
uint8_t label;
2929
uint8_t control_type;
3030
uint8_t msg_size;
31+
uint8_t ack_required=0;
3132

3233

3334
unsigned long tmotor=0;
@@ -154,12 +155,14 @@ void loop(){
154155
packeter.unpacketC1F(code, value);
155156
alvik.disablePositionControl();
156157
alvik.rotate(value);
158+
ack_required=MOVEMENT_ROTATE;
157159
break;
158160

159161
case 'G':
160162
packeter.unpacketC1F(code, value);
161163
alvik.disablePositionControl();
162164
alvik.move(value);
165+
ack_required=MOVEMENT_MOVE;
163166
break;
164167

165168
case 'Z':
@@ -221,16 +224,21 @@ void loop(){
221224
msg_size = packeter.packetC3F('z', alvik.getX(), alvik.getY(), alvik.getTheta());
222225
alvik.serial->write(packeter.msg, msg_size);
223226

224-
if (alvik.getKinematicsMovement()!=MOVEMENT_DISABLED){
227+
if (ack_required!=0){
225228
if (alvik.isTargetReached()){
226-
if (alvik.getKinematicsMovement()==MOVEMENT_ROTATE){
229+
Serial.print(alvik.isTargetReached());
230+
Serial.print("\t");
231+
Serial.println(alvik.getKinematicsMovement());
232+
233+
if (ack_required==MOVEMENT_ROTATE){
227234
msg_size = packeter.packetC1B('x', 'R');
228235
}
229-
if (alvik.getKinematicsMovement()==MOVEMENT_MOVE){
236+
if (ack_required==MOVEMENT_MOVE){
230237
msg_size = packeter.packetC1B('x', 'M');
231238
}
232239
alvik.serial->write(packeter.msg, msg_size);
233240
//alvik.disableKinematicsMovement();
241+
ack_required=0;
234242
}
235243

236244
}

src/Arduino_AlvikCarrier.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,7 @@ void Arduino_AlvikCarrier::updateKinematics(){
680680
if (abs(rotate_pid->getError())<ROTATE_THREASHOLD){
681681
kinematics_achieved=true;
682682
disableKinematicsMovement();
683+
drive(0,0);
683684
}
684685
}
685686
if (kinematics_movement==MOVEMENT_MOVE){
@@ -688,6 +689,7 @@ void Arduino_AlvikCarrier::updateKinematics(){
688689
if (abs(move_pid->getError())<MOVE_THREADSHOLD){
689690
kinematics_achieved=true;
690691
disableKinematicsMovement();
692+
drive(0,0);
691693
}
692694

693695
}

0 commit comments

Comments
 (0)