TOP-SDK使用说明
- 格式:doc
- 大小:71.50 KB
- 文档页数:6
AdTouch广告平台Android SDK接口文档V1.1目录:一、概述: (4)二、开发运行环境: (5)三、植入广告流程: (5)3.1使用配置文件的方式嵌入广告 (6)3.2使用硬编码的方式嵌入广告 (7)四、代码示例 (8)4.1使用配置XML的方式嵌入广告 (8)4.2使用硬编码的方式嵌入广告 (9)五、发布及激活应用程序: (9)六、注意事项 (9)七、新版本添加的功能 (9)一、概述:此文档指导Android开发者在程序中植入AdTouch广告平台提供的广告。
作为开发者,您需要进行简单的配置,就可以在您开发的软件应用或游戏中添加AdTouch订制广告。
根据三方合同规定,乙方(开发者)保证甲方(Adtouch)是乙方通过Adtouch平台在中国大陆地区上传手机软件植入广告的官方唯一推荐广告内容提供商,即唯一SDK 植入的提供商。
1. AdTouch广告平台定制好广告类型:嵌入式(效果图-应用首页) (效果图-应用信息分类页面) (效果图-应用信息列表页面) 2.广告尺寸:编号尺寸备注1.240×38AD_SIZE_240_382.240×320AD_SIZE_240_3203.320×240AD_SIZE_320_2404.320×50AD_SIZE_320_505.320×480AD_SIZE_320_4806.480×320AD_SIZE_480_3207.768×1024AD_SIZE_768_10248.1024×768AD_SIZE_1024_7689.468×60AD_SIZE_468_6010.480×800AD_SIZE_480_80011.800×480AD_SIZE_800_48012.fill_parent×wrap_content宽度充满手机屏幕,高度自适应广告内容高度注:320×50,左边都数字是广告宽度,右边的是广告高度;二、开发运行环境:操作系统:Android1.6及以上版本。
数通网络开放可编程V100R020C10开发指南文档版本01发布日期2021-02-05版权所有 © 华为技术有限公司 2021。
保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
商标声明和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。
除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。
除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司地址:深圳市龙岗区坂田华为总部办公楼邮编:518129网址:https://客户服务邮箱:******************客户服务电话:4008302118前言概述本文档介绍了基于NCE 提供的开放可编程功能进行设备对接、快速构建业务等二次开发的操作指导。
读者对象本文档主要适用于以下工程师:●系统管理员●维护工程师●技术支持工程师符号约定在本文中可能出现下列标志,它们所代表的含义如下。
图形界面元素引用约定本文中可能出现下列图形界面元素,它们所代表的含义如下。
命令行格式约定本文可能出现下列命令行格式,它们所代表的含义如下。
修改记录目录前言 (ii)1 基础知识 (1)1.1 NETCONF (1)1.2 YANG模型 (4)1.3 Jinja2模板 (7)1.4 Python编程基础 (8)1.5 软件包结构 (8)1.6 日志记录 (9)1.6.1 查看日志 (9)1.6.2 设置日志级别 (9)2 开发流程 (11)3 开发准备 (12)4 开发环境部署 (13)4.1 安装Python解析器 (13)4.2 安装开放可编程SDK (14)4.3 安装集成开发环境 (14)4.4 安装Gpg4Win及生成签名用密钥 (15)5 开发设备原子驱动包 (17)5.1 创建原子驱动包模板 (17)5.2 开发原子驱动包 (18)5.2.1 编辑软件包配置文件 (18)5.2.2 编写设备YANG模型 (20)5.2.3 开发代码 (24)5.2.3.1 引入必要的头文件 (24)5.2.3.2 编写设备纳管定制 (25)5.2.3.3 编写设备类型能力定制 (26)5.2.3.3.1 配置设备驱动数据 (26)5.2.3.3.2 设置业务自定义处理 (30)5.2.3.3.3 设置数据前置处理 (31)5.2.3.3.4 设置数据后置处理 (31)5.2.3.3.5 设置数据联动 (31)5.2.3.4 编写设备特性能力定制 (32)5.2.3.5 管理资源 (34)5.3 验证原子驱动包 (35)5.3.1 验证YANG文件 (35)5.4 编译原子驱动包 (35)6 开发网络业务插件包 (37)6.1 创建业务包模板 (37)6.2 开发业务包 (38)6.2.1 编辑软件包配置文件 (38)6.2.2 开发业务YANG模型 (41)6.2.3 开发业务包代码 (45)6.2.4 开发Jinja2模板 (46)6.3 验证业务包 (49)6.3.1 验证YANG文件 (49)6.3.2 执行单元测试 (49)6.4 编译业务包 (51)7 开发业务还原业务插件包 (53)7.1 创建业务包模板 (53)7.2 开发业务包 (54)7.2.1 编辑软件包配置文件 (54)7.2.2 开发业务YANG模型 (57)7.2.3 开发业务包代码 (62)7.2.4 开发Jinja2模板 (64)7.3 验证业务包 (65)7.3.1 验证YANG文件 (65)7.3.2 执行单元测试 (65)7.4 编译业务包 (69)8 开发RPC业务插件包 (71)8.1 创建业务包模板 (71)8.2 开发业务包 (72)8.2.1 编辑软件包配置文件 (72)8.2.2 开发业务YANG模型 (74)8.2.3 开发业务包代码 (78)8.2.4 开发Jinja2模板 (80)8.3 验证业务包 (80)8.3.1 验证YANG文件 (80)8.3.2 执行单元测试 (80)8.4 编译业务包 (81)9 导入并安装软件包 (83)9.1 登录系统 (83)10 软件包升级说明 (88)11 业务安全 (138)1基础知识本节介绍进行开放可编程开发需要具备的基础知识,包括NETCONF、YANG、Jinja2、Python和软件包结构等。
TW68XX系列SDK说明1.SDK功能概述SDK提供以下功能:(1)获取板卡信息,包括板卡个数、位置、包含的设备个数等;(2)获取设备信息,包括设备个数、索引、能力描述等;(3)获取通道信息,包括通道个数、索引、能力描述等;(4)提供设备能力设置接口,包括Input Source,采集通道数等;(5)提供设备I2C接口,用于加密等;(6)提供设备GPIO接口,用于IO报警等;(7)提供视频属性设置接口,包括制式、亮度等、像素格式、图像大小等;(8)提供视频原始数据;(9)提供音频原始数据;2.更新说明●版本1.0.0.1(1)支持TW6802、TW6802B、TW6805芯片;(2)支持实时和非实时切换模式;(3)仅支持YUY2(YUV 4:2:2 Packet)格式;(4)音频仅支持8 khz,8 bit,单声道PCM格式;●版本1.0.1.1(1)支持TW6864芯片;(2)暂不支持非实时切换模式;(3)视频数据固定为YUY2(YUV 4:2:2 Packet);(4)音频数据固定为8 khz,8 bit,单声道PCM格式;●版本1.0.1.4支持非实时切换模式,但TW2865上通道必须使用同样的分辨率和亮度、对比度等值。
●版本1.0.1.5支持Y41P(YUV411 packet)、RGB555、RGB565格式。
●版本1.1.0.2支持TW6868 16路卡。
●版本1.1.0.3支持TW6816/TW6815卡。
●版本1.1.0.4(1)修正TW686x读写GPIO异常的错误。
(2)修正TW681x读写音频寄存器无效的错误。
(3)支持TW680x、TW681x的Y41P,RGB15,RGB16格式采集。
●版本1.1.0.5支持每个通道图像位置微调(图像左移或右移,调整左边或者右边垂直黑边)。
●保留3.SDK接口和功能详述3.1.初始化和反初始化●BOOL TwInitSDK()功能:初始化SDK参数:无返回:成功返回TRUE;失败返回FALSE,调用TwGetLastError获取错误码●VOID TwUninitSDK()功能:反初始化SDK,释放设备和内存资源参数:无返回:无3.2.板卡信息●int TwGetBoardCount()功能:获取板卡数量参数:无返回:成功返回板卡数,否则返回-1,调用TwGetLastError获取错误码●HANDLE TwGetBoardHandle(int nBoard)功能:获取板卡句柄参数:[in]nBoard,板卡索引,从0到TwGetBoardCount()获取的板卡数减1返回:成功返回板卡句柄,否则返回NULL,调用TwGetLastError获取错误码●BOOL TwGetBoardDetail(HANDLE hBoard, TBoardDesc *pBoardDesc)功能:获取板卡信息参数:[in]hBoard,板卡句柄,从TwGetBoardHandle()获取[out]pBoardDesc,板卡描述指针返回:成功返回TRUE,pBoardDesc中包含详细板卡信息;失败返回FALSE,调用TwGetLastError获取错误码3.3.设备信息和能力●int TwGetDeviceCount()功能:获取设备个数参数:无返回:成功返回设备个数,否则返回-1,调用TwGetLastError获取错误码●HANDLE TwGetDeviceHandle(int nDevice)功能:获取设备句柄参数:[in]nDevice,设备索引号,从0到TwGetDeviceCount获取的设备数减1返回:成功返回设备句柄,否则返回NULL,调用TwGetLastError获取错误码●BOOL TwGetDeviceDetail(HANDLE hDevice, TDeviceDesc *pDevDesc)功能:获取设备详细信息参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[out]pDevDesc,设备描述指针返回:成功返回TRUE,pDevDesc包含设备详细描述信息;失败返回FALSE,调用TwGetLastError获取错误码●BOOL TwGetDeviceRegBYTE(HANDLE hDevice, ULONG uReg, BYTE* value)功能:读取指定设备的寄存器(字节)参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[in]uReg,寄存器地址[out]value,返回寄存器值返回:成功返回TRUE,value包含指定寄存器的值;失败返回FALSE,调用TwGetLastError 获取错误码●BOOL TwGetDeviceRegWORD(HANDLE hDevice, ULONG uReg, USHORT* value)功能:读取指定设备的寄存器(字)参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[in]uReg,寄存器地址[out]value,返回寄存器值返回:成功返回TRUE,value包含指定寄存器的值;失败返回FALSE,调用TwGetLastError 获取错误码●BOOL TwGetDeviceRegDWORD(HANDLE hDevice, ULONG uReg, DWORD* value)功能:读取指定设备的寄存器(双字)参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[in]uReg,寄存器地址[out]value,返回寄存器值返回:成功返回TRUE,value包含指定寄存器的值;失败返回FALSE,调用TwGetLastError 获取错误码●BOOL TwSetDeviceRegBYTE(HANDLE hDevice, ULONG uReg, BYTE value)功能:设置指定设备的寄存器(字节)参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[in]uReg,寄存器地址[in]value,寄存器值返回:成功返回TRUE;失败返回FALSE,调用TwGetLastError获取错误码●BOOL TwSetDeviceRegWORD(HANDLE hDevice, ULONG uReg, WORD value)功能:设置指定设备的寄存器(字)参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[in]uReg,寄存器地址[in]value,寄存器值返回:成功返回TRUE;失败返回FALSE,调用TwGetLastError获取错误码●BOOL TwSetDeviceRegDWORD(HANDLE hDevice, ULONG uReg, WORD value)功能:设置指定设备的寄存器(双字)参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[in]uReg,寄存器地址[in]value,寄存器值返回:成功返回TRUE;失败返回FALSE,调用TwGetLastError获取错误码●BOOL TwGetDevicePciConfigSpace(HANDLE hDevice, int nOffset, int nBytes, BYTE* pData)功能:读取指定设备的PCI配置空间参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[in]nOffset,要读取的配置空间偏移地址[in]nBytes,要读取的字节数[out]pData,返回值返回:成功返回TRUE,pData包含指定配置空间值;失败返回FALSE,调用TwGetLastError 获取错误码●BOOL TwSetDevicePciConfigSpace(HANDLE hDevice, int nOffset, int nBytes, BYTE* pData)功能:读取指定设备的PCI配置空间参数:[in]hDevice,设备句柄,从TwGetDeviceHandle获取[in]nOffset,要读取的配置空间偏移地址[in]nBytes,要读取的字节数[in]pData,要写入的值返回:成功返回TRUE;失败返回FALSE,调用TwGetLastError获取错误码●int TwGetSubDeviceCount()功能:获取子设备个数参数:无返回:成功返回子设备个数,否则返回-1,调用TwGetLastError获取错误码●HANDLE TwGetSubDeviceHandle(int nSubDevice)功能:获取设备句柄参数:[in]nSubDevice,子设备索引,从0到TwGetSubDeviceCount获取的设备数减1 返回:成功返回子设备句柄,否则返回NULL,调用TwGetLastError获取错误码●BOOL TwGetSubDeviceDetail(HANDLE hSubDevice, TSubDeviceDesc *pSubDevDesc)功能:获取设备详细信息参数:[in]hSubDevice,子设备句柄,从TwGetSubDeviceHandle获取[out]pSubDevDesc,子设备描述指针返回:成功返回TRUE,pSubDevDesc包含子设备详细描述信息;失败返回FALSE,调用TwGetLastError获取错误码●BOOL TwEnableVideoInput(HANDLE hSubDevice, TVideoInput vInput, BOOL bEnable)功能:是否允许视频源输入(默认允许的视频源输入为mux 0)参数:[in]hSubDevice,子设备句柄,从TwGetSubDeviceHandle获取[in]vInput,视频输入源[in]bEnable,TRUE为允许,否则不允许返回:成功返回TRUE;失败返回FALSE,调用TwGetLastError获取错误码●BOOL TwTwEnableVideoField2(HANDLE hSubDevice, BOOL bEnable)功能:允许奇偶场分开采集(默认值是不分开采集)参数:[in]hSubDevice,子设备句柄,从TwGetSubDeviceHandle获取[in]bEnable,TRUE为允许,否则不允许返回:成功返回TRUE;失败返回FALSE,调用TwGetLastError获取错误码说明:奇偶场分开采集的情况下,设置的视频采集高度不能大过CIF的高度3.4.通道信息●int TwGetChannelCount()功能:获取通道个数参数:无返回:成功返回通道个数,否则返回-1,调用TwGetLastError获取错误码●BOOL TwGetChannelDetail(HANDLE hChannel, TChannelDesc *pChannelDesc)功能:获取通道详细信息参数:[in]hChannel,通道句柄,从TwChannelOpen获取[out]pChannelDesc,通道信息描述指针返回:成功返回TRUE,pChannelDesc包含通道信息,否则返回FALSE,调用TwGetLastError获取错误码3.5.I2C接口●HANDLE TwI2COpen(int nDevice)功能:打开指定设备I2C参数:[in]nDevice,设备索引号返回:成功返回I2C设备句柄,否则返回NULL,调用TwGetLastError获取错误码●VOID TwI2CClose (HANDLE hI2C)功能:关闭指定的I2C句柄参数:[in]hI2C,I2C设备句柄返回:无●BOOL TwI2CWrite(HANDLE hI2C, int nBytes, BYTE* cValue)功能:写数据到指定I2C设备参数:[in]hI2C,I2C设备句柄[in]nBytes,要写入的字节数[in]cValue,要写入的数据,包含I2C设备地址,子地址等返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●TwI2CWriteNoStop(HANDLE hI2C, int nBytes, BYTE* cValue)功能:写数据到指定I2C设备,但写完后不发STOP信号参数:[in]hI2C,I2C设备句柄[in]nBytes,要写入的字节数[in]cValue,要写入的数据,包含I2C设备地址,子地址等返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwI2CRead(HANDLE hI2C, int nWriteBytes, BYTE* cValue, int nReadBytes, BYTE*pValue)功能:从指定I2C设备地址读取数据参数:[in]hI2C,I2C设备句柄[in]nWriteBytes,读取之前要写入的字节数[in]cValue,要写入的数据,包含设备地址,子地址等[in]nReadBytes,要读取的字节数[out]pValue,读出的值返回:成功返回TRUE,pValue包含读取的值,否则返回FALSE,调用TwGetLastError获取错误码3.6.GPIO接口●HANDLE TwGPIOOpen(int nDevice)功能:打开指定设备的GPIO参数:[in]nDevice,设备索引号返回:成功返回GPIO句柄,否则返回NULL,调用TwGetLastError获取错误码●VOID TwGPIOClose(HANDLE hGpio)功能:关闭指定GPIO设备参数:[in]hGpio,GPIO设备句柄返回:无●BOOL TwGPIOEnableOutput(HANDLE hGpio, int nGpio, int nBits, BOOL bEnable)功能:允许指定GPIO输出参数:[in]hGpio,GPIO设备句柄[in]nGpio,指定要允许输出的GPIO位置[in]nBits,指定要允许输出的GPIO数,从nGpio开始[in]bEnable,是否允许输出返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwGPIOSetBits(HANDLE hGpio, int nGpio, int nBits, ULONG* ulValue)功能:在指定的GPIO上输出参数:[in]hGpio,GPIO设备句柄[in]nGpio,指定要输出的GPIO位置[in]nBits,指定要输出的GPIO数,从nGpio开始[in]ulValue,要输出的值返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwGPIOGetBits(HANDLE hGpio, int nGpio, int nBits, ULONG* pValue)功能:获取指定GPIO输入值参数:[in]hGpio,GPIO设备句柄[in]nGpio,指定要读取输入的GPIO位置[in]nBits,指定要读取输入的GPIO数,从nGpio开始[out]pValue,读取的输入值返回:成功返回TRUE,pValue包含读取的值,否则返回FALSE,调用TwGetLastError获取错误码3.7.通道操作●HANDLE TwChannelOpen(int nChannel)功能:打开指定通道,获取通道句柄参数:[in]nChannel,通道索引号,从0开始返回:成功返回通道句柄,否则返回NULL,调用TwGetLastError获取错误码●VOID TwChannelClose(HANDLE hChannel)功能:关闭指定通道参数:[in]hChannel,通道句柄返回:无●BOOL TwSetVideoStandard(HANDLE hChannel, TVideoStandard vStandard)功能:设置视频制式参数:[in]hChannel,通道句柄[in]vStandard,指定的视频制式返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwSetVideoPara(HANDLE hChannel, TVideoPara vPara, LONG lValue)功能:设置视频参数值,包括亮度、对比度、色度、饱和度、清晰度等参数:[in]hChannel,通道句柄[in]vPara,指定要设置的视频参数[in]lValue,视频参数值返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwGetVideoPara(HANDLE hChannel, TVideoPara vPara, LONG *pValue)功能:获取指定视频参数的当前值参数:[in]hChannel,通道句柄[in]vpara,指定要获取的视频参数[in]pValue,参数取值指针返回:成功返回TRUE,pValue包含指定视频参数的当前值,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwStartVideoCapture(HANDLE hChannel)功能:启动指定通道视频采集参数:[in]hChannel,通道句柄返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwStopVideoCapture(HANDLE hChannel)功能:停止指定通道视频采集参数:[in]hChannel,通道句柄返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwStartAudioCapture(HANDLE hChannel)功能:启动指定通道音频采集参数:[in]hChannel,通道句柄返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwStopAudioCapture(HANDLE hChannel)功能:停止指定通道音频采集参数:[in]hChannel,通道句柄返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwStartVideoField2(HANDLE hChannel)功能:启动指定通道偶场采集参数:[in]hChannel,通道句柄返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●BOOL TwStopVideoField2(HANDLE hChannel)功能:停止指定通道偶场采集参数:[in]hChannel,通道句柄返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码3.8.数据流获取●BOOL TwRegisterVideoStreamCallback(TwVideoStreamCallback VideoStreamCallback, void*Context)功能:注册视频数据流回调函数参数:[in]VideoStreamReadCallback,指定的回调函数指针[in]Context,指定的回调函数上下文指针返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●typedef int (__stdcall *TwVideoStreamCallback)(int nChannel, VOID *DataBuf, int width, intheight, BOOL bField2, void *Context, __int64 pts)功能:提供视频原始数据流给用户参数:[in]nChannel,通道索引号[in]DataBuf,数据缓存的指针[in]width,视频宽度[in]height,视频高度[in]bField2,是否是偶场数据[in]Context,上下文指针[in]pts,帧时间戳返回:成功返回TRUE,否则返回FALSE●BOOL TwRegisterAudioStreamCallback(TwAudioStreamCallback AudioStreamCallback, VOID*Context)功能:注册音频数据流回调函数参数:[in]AudioStreamReadCallback,指定的回调函数指针[in]Context,指定的回调函数上下文指针返回:成功返回TRUE,否则返回FALSE,调用TwGetLastError获取错误码●typedef int (__stdcall *TwAudioStreamCallback)(int nChannel, VOID *DataBuf, LONG Length,void *Context, __int64 pts)功能:提供音频原始数据流给用户参数:[in]nChannel,通道索引号[in]DataBuf,数据缓存的指针[in]Length,数据帧长度[in]Context,上下文指针[in]pts,帧时间戳返回:成功返回TRUE,否则返回FALSE3.9.保留4.数据类型定义4.1.板卡信息结构typedef struct {int nBoardId; 板卡索引号int nSlot; 板卡所在的插槽号int nDeviceCount; 板卡包含的设备数int nFirstDevice; 板卡上的第一个设备索引号ULONG reserved1; 保留ULONG reserved2; 保留ULONG reserved3; 保留ULONG reserved4; 保留}TBoardDesc;4.2.设备信息结构typedef struct {int nDeviceId; 设备索引号int nBoardId; 设备所在的板卡索引号int nBus; 设备所在的总线号ULONG HardwareId; 设备硬件IDint DeviceNumber; 设备号int nSubDevice; 设备包含的子设备数int nFirstSubDevice; 设备包含的第一个子设备索引号ULONG reserved1; 保留ULONG reserved2; 保留ULONG reserved3; 保留ULONG reserved4; 保留}TDeviceDesc;4.3.子设备信息结构typedef struct {int nDeviceId; 子设备所在的设备索引号int nBoardId; 子设备所在的板卡索引号int nAudio; 是否包含音频,nAudio大于0表示有音频int iSwitch; 子设备支持非实时切换的最大通道数int nChannels; 子设备包含的通道数int nFirstChannel; 子设备包含的第一个通道索引号BOOL bField2; 是否奇偶场分开采集ULONG VideoInputMask; 视频输入允许的掩码,bit 0对应viComposite1,依次类推ULONG reserved1; 保留ULONG reserved2; 保留ULONG reserved3; 保留ULONG reserved4; 保留}TSubDeviceDesc;4.4.通道信息结构typedef struct {int nBoardId; 通道所在的板卡索引号int nDeviceId; 通道所在的设备索引号int nSubDeviceId; 通道所在的子设备索引号int nMaxFrameRate; 通道最大帧率BOOL bAudio; 通道是否包含音频ULONG reserved1; 保留ULONG reserved2; 保留ULONG reserved3; 保留ULONG reserved4; 保留}TChannelDesc;4.5.视频输入结构typedef enum {viCompositeVideo1, 复合视频输入1viCompositeVideo2, 复合视频输入2viCompositeVideo3, 复合视频输入3viCompositeVideo4 复合视频输入4}TVideoInput;4.6.视频制式typedef enum {vsStandardNone = 0x80000000,vsStandardNTSC = 0x00000001,vsStandardPAL = 0x00000002,vsStandardSECAM = 0x00000004,}TVideoStandard;4.7.视频像素格式typedef enum {vpfRGB15Alpha = 0x00000004,vpfRGB16 = 0x00000008,vpfRGB24 = 0x00000010,vpfRGB24Alpha = 0x00000020,vpfYUV420Planar = 0x00000040,vpfYUV411Planar = 0x00000100,vpfYUV422Interspersed = 0x00000400,vpfYUV411Interspersed = 0x00000800,}TPixelFormat;4.8.视频参数结构typedef enum {vpBrightness, 亮度vpContrast, 对比度vpSaturation, 饱和度vpHue, 色度vpSharpness, 锐度vpSignal = 0x00001000, 信号状态vpStandard = 0x00002000, 视频制式vpPixelFormat, 像素格式vpFrameRate, 视频帧率vpWidth, 视频宽度vpHeight, 视频高度vpPixelFormat2 = 0x00003000, 偶场像素格式vpFrameRate2, 偶场帧率vpWidth2, 偶场宽度vpHeight2, 偶场高度}TVideoPara;4.9.保留5.调用说明(详细情况请参看Demo)(1)首先调用TwInitSDK(2)接下来可以调用(可调用,也可以不调用)TwGetBoardCountTwGetBoardHandleTwGetBoardDetailTwGetDeviceCountTwGetDeviceHandleTwGetDeviceDetailTwGetSubDeviceCountTwGetSubDeviceHandleTwGetSubDeviceDetailTwI2CXXX系列函数TwGPIOXXX系列函数(3)接下来可以调用(如果要设置成非实时或者两场分开采集的话,必须调用)TwEnableVideoInput(允许多个视频输入的话,就成为非实时切换模式)TwEnableVideoField2(4)接下来必须调用TwGetChannelCount(5)接下来可以调用TwChannelOpenTwGetChannelDetailTwSetVideoParaTwGetVideoParaTwStartVideoCaptureTwStartAudioCaptureTwStartVideoField2(6)结束时调用TwStopVideoCaptureTwStopVideoField2TwStopAudioCaptureTwChannelCloseTwI2CCloseTwGPIOCloseTwUninitSDK6.错误码定义TWERR_SUCCESS 0x00000000 成功TWERR_FAILED (ULONG)-1 失败TWERR_INVALID_PARAM (ULONG)-2 错误的参数TWERR_EXCEPTION (ULONG)-3 产生异常TWERR_NOT_SUPPORT (ULONG)-4 不支持TWERR_NO_DEVICE (ULONG)-5 没有可用设备TWERR_START_DEVICE (ULONG)-6 启动设备失败TWERR_OUTOF_MEMORY (ULONG)-7 分配内存失败TWERR_CREATE_THREAD (ULONG)-8 创建线程失败TWERR_CREATE_DEVICE (ULONG)-9 创建设备失败7.保留。
矩阵上墙和融合屏相关SDK接口说明1.函数调用顺序1)SDK初始化, 设备登陆等2)获取设备通道信息, 由于矩阵的通道号是非连续的, 所以不但要得到通道的通道数, 还要各个编码通道和解码通道的通道号.CLIENT_QueryProductionDefinition可以得到设备的通道数, CLIENT_QueryMatrixCardInfo得到通道具体信息.3)获取电视墙和融合屏配置. 融合屏可以看成是一种特殊的输出通道, 所以每个融合屏都可以用一个通道号标识. 融合屏的通道号是在原有输出通道号的基础上往上加1, 比如用CLIENT_QueryProductionDefinition接口查询得到设备的输出通道数(nVideoOutChannel)是n, 那么融合屏的起始通道号就是n, 之后的各个融合屏的通道号分别是n+1, n+2, …4)分割控制, 电视墙配置等5)设备登出, SDK退出清理2.配置接口1)BOOL CALL_METHOD CLIENT_GetNewDevConfig(LONG lLoginID, char* szCommand,int nChannelID, char* szOutBuffer, DWORD dwOutBufferSize, int *error, int waittime);函数说明:获取配置,按照字符串格式,各个字符串包含的信息由CLIENT_ParseData解析。
参数说明:[in]lLoginID,CLIENT_Login的返回值[in]szCommand,命令参数,见CLIENT_ParseData命令参数说明。
[in]nChannelID,通道号[out]szOutBuffer,输出缓冲,[out]dwOutBufferSize,输出缓冲大小[in]waittime,等待超时时间2)BOOL CLIENT_ParseData(char *szCommand, char *szInBuffer, LPVOID lpOutBuffer,DWORD dwOutBufferSize, void* pReserved);函数说明:此接口配合CLIENT_GetNewDevConfig使用,在使用CLIENT_GetNewDevConfig获取字符串配置信息后,使用此接口从配置信息中提取想要的信息。
网络SDK开发手册VERSION 1.4.0.0 (Build 090926)2009-01-10版权所有侵权必究第 1 页共85 页前言非常感谢您使用我们公司的设备,我们将为您提供最好的服务。
本手册可能包含技术上不准确的地方或印刷错误,欢迎指正。
我们将会定期更新手册的内容。
修订记录目录1.简介 (6)1.1概述 (6)1.2适用性 (6)设计原则 (7)1.3编程说明 (7)1.4典型调用顺序 (8)2数据结构定义 (11)2.1客户端数据结构 (11)2.1.1常量定义 (14)2.1.2设备信息结构 (22)2.1.3时间信息 (22)2.1.4录像文件信息 (24)2.1.5配置信息结构 (29)2.1.6网络键盘键值定义 (50)2.1.7网络报警信息 (52)2.1.8存储设备控制信息 (53)2.1.9 RTSP信息 (53)2.1.10互信互通 (53)2.1.11新望平台 (54)2.1.12视搜平台 (54)2.1.13 VVEYE平台 (55)2.1.14媒体包以及包信息 (55)3接口定义 (57)3.1SDK初始化 (57)3.2报警状态获取 (58)3.3设备注册 (60)3.4实时监视 (61)3.5回放和下载 (64)3.6回放控制 (69)3.7云台控制 (70)3.8系统配置 (71)3.9日志管理 (73)3.10远程控制 (73)3.11语音对讲 (75)3.12录像模式设置 (77)3.13设置系统时间 (78)3.14获取设置运行状态信息 (78)3.15网络键盘 (79)3.16网络报警 (79)3.17报警中心 (80)3.18磁盘管理 (80)3.19抓图 (81)3.20透明232,485 (82)3.21获取DDNS信息 (83)3.22支持强迫I帧 (83)3.23设置连接设备超时时间和尝试次数 (84)4示例功能实现 (85)1.简介1.1概述欢迎使用我公司网络SDK编程手册,网络SDK是软件开发商在开发我司网络硬盘录像机监控联网应用时的开发套件。
大华网络SDK编程手册VERSION 3.1.8(Build 070321)2007-3-21版权所有侵权必究前言非常感谢您使用我们公司的设备,我们将为您提供最好的服务。
本手册可能包含技术上不准确的地方或印刷错误,欢迎指正。
我们将会定期更新手册的内容。
修订记录目录1 简介 (8)1.1概述 (8)1.2适用性 (9)1.3特色功能 (9)2 设计原则 (11)2.1编程说明 (11)2.2典型调用顺序 (12)3 数据结构定义 (18)3.1客户端数据结构 (18)3.1.1 设备信息结构 (25)3.1.2 时间信息 (26)3.1.3 录像文件信息 (26)3.1.4 设备状态信息 (27)3.1.5 系统配置信息结构 (35)4 接口定义 (36)4.1SDK初始化 (36)4.2状态侦听 (39)4.3字符叠加 (44)4.4设备注册 (45)4.5实时监视 (48)4.6音频控制 (54)4.7数据保存 (56)4.8视频抓图 (63)4.9回放和下载 (64)4.10回放控制 (82)4.11云台控制 (88)4.12实时预览 (93)4.13系统配置 (94)4.14日志管理 (103)4.15透明串口 (105)4.16远程控制 (109)4.17录像控制 (112)4.18系统时间 (114)4.19用户管理 (115)4.20语音对讲 (119)4.21码流统计 (129)4.22IO控制 (130)4.23强制I帧 (131)4.24设置限流 (132)4.25获取设备状态 (133)4.26修改通道名称 (136)4.27DDNS查询IP (136)4.28设备参数配置 (138)5 示例功能实现 (165)5.1连接设备 (166)5.2报警信息获取 (167)5.3系统配置 (168)5.4实时监视 (168)5.5数据保存 (169)5.6回放/下载和进度指示 (169)5.7播放控制 (169)5.8预览 (170)5.9字符叠加 (170)1简介1.1概述欢迎使用大华网络SDK编程手册,网络客户端软件开发包(DVR客户端SDK)是大华网络硬盘录像机、网络视频服务器的配套产品,本文档详细描述了开发包中各个函数实现的功能、接口及其函数之间的调用关系和示例实现。
淘宝Open API初学者入门教程2009-06-05 11:01 jxgxy cnblogs 我要评论(6)字号:T | T淘宝Open API开放将近一年了,越来越多的人(包括已工作的和在校的大学生)都在使用淘宝的Open API,有不少ISV应用已上架盈利了。
本文作为一篇教程,给大家做启发式教育。
AD:2013大数据全球技术峰会课程PPT下载我也使用淘宝Open API也大半年了。
不过了,由于阿里软件的文档比较的乱,让很多初学者分不清头绪(注:淘宝Open API是开放在阿里软件的一个平台上,是什么服务集群平台吧)。
当然了,在中国,能够将自己的服务资源开放出来给第三方使用,特别是淘宝网这种大型商业网站来说,阿里巴巴的这种分享精神和开放的胸怀还是令人佩服的。
因此在使用Open API过程中,我们如果觉得资料不是很充分,也不要过多的抱怨,开放的同时意味着责任。
呵呵!在这了,趁端午节放假,将我使用淘宝Open API的心得分享出来,先写一篇简单的入门教程,也算是分享和开放吧。
通过阅读阿里软件提供的文档,我们对如何调用淘宝Open API有了基本的了解。
阿里软件Open API平台即服务集成平台SIP相关的文档链接如下(在使用SIP平台上的Open API还是先要了解下该平台的相关策略如安全策略,访问控制策略等):/index.php/%E6%9C%8D%E5%8A%A1%E9%9B%86%E6%88%90%E5%B9%B3%E5%8F%B0服务集群平台就不多唠叨了,去上面的文档地址去看看。
我就简要的讲讲就我所知道的一些值得注意的地方:1.淘宝Open API每分钟访问的次数是有限制的,好像是400次/分钟,即一个应用访问任何一个淘宝API,一分钟内最多只能访问400次;2.在次数方面,除了上面的控制外,还有日访问次数控制。
如果你的应用是上架的,则日访问量没有限制;如果你的应用没有上架,那么一天之内,你访问淘宝Open API的次数累计起来不能超过1000次。
AndroidStudio安装配置、环境搭建详细步骤及基本使⽤的详细教程⽬录前⾔安装javaAndroid SDK下载和安装Android Studio的下载和安装(新建⼯程和调试运⾏)Android Studio的⼯程⽬录结构AndroidStudio的基本使⽤Android Studio 常⽤快捷⽅式把Android 项⽬切换到Android Studio前⾔ Android Studio的安装配置及使⽤篇终于来啦~ 废话不多说,以下针对JDK正确安装(及其环境变量配置完毕,即Java开发环境下)、Android Studio的安装,配置,以及创建⼯程、主题字体更换、窗⼝⼯具、布局、快捷⽅式等的基本使⽤逐⼀说明。
安装java在“系统变量”新建⼀个变量名为JAVA_HOME的变量,变量值为你本地java的安装⽬录,我这⾥为:C:\ProgramFiles\Java\jdk1.7.0_80,设置这个的⽬的是作为下⾯两个环境变量的⼀个引⽤在“系统变量”选项区域中查看PATH变量,如果不存在,则新建变量PATH,否则选中该变量,单击“编辑”按钮,在“变量值”⽂本框的起始位置添加“%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;”在“系统变量”选项区域中查看CLASSPATH变量,如果不存在,则新建变量CLASSPATH,否则选中该变量,单击“编辑”按钮,在“变量值”⽂本框的起始位置添加“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”。
成功安装判断⽅法:键⼊命令“java -version”,“java”,“javac”⼏个命令,出现画⾯,说明环境变量配置成功; 说明:JAVA_HOME:该环境变量的值就是 Java 所在的⽬录,⼀些 Java 版的软件和⼀些 Java 的⼯具需要⽤到该变量,设置PATH 和 CLASSPATH 的时候,也可以使⽤该变量以⽅便设置。
自动化SDK使用指南目录一、新SDK的介绍 (1)二、为什么要使用最新的SDK (1)三、如何使用最新的SDK (2)1、新SDK的目录结构 (2)2、SDK命名规则 (3)3、SDK使用代码示例(java版,php版,.net版) (3)4、高级功能 (6)四、下载SDK的地址 (6)一、新SDK的介绍淘宝开放平台最新的SDK是由程序通过API的结构、业务数据等自动化生成的代码包,目前支持主流的三种语言版本(java、php、.net)。
是淘宝开放平台为了减少广大开发者使用API的开发成本而提供的一种开发工具包,其中包含了已经开放的API的请求、加密、返回解析等一些必要的功能。
二、为什么要使用最新的SDK最新的自动化SDK区别之前的版本(前期为人工手写的代码),有着以下多种优势:1、SDK代码全自动化生成,完全和对外公开的API文档一致2、自动化生成,避免人工编写产生的Bug3、在每次API升级发布后,会及时自动升级各语言SDK版本,并向下保持兼容4、SDK提供了一些基本协议级的封装,提高API访问成功率5、错误日志自动打印,错误发生时可完全收集现场数据三、如何使用最新的SDK1、新SDK的目录结构JAVA SDK目录结构.NET SDK目录结构2、SDK命名规则a)数据结构类名与API线上文档中完全一样b)API请求类名:去掉api名字中的”taobao”,把”.”后的首字母大写,再掉所有的”.”号,并加上”Request”,即为最终的类名。
比如er.get对应的请求类的类名为UserGetRequest。
c)API返回结果类名:去掉api名字中的”taobao”,把”.”后的首字母大写,再掉所有的”.”号,并加上”Response”,即为最终的类名。
比如er.get对应的响应类的类名为UserGetResponse。
3、SDK使用代码示例(java版,php版,.net版)JAVA版本●不需要登录(sessionKey)的API调用T aobaoClient client = new DefaultTaobaoClient(url, appkey, secret);UserGetRequest req = new UserGetRequest();req.setFields("nick,sex,buyer_credit,seller_credit ,created,last_visit");req.setNick("hz0799");UserGetResponse response = client.execute(req);if (response.isSuccess()) {System.out.println(response.getUser().getNick());} else {// deal error}●需要登录(sessionKey)的API调用client.execute(req, sessionKey);●有文件上传的API调用FileItem img = new FileItem(file);// FileItem为SDK包里封装好的一个类itemAddRequest.setImage(img);PHP版本⏹实例化API Client//实例化TopClient类$c = new TopClient;$c->appkey = "你的appkey";$c->secretKey = "你的secret code";⏹不需要登录(sessionKey)的API调用/*********************************** OOP风格的使用方式,下面还有传统的数组方式**********************************///实例化具体API对应的Request类$req = new UserGetRequest;$req->setFields("nick,sex,buyer_credit,seller_credit");$req->setNick("hz0799");//执行API请求并打印结果$resp = $c->execute($req);⏹需要登录(sessionKey)的API调用//实例化具体API对应的Request类$req = new UserGetRequest;$req->setFields("nick,sex,buyer_credit,seller_credit, birthday");//这行和上面不同,登录用户可以获取隐私字段$req->setNick("hz0799");//执行API请求并打印结果$resp = $c->execute($req, $sessionKey);//这行和上面不同⏹有文件上传的API调用$req = new TaobaoItemImgUploadRequest;$req->setNumIid(12345678);$req->setImage('@C:\my_picture\item_1.jpg');//附件上传的机制参见PHP CURL文档,在文件路径前加@符号即可$resp = $c->execute($req);print_r($resp);⏹传统的数组方式调用(适合已有APP迁移到PHP SDK的客户)/*********************************** 非OOP风格的使用方式, 兼容已有的PHP应用**********************************/$req_array = array("method" => "taobao.items.search","fields" => "iid,title","q" => "ipad","page_size" => 3,"location.city" => "杭州");$resp = $c->exec($req_array);print_r($resp);.NET版本⏹不需要登录(sessionKey)的API调用ITopClient client = new DefaultTopClient("url", "appkey", "appsecret");UserGetRequest req = new UserGetRequest();req.Fields = "user_id,nick,created,buyer_credit,type,sex";req.Nick = "helloworld";UserGetResponse rsp = client.Execute(req);if (rsp.IsError){Console.WriteLine(rsp.Body);}⏹需要登录(sessionKey)的API调用ITopClient client = new DefaultTopClient("url", "appkey", "appsecret");TradeGetRequest req = new TradeGetRequest();req.Fields = “tid,seller_nick,buyer_nick”;req.Tid = 129318293L;TradeGetResponse rsp = client.Execute(req, sessionKey);⏹有文件上传的API调用ITopClient client = new DefaultTopClient("url", "appkey", "appsecret");ItemAddRequest req = new ItemAddRequest();req.Image = new FileItem(“c:/temp.jpg”);ItemAddResponse rsp = client.Execute(req, sessionKey);4、高级功能SDK支持设置客户端的请求超时时间,设置方法为使用支持传入超时参数的构造函数来构造DefaultTaobaoClient,如:public DefaultTaobaoClient(String serverUrl, String appKey, String appSecret, String format,int connectTimeout,int readTimeout)其中:connectTimeout为连接超时,readTimeout为读取数据超时。
默认值为0,即没有超时时间。
四、下载SDK的地址/dev/index.php/SDK%E4%B8%8B%E8%B D%BD。