Tange Cloud for Device
 Rev.333
载入中...
搜索中...
未找到
Demo

编译和运行(Linux系统)

准备

  1. 下载demo.tgz和include.tgz到同一个文件夹并解压
  2. 在跟demo目录同级创建一个子目录lib。下载对应的库文件到lib目录并解压

编译

make [ARCH=xxxx] [p2p=webrtc]

不指定ARCH参数,将编译为PC上运行。PC端的库在是Ubuntu20上编译,可能与 Ubuntu16和以前系统的工具链不兼容.

交叉编译时,ARCH 参数取值和所用的工具链请查看 ToolChains.mak. 必要时修改此文件中的 CROSS 变量以匹配本地的工具链安装目录.

非linux的设备,通常还要修改 make.priv 文件里的环境变量,指向板级sdk的目录。

如果拿到的是支持webrtc的版本,要加上 p2p=webrtc 参数。

生成的可执行文件为 tg_demo, 或 webrtc_demo

运行

Usage: tg_demo -u UUID [-t] [-g] [-v N] ] [-d data_directory] [-s]

  • -t 测试环境。只有新的功能才需要在测试环境开发和验证,一般情况下不需要
  • -u {UUID} 设备uuid
  • -d {data-directory} 模拟数据目录, 默认为 ./data。模拟数据请下载并解开 data.tgz
  • -v 日志等级 1~6
  • -s 打印p2p传输统计

不带参数运行会打印完整的当前支持参数的信息

初次运行会进入有线添加状态,在app端扫描设备的uuid即完成添加(绑定到用户)。

添加后在工作目录会生成一个 registered.ini 标志文件,删除此文件相当于给设备复位,
重启demo后会解绑。

程序内命令

demo接收命令来模拟事件触发或动态修改参数.
linux系统从console输入, liteos可以在 testcase.ini 的 [setting]里加 input_from_net = 1 来配置成从网络输入.
没有控制台的小系统则是从网络输入。
网络输入使用 jlcmd.c 这个工具。可以自己编译一下。

部分demo支持的命令如下。最新命令在demo下输入 '?' 后命令查看。

命令 说明 参数
md[1] 行车记录仪:触发gsensor事件. md1将标志事件为紧急,从而使平台给紧急联系人发消息.
电池摄像机: 触发pir事件
普通摄像机:触发移动侦测事件
 
md0 停止上述事件  
snd 声音事件  
snd0 声音事件停止  
bd 人形事件  
gps 开始上报gps信息  
gps0 停止上报gps信息  
spdup|spdwn 加速|减速事件  
slp 进入休眠(wifi, like hi1131)  
slpa 进入休眠(4g)  
bat 电池电量上报 电量,是否电量低,是否正在充电
例: bat 30,0,0
qoe 修改当前电池状态 电量,是否正在充电
例: qoe 20,1
ring 门铃事件  
setoff|park 行程开始/停车 事件补录  
sdc ok|err 设置sd卡状态  
q 退出程序  

配置文件

demo目录下有一个 testcase.ini 文件。 [features]小节为设备能力集,取值与 设备能力描述 一致。 [setting]小节可以保存其它参数,可以打开文件自行修改

源码说明

demo程序尽量模拟了一个IPC设备的完整功能,包括实时音视频分发、回放、事件上报和云录像,以及对各种命令的处理和响应。

所有.c文件中,demo.c才是重点,演示示了实现IPC功能需要实现的接口和流程。其它文件都是为了让demo跑起来的辅助性代码。

  • demo.c 主体。IPC功能实现文件. 对接时可以在此文件上修改
  • cmd_handlers.c 部分命令处理示例
  • ipc_simulator.c ReadWriter.c 用读录像文件的方式,模拟IPC的音视频功能
  • ipc_tool.c inifile.c 处理配置参数的工具
  • 其它