I was under the impression that no environment variables should need to be set in order for pvAccess to find PVs on the local subnet. However, this does not seem to be working with base 7.0.x (master as of a few months ago).
By default on both my Linux and Windows systems no EPICS_PVA_* environment variables are set.
If I run the IOC on Linux then this is what I see with pvinfo from Windows:
C:\phoebus-0.0.1-win\phoebus-0.0.1>h:\epics\base\bin\windows-x64-static\pvinfo 13SIM1:Pva1:Image
2018-11-13T08:12:23.358 No broadcast addresses found or specified - empty address list!
[13SIM1:Pva1:Image] failed to get channel introspection data
If I set EPICS_PVA_ADDR_LIST to the broadcast address of the subnet it works:
C:\phoebus-0.0.1-win\phoebus-0.0.1>set EPICS_PVA_ADDR_LIST=164.54.160.255
C:\phoebus-0.0.1-win\phoebus-0.0.1>h:\epics\base\bin\windows-x64-static\pvinfo 13SIM1:Pva1:Image
CHANNEL : 13SIM1:Pva1:Image
STATE : CONNECTED
ADDRESS : 164.54.160.82:59335
epics:nt/NTNDArray:1.0
union value
boolean[] booleanValue
byte[] byteValue
short[] shortValue
int[] intValue
long[] longValue
ubyte[] ubyteValue
ushort[] ushortValue
uint[] uintValue
ulong[] ulongValue
float[] floatValue
double[] doubleValue
If I run pvinfo on Linux where the IOC is running then it works without setting EPICS_PVA_ADDR_LIST. Thus it at least finds PVs on localhost.
corvette:~/devel/areaDetector/ADSupport>printenv | grep EPICS_PVA
corvette:~/devel/areaDetector/ADSupport>/usr/local/epics/base-7.0.1/bin/linux-x86_64/pvinfo 13SIM1:Pva1:Image
CHANNEL : 13SIM1:Pva1:Image
STATE : CONNECTED
ADDRESS : 164.54.160.82:59335
epics:nt/NTNDArray:1.0
union value
boolean[] booleanValue
byte[] byteValue
short[] shortValue
int[] intValue
long[] longValue
ubyte[] ubyteValue
ushort[] ushortValue
uint[] uintValue
ulong[] ulongValue
float[] floatValue
double[] doubleValue
Now I run the IOC on Windows.
Running pvinfo on the local Windows machine:
If I undefine EPICS_PVA_ADDR_LIST it does not work. Thus it does not even find PVs on localhost.
C:\phoebus-0.0.1-win\phoebus-0.0.1>set EPICS_PVA_ADDR_LIST=
C:\phoebus-0.0.1-win\phoebus-0.0.1>h:\epics\base\bin\windows-x64-static\pvinfo 13SIM1:Pva1:Image
2018-11-13T08:20:24.858 No broadcast addresses found or specified - empty address list!
[13SIM1:Pva1:Image] failed to get channel introspection data
If I define EPICS_PVA_ADDR_LIST it works fine.
C:\phoebus-0.0.1-win\phoebus-0.0.1>set EPICS_PVA_ADDR_LIST=164.54.160.255
C:\phoebus-0.0.1-win\phoebus-0.0.1>h:\epics\base\bin\windows-x64-static\pvinfo 13SIM1:Pva1:Image
CHANNEL : 13SIM1:Pva1:Image
STATE : CONNECTED
ADDRESS : 164.54.160.15:5075
epics:nt/NTNDArray:1.0
union value
boolean[] booleanValue
byte[] byteValue
short[] shortValue
int[] intValue
long[] longValue
ubyte[] ubyteValue
ushort[] ushortValue
uint[] uintValue
ulong[] ulongValue
float[] floatValue
double[] doubleValue
Running pvinfo on Linux it works fine without defining EPICS_PVA_ADDR_LIST.
corvette:~/devel/areaDetector/ADSupport>printenv | grep EPICS_PVA
corvette:~/devel/areaDetector/ADSupport>/usr/local/epics/base-7.0.1/bin/linux-x86_64/pvinfo 13SIM1:Pva1:Image
CHANNEL : 13SIM1:Pva1:Image
STATE : CONNECTED
ADDRESS : 164.54.160.15:5075
epics:nt/NTNDArray:1.0
union value
boolean[] booleanValue
byte[] byteValue
short[] shortValue
int[] intValue
long[] longValue
ubyte[] ubyteValue
ushort[] ushortValue
uint[] uintValue
ulong[] ulongValue
float[] floatValue
double[] doubleValue
So it appears that I need to set EPICS_PVA_ADDR_LIST on Windows for pvinfo or pvget to work.
However, when I run phoebus (the new version of CSS) I can display that PV fine even without setting EPICS_PVA_ADDR_LIST.
Mark