Skip to content

Commit 0c3f6ea

Browse files
authored
Merge pull request #3 from ControlSystemStudio/settings_fix
Settings handling fix
2 parents 9bdf43c + 1e8984b commit 0c3f6ea

File tree

3 files changed

+44
-24
lines changed

3 files changed

+44
-24
lines changed

src/main/java/org/phoebus/pvws/EpicsConfiguration.java

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,27 @@ public class EpicsConfiguration {
4040
@Value("${PV_DEFAULT_TYPE:ca}")
4141
private String pvDefaultType;
4242

43+
@Value("${EPICS_PVA_ADDR_LIST}")
44+
private String epicsPvaAddrList;
45+
46+
@Value("${EPICS_PVA_AUTO_ADDR_LIST:YES}")
47+
private String epicsPvaAutoAddrList;
48+
49+
@Value("${EPICS_PVA_BROADCAST_PORT:5076}")
50+
private String epicsPvaBroadcastPort;
51+
52+
@Value("${EPICS_PVA_NAME_SERVERS}")
53+
private String epicsPvaNameServers;
54+
55+
@Value("${PV_THROTTLE_MS:1000}")
56+
private String pvThrottleMs;
57+
58+
@Value("${PV_ARRAY_THROTTLE_MS:10000}")
59+
private String pvArrayThrottleMs;
60+
61+
@Value("${PV_WRITE_SUPPORT:true}")
62+
private String pvWriteSupport;
63+
4364
@PostConstruct
4465
public void init() {
4566
logger.log(Level.INFO, "===========================================");
@@ -57,24 +78,27 @@ else if (pvDefaultType != null && !pvDefaultType.isEmpty()) {
5778
}
5879
logger.log(Level.INFO, "PV_DEFAULT_TYPE=" + Preferences.userRoot().node("/org/phoebus/pv").get("default", null));
5980

81+
Preferences.userRoot().node("/org/phoebus/pv/pva").put("epics_pva_addr_list", epicsPvaAddrList);
82+
83+
if(!epicsPvaAutoAddrList.isEmpty()){
84+
Preferences.userRoot().node("/org/phoebus/pv/pva").put("epics_pva_auto_addr_list", epicsPvaAutoAddrList);
85+
}
86+
87+
Preferences.userRoot().node("/org/phoebus/pv/pva").put("epics_pva_broadcast_port", epicsPvaBroadcastPort);
88+
Preferences.userRoot().node("/org/phoebus/pv/pva").put("epics_pva_name_servers", epicsPvaNameServers);
89+
90+
System.setProperty("PV_THROTTLE_MS", pvThrottleMs);
91+
System.setProperty("PV_ARRAY_THROTTLE_MS", pvArrayThrottleMs);
92+
System.setProperty("PV_WRITE_SUPPORT", pvWriteSupport);
6093

6194
// Configure JCA/CAJ to use environment vars, not java properties or preferences
62-
System.setProperty("jca.use_env", "false");
63-
64-
for (String name : new String[]
65-
{
66-
"PV_DEFAULT_TYPE",
67-
"PV_THROTTLE_MS",
68-
"PV_ARRAY_THROTTLE_MS",
69-
"PV_WRITE_SUPPORT",
70-
"EPICS_CA_ADDR_LIST",
71-
"EPICS_CA_AUTO_ADDR_LIST",
72-
"EPICS_CA_MAX_ARRAY_BYTES",
73-
"EPICS_PVA_ADDR_LIST",
74-
"EPICS_PVA_AUTO_ADDR_LIST"
75-
})
76-
logger.log(Level.INFO, name + " = " + System.getenv(name));
95+
System.setProperty("jca.use_env", "true");
7796

97+
logger.log(Level.INFO, "EPICS_CA_ADDR_LIST=" + System.getenv("EPICS_CA_ADDR_LIST"));
98+
logger.log(Level.INFO, "EPICS_CA_AUTO_ADDR_LIST=" + System.getenv("EPICS_CA_AUTO_ADDR_LIST"));
99+
logger.log(Level.INFO, "EPICS_CA_MAX_ARRAY_BYTES=" + System.getenv("EPICS_CA_MAX_ARRAY_BYTES"));
100+
logger.log(Level.INFO, "EPICS_PVA_ADDR_LIST=" + epicsPvaAddrList);
101+
logger.log(Level.INFO, "EPICS_PVA_AUTO_ADDR_LIST=" + epicsPvaAutoAddrList);
78102

79103
logger.log(Level.INFO, "===========================================");
80104

src/main/java/org/phoebus/pvws/ws/WebSocketPV.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import org.epics.vtype.VType;
1212
import org.phoebus.pv.PV;
1313
import org.phoebus.pv.PVPool;
14+
import org.springframework.beans.factory.annotation.Value;
15+
import org.springframework.stereotype.Component;
1416

1517
import java.util.concurrent.TimeUnit;
1618
import java.util.concurrent.atomic.AtomicReference;
@@ -48,25 +50,23 @@ public class WebSocketPV
4850

4951
static
5052
{
51-
String spec = System.getenv("PV_THROTTLE_MS");
53+
String spec = System.getProperty("PV_THROTTLE_MS");
5254
if (spec == null)
5355
THROTTLE_MS = 1000;
5456
else
5557
THROTTLE_MS = Integer.parseInt(spec);
5658

57-
spec = System.getenv("PV_ARRAY_THROTTLE_MS");
59+
spec = System.getProperty("PV_ARRAY_THROTTLE_MS");
5860
if (spec == null)
5961
ARRAY_THROTTLE_MS = 10000;
6062
else
6163
ARRAY_THROTTLE_MS = Integer.parseInt(spec);
6264

63-
spec = System.getenv("PV_WRITE_SUPPORT");
65+
spec = System.getProperty("PV_WRITE_SUPPORT");
6466
if(spec != null && !spec.isEmpty()){
6567
PV_WRITE_SUPPORT = "true".equalsIgnoreCase(spec);
6668
}
6769

68-
PV_WRITE_SUPPORT = true;
69-
7070
logger.log(Level.INFO, "PV_THROTTLE_MS = " + THROTTLE_MS);
7171
logger.log(Level.INFO, "PV_ARRAY_THROTTLE_MS = " + ARRAY_THROTTLE_MS);
7272
logger.log(Level.INFO, "PV_WRITE_SUPPORT = " + PV_WRITE_SUPPORT);

src/main/resources/application.properties

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,13 @@ server.servlet.contextPath=/pvws
33
server.servlet.application-display-name=PVWS
44
server.port=8080
55

6-
server.shutdown=graceful
76
spring.lifecycle.timeout-per-shutdown-phase=1m
87

98
PV_DEFAULT_TYPE=pva
109
PV_THROTTLE_MS=1000
1110
PV_ARRAY_THROTTLE_MS=10000
1211
PV_WRITE_SUPPORT=true
1312

14-
EPICS_CA_ADDR_LIST=
15-
EPICS_CA_MAX_ARRAY_BYTES=
16-
1713
EPICS_PVA_ADDR_LIST=
1814
EPICS_PVA_AUTO_ADDR_LIST=YES
1915
EPICS_PVA_BROADCAST_PORT=5076

0 commit comments

Comments
 (0)