次の要件で、ハンドラー機器を自動化しようとしています(ロボットがチップを選択してハードウェアプラットフォームに配置します):
1. ハンドラーには 6 つのサイトがあり、ハンドラーがそのサイトにデバイスを配置すると、ハンドラーはエラーコードを返します。
code1 はテスト準備完了、code2 はエラー、処理中の場合はコードが返されませんでした。
2.ハンドラーの動作を制御するマスターPCがあり、マスターPCとサイトPCの通信はStafを使用
3.そのコードを使用して、いくつかのテストを実行する必要があります(すでに実装され、適切に機能しています)。ハンドラーはデバイスを FIFO の順序で配置し、最初のサイトが最初にコードを返し、最後のサイトがコードを最後に返します。
4. サイト PC は受動的に動作しており、どのマスター PC がテストの実行時期と実行方法を決定します。サイト PC は、ハンドラーの準備ができているかどうかのみを認識し、テストを実行します。
したがって、私の質問は次のようになります: この場合、サイト PC (perl と .net が有効になっている Windows ベース) の場合、ビジー状態の待機方法の方が優れているか、または待機状態メカニズムの方が適しています:
例: サンプル コードは次のようになります。
void runTestonSite()
{
for(;;)
{
if(returnCode == code1)
{
testStart(arg1,arg2,arg3);
}
}
}
または、この種のタスクを実行するためのより良い方法はありますか?
#include <boost/thread.hpp>
void getReturnCode() {
// do stuff
}
void RunTestOnSite() {
// do stuff
}
int main (int argc, char ** argv) {
using namespace boost;
thread thread_1 = thread(getReturnCode);
thread thread_2 = thread(RunTestOnSite);
// do other stuff
thread_2.join();
thread_1.join();
return 0;
}
アドバイスしてください、ありがとう