@@ -122,6 +122,8 @@ void loop(){
122
122
break ;
123
123
case ' P' :
124
124
alvik.setPositionLeft (value);
125
+ ack_required=MOVEMENT_LEFT;
126
+ ack_check=true ;
125
127
break ;
126
128
case ' Z' :
127
129
alvik.resetPositionLeft (value);
@@ -136,6 +138,8 @@ void loop(){
136
138
break ;
137
139
case ' P' :
138
140
alvik.setPositionRight (value);
141
+ ack_required=MOVEMENT_RIGHT;
142
+ ack_check=true ;
139
143
break ;
140
144
case ' Z' :
141
145
alvik.resetPositionRight (value);
@@ -149,6 +153,8 @@ void loop(){
149
153
packeter.unpacketC2F (code,position_left, position_right);
150
154
alvik.disableKinematicsMovement ();
151
155
alvik.setPosition (position_left, position_right);
156
+ ack_required=MOVEMENT_POSITION;
157
+ ack_check=true ;
152
158
break ;
153
159
154
160
@@ -280,13 +286,22 @@ void loop(){
280
286
msg_size = packeter.packetC3B (0x7E , version[0 ], version[1 ], version[2 ]);
281
287
alvik.serial ->write (packeter.msg ,msg_size);
282
288
}
283
- if (ack_check && alvik.isTargetReached ()){
289
+ if (ack_check && ( alvik.isTargetReached () || alvik. isPositionReached () || alvik. isPositionLeftReached () || alvik. isPositionRightReached () )){
284
290
if (ack_required == MOVEMENT_ROTATE){
285
291
msg_size = packeter.packetC1B (' x' , ' R' );
286
292
}
287
293
if (ack_required == MOVEMENT_MOVE){
288
294
msg_size = packeter.packetC1B (' x' , ' M' );
289
295
}
296
+ if (ack_required == MOVEMENT_POSITION){
297
+ msg_size = packeter.packetC1B (' x' , ' P' );
298
+ }
299
+ if (ack_required == MOVEMENT_LEFT){
300
+ msg_size = packeter.packetC1B (' x' , ' P' );
301
+ }
302
+ if (ack_required == MOVEMENT_RIGHT){
303
+ msg_size = packeter.packetC1B (' x' , ' P' );
304
+ }
290
305
}
291
306
else {
292
307
msg_size = packeter.packetC1B (' x' , 0 );
0 commit comments