LAN経由でコンピューターに接続されている電子機器を持っています。私はそれと通信するためのSDKを持っています。
デバイスと通信する前に、SDKで提供されているコードに接続して登録する必要があります。それはすべて大丈夫です。
私のwinアプリケーションは、アプリケーションの起動時にマシンを接続して登録しますが、問題は、電子デバイスがスイッチオフされてからスイッチオンされた場合、アプリケーションはデバイスを再度接続して登録する必要があることです。
したがって、問題は、デバイスがIP経由で接続されているかどうかを継続的に監視する方法です(C#コードを介してPINGINGするようなもの)。
したがって、デバイスを常にPINGする際の問題の1つは、実際のアプリケーションに影響を与えないように、別のスレッドで実行する必要があることです。もう1つの良い解決策は、デバイスがIP経由で切断されたときにイベントを発生させるピースコードを取得した場合です。
手伝ってくれてありがとう。よろしく、
編集1:SDKを使用して接続するために使用するコードの一部
bool connected;
connected = axCZKEM1.Connect_Net("192.168.1.201", "4370");
bool registered;
registered = axCZKEM1.RegEvent(1, 65535);
編集2:sa_ddam213による回答からメソッドを試していますが、pingが失敗することはありません。また、PCの動作が遅くなります。私はどのようなエラーを犯していますか?
while (true)
{
Ping ping = new Ping();
ping.PingCompleted += (sender, e) =>
{
if(e.Reply.Status != IPStatus.Success)
{
connected=false;
registered=false;
while(connected && registered)
{
connected = axCZKEM1.Connect_Net("192.168.1.201", 4370);
registered = axCZKEM1.RegEvent(1, 65535);
}
}
};
ping.Send("192.168.1.201", 3000);
}