Skip to main content

a publish&subscrib toolkit

Project description

1.遗留问题

redis.exceptions.ConnectionError: Connection closed by server.

https://github.com/andymccurdy/redis-py/issues/1140

使用try... except redis.exceptions.ConnectionError:的方法规避了此问题

FYI
- 在本项目下,使用`py37`没有出现此问题
- 在本项目下,使用`python`没有出现此问题
- 在`FairMOT`下出现此问题,初步怀疑是`timeout`问题

2.依赖

本工具依赖redis服务请先安装redis-server

apt install redis-server

为Python安装依赖

pip3.7 install opencv-python numpy pyyaml hiredis redis
pip2.7 install opencv-python numpy pyyaml hiredis redis
  • 补充说明

setup.py 文件本身指明了相关依赖,但是由于公司网络原因,可能会出现无法正常下载安装的情况,建议在安装之前手动完成依赖包的安装。

3.作为程序部署

step1. 在~路径下新建路径robot\configs,注意:请勿使用其他路径

step2. 将项目目录下的配置文件config\pubsub.yaml拷贝到~\robot\configs路径下,注意:请勿修改文件名称

step3. 按实际情况修改~\robot\configs\pubsub.yaml文件

# camera data pub & sub config
mono:
  type: "pub"
  source: "0"
  host: "172.172.0.10"
  port: "6379"
  db: 3
  name: "robot_mono"
  topic: "robot_mono"

# bbox from FairMOT pub & sub config
track:
  type: "pub"
  source: "0"
  host: "172.172.0.11"
  port: "6379"
  db: 3
  name: "robot_track"
  topic: "robot_track"

参数说明:

mono: 指定为单目相机,该名称请勿修改
  type: 发布消息,请勿修改
  source: camera device id, 通过 ls /dev/video* 配合 v4l2-ctl -d  /dev/video0 --all查看
  host: 消息发布ip,对应部署了pubsub程序的服务器的IP地址
  port: 消息发布端口,对应部署了pubsub程序的服务器的Redis服务的端口
  db: 不需改动
  name: 消息发布服务的名称
  topic: 消息发布话题的名称

track: 指定为跟踪算法,该名称请勿修改
  type: 发布消息,请勿修改
  source: 请勿修改
  host: 消息发布ip,对应部署了tracking算法的服务器的IP地址
  port: 消息发布端口,对应部署了tracking算法的服务器的Redis服务的端口
  db: 不需改动
  name: 消息发布服务的名称
  topic: 消息发布话题的名称

step5. 在~/.bashrc中声明configs地址

  • ~/.bashrc的末尾加入以下内容
export ROBOT_CONFIGS=$(dirname ~/.)'/robot/configs'
  • 请务必注意将配置文件放在上述指定文件夹下

3.1 开机自启动[未测试]

/etc/rc.local脚本中增加了开机自启动代码,代码如下

export PUBLISHERPATH=$(dirname ~/.)'/robot/pubsub'
source $(dirname $(which conda))/activate pubsub
cd $PUBLISHERPATH
python app.py

第一段申明了MONOPUB的路径

第二段进入到该路径

第三段在后台启动脚本publish.sh 并输出日志到pub.log

第三段回到home

可使用ps -ef | grep python查看

4. 作为模块使用

分别在python2.7和python3.7版本下进行测试。

pip install aa-pubsub

请注意:

  • 模块和程序使用同样的配置文件!!!

5. 性能

目前Publisher端读取摄像头数据到Subscriber端得到数据拥有约100ms的延时。

1 2

6. 测试用例

python test.py

7. 提交pip

  • 安装提交需要的工具
pip install twine
  • 更新version.py的版本号
  • 提交
python setup.py sdist
twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aa-pubsub-0.1.6.tar.gz (7.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page