1# @Language: Markdown
2# @Software: VS Code/MacDown/Typora/Vim
3# @Author : Di Wang
4# @Email : [email protected]
See epics examples
用于Channel Finder. 也就是把ioc中的record信息, epics environment以及info tag发送到一个数据库.
但目前整个服务显得很繁杂, 要先开启Elasticsearch, 然后开启Channel Finder Service, 然后开启recsync中的server, 也叫RecCeiver, (这个名字很糟糕, 因为它其实是一个中间服务, 负责接受ioc发过来的内容, 然后发给Channel Finder Service), 最后开启带有recsync中的client功能(RecCaster)的ioc. client使用5049UDP端口.
server会调用pyCFClient module, 创建Python class ChannelFinderClient, 与Channel Finder Service通信, 通信时使用了默认的8080端口.
可以使用https://github.com/ChannelFinder/RecSync-env来简化部署.
以下为测试recsync的流程, 不涉及Channel Finder Service.
RecCaster
在ioc中添加reccaster依赖,
在st.cmd中, 可以配置RecCaster
1var(reccastTimeout, 5.0)
2var(reccastMaxHoldoff, 5.0)
3epicsEnvSet("CONTACT", "mycontact")
4epicsEnvSet("BUILDING", "mybuilding")
5epicsEnvSet("SECTOR", "mysector")
6
7addReccasterEnvVars("CONTACT", "SECTOR")
8addReccasterEnvVars("BUILDING")
9
10iocInit
RecCeiver
开启RecCeiver的流程
1$ cd recsync/server
2$ python3 -m venv venv
3$ source venv/bin/activate
4$ pip3 install --upgrade pip
5$ pip3 install requests
6$ pip3 install .
7$ pip3 list
8Package Version
9------------------ --------
10attrs 23.2.0
11Automat 22.10.0
12certifi 2024.2.2
13channelfinder 3.0.0
14charset-normalizer 3.3.2
15constantly 23.10.4
16hyperlink 21.0.0
17idna 3.7
18incremental 22.10.0
19pip 24.0
20recceiver 1.5
21requests 2.31.0
22setuptools 66.1.1
23simplejson 3.19.2
24six 1.16.0
25Twisted 24.3.0
26typing_extensions 4.11.0
27urllib3 2.2.1
28zope.interface 6.3
29# 或者直接指定PYTHONPATH
30$ export PYTHONPATH=${PWD}:${PWD}/build/lib:${channelfinder_path}
31$ twistd -r poll -n recceiver -f demo.conf