for i=1:n
%set(h1(i),'XData',pos_x(i),'YData',pos_y(i));
set(h2(i),'XData',pos_x(i)+(range(i)/20)*cos(ph),'YData',pos_y(i)+sin(ph)*(range(i)/20));
set(h4(i),'XData',pos_x(i)+range(i)*cos(ph),'YData',pos_y(i)+sin(ph)*range(i),'color','c');
% This should work for the RTS part of the code. However, you can play with the delay value to get a clearer picture
% of the RTS signal. The CTS can be similar with a dotted line, or a different color.
% Additionally, I am not sure when the node sends out an RTS ,etc..I assume we will have to decide on that based on the state values
if(state(i) == 8)
if(ps(i) ~= 8) % show ONE RTS.
for size=10:-1:1
set(h7(i),'XData',pos_x(i)+(range(i)/size)*cos(ph),'YData',pos_y(i)+(range(i)/size)*sin(ph),'color','r');
for delay=15000:-1:0
end
end
end % if ps != 8
set(h7(i),'XData',pos_x(i)+(range(i))*cos(ph),'YData',pos_y(i)+(range(i))*sin(ph),'color','w'); % erase the last RTS circle
end
if(state(i)==9)
if(ps(i) ~= 9) % show ONE CTS.
for size=10:-1:1
set(h8(i),'XData',pos_x(i)+(range(i)/size)*cos(ph),'YData',pos_y(i)+(range(i)/size)*sin(ph),'color','g');
for delay=15000:-1:0
end
end
end % if ps != 9
set(h8(i),'XData',pos_x(i)+(range(i)/size)*cos(ph),'YData',pos_y(i)+(range(i)/size)*sin(ph),'color','w'); % erase last CTS circle
end
% reset RTS / CTS placeholders.
ps(i) = state(i);
%set(h7(i),'XData',pos_x(i)+(range(i))*cos(ph),'YData',pos_y(i)+(range(i))*sin(ph),'color','w'); % erase the last RTS circle
if (state(i)==5 | state(i) == 6 | state(i) == 7)
%if(state(i)>=5)
temp=1-current_frame_length(i)/initial_cfl(i);
%temp=0.5;
set(h4(i),'XData',pos_x(i)+range(i)*cos(ph),'YData',pos_y(i)+sin(ph)*range(i),'color','m');
if within(i,current_frame_dest(i))>0
set(h5(i),'XData',[pos_x(i),pos_x(i)+min(temp,range(i))*(pos_x(current_frame_dest(i))-pos_x(i))],'YData',[pos_y(i),pos_y(i)+min(temp,range(i))*(pos_y(current_frame_dest(i))-pos_y(i))],'color','r');
else
set(h5(i),'XData',[pos_x(i),pos_x(i)+min(temp,range(i))*(pos_x(current_frame_dest(i))-pos_x(i))],'YData',[pos_y(i),pos_y(i)+min(temp,range(i))*(pos_y(current_frame_dest(i))-pos_y(i))],'color','m');
end %set(h7(i),'XData',[pos_x(i)+min(temp,range(i))*(pos_x(current_frame_dest(i))-pos_x(i)),pos_x(i)+(min(temp,range(i))+temp-range(i))*(pos_x(current_frame_dest(i))-pos_x(i))],'YData',[pos_y(i)+min(temp,range(i))*(pos_y(current_frame_dest(i))-pos_y(i)),pos_y(i)+(min(temp,range(i))+temp-range(i))*(pos_y(current_frame_dest(i))-pos_y(i))],'color','m');
else
set(h5(i),'color','w');
end % end of if(state(i) >= 5)
if (state(i)==-1 & ACK_dest(i) ~= 0)
set(h6(i),'XData',[pos_x(i),pos_x(ACK_dest(i))],'YData',[pos_y(i),pos_y(ACK_dest(i))],'color','g');
else
set(h6(i),'color','w');
end %end of if(state(i) <= -1)
end %end of for i=1:n