1. 概述

本文介绍在对接凌通GoPlus方案时的自定义功能点,以便更好适配业务功能,请有需要的方案商按此文档进行对接;

2. 自定义点:

2.1 [可选] 预览协议(TCP和UDP)识别

该字段定义当前app通过哪种方式(TCP 或 UDP) 去播放设备的实时画面;APP默认使用UDP,如果设备是TCP的预览,则需要实现如下接口;

  • 设置项ID: 0X9009
  • 响应值: “1” - TCP ,“0”- UDP(默认),注意此处的“1”是字符串,处理方式参考 wifi_name : 0X300

2.2 [可选]设备的mac地址

该字段是为了对设备进行区分,以便支撑其他的业务,请方案商尽量实现;

  • 设置项ID: 0X9002
  • 响应值:设备的mac地址字符串,比如”22AA32EEFF,注意此处的1是字符串,处理方式参考 wifi_name : 0X300

2.3 产品信息查询

该字段是每类设备的固定信息,写入固件的menu.xml中即可;

  • 功能描述 获取设备对应的产品型号、品牌商,用以APP来进行接口类别区分,并给品牌商进行设备的logo的定制,需要区分设备型号和品牌

  • 命令描述 通过menu.xml中进行解析获取 操作类型:查询

  • 结果中增加字段(Type为:0x03) product(0x00009000):model@brand,举例:C029T@FISANG, sp(0x00009001):方案商的代号,名字由方案商自己定,用来区分方案商不同的接口,举例"LIANGCAI"

    其中:

    • 型号(model):本产品的型号,比如:C029T
    • brand:品牌公司,直接销售产品的公司,即方案商的客户,比如:FISANG,如暂时没有定可以不填
    • sp:方案商,举例:方案商名称为蓝天:"LIANGCAI",这个名称方案商自己定即可,有助于APP更好的对接方案商的方案接口;

在menu.xml中,增加如下,样例:

<Category>
            <Name>ProductInfo</Name>
            <Settings>
                <Setting>
                    <Name>product</Name>
                    <ID>0x00009000</ID>
                    <Type>0x03</Type>
                    <Default>C029T@FISANG</Default>                    
                </Setting>
                <Setting>
                    <Name>sp</Name>
                    <ID>0x00009001</ID>
                    <Type>0x03</Type>
                    <Default>LIANGCAI</Default>                    
                </Setting>
</Category>

2.4 设备能力集查询

该字段是每类设备的固定信息,写入固件的menu.xml中或是APP可以通过ID:0x00009003进行查询即可;

  • 功能描述 获取当前设备类型某些能力,app做相应的功能匹配,以便不同设备能力更好的在app上给用户提供不同的功能;

  • 命令描述 通过设置项ID进行查询, 操作类型:查询

  • 结果中增加字段(0x00009003):

<Category>
            <Name>ProductInfo</Name>
            <Settings>
                <Setting>
                    <Name>product</Name>
                    <ID>0x00009000</ID>
                    <Type>0x03</Type>
                    <Default>C029T@FISANG</Default>                    
                </Setting>
                <Setting>
                    <Name>sp</Name>
                    <ID>0x00009003</ID>
                    <Type>0x03</Type>
                    <Default>000011</Default>                    
                </Setting>
</Category>

其中String自动的每一位代表1个业务能力(方案商实现时,如果对某位的业务不支持或是不了解,默认填0):

第0位:GPS数据业务

- 0 不支持GPS
- 1 仅支持下载后的视频文件GPS数据获取;
- 2 支持下载后的视频文件、在线回放的视频文件GPS数据获取;
- 3 支持下载后的视频文件、在线回放的视频文件、实时画面GPS数据获取;
- 4 支持下载后的视频文件、实时画面GPS数据获取;

第1位:1-运动相机,0-记录仪(默认)

第2位:1-不支持停车监控相册,0-支持停车监控相册(默认)

第3位:1-该设备支持通过APP操作文件加锁,0-不支持(默认)

第4位:1- 不支持删除加锁文件;0-支持删除加锁文件(默认); 如果有需求不能删除加锁文件,修改此字段;

第5位:部分芯片拍照需要切换到拍照模式的,1- 不切换模式,直接录像码流抓拍,0-(默认)切换模式进行抓拍或是当前默认方式

第6位:回放是否使用rtsp的流,

0-(默认)-不使用rtsp的流,使用文件下载播放的方式, 
1- 使用RTSP的协议TCP播放回放实时流  
2- 使用RTSP的协议UDP播放回放实时流; 如果部分设备回放码率特别大,wifi传输会造成回放卡顿,需要使用rtsp播放小码流时,可以修改此字段(回放是否支持rtsp还需要设备端支持);

第7位:是否支持拍照功能,0(默认)-支持拍照功能, 1- 不支持拍照,只支持录像;部分设备资源不够,不支持拍照功能时,修改此字段,app上将会隐藏拍照按钮;

第8位:是否支持APP修改wifi名或wifi密码

- 0(默认)- 支持修改WiFi名和WiFi密码,
- 1-不支持修改WiFi名,支持修改WiFi密码,此时WiFi名将会隐藏;
- 2-支持修改WiFi名,不支持修改WiFi密码,此时WiFi密码将会隐藏;
- 3.不支持修改WiFi名,且不支持修改WiFi密码,此时WiFi名和密码都将会隐藏;

第9位:0(默认)- 不支持文件拷贝,1-支持文件拷贝

第10位:是否使用其他非HTTP的方式下载设备视频文件,0(默认)-App自己决定下载策略,1-固定使用原厂sdk的方式下载设备视频文件,2-固定使用http下载设备视频文件,当前主要是针对杰理方案,非特殊需求,请使用默认值0

第n位:待补充

2.5 TF卡信息

原厂的协议里面没有定义TF信息,如果客户想定义TF信息在APP上显示,可以按如下定义: GPSOCK_General_CMD_GetDeviceStatus = 0x01; deviceStatus 的payload 中:

TF卡的在位状态定义:

  • byte[15]: SD卡状态,0-未插卡;1-正常;2- 需要格式化,其他:其他异常

TF卡容量定义:

  • byte[16-19]: 卡的剩余容量, 单位是KB (低位字节是数字的高位, 比如byte16 是卡剩余容量的 高8位)
  • byte[20-23]: 卡的总容量, 单位是KB

2.6 当前录像文件加锁状态

该状态值配套设备支持通过app操作文件加锁(0x9100)使用,当设备支持app对录像进行加锁后,app需要知道当前设备是否处于录像加锁状态;通过GPSOCK_General_CMD_GetDeviceStatus的deviceStatus payload 中byte24定义

  • byte[24]: 0- 当前文件正在加锁中,1- 当前文件未加锁;

2.7 多摄像头支持

当设备有多个摄像头时, APP需要知道当前摄像头的个数,以及设备当前用来预览的摄像头,通过GPSOCK_General_CMD_GetDeviceStatus的deviceStatus payload 中byte25-26定义

  • byte[25]: 当前摄像头的个数,比如2个摄像头,值就是:2;
  • byte[26]:当前预览的是哪个摄像头,序号从0开始,比如:当前观看的是第1个摄像头,值就是:0, 如果当前观看的是第2个摄像头,值就是:1

3.接口协议

凌通公版APP对设置项的处理是从menu.xml中读取、显示和设置,采用透传的方式,不解析具体的业务;

但我们的APP为了体验更好,会接管部分设置业务,如果menu.xml中的设置项的ID 和我们APP的业务对应不上,就会导致改设置项不可用;故本章进行设置项ID的规范化定义,满足规范的设置项ID可以正确的操作;

  • 举例,比如是扬声器音量设置,其ID必须固定为0x00000001,这样APP就会把这个Setting的内容和[扬声器音量]这个对应起来:

    本协议只要求ID 和我们定义的对应,其他项可以随意修改,比如 下面的例子中 [OFF、LOW、MID、HIGH] 改为 [OFF、LOW、MID、HIGH、VERY HIGH],都是可以的

                <Setting>
                    <Name>音量</Name>
                    <ID>0x00000001</ID>  // 针对ID进行标准化,和业务对应起来
                    <Type>0x00</Type>
                    <Default>0x03</Default>                    
                    <Values>
                        <Value>
                            <Name>OFF</Name>
                            <ID>0x00</ID>
                        </Value>
                        <Value>
                            <Name>LOW</Name>
                            <ID>0x01</ID>
                        </Value>
                        <Value>
                            <Name>MID</Name>
                            <ID>0x02</ID>
                        </Value>
                        <Value>
                            <Name>HIGH</Name>
                            <ID>0x03</ID>
                        </Value>
                    </Values>
                </Setting>

本规范化主要是针对menu.xml中的ID进行规范,其他字段可以随便定义;

ID 菜单类型 - 对应业务项 - 备注
0x00000000 下拉选项 录制视频分辨率
0x00000001 下拉选项 录像曝光补偿 对录像视频文件的曝光补偿
0x0000002 开关 移动侦测
0x0000003 下拉选项 循环录影 循环录影的时长,比如1分钟、3分钟之类
0x0000004 开关 WDR 宽动态
0x0000005 开关 mic开关 录制视频是否静音
0x0000006 开关 录制视频的时间水印 录制视频是否显示时间水印 ,只有 打开 或 关闭
0x0000007 下拉选项 行车碰撞灵敏度
0x0000008 下拉选项 扬声器音量 扬声器的音量:关闭、高、中、低
0x00000009 下拉选项 缩时录影时长 停车监控时长,比如2H、12H、24H
0x0000000A 下拉选项 缩时录影帧率 一般指缩时录影帧率,比如 1fps、2fps
0x0000000B 下拉选项 停车监控模式
0x0000000C 下拉选项 停车监控碰撞灵敏度 停车监控是的gsensor事件
0x0000000D 开关 停车监控开关 内容为: 打开 或 关闭
0x0000000E 下拉选项 时间水印选项 支持多个选项的,比如:时间 、 时间+图标,注意和0x0000006区别
0x0000000F 开关 缩时录影开关 内容为: 打开 或 关闭
0x00000010 下拉选项 屏幕保护设置项 off:关闭
clockmode:时钟模式
darkmode:黑屏模式

具体的设置项依赖于设备xml中的定义,上面仅为参考
0x00000011 下拉选项 时间进制 12-hour:12小时制
24-hour:24小时制
0x00000012 开关 声控开关 是否启用声控功能
0x00000013 下拉选项 副屏屏幕保护设置项 当设备有第二块屏幕需要定义屏幕相关的操作,参考0x00000010
0x00000014 下拉选项 红外模式
0x00000015 开关 私密拍照
0x00000016 开关 红外灯自动检测
0x00000017 开关 图像翻转
0x00000018 开关 循环录像开关 是否支持循环录像,和0x0000003的区别时,此处是个开关
0x00000019 开关 LED指示灯 机身上指示灯的开启和关闭
0x00000100 下拉选项 拍照分辨率
0x00000101 下拉选项 拍照曝光补偿
0x00000102 下拉选项 拍照质量
0x00000103 下拉选项 拍照 Sequence
0x0001201 下拉选项 低电压调节
0x0001202 开关 扬声器开关 注意和 0x0000008的区别,一个是开关,一个是下拉菜单
0x0001206 开关 图像上下翻转
0x00000200 下拉选项 光源频率 50HZ 、60HZ
0x00000201 下拉选项 进入屏保时间 针对带屏的设备
0x00000202 下拉选项 自动关机时间 断电之后多久关机,类似5S、10S、20S
0x00000203 下拉选项 记录仪语言
0x00000204 开关 按键音 蜂鸣器
0x00000205 下拉选项 设备的时间格式
0x00000207 其他 格式化 格式化设备的TF卡
0x00000208 其他 恢复出厂设置 恢复出厂设置
0x00000209 其他 固件版本 获取设备的固件版本号
0x00000300 其他 Wifi名称
0x00000301 其他 Wifi密码
0x00009000 接口 产品信息 具体描述见2.3章节
0x00009001 接口 方案商的代号 为了更好的配合某个方案商的定制功能,具体描述见2.3章节
0x00009002 接口 Mac地址获取 为了统计设备数目或是其他扩展功能,注意</br>此功能不要写死的menu.xml里面,会导致所有设备都是同一个ID,如果不好实现可以不支持该项
0x00009009 接口 实时预览的协议 具体描述见2.1章节
0x9100 接口 文件加锁 app上提供按钮,可以操作对当前录制文件加锁

注:

  • 上面的“开关”,是在只有ON 和 OFF两个选项,举例:

                    <Setting>
                        <Name>录音开关</Name>
                        <ID>0x0000006</ID>
                        <Type>0x00</Type>
                        <Default>0x00</Default>                    
                        <Values>
                            <Value>
                                <Name>OFF</Name>
                                <ID>0x00</ID>
                            </Value>
                            <Value>
                                <Name>ON</Name>
                                <ID>0x01</ID>
                            </Value>
                        </Values>
                    </Setting>
    
  • 下拉选项,只是有多个菜单项的,举例:

                    <Setting>
                        <Name>行车碰撞灵敏度</Name>
                        <ID>0x0000007</ID>
                        <Type>0x00</Type>
                        <Default>0x00</Default>                    
                        <Values>
                            <Value>
                                <Name>OFF</Name>
                                <ID>0x00</ID>
                            </Value>
                            <Value>
                                <Name>LOW</Name>
                                <ID>0x01</ID>
                            </Value>
                            <Value>
                                <Name>MID</Name>
                                <ID>0x02</ID>
                            </Value>
                            <Value>
                                <Name>HIGH</Name>
                                <ID>0x03</ID>
                            </Value>
                        </Values>
                    </Setting>
    
  • 接口: 表示APP内部调用查询使用,不是显示再设置项;

4. 国际化

menu.xml 中的 字段尽量使用英文描述,APP会统一进行国际化,以便和APP的当前其他界面的语言保持一致;

举例:

                <Setting>
                    <Name>录音开关</Name>
                    <ID>0x0000006</ID>
                    <Type>0x00</Type>
                    <Default>0x00</Default>                    
                    <Values>
                        <Value>
                            <Name>OFF</Name>
                            <ID>0x00</ID>
                        </Value>
                        <Value>
                            <Name>ON</Name>
                            <ID>0x01</ID>
                        </Value>
                    </Values>
                </Setting>

APP会使用 Name字段作为APP上的显示,这个字段如果是英文的,app会自动进行各种其他语言的翻译,以便和app当前的语言一致,如果不是英文,则直接显示该 Name字段的值,可能和APP的语言不一致,所以建议尽量用标准的英文

Copyright © 小帧科技 2024 修订时间: 2024-05-12 08:40:51

results matching ""

    No results matching ""