Browse Source

Merge branch 'eesast:dev' into new

tags/0.1.0
shangfengh GitHub 2 years ago
parent
commit
571ecfe366
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 10 deletions
  1. +4
    -1
      CAPI/cpp/API/src/Communication.cpp
  2. +17
    -9
      dependency/shell/run.sh
  3. +3
    -0
      logic/Server/ArgumentOption.cs
  4. +11
    -0
      logic/Server/GameServer.cs

+ 4
- 1
CAPI/cpp/API/src/Communication.cpp View File

@@ -249,10 +249,13 @@ void Communication::AddPlayer(int64_t playerID, THUAI6::PlayerType playerType, T
grpc::ClientContext context;
auto MessageReader = THUAI6Stub->AddPlayer(&context, playerMsg);

while (MessageReader->Read(&message2Client))
protobuf::MessageToClient buffer2Client;

while (MessageReader->Read(&buffer2Client))
{
{
std::lock_guard<std::mutex> lock(mtxMessage);
message2Client = std::move(buffer2Client);
haveNewMessage = true;
}
cvMessage.notify_one();


+ 17
- 9
dependency/shell/run.sh View File

@@ -3,7 +3,7 @@
python_dir=/usr/local/PlayerCode/CAPI/python/PyAPI
playback_dir=/usr/local/playback

nice -10 ./Server --port 8888 --studentCount 4 --trickerCount 1 --gameTimeInSecond 600 --url $URL --token $TOKEN --fileName $playback_dir/video > $playback_dir/server.log &
nice -10 ./Server --port 8888 --studentCount 4 --trickerCount 1 --gameTimeInSecond 600 --url $URL --token $TOKEN --fileName $playback_dir/video --startLockFile $playback_dir/start.lock > $playback_dir/server.log &
server_pid=$!
sleep 5
for k in {1..2}
@@ -39,12 +39,20 @@ do
popd
done

ps -p $server_pid
while [ $? -eq 0 ]
do
sleep 1
ps -p $server_pid
done
sleep 10

touch $playback_dir/finish.lock
echo "Finish"
if [ -f $playback_dir/start.lock ]; then
ps -p $server_pid
while [ $? -eq 0 ]
do
sleep 1
ps -p $server_pid
done
touch $playback_dir/finish.lock
echo "Finish"
else
echo "Failed to start game."
touch temp.lock
mv -f temp.lock $playback_dir/video.thuaipb
kill -9 $server_pid
fi

+ 3
- 0
logic/Server/ArgumentOption.cs View File

@@ -71,5 +71,8 @@ namespace Server

[Option("resultFileName", Required = false, HelpText = "Result file name, saved as .json")]
public string ResultFileName { get; set; } = DefaultArgumentOptions.FileName;

[Option("startLockFile", Required = false, HelpText = "Whether to create a file that identifies whether the game has started")]
public string StartLockFile { get; set; } = DefaultArgumentOptions.FileName;
}
}

+ 11
- 0
logic/Server/GameServer.cs View File

@@ -45,6 +45,7 @@ namespace Server
if (id == GameObj.invalidID) return; //如果有未初始化的玩家,不开始游戏
}
Console.WriteLine("Game starts!");
CreateStartFile();
game.StartGame((int)options.GameTimeInSecond * 1000);
Thread.Sleep(1);
new Thread(() =>
@@ -74,6 +75,16 @@ namespace Server
})
{ IsBackground = true }.Start();
}

public void CreateStartFile()
{
if (options.StartLockFile != DefaultArgumentOptions.FileName)
{
using var _ = File.Create(options.StartLockFile);
Console.WriteLine("Successfully Created StartLockFile!");
}
}

public void WaitForEnd()
{
this.endGameSem.Wait();


Loading…
Cancel
Save