One way to do this would be to use a standard drvAsynIPPort rather than ping. If there is a port on another host which is almost always available then you could just periodically open that port and read from it, for example port 80 for
http or port 443 for https. If the asyn connection returns an error then you can assume the network is down. This can all be done with standard EPICS records, with no need to call C code.
For example, you can periodically send a GET command to
www.google.com on port 80. If you get timeout or other error you know the network is down.
If you are trying to determine if a specific host on your local network is down then that might be different.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of
neu lzf via Tech-talk
Sent: Saturday, April 27, 2024 8:16 PM
To: tech-talk at aps.anl.gov
Subject: Question about PV value from epics ioc
I intend to establish a PV value from epics ioc depending on network connection status judging by the 'ping' command. If the network disconnected, the PV value is 0, otherwise change to 1.
I want to consult you how to program the C file to implement this function by using epics, could you please show a demonstration on it.
Any help will be appreciated and thanks in advance.