注意,以下程序,在robot studio中运行结束后,再次点击启动,程序不会再去读 commu_flag
的初始值,将保持为上次程序结束后的值;或者如果仅点击将程序指针移至光标
也是同样的效果。
- 需要
将程序指针设为所有任务中的主例行程序
- 或者将
commu_flag
赋值放在main()
中
MODULE MainModule
VAR socketdev server_socket;
VAR socketdev client_socket;
VAR string client_ip;
VAR string receive_string;
VAR bool commu_flag:=TRUE;
PROC calib_1()
TPWrite "RUN calib_1";
ENDPROC
PROC main()
SocketCreate server_socket;
SocketBind server_socket,"127.0.0.1",12348;
SocketListen server_socket;
SocketAccept server_socket,client_socket\ClientAddress:=client_ip;
WHILE commu_flag DO
SocketReceive client_socket\Str:=receive_string;
TEST receive_string
CASE "calib_1":
TPWrite "Message received: "+receive_string;
calib_1;
CASE "close":
TPWrite "Message received: "+receive_string;
commu_flag:=FALSE;
DEFAULT:
TPWrite "Message received: "+receive_string;
ENDTEST
ENDWHILE
SocketSend client_socket\Str:="Communicate finish, now close you!";
SocketClose server_socket;
SocketClose client_socket;
ERROR
SocketClose server_socket;
SocketClose client_socket;
ENDPROC
ENDMODULE