ChannelFinder Setup and Deployment Diagrams with RecSync Components

 
D
e
p
l
o
y
m
e
n
t
 
D
i
a
g
r
a
m
 
C
o
m
p
o
m
e
n
t
:
 
R
e
c
S
y
n
c
/
R
e
c
C
a
s
t
e
r
 
https://github.com/ChannelFinder/recsync
EPICS module
Listen to UDP broadcast at port 5049
Forward PV and Field “alias” and “info” with TCP
test.db
 
record(longin, “test:li") {
  alias(“test:lix1")
  alias(“test:lix2")
  info("test", "testing")
}
st.cmd
 
## Register all support components
dbLoadDatabase("../../dbd/demo.dbd",0,0)
demo_registerRecordDeviceDriver(pdbbase)
 
var(reccastTimeout, 5.0)
var(reccastMaxHoldoff, 5.0)
 
epicsEnvSet("IOCNAME", "myioc")
epicsEnvSet("ENGINEER", "myself")
epicsEnvSet("LOCATION", "myplace")
 
C
o
m
p
o
m
e
n
t
:
 
R
e
c
S
y
n
c
/
R
e
c
C
e
i
v
e
r
 
https://github.com/ChannelFinder/recsync
Python with Twisted package and
pyCFClient(
https://github.com/ChannelFinder/pyCFClient
)
twistd -n recceiver -f cf.conf
UDP broadcast to port 5049, with TCP callback info
Receive PV from IOC/RecCaster at the TCP port
Forward PV with pyCFClient API to ChannelFinder Web Service
Configuration:
cf.conf
addrlist = 255.255.255.255:5049
infotags = test hello
alias = on
channelfinderapi.conf
BaseURL=http://vclx4:8088/ChannelFinder
 
C
o
m
p
o
m
e
n
t
:
 
C
h
a
n
n
e
l
F
i
n
d
e
r
 
W
e
b
 
S
e
r
v
i
c
e
 
https://github.com/ChannelFinder/ChannelFinderService
SpringBoot/Tomcat
Receive PV from RecCeiver via HTTP REST API
Use ElasticSearch Index DB
Three indices: 
mapping_definitions.sh
channelfinder/cf_channel
properties/cf_property
tags/cf_tag
Use embedded LDAP for authentication, configured in cf.ldif
Configuration: 
app.properties
; cf.ldif
server.http.port=8088
logging.file=${java.io.tmpdir}/channelfinder.log
elasticsearch.network.host: centry.fnal.gov
elasticsearch.http.port: 9200
Run
nohup java --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
-Dspring.config.location=file:./target/classes/app.properties
-jar target/ChannelFinder-4.0.0.jar > /dev/null 2>&1 &
 
C
o
m
p
o
m
e
n
t
:
 
C
h
a
n
n
e
l
F
i
n
d
e
r
 
W
e
b
 
S
e
r
v
i
c
e
 
Human interfaces
curl http://vclx4:8088/ChannelFinder/resources/channels?test=testing
http://vclx4:8088/
Phoebus Channel View
q: * test=testing
q: FNAL*DEW*
 
P
h
o
e
b
u
s
 
d
i
s
p
l
a
y
 
b
u
i
l
d
e
r
 
a
n
d
 
w
e
b
 
r
u
n
t
i
m
e
 
Display Builder
https://github.com/ControlSystemStudio/phoebus
Java based GUI tool to build control interface
Run: phoebus.sh
Configuration: 
settings.ini
org.phoebus.channelfinder/serviceURL=http://vclx4:8088/ChannelFinder
BOB repo: vclx4:/usr/local/epics/Config/CSS/PIP2TS/HB650
 
Web Runtime
https://github.com/ornl-epics/dbwr
https://github.com/ornl-epics/pvws
Tomcat with dbwr.war and pvws.war
Run: ~/apache-tomcat-9.0.58/bin/startup.sh
Configuration: bin/
setenv.sh
export EPICS_CA_ADDR_LIST=131.225.120.227:6722
export PV_WRITE_SUPPORT=true
http://vclx4:8080/dbwr/view.jsp?display=http://vclx4:8080/PIP2TS/HB650/HB650cryostat.bob
BOB update/sync:
cp –rp /usr/local/epics/Config/CSS/PIP2TS ~/apache-tomcat-9.0.58/webapps/ROOT
 
RecSync/Reccaster/RecCeiver/demoIOC
code "fix“: 
__init__.py
: remove reactor, pollreactor.install()
Enable debug: cf.conf: loglevel=DEBUG
debug with alternative port(5049 -> 5050): update announce.py and cf.conf and caster.h
python setup.jy install
ChannelFinder Web Runtime (app.properties)
logging.file=${java.io.tmpdir}/channelfinder.log
logging.level.org.elasticsearch.client.RestClient=ERROR
logging.level.gov.bnl.channelfinder.ChannelManager.audit=WARN
server.http.port=8088
Test
curl --basic -u x:x -H 'Content-Type: application/json'  -X PUT -d '{"name":"foo", "owner":“x"}’
http://vclx4:8088/ChannelFinder/resources/tags/foo
curl http://vclx4:8088/ChannelFinder/resources/tags/foo
Copy file:
pscp -r -p -load via_nc_proxy pvws.war youj@clx28:
TCP tunneling
plink -N -T -no-antispoof -L 8088:vclx4.fnal.gov:8088 youj@outland.fnal.gov
Install python package on vclx4, via outback
ssh -D:1080 outback
proxychains pip3 install twisted
 
D
e
b
u
g
/
H
o
w
t
o
/
T
r
o
u
b
l
e
s
h
o
o
t
i
n
g
/
l
o
g
Slide Note
Embed
Share

Includes setup and deployment diagrams for ChannelFinder on vclx4, along with details about RecSync components for EPICS module communication. Also covers RecCaster configuration and registration of support components. The documentation further discusses RecReceiver setup, Python integration with Twisted package, and usage of PyCFClient for communication. The information extends to ChannelFinder Web Service configuration, HTTP REST API usage, and deployment details for ChannelFinderService. Lastly, it touches upon Phoebus display builder and web runtime for Java-based GUI interface development.

  • ChannelFinder
  • Deployment Diagram
  • RecSync
  • EPICS module
  • Python Integration

Uploaded on Oct 05, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. ChannelFinder setup on vclx4 Jimmy You Mar. 2022 https://www-bd.fnal.gov/controls/micro_p/channelfinder/channelfinder_setup.pptx

  2. Deployment Diagram

  3. Compoment: RecSync https://github.com/ChannelFinder/recsync EPICS module Listen to UDP broadcast at port 5049 Forward PV and Field alias and info with TCP RecSync/ /RecCaster RecCaster st.cmd test.db ## Register all support components dbLoadDatabase("../../dbd/demo.dbd",0,0) demo_registerRecordDeviceDriver(pdbbase) record(longin, test:li") { alias( test:lix1") alias( test:lix2") info("test", "testing") } var(reccastTimeout, 5.0) var(reccastMaxHoldoff, 5.0) epicsEnvSet("IOCNAME", "myioc") epicsEnvSet("ENGINEER", "myself") epicsEnvSet("LOCATION", "myplace")

  4. Compoment: RecSync RecSync/ /RecCeiver RecCeiver https://github.com/ChannelFinder/recsync Python with Twisted package and pyCFClient(https://github.com/ChannelFinder/pyCFClient) twistd -n recceiver -f cf.conf UDP broadcast to port 5049, with TCP callback info Receive PV from IOC/RecCaster at the TCP port Forward PV with pyCFClient API to ChannelFinder Web Service Configuration: cf.conf addrlist = 255.255.255.255:5049 infotags = test hello alias = on channelfinderapi.conf BaseURL=http://vclx4:8088/ChannelFinder

  5. Compoment: ChannelFinder ChannelFinder Web Service Web Service https://github.com/ChannelFinder/ChannelFinderService SpringBoot/Tomcat Receive PV from RecCeiver via HTTP REST API Use ElasticSearch Index DB Three indices: mapping_definitions.sh channelfinder/cf_channel properties/cf_property tags/cf_tag Use embedded LDAP for authentication, configured in cf.ldif Configuration: app.properties; cf.ldif server.http.port=8088 logging.file=${java.io.tmpdir}/channelfinder.log elasticsearch.network.host: centry.fnal.gov elasticsearch.http.port: 9200 Run nohup java --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED -Dspring.config.location=file:./target/classes/app.properties -jar target/ChannelFinder-4.0.0.jar > /dev/null 2>&1 &

  6. Compoment: ChannelFinder ChannelFinder Web Service Human interfaces curl http://vclx4:8088/ChannelFinder/resources/channels?test=testing http://vclx4:8088/ Phoebus Channel View q: * test=testing q: FNAL*DEW* Web Service

  7. Phoebus display builder and web runtime Phoebus display builder and web runtime Display Builder https://github.com/ControlSystemStudio/phoebus Java based GUI tool to build control interface Run: phoebus.sh Configuration: settings.ini org.phoebus.channelfinder/serviceURL=http://vclx4:8088/ChannelFinder BOB repo: vclx4:/usr/local/epics/Config/CSS/PIP2TS/HB650 Web Runtime https://github.com/ornl-epics/dbwr https://github.com/ornl-epics/pvws Tomcat with dbwr.war and pvws.war Run: ~/apache-tomcat-9.0.58/bin/startup.sh Configuration: bin/setenv.sh export EPICS_CA_ADDR_LIST=131.225.120.227:6722 export PV_WRITE_SUPPORT=true http://vclx4:8080/dbwr/view.jsp?display=http://vclx4:8080/PIP2TS/HB650/HB650cryostat.bob BOB update/sync: cp rp /usr/local/epics/Config/CSS/PIP2TS ~/apache-tomcat-9.0.58/webapps/ROOT

  8. Debug/ Debug/Howto Howto/Troubleshooting/log /Troubleshooting/log RecSync/Reccaster/RecCeiver/demoIOC code "fix : __init__.py: remove reactor, pollreactor.install() Enable debug: cf.conf: loglevel=DEBUG debug with alternative port(5049 -> 5050): update announce.py and cf.conf and caster.h python setup.jy install ChannelFinder Web Runtime (app.properties) logging.file=${java.io.tmpdir}/channelfinder.log logging.level.org.elasticsearch.client.RestClient=ERROR logging.level.gov.bnl.channelfinder.ChannelManager.audit=WARN server.http.port=8088 Test curl --basic -u x:x -H 'Content-Type: application/json' -X PUT -d '{"name":"foo", "owner": x"} http://vclx4:8088/ChannelFinder/resources/tags/foo curl http://vclx4:8088/ChannelFinder/resources/tags/foo Copy file: pscp -r -p -load via_nc_proxy pvws.war youj@clx28: TCP tunneling plink -N -T -no-antispoof -L 8088:vclx4.fnal.gov:8088 youj@outland.fnal.gov Install python package on vclx4, via outback ssh -D:1080 outback proxychains pip3 install twisted

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#