- 在云桌面准备好数据,重命名为x.tgz,放在sender同一级目录;
- 在本地电脑上启动receiver, 点击browser,选择一个文件,用来存储接收到的数据;
- 启动sender, 选择ack的模式, 二维码区域数量,放缩比例,点击start, 配置说明:
3.1. ack模式:
- ClipboardEvent sender监控剪贴板变化的事件,等待receiver的ack信息
- PollClipboard sender每隔5毫秒获取clipboard的内容,看receiver是否ack
- KeyboardEvent sender监控键盘消息,等待receiver的ack, 目前还没有实现
如果可以从本地复制数据到云桌面,则优先选择ClipboardEvent或者PollClipboard模式, 云桌面是mac系统的情况下必须选择PollClipboard模式;如果Clipboard不可用,选择KeyboardEvent模式,目前还没有实现
3.2. 二维码区域数量:
- 3x3表示一共9个二维码区域,每个区域3张二维码,一次可以传输27张二维码;
- 3x3x1表示一共9个二维码区域,每个区域1张二维码,一次可以传输9张二维码, x1的部分只能为x1,x2或者x3。
这个可以用来控制传输的速度,理论上一次传输的二维码数量越多速度越快,可是实际测试下来,达到一定数量后就没法提速了, 本地最大可以达到100多K/s, 真实环境差不多40K/S
3.3. 放缩比例, 最小为1,为2时面积是1时的4倍,对于画质不好的系统可能需要设置2或者3
- 将sender放置在角落,保持可见,在选择clipboard模式时可以继续手头其他的工作, 选择Keyboard模式只能让sender一直获得焦点。
- 选择了clipboard模式,但是不小心使用了剪贴板,导致传输中断,这时可以点击receiver上的ReAck按钮;
- 传输过程中需要使用剪贴板,可以先将sender最小化,复制粘贴结束后再将sender可见;
- 发现ReAck前显示ack详情的label中,]前面出现了N且后面跟着的数字一直在增长,同时显示的二维码越来越稀疏,需要stop,然后将放缩比例调大一点点,重新start;
- receiver crash,stop sender,重新开始,这种情况不常见,还没有去找原因。
- 放缩比例设置为2还是无法识别,将windows的显示比例设置为100%,再试试。
sender端将数据显示为二维码,receiver截屏识别二维码,然后通过剪切板通知识别完成,如此反复,直到接收完成
libpnl, libqrencode, 微信识别二维码的opencv扩展 zbar
- 改进receiver中边界识别算法;
- 开启一个新项目qrforward, 支持端口转发,从而实现云桌面内网程序与本机程序直接交互。