@@ -122,6 +122,8 @@ void loop(){
122122 break ;
123123 case ' P' :
124124 alvik.setPositionLeft (value);
125+ ack_required=MOVEMENT_LEFT;
126+ ack_check=true ;
125127 break ;
126128 case ' Z' :
127129 alvik.resetPositionLeft (value);
@@ -136,6 +138,8 @@ void loop(){
136138 break ;
137139 case ' P' :
138140 alvik.setPositionRight (value);
141+ ack_required=MOVEMENT_RIGHT;
142+ ack_check=true ;
139143 break ;
140144 case ' Z' :
141145 alvik.resetPositionRight (value);
@@ -149,6 +153,8 @@ void loop(){
149153 packeter.unpacketC2F (code,position_left, position_right);
150154 alvik.disableKinematicsMovement ();
151155 alvik.setPosition (position_left, position_right);
156+ ack_required=MOVEMENT_POSITION;
157+ ack_check=true ;
152158 break ;
153159
154160
@@ -280,13 +286,22 @@ void loop(){
280286 msg_size = packeter.packetC3B (0x7E , version[0 ], version[1 ], version[2 ]);
281287 alvik.serial ->write (packeter.msg ,msg_size);
282288 }
283- if (ack_check && alvik.isTargetReached ()){
289+ if (ack_check && ( alvik.isTargetReached () || alvik. isPositionReached () || alvik. isPositionLeftReached () || alvik. isPositionRightReached () )){
284290 if (ack_required == MOVEMENT_ROTATE){
285291 msg_size = packeter.packetC1B (' x' , ' R' );
286292 }
287293 if (ack_required == MOVEMENT_MOVE){
288294 msg_size = packeter.packetC1B (' x' , ' M' );
289295 }
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+ }
290305 }
291306 else {
292307 msg_size = packeter.packetC1B (' x' , 0 );
0 commit comments