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使用5049
UDP端口.
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