Implement ping
authorH.G. Muller <h.g.muller@hccnet.nl>
Sat, 14 Jan 2012 11:14:57 +0000 (12:14 +0100)
committerH.G. Muller <h.g.muller@hccnet.nl>
Sat, 14 Jan 2012 11:15:16 +0000 (12:15 +0100)
Use readyok / isready to really ping the engine before acknowledging the GUI.

UCI2WB.c

index e709384..764f921 100644 (file)
--- a/UCI2WB.c
+++ b/UCI2WB.c
@@ -292,7 +292,7 @@ printf("# start search\n");
            } else fprintf(toE, "setoption name %s\n", line+7), printf("# setoption name %s\n", line+7);\r
        }\r
        else if(!strcmp(command, "protover")) {\r
-           printf("feature variants=\"%s\" setboard=1 usermove=1 debug=1 reuse=0 done=0\n", sc=='s' ? "shogi,5x5+5_shogi" : VARIANTS);\r
+           printf("feature variants=\"%s\" setboard=1 usermove=1 debug=1 ping=1 reuse=0 done=0\n", sc=='s' ? "shogi,5x5+5_shogi" : VARIANTS);\r
            fprintf(toE, "u%ci\n", sc); // this prompts UCI engine for options\r
        }\r
        else if(!strcmp(command, "setboard")) {\r
@@ -327,6 +327,7 @@ printf("# start search\n");
        else if(!strcmp(command, "nopost")) post = 0;\r
        else if(!strcmp(command, "easy"))   ponder = 0;\r
        else if(!strcmp(command, "hard"))   ponder = 1;\r
+       else if(!strcmp(command, "ping"))   pause = 1, fprintf(toE, "isready\n"), fflush(toE), Sync(PAUSE), printf("pong %s", line+5);\r
        else if(!strcmp(command, "memory")) sscanf(line, "memory %d", &memory);\r
        else if(!strcmp(command, "cores"))  sscanf(line, "cores %d", &cores);\r
        else if(!strcmp(command, "sd"))     sscanf(line, "sd %d", &depth);\r