GET /ISAPI/Smart/storageDetection/rwlock/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<RWLock xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<enabled>
<!--ro, req, bool, 使能-->true
</enabled>
<passwd min="1" max="10">
<!--ro, req, string, 新密码, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</passwd>
<originalPasswd min="1" max="10">
<!--ro, opt, string, 原始密码, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</originalPasswd>
<SDCardType opt="HIK">
<!--ro, opt, string, SD卡厂商类型, range:[,], attr:opt{req, string, 取值范围, range:[,]}-->test
</SDCardType>
</RWLock>
GET /ISAPI/Smart/storageDetection/rwlock
无
<?xml version="1.0" encoding="UTF-8"?>
<RWLock xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<enabled>
<!--ro, req, bool, 使能-->true
</enabled>
<passwd>
<!--ro, req, string, 新密码, range:[,]-->test
</passwd>
<originalPasswd>
<!--ro, opt, string, 原始密码, range:[,]-->test
</originalPasswd>
</RWLock>
PUT /ISAPI/Smart/storageDetection/rwlock
<?xml version="1.0" encoding="UTF-8"?>
<RWLock xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<enabled>
<!--req, bool, 使能-->true
</enabled>
<passwd>
<!--req, string, 新密码, range:[,]-->test
</passwd>
<originalPasswd>
<!--opt, string, 原始密码, range:[,]-->test
</originalPasswd>
</RWLock>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/Smart/storageDetection/unlock/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<UnLock xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 存储侦测解锁参数, attr:version{req, string, 协议版本, range:[,]}-->
<passwd min="1" max="15">
<!--ro, req, string, 解锁密码, range:[1,15], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}, desc:本字段未做敏感信息加密-->test
</passwd>
<SDCardUnlockTime>
<!--ro, opt, int, SD卡未锁时间, range:[2,3], step:, unit:min, unitType:时间, desc:本字段不支持配置,设备端默认返回3,即表示SD卡未锁时间为3分钟-->3
</SDCardUnlockTime>
</UnLock>
PUT /ISAPI/Smart/storageDetection/unlock
<?xml version="1.0" encoding="UTF-8"?>
<UnLock xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<passwd>
<!--req, string, 解锁密码, range:[,]-->test
</passwd>
</UnLock>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/Smart/storageDetection
无
<?xml version="1.0" encoding="UTF-8"?>
<StorageDetection xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<healthState>
<!--ro, opt, enum, 健康状况, subType:string, [good#好,bad#坏,damage#损坏,unknown#未知]-->unknown
</healthState>
<badBlocks>
<!--ro, opt, int, 坏块数, range:[,], step:, unit:, unitType:-->1
</badBlocks>
<SDCardState>
<!--ro, opt, enum, SD卡状态, subType:string, [onLine#在线,offLine#离线,unknown#未知,locked#锁定]-->locked
</SDCardState>
<abnormalPowerLoss>
<!--ro, opt, int, 异常掉电数, range:[,], step:, unit:, unitType:-->1
</abnormalPowerLoss>
<remainingLife>
<!--ro, opt, int, SD卡剩余寿命百分比, range:[0,100], step:, unit:, unitType:-->1
</remainingLife>
</StorageDetection>
GET /ISAPI/Event/schedules/storageDetections/storageDetections-<channelID>
无
<?xml version="1.0" encoding="UTF-8"?>
<Schedule xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 布防时间信息, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--ro, req, string, 索引, range:[,], desc:格式为:事件类型-通道号-->storageDetections-1
</id>
<eventType>
<!--ro, opt, string, 事件类型, range:[,]-->storageDetections
</eventType>
<inputIOPortID>
<!--ro, opt, string, IO输入口, range:[,]-->test
</inputIOPortID>
<outputIOPortID>
<!--ro, opt, string, IO输出口, range:[,]-->test
</outputIOPortID>
<videoInputChannelID>
<!--ro, opt, string, 视频输入通道ID, range:[,]-->1
</videoInputChannelID>
<TimeBlockList size="8">
<!--ro, req, array, 布防时间列表, subType:object, range:[,], attr:size{opt, int, 最大布防时间段数目, range:[,], step:, unit:, unitType:}-->
<TimeBlock>
<!--ro, opt, object, 布防时间-->
<dayOfWeek>
<!--ro, opt, enum, 星期, subType:int, [1#星期一,2#星期二,3#星期三,4#星期四,5#星期五,6#星期六,7#星期天]-->1
</dayOfWeek>
<TimeRange>
<!--ro, req, object, 时间段-->
<beginTime>
<!--ro, req, time, 开始时间-->10:00:00
</beginTime>
<endTime>
<!--ro, req, time, 结束时间-->10:00:00
</endTime>
</TimeRange>
</TimeBlock>
</TimeBlockList>
<HolidayBlockList>
<!--ro, opt, array, 假日布防时间, subType:object, range:[,]-->
<TimeBlock>
<!--ro, opt, object, 布防时间-->
<TimeRange>
<!--ro, req, object, 时间段-->
<beginTime>
<!--ro, req, time, 开始时间-->10:00:00
</beginTime>
<endTime>
<!--ro, req, time, 结束时间-->10:00:00
</endTime>
</TimeRange>
</TimeBlock>
</HolidayBlockList>
</Schedule>
PUT /ISAPI/Event/schedules/storageDetections/storageDetections-<channelID>
<?xml version="1.0" encoding="UTF-8"?>
<Schedule xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 布防时间信息, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--req, string, 索引, range:[,], desc:格式为:事件类型-通道号-->storageDetections-1
</id>
<eventType>
<!--opt, string, 事件类型, range:[,]-->storageDetections
</eventType>
<inputIOPortID>
<!--opt, string, IO输入口, range:[,]-->test
</inputIOPortID>
<outputIOPortID>
<!--opt, string, IO输出口, range:[,]-->test
</outputIOPortID>
<videoInputChannelID>
<!--opt, string, 视频输入通道ID, range:[,]-->1
</videoInputChannelID>
<TimeBlockList size="8">
<!--req, array, 布防时间列表, subType:object, range:[,], attr:size{opt, int, 最大布防时间段数目, range:[,], step:, unit:, unitType:}-->
<TimeBlock>
<!--opt, object, 布防时间-->
<dayOfWeek>
<!--opt, enum, 星期, subType:int, [1#星期一,2#星期二,3#星期三,4#星期四,5#星期五,6#星期六,7#星期天]-->1
</dayOfWeek>
<TimeRange>
<!--req, object, 时间段-->
<beginTime>
<!--req, time, 开始时间-->10:00:00
</beginTime>
<endTime>
<!--req, time, 结束时间-->10:00:00
</endTime>
</TimeRange>
</TimeBlock>
</TimeBlockList>
<HolidayBlockList>
<!--opt, array, 假日布防时间, subType:object, range:[,]-->
<TimeBlock>
<!--opt, object, 布防时间-->
<TimeRange>
<!--req, object, 时间段-->
<beginTime>
<!--req, time, 开始时间-->10:00:00
</beginTime>
<endTime>
<!--req, time, 结束时间-->10:00:00
</endTime>
</TimeRange>
</TimeBlock>
</HolidayBlockList>
</Schedule>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/Event/triggers/hdBadBlock
无
<?xml version="1.0" encoding="UTF-8"?>
<EventTrigger xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 联动参数, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--ro, req, string, 索引, range:[,]-->hdBadBlock
</id>
<eventType>
<!--ro, req, string, 事件类型, range:[,]-->hdBadBlock
</eventType>
<eventDescription>
<!--ro, opt, string, 事件描述, range:[,]-->test
</eventDescription>
<inputIOPortID>
<!--ro, opt, string, IO输入ID, range:[,]-->test
</inputIOPortID>
<dynInputIOPortID>
<!--ro, opt, string, 数字IO输入ID, range:[,]-->test
</dynInputIOPortID>
<videoInputChannelID>
<!--ro, opt, string, 视频输入通道ID, range:[,]-->1
</videoInputChannelID>
<dynVideoInputChannelID>
<!--ro, opt, string, 动态视频输入通道ID, range:[,]-->1
</dynVideoInputChannelID>
<intervalBetweenEvents>
<!--ro, opt, int, 事件抓拍间隔, range:[,], step:, unit:s, unitType:时间-->1
</intervalBetweenEvents>
<WLSensorID>
<!--ro, opt, string, 无线ID, range:[,]-->1
</WLSensorID>
<EventTriggerNotificationList>
<!--ro, opt, array, 联动方式列表, subType:object, range:[,]-->
<EventTriggerNotification>
<!--ro, opt, object, 联动方式-->
<id>
<!--ro, req, string, 索引, range:[,]-->test
</id>
<notificationMethod>
<!--ro, req, enum, 联动方式, subType:string, [FTP#FTP上报,HTTP#HTTP上报,IM#即时通讯,IO#IO输出,LightAudioAlarm#声光报警,audio#声音,beep#蜂鸣器,center#上传中心,cloud#云存储,email#电子邮件,focus#聚焦,monitorAlarm#监视器报警,ptz#云台,record#录像,syslog#系统日志,trace#跟随,whiteLight#白光灯]-->FTP
</notificationMethod>
<notificationRecurrence>
<!--ro, opt, enum, 联动周期, subType:string, [beginning#开始,beginningandend#开始和结束,recurring#再次发生]-->beginning
</notificationRecurrence>
<notificationInterval>
<!--ro, opt, int, 联动时间间隔, range:[,], step:, unit:ms, unitType:时间-->1
</notificationInterval>
<videoInputID>
<!--ro, opt, string, 视频通道号ID, range:[,]-->1
</videoInputID>
<dynVideoInputID>
<!--ro, opt, string, 动态视频输入通道ID, range:[,]-->1
</dynVideoInputID>
<ptzAction>
<!--ro, opt, object, PTZ联动, desc:当notificationMethod = PTZ生效-->
<ptzChannelID>
<!--ro, req, string, PTZ联动通道号, range:[,]-->1
</ptzChannelID>
<actionName>
<!--ro, req, enum, PTZ联动方式, subType:string, [preset#运动到预置点,pattern#花样扫描,patrol#巡航]-->preset
</actionName>
<actionNum>
<!--ro, opt, int, 操作编号, range:[,], step:, unit:, unitType:, desc:依赖于节点<actionName>的表示内容,可以是预置点号,巡航路径号,花样扫描路径号-->1
</actionNum>
</ptzAction>
<WhiteLightAction>
<!--ro, opt, object, 白光灯联动, desc:当notificationMethod = whiteLight生效-->
<whiteLightDurationTime>
<!--ro, opt, int, 白光灯闪烁持续时长, range:[1,60], step:, unit:s, unitType:时间-->1
</whiteLightDurationTime>
</WhiteLightAction>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
PUT /ISAPI/Event/triggers/hdBadBlock
<?xml version="1.0" encoding="UTF-8"?>
<EventTrigger xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 联动参数, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--req, string, 索引, range:[,]-->hdBadBlock
</id>
<eventType>
<!--req, string, 事件类型, range:[,]-->hdBadBlock
</eventType>
<eventDescription>
<!--opt, string, 事件描述, range:[,]-->test
</eventDescription>
<inputIOPortID>
<!--opt, string, IO输入ID, range:[,]-->test
</inputIOPortID>
<dynInputIOPortID>
<!--opt, string, 数字IO输入ID, range:[,]-->test
</dynInputIOPortID>
<videoInputChannelID>
<!--opt, string, 视频输入通道ID, range:[,]-->1
</videoInputChannelID>
<dynVideoInputChannelID>
<!--opt, string, 动态视频输入通道ID, range:[,]-->1
</dynVideoInputChannelID>
<intervalBetweenEvents>
<!--opt, int, 事件抓拍间隔, range:[,], step:, unit:s, unitType:时间-->1
</intervalBetweenEvents>
<WLSensorID>
<!--opt, string, 无线ID, range:[,]-->1
</WLSensorID>
<EventTriggerNotificationList>
<!--opt, array, 联动方式列表, subType:object, range:[,]-->
<EventTriggerNotification>
<!--opt, object, 联动方式-->
<id>
<!--req, string, 索引, range:[,]-->test
</id>
<notificationMethod>
<!--req, enum, 联动方式, subType:string, [FTP#FTP上报,HTTP#HTTP上报,IM#即时通讯,IO#IO输出,LightAudioAlarm#声光报警,audio#声音,beep#蜂鸣器,center#上传中心,cloud#云存储,email#电子邮件,focus#聚焦,monitorAlarm#监视器报警,ptz#云台,record#录像,syslog#系统日志,trace#跟随,whiteLight#白光灯]-->FTP
</notificationMethod>
<notificationRecurrence>
<!--opt, enum, 联动周期, subType:string, [beginning#开始,beginningandend#开始和结束,recurring#再次发生]-->beginning
</notificationRecurrence>
<notificationInterval>
<!--opt, int, 联动时间间隔, range:[,], step:, unit:ms, unitType:时间-->1
</notificationInterval>
<videoInputID>
<!--opt, string, 视频通道号ID, range:[,]-->1
</videoInputID>
<dynVideoInputID>
<!--opt, string, 动态视频输入通道ID, range:[,]-->1
</dynVideoInputID>
<ptzAction>
<!--opt, object, PTZ联动, desc:当notificationMethod = PTZ生效-->
<ptzChannelID>
<!--req, string, PTZ联动通道号, range:[,]-->1
</ptzChannelID>
<actionName>
<!--req, enum, PTZ联动方式, subType:string, [preset#运动到预置点,pattern#花样扫描,patrol#巡航]-->preset
</actionName>
<actionNum>
<!--opt, int, 操作编号, range:[,], step:, unit:, unitType:, desc:依赖于节点<actionName>的表示内容,可以是预置点号,巡航路径号,花样扫描路径号-->1
</actionNum>
</ptzAction>
<WhiteLightAction>
<!--opt, object, 白光灯联动, desc:当notificationMethod = whiteLight生效-->
<whiteLightDurationTime>
<!--opt, int, 白光灯闪烁持续时长, range:[1,60], step:, unit:s, unitType:时间-->1
</whiteLightDurationTime>
</WhiteLightAction>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/Event/triggers/severeHDFailure
无
<?xml version="1.0" encoding="UTF-8"?>
<EventTrigger xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 事件联动, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--ro, req, string, 索引, range:[,]-->severeHDFailure
</id>
<eventType>
<!--ro, req, string, 事件类型, range:[,]-->severeHDFailure
</eventType>
<eventDescription>
<!--ro, opt, string, 事件描述, range:[,]-->test
</eventDescription>
<inputIOPortID>
<!--ro, opt, string, 输入IP端口, range:[,]-->test
</inputIOPortID>
<dynInputIOPortID>
<!--ro, opt, string, 动态IO输入端口ID, range:[,]-->test
</dynInputIOPortID>
<videoInputChannelID>
<!--ro, opt, string, 视频输入通道ID, range:[,]-->1
</videoInputChannelID>
<dynVideoInputChannelID>
<!--ro, opt, string, 动态视频输入通道ID, range:[,]-->1
</dynVideoInputChannelID>
<intervalBetweenEvents>
<!--ro, opt, int, 事件抓拍间隔, range:[,], step:, unit:s, unitType:时间-->1
</intervalBetweenEvents>
<WLSensorID>
<!--ro, opt, string, 无线ID, range:[,]-->1
</WLSensorID>
<EventTriggerNotificationList>
<!--ro, opt, array, 联动方式列表, subType:object, range:[,]-->
<EventTriggerNotification>
<!--ro, opt, object, 联动方式-->
<id>
<!--ro, req, string, 索引, range:[,]-->test
</id>
<notificationMethod>
<!--ro, req, enum, 联动方式, subType:string, [FTP#FTP上报,HTTP#HTTP上报,IM#即时通讯,IO#IO输出,LightAudioAlarm#声光报警,audio#声音,beep#蜂鸣器,center#上传中心,cloud#云存储,email#电子邮件,focus#聚焦,monitorAlarm#监视器报警,ptz#云台,record#录像,syslog#系统日志,trace#跟随,whiteLight#白光灯]-->FTP
</notificationMethod>
<notificationRecurrence>
<!--ro, opt, enum, 联动周期, subType:string, [beginning#开始,beginningandend#开始和结束,recurring#再次发生]-->beginning
</notificationRecurrence>
<notificationInterval>
<!--ro, opt, int, 联动时间间隔, range:[,], step:, unit:ms, unitType:时间-->1
</notificationInterval>
<videoInputID>
<!--ro, opt, string, 视频通道号ID, range:[,]-->1
</videoInputID>
<dynVideoInputID>
<!--ro, opt, string, 动态视频输入通道ID, range:[,]-->1
</dynVideoInputID>
<ptzAction>
<!--ro, opt, object, PTZ联动, desc:当notificationMethod = PTZ生效-->
<ptzChannelID>
<!--ro, req, string, PTZ联动通道号, range:[,]-->1
</ptzChannelID>
<actionName>
<!--ro, req, enum, PTZ联动方式, subType:string, [preset#运动到预置点,pattern#花样扫描,patrol#巡航]-->preset
</actionName>
<actionNum>
<!--ro, opt, int, 操作编号, range:[,], step:, unit:, unitType:, desc:依赖于节点<actionName>的表示内容,可以是预置点号,巡航路径号,花样扫描路径号-->1
</actionNum>
</ptzAction>
<WhiteLightAction>
<!--ro, opt, object, 白光灯联动, desc:当notificationMethod = whiteLight生效-->
<whiteLightDurationTime>
<!--ro, opt, int, 白光灯闪烁持续时长, range:[1,60], step:, unit:s, unitType:时间-->1
</whiteLightDurationTime>
</WhiteLightAction>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
PUT /ISAPI/Event/triggers/severeHDFailure
<?xml version="1.0" encoding="UTF-8"?>
<EventTrigger xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 事件联动, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--req, string, 索引, range:[,]-->severeHDFailure
</id>
<eventType>
<!--req, string, 事件类型, range:[,]-->severeHDFailure
</eventType>
<eventDescription>
<!--opt, string, 事件描述, range:[,]-->test
</eventDescription>
<inputIOPortID>
<!--opt, string, 输入IP端口, range:[,]-->test
</inputIOPortID>
<dynInputIOPortID>
<!--opt, string, 动态IO输入端口ID, range:[,]-->test
</dynInputIOPortID>
<videoInputChannelID>
<!--opt, string, 视频输入通道ID, range:[,]-->1
</videoInputChannelID>
<dynVideoInputChannelID>
<!--opt, string, 动态视频输入通道ID, range:[,]-->1
</dynVideoInputChannelID>
<intervalBetweenEvents>
<!--opt, int, 事件抓拍间隔, range:[,], step:, unit:s, unitType:时间-->1
</intervalBetweenEvents>
<WLSensorID>
<!--opt, string, 无线ID, range:[,]-->1
</WLSensorID>
<EventTriggerNotificationList>
<!--opt, array, 联动方式列表, subType:object, range:[,]-->
<EventTriggerNotification>
<!--opt, object, 联动方式-->
<id>
<!--req, string, 索引, range:[,]-->test
</id>
<notificationMethod>
<!--req, enum, 联动方式, subType:string, [FTP#FTP上报,HTTP#HTTP上报,IM#即时通讯,IO#IO输出,LightAudioAlarm#声光报警,audio#声音,beep#蜂鸣器,center#上传中心,cloud#云存储,email#电子邮件,focus#聚焦,monitorAlarm#监视器报警,ptz#云台,record#录像,syslog#系统日志,trace#跟随,whiteLight#白光灯]-->FTP
</notificationMethod>
<notificationRecurrence>
<!--opt, enum, 联动周期, subType:string, [beginning#开始,beginningandend#开始和结束,recurring#再次发生]-->beginning
</notificationRecurrence>
<notificationInterval>
<!--opt, int, 联动时间间隔, range:[,], step:, unit:ms, unitType:时间-->1
</notificationInterval>
<videoInputID>
<!--opt, string, 视频通道号ID, range:[,]-->1
</videoInputID>
<dynVideoInputID>
<!--opt, string, 动态视频输入通道ID, range:[,]-->1
</dynVideoInputID>
<ptzAction>
<!--opt, object, PTZ联动, desc:当notificationMethod = PTZ生效-->
<ptzChannelID>
<!--req, string, PTZ联动通道号, range:[,]-->1
</ptzChannelID>
<actionName>
<!--req, enum, PTZ联动方式, subType:string, [preset#运动到预置点,pattern#花样扫描,patrol#巡航]-->preset
</actionName>
<actionNum>
<!--opt, int, 操作编号, range:[,], step:, unit:, unitType:, desc:依赖于节点<actionName>的表示内容,可以是预置点号,巡航路径号,花样扫描路径号-->1
</actionNum>
</ptzAction>
<WhiteLightAction>
<!--opt, object, 白光灯联动, desc:当notificationMethod = whiteLight生效-->
<whiteLightDurationTime>
<!--opt, int, 白光灯闪烁持续时长, range:[1,60], step:, unit:s, unitType:时间-->1
</whiteLightDurationTime>
</WhiteLightAction>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
PUT /ISAPI/ContentMgmt/Storage/hdd/<harddiskID>/SMARTTest/start
<?xml version="1.0" encoding="UTF-8"?>
<HDDSMARTTest xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 配置硬盘状态Smart开始检测, attr:version{req, string, 协议版本, range:[,]}-->
<testType opt="short,expanded,conveyance">
<!--opt, enum, 自检类型, subType:string, [short#简短型,expanded#扩展型,conveyance#传输型], attr:opt{req, string, 取值范围, range:[,]}-->short
</testType>
</HDDSMARTTest>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/Storage/hdd/<harddiskID>/SMARTTest/status
无
<?xml version="1.0" encoding="UTF-8"?>
<SmartTestStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 获取硬盘状态Smart检测状态, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--ro, req, string, 硬盘号, range:[,]-->test
</id>
<temprature>
<!--ro, req, int, 温度, range:[,], step:, unit:℃, unitType:温度-->1
</temprature>
<powerOnDay>
<!--ro, req, int, 使用时间, range:[,], step:, unit:d, unitType:时间-->1
</powerOnDay>
<selfEvaluaingStatus opt="ok,error">
<!--ro, req, enum, 自我评估状态, subType:string, [ok#通过,error#错误], attr:opt{req, string, 取值范围, range:[,]}-->ok
</selfEvaluaingStatus>
<allEvaluaingStatus opt="functional,badsectors,fault">
<!--ro, req, enum, 整体评估, subType:string, [functional#健康状况良好,badsectors#坏块,fault#错误], attr:opt{req, string, 取值范围, range:[,]}-->functional
</allEvaluaingStatus>
<selfTestPercent>
<!--ro, req, int, 自检进度, range:[,], step:, unit:, unitType:-->1
</selfTestPercent>
<selfTestStatus opt="ok,aborted,interrupted,failed,unkown,electronic_element_error,servo_error,read_failed,progress,not_tested,not_recognized">
<!--ro, req, enum, 自检状态, subType:string, [ok#成功,aborted#异常退出,interrupted#中断,failed#失败,unkown#未知,electronic_element_error#电子单元错误,servo_error#伺服错误,read_failed#读错误,progress#进行中,not_tested#未测试,not_recognized#未识别], attr:opt{req, string, 取值范围, range:[,]}-->ok
</selfTestStatus>
<testType opt="short,expanded,conveyance">
<!--ro, req, enum, 自检类型, subType:string, [short#简短型,expanded#扩展型,conveyance#传输型], attr:opt{req, string, 取值范围, range:[,]}-->short
</testType>
<TestResultList>
<!--ro, req, array, 检测结果列表, subType:object, range:[,], desc:Size=30-->
<TestResult>
<!--ro, opt, object, 检测结果-->
<attributeID>
<!--ro, req, string, 属性ID, range:[,]-->test
</attributeID>
<attributeName>
<!--ro, opt, string, 属性名称, range:[,]-->test
</attributeName>
<status>
<!--ro, req, enum, 状态, subType:string, [ok#正常,illegal#出错]-->ok
</status>
<flags>
<!--ro, req, int, 属性操作标志, range:[,], step:, unit:, unitType:-->1
</flags>
<thresholds>
<!--ro, req, int, 临界值, range:[,], step:, unit:, unitType:-->1
</thresholds>
<value>
<!--ro, req, string, 当前值, range:[,]-->test
</value>
<worst>
<!--ro, req, int, 最差值, range:[,], step:, unit:, unitType:-->1
</worst>
<rawValue>
<!--ro, req, int, 原始值, range:[,], step:, unit:, unitType:-->1
</rawValue>
</TestResult>
</TestResultList>
</SmartTestStatus>
GET /ISAPI/ContentMgmt/Storage/hdd/SMARTTest/config
无
<?xml version="1.0" encoding="UTF-8"?>
<SMARTTestConfig xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 配置硬盘状态Smart检测配置, attr:version{req, string, 协议版本, range:[,]}-->
<enabled opt="true,false">
<!--ro, req, bool, 使能, attr:opt{req, string, 取值范围, range:[,]}, desc:当HDD自我评估不通过时,是否继续使用HDD-->true
</enabled>
</SMARTTestConfig>
PUT /ISAPI/ContentMgmt/Storage/hdd/SMARTTest/config
<?xml version="1.0" encoding="UTF-8"?>
<SMARTTestConfig xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 配置硬盘状态Smart检测配置, attr:version{req, string, 协议版本, range:[,]}-->
<enabled opt="true,false">
<!--req, bool, 使能, attr:opt{req, string, 取值范围, range:[,]}, desc:当HDD自我评估不通过时,是否继续使用HDD-->true
</enabled>
</SMARTTestConfig>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
PUT /ISAPI/ContentMgmt/Storage/hdd/<harddiskID>/BadSectorsTest/start
<?xml version="1.0" encoding="UTF-8"?>
<BadSectorsTest xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<testType opt="full,metadata">
<!--opt, enum, 检测方式, subType:string, [full#完全检测,metadata#关键区检测], attr:opt{req, string, 取值范围, range:[,]}-->full
</testType>
</BadSectorsTest>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/Storage/hdd/<harddiskID>/BadSectorsTest/status
无
<?xml version="1.0" encoding="UTF-8"?>
<BadSectorsTestStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 获取硬盘状态坏道检测状态, attr:version{req, string, 协议版本, range:[,]}-->
<diskID>
<!--ro, req, string, 磁盘号, range:[,]-->test
</diskID>
<MaskAreaList>
<!--ro, req, array, 标记区域列表, subType:object, range:[,]-->
<MaskArea>
<!--ro, opt, object, 标记区域-->
<maskAreaID>
<!--ro, req, int, 标记区域ID, range:[,], step:, unit:, unitType:-->1
</maskAreaID>
<startLBA>
<!--ro, opt, int, 开始逻辑块地址, range:[,], step:, unit:, unitType:-->1
</startLBA>
<endLBA>
<!--ro, opt, int, 结束逻辑块地址, range:[,], step:, unit:, unitType:-->1
</endLBA>
</MaskArea>
</MaskAreaList>
<BlockAreaTestStatus>
<!--ro, opt, object, 块区域测试状态-->
<testType>
<!--ro, opt, enum, 测试类型, subType:string, [full#完成检测,metadata#关键区检测]-->full
</testType>
<testStatus>
<!--ro, req, enum, 测试状态, subType:string, [none#没有,running#运行,pause#暂停,complete#完成,exceed#超过,abort#中止]-->none
</testStatus>
<fistBlock>
<!--ro, opt, int, 开始位置, range:[,], step:, unit:, unitType:-->1
</fistBlock>
<lastBlock>
<!--ro, opt, int, 结束位置, range:[,], step:, unit:, unitType:-->1
</lastBlock>
<currentBlock>
<!--ro, opt, int, 当前位置, range:[,], step:, unit:, unitType:-->1
</currentBlock>
<BadSectorsList>
<!--ro, opt, array, 坏区域列表, subType:object, range:[,]-->
<BadSectors>
<!--ro, opt, object, 坏区域-->
<id>
<!--ro, req, int, 索引, range:[,], step:, unit:, unitType:-->1
</id>
<block>
<!--ro, opt, int, 块ID, range:[,], step:, unit:, unitType:-->1
</block>
</BadSectors>
</BadSectorsList>
</BlockAreaTestStatus>
</BadSectorsTestStatus>
PUT /ISAPI/ContentMgmt/Storage/hdd/<harddiskID>/BadSectorsTest/stop
无
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
PUT /ISAPI/ContentMgmt/Storage/hdd/<harddiskID>/BadSectorsTest/pause
无
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
PUT /ISAPI/ContentMgmt/Storage/hdd/<harddiskID>/BadSectorsTest/resume
无
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/Storage/cloud/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<Cloud xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<enable>
<!--ro, req, bool, 使能-->true
</enable>
<type opt="OneDrive,GoogleDrive ,DropBox">
<!--ro, req, enum, 类型, subType:string, [OneDrive#微软网盘,GoogleDrive#谷歌云,DropBox#多宝箱], attr:opt{req, string, 取值范围, range:[,]}-->OneDrive
</type>
<status opt="Online,Offline">
<!--ro, req, enum, 状态, subType:string, [Online#在线,Offline#离线], attr:opt{req, string, 取值范围, range:[,]}-->Online
</status>
<authCode min="0" max="64">
<!--ro, req, string, 认证码, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</authCode>
<alias min="0" max="32">
<!--ro, opt, string, 别名, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</alias>
<tolalCapacity>
<!--ro, opt, int, 总容量, range:[,], step:, unit:MB, unitType:信息量, desc:本字段为int64位值-->1
</tolalCapacity>
<usedSpace>
<!--ro, opt, int, 已用空间, range:[,], step:, unit:MB, unitType:信息量, desc:本字段为int64位值-->1
</usedSpace>
</Cloud>
GET /ISAPI/ContentMgmt/Storage/cloud/URL/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<CloudURL xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<url min="0" max="256">
<!--ro, req, string, URL长度, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</url>
</CloudURL>
GET /ISAPI/ContentMgmt/Storage/cloud/URL?type=<type>
无
<?xml version="1.0" encoding="UTF-8"?>
<CloudURL xmlns="http://www.isapi.org/ver20/XMLSchema">
<!--ro, opt, object, 未定义-->
<url min="0" max="256">
<!--ro, req, string, URL长度, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</url>
</CloudURL>
GET /ISAPI/ContentMgmt/Storage/cloud
无
<?xml version="1.0" encoding="UTF-8"?>
<Cloud xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<enable>
<!--ro, req, bool, 使能-->true
</enable>
<type opt="OneDrive,GoogleDrive ,DropBox">
<!--ro, req, enum, 类型, subType:string, [OneDrive#微软网盘,GoogleDrive#谷歌云,DropBox#多宝箱], attr:opt{req, string, 取值范围, range:[,]}-->OneDrive
</type>
<status opt="Online,Offline">
<!--ro, req, enum, 状态, subType:string, [Online#在线,Offline#离线], attr:opt{req, string, 取值范围, range:[,]}-->Online
</status>
<authCode min="0" max="64">
<!--ro, req, string, 认证码, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</authCode>
<alias min="0" max="32">
<!--ro, opt, string, 别名, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</alias>
<tolalCapacity>
<!--ro, opt, int, 总容量, range:[,], step:, unit:MB, unitType:信息量, desc:本字段为int64位值-->1
</tolalCapacity>
<usedSpace>
<!--ro, opt, int, 已用空间, range:[,], step:, unit:MB, unitType:信息量, desc:本字段为int64位值-->1
</usedSpace>
</Cloud>
PUT /ISAPI/ContentMgmt/Storage/cloud
<?xml version="1.0" encoding="UTF-8"?>
<Cloud xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<enable>
<!--req, bool, 使能-->true
</enable>
<type opt="OneDrive,GoogleDrive ,DropBox">
<!--req, enum, 类型, subType:string, [OneDrive#微软网盘,GoogleDrive#谷歌云,DropBox#多宝箱], attr:opt{req, string, 取值范围, range:[,]}-->OneDrive
</type>
<status opt="Online,Offline">
<!--req, enum, 状态, subType:string, [Online#在线,Offline#离线], attr:opt{req, string, 取值范围, range:[,]}-->Online
</status>
<authCode min="0" max="64">
<!--req, string, 认证码, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</authCode>
<alias min="0" max="32">
<!--opt, string, 别名, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</alias>
<tolalCapacity>
<!--opt, int, 总容量, range:[,], step:, unit:MB, unitType:信息量, desc:本字段为int64位值-->1
</tolalCapacity>
<usedSpace>
<!--opt, int, 已用空间, range:[,], step:, unit:MB, unitType:信息量, desc:本字段为int64位值-->1
</usedSpace>
</Cloud>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/Storage/cloud/channels/<channelID>/uploadStrategy/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<UploadStrategy xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">test
<!--ro, req, string, 未定义, range:[,], attr:version{req, string, 协议版本, range:[,]}-->
<strategyType opt="record,picture">
<!--ro, opt, enum, 策略类型, subType:string, [record#录像,picture#图片], attr:opt{req, string, 取值范围, range:[,]}-->record
</strategyType>
<Record>
<!--ro, opt, object, 录像策略, dep:and,{$.UploadStrategy.strategyType,eq,record}-->null
<allEvent>
<!--ro, opt, bool, 所有事件-->true
</allEvent>
<motion>
<!--ro, opt, bool, 移动侦测-->true
</motion>
<alarm>
<!--ro, opt, bool, 报警-->true
</alarm>
<VCA>
<!--ro, opt, bool, VCA智能-->true
</VCA>
</Record>
</UploadStrategy>
GET /ISAPI/ContentMgmt/Storage/cloud/channels/<channelID>/uploadStrategy
无
<?xml version="1.0" encoding="UTF-8"?>
<UploadStrategy xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">test
<!--ro, req, string, 未定义, range:[,], attr:version{req, string, 协议版本, range:[,]}-->
<strategyType opt="record,picture">
<!--ro, opt, enum, 策略类型, subType:string, [record#录像,picture#图片], attr:opt{req, string, 取值范围, range:[,]}-->record
</strategyType>
<Record>
<!--ro, opt, object, 录像策略, dep:and,{$.UploadStrategy.strategyType,eq,record}-->
<allEvent>
<!--ro, opt, bool, 所有事件-->true
</allEvent>
<motion>
<!--ro, opt, bool, 移动侦测-->true
</motion>
<alarm>
<!--ro, opt, bool, 报警-->true
</alarm>
<VCA>
<!--ro, opt, bool, VCA智能-->true
</VCA>
</Record>
</UploadStrategy>
PUT /ISAPI/ContentMgmt/Storage/cloud/channels/<channelID>/uploadStrategy
<?xml version="1.0" encoding="UTF-8"?>
<UploadStrategy xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">test
<!--req, string, 未定义, range:[,], attr:version{req, string, 协议版本, range:[,]}-->
<strategyType opt="record,picture">
<!--opt, enum, 策略类型, subType:string, [record#录像,picture#图片], attr:opt{req, string, 取值范围, range:[,]}-->record
</strategyType>
<Record>
<!--opt, object, 录像策略, dep:and,{$.UploadStrategy.strategyType,eq,record}-->
<allEvent>
<!--opt, bool, 所有事件-->true
</allEvent>
<motion>
<!--opt, bool, 移动侦测-->true
</motion>
<alarm>
<!--opt, bool, 报警-->true
</alarm>
<VCA>
<!--opt, bool, VCA智能-->true
</VCA>
</Record>
</UploadStrategy>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/Cluster/ClusterMode
无
<?xml version="1.0" encoding="UTF-8"?>
<ClusterMode xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 工作模式, attr:version{req, string, 协议版本, range:[,]}-->
<mode>
<!--ro, req, enum, 集群模式, subType:string, [single#单机模式,cluster#集群模式], desc:设置完毕需要重启设备,默认关闭-->single
</mode>
</ClusterMode>
PUT /ISAPI/ContentMgmt/Cluster/ClusterMode
<?xml version="1.0" encoding="UTF-8"?>
<ClusterMode xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 工作模式, attr:version{req, string, 协议版本, range:[,]}-->
<mode>
<!--req, enum, 集群模式, subType:string, [single#单机模式,cluster#集群模式], desc:设置完毕需要重启设备,默认关闭-->single
</mode>
</ClusterMode>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
PUT /ISAPI/ContentMgmt/Cluster/Creation
<?xml version="1.0" encoding="UTF-8"?>
<ClusterCreation xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 集群组网, attr:version{req, string, 协议版本, range:[,]}-->
<DevAccessInfoList>
<!--opt, array, 设备接入信息列表, subType:object, range:[,]-->
<DevAccessInfo>
<!--opt, object, 设备接入信息-->
<id>
<!--opt, int, 索引, range:[,], step:, unit:, unitType:, desc:添加时可选,获取时必填-->0
</id>
<ipVersion>
<!--req, enum, ip地址类型, subType:string, [v4#IPv4,v6#IPv6,dual#双]-->v4
</ipVersion>
<ipAddress>
<!--opt, string, ipv4地址, range:[,]-->test
</ipAddress>
<ipv6Address>
<!--opt, string, ipv6地址, range:[,]-->test
</ipv6Address>
<port>
<!--opt, int, 设备端口, range:[,], step:, unit:, unitType:, desc:添加时必填,删除时可选-->0
</port>
<loginName>
<!--opt, string, 设备登录用户名, range:[,], desc:必须是admin用户,添加时必填,获取时不返回-->test
</loginName>
<passwd>
<!--opt, string, 登录密码, range:[,], desc:添加时必填,删除时可选-->test
</passwd>
</DevAccessInfo>
</DevAccessInfoList>
<ClusterInfo>
<!--opt, object, 集群信息-->
<ipVersion>
<!--req, enum, ip地址类型, subType:string, [v4#IPv4,v6#IPv6,dual#双]-->v4
</ipVersion>
<ipAddress>
<!--opt, string, ipv4地址, range:[,]-->test
</ipAddress>
<ipv6Address>
<!--opt, string, ipv6地址, range:[,]-->test
</ipv6Address>
<port>
<!--req, int, 集群端口, range:[,], step:, unit:, unitType:-->0
</port>
<httpPort>
<!--req, int, 集群HTTP端口, range:[,], step:, unit:, unitType:-->0
</httpPort>
<loginName>
<!--req, string, 集群对外用户名, range:[,], desc:必须是admin用户-->test
</loginName>
<passwd>
<!--req, string, 登录对外密码, range:[,], desc:需要敏感信息加密-->test
</passwd>
</ClusterInfo>
</ClusterCreation>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
POST /ISAPI/ContentMgmt/Cluster/device
<?xml version="1.0" encoding="UTF-8"?>
<DevAccessInfoList xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, array, 设备接入信息列表, subType:object, range:[,], attr:version{req, string, 协议版本, range:[,]}-->
<DevAccessInfo>
<!--opt, object, 设备接入信息-->
<id>
<!--opt, int, 索引, range:[,], step:, unit:, unitType:, desc:添加时可选,获取时必填-->0
</id>
<ipVersion>
<!--req, enum, ip地址类型, subType:string, [v4#IPv4,v6#IPv6,dual#双]-->v4
</ipVersion>
<ipAddress>
<!--opt, string, ipv4地址, range:[,]-->test
</ipAddress>
<ipv6Address>
<!--opt, string, ipv6地址, range:[,]-->test
</ipv6Address>
<port>
<!--opt, int, 设备端口, range:[,], step:, unit:, unitType:, desc:添加时必填,删除时可选-->0
</port>
<loginName>
<!--opt, string, 设备登录用户名, range:[,], desc:必须是admin用户,添加时必填,获取时不返回-->test
</loginName>
<passwd>
<!--opt, string, 登录密码, range:[,], desc:添加时必填,删除时可选-->test
</passwd>
</DevAccessInfo>
</DevAccessInfoList>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/Cluster/device
无
<?xml version="1.0" encoding="UTF-8"?>
<DevAccessInfoList xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, array, 设备接入信息列表, subType:object, range:[,], attr:version{req, string, 协议版本, range:[,]}-->
<DevAccessInfo>
<!--ro, opt, object, 设备接入信息-->
<id>
<!--ro, opt, int, 索引, range:[,], step:, unit:, unitType:, desc:添加时可选,获取时必填-->0
</id>
<ipVersion>
<!--ro, req, enum, ip地址类型, subType:string, [v4#IPv4,v6#IPv6,dual#双]-->v4
</ipVersion>
<ipAddress>
<!--ro, opt, string, ipv4地址, range:[,]-->test
</ipAddress>
<ipv6Address>
<!--ro, opt, string, ipv6地址, range:[,]-->test
</ipv6Address>
<port>
<!--ro, opt, int, 设备端口, range:[,], step:, unit:, unitType:, desc:添加时必填,删除时可选-->0
</port>
<loginName>
<!--ro, opt, string, 设备登录用户名, range:[,], desc:必须是admin用户,添加时必填,获取时不返回-->test
</loginName>
<passwd>
<!--ro, opt, string, 登录密码, range:[,], desc:添加时必填,删除时可选-->test
</passwd>
</DevAccessInfo>
</DevAccessInfoList>
DELETE /ISAPI/ContentMgmt/Cluster/device/<deviceID>
无
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/Cluster/Status
无
<?xml version="1.0" encoding="UTF-8"?>
<ClusterStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 集群内部状态, attr:version{req, string, 协议版本, range:[,]}-->
<DevStatusList>
<!--ro, opt, array, 设备状态列表, subType:object, range:[,]-->
<DevStatus>
<!--ro, opt, object, 设备状态-->
<id>
<!--ro, opt, int, 索引, range:[,], step:, unit:, unitType:, desc:添加时可选,获取时必填-->0
</id>
<ipVersion>
<!--ro, req, enum, ip地址类型, subType:string, [v4#IPv4,v6#IPv6,dual#双]-->v4
</ipVersion>
<ipAddress>
<!--ro, opt, string, ipv4地址, range:[,]-->test
</ipAddress>
<ipv6Address>
<!--ro, opt, string, ipv6地址, range:[,]-->test
</ipv6Address>
<devType>
<!--ro, req, string, 设备型号, range:[,]-->test
</devType>
<status>
<!--ro, req, enum, 在线状态, subType:string, [online#在线,offline#离线]-->online
</status>
<cpu>
<!--ro, req, int, cpu使用百分比, range:[0,100], step:, unit:, unitType:-->0
</cpu>
<memory>
<!--ro, req, int, 内存使用百分比, range:[0,100], step:, unit:, unitType:-->0
</memory>
<surplusInputBandwidth>
<!--ro, req, int, 剩余输入带宽, range:[,], step:, unit:Mbps, unitType:带宽速度-->0
</surplusInputBandwidth>
<surplusOutputBandwidth>
<!--ro, req, int, 剩余输出带宽, range:[,], step:, unit:Mbps, unitType:带宽速度-->0
</surplusOutputBandwidth>
<storageCapacity>
<!--ro, opt, int, 存储总容量, range:[,], step:, unit:MB, unitType:信息量-->0
</storageCapacity>
<storageFreeSpace>
<!--ro, opt, int, 存储剩余空间, range:[,], step:, unit:MB, unitType:信息量-->0
</storageFreeSpace>
<maxIPCNum>
<!--ro, opt, int, 支持接入的IPC最大个数, range:[,], step:, unit:, unitType:-->0
</maxIPCNum>
<currentIPCNum>
<!--ro, opt, int, 当前接入的ICP个数, range:[,], step:, unit:, unitType:-->0
</currentIPCNum>
<offlineDescription>
<!--ro, opt, enum, 不在线原因, subType:string, [incorrentUserNameOrPassword#用户或密码错误,networkException#网络异常,notClusterMode#非集群模式,existedInOtherClusterSystem#已存在于其他集群系统,IPNotSameLan#不同局域网,badVersion#版本不匹配,badDevType#设备类型不匹配,badLanguage#语言不匹配,unknow#未知错误], desc:<status>为offline时返回-->incorrentUserNameOrPassword
</offlineDescription>
</DevStatus>
</DevStatusList>
<totalIdleBandwidth>
<!--ro, req, int, 集群总剩余带宽, range:[,], step:, unit:Mbps, unitType:带宽速度-->0
</totalIdleBandwidth>
<videoCycle>
<!--ro, opt, int, 集群录像周期, range:[,], step:, unit:d, unitType:时间-->0
</videoCycle>
</ClusterStatus>
GET /ISAPI/ContentMgmt/Cluster/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<ClusterCap xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 集群能力, attr:version{req, string, 协议版本, range:[,]}-->
<isSupportCreateCluster>
<!--ro, opt, bool, 设备是否支持创建大域-->true
</isSupportCreateCluster>
<isSupportCardLock>
<!--ro, opt, bool, 设备是否换卡失败锁定-->true
</isSupportCardLock>
<CloudCap>
<!--ro, opt, object, 武汉云能力控制-->
<isHideBaseInfo>
<!--ro, opt, bool, 是否不显示信息总览界面基本信息-->true
</isHideBaseInfo>
<isHideDomainIP>
<!--ro, opt, bool, 是否不显示域IP显示框-->true
</isHideDomainIP>
</CloudCap>
<isSupportClusterSilence>
<!--ro, opt, bool, 设备是否支持全域静音-->true
</isSupportClusterSilence>
<isSupportModeSwitch>
<!--ro, opt, bool, 是否支持模式切换功能-->true
</isSupportModeSwitch>
<isSupportCreation>
<!--ro, opt, bool, 是否支持组网功能-->true
</isSupportCreation>
<maxSlaveNumber>
<!--ro, opt, int, 集群最大设备数, range:[,], step:, unit:, unitType:-->0
</maxSlaveNumber>
<maxChannelNumber>
<!--ro, opt, int, 集群最大通道数, range:[,], step:, unit:, unitType:-->0
</maxChannelNumber>
<maxBandwidth>
<!--ro, opt, int, 集群最大带宽, range:[,], step:, unit:Mbps, unitType:带宽速度-->0
</maxBandwidth>
<isSupportCMLoginIP>
<!--ro, opt, bool, 是否支持下发CM登录IP-->true
</isSupportCMLoginIP>
<isSupportDeviceConfig>
<!--ro, opt, bool, 是否支持集群设备信息配置-->true
</isSupportDeviceConfig>
<isSupportStatus>
<!--ro, opt, bool, 是否支持集群内部状态获取, desc:以下部分,按照通过web 访问虚拟IP (CM)和 通过web 访问集群中的CS 进行区分,定义各功能的支持情况。-->true
</isSupportStatus>
<isSupportPreview>
<!--ro, opt, bool, 是否支持预览-->true
</isSupportPreview>
<isSupportRecord>
<!--ro, opt, bool, 是否支持录像回放、下载-->true
</isSupportRecord>
<LocalCfg>
<!--ro, opt, object, 本地参数-->
<protocalType>
<!--ro, opt, enum, 协议类型, subType:string, [UDP#UDP,TCP#TCP,MULTICAST#多播]-->UDP
</protocalType>
</LocalCfg>
<SystemCfg>
<!--ro, opt, object, 系统参数-->
<isSupportBaseInfoCfg>
<!--ro, opt, bool, 是否支持基本信息配置-->true
</isSupportBaseInfoCfg>
<isSupportTimeCfg>
<!--ro, opt, enum, 是否支持时间配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportTimeCfg>
</SystemCfg>
<SystemMaintainCfg>
<!--ro, opt, object, 系统维护参数-->
<isSupportSimpleRestore>
<!--ro, opt, bool, 是否支持恢复默认值(简单)-->true
</isSupportSimpleRestore>
<isSupportCompleteRestore>
<!--ro, opt, bool, 是否支持恢复默认值(完全)-->true
</isSupportCompleteRestore>
<isSupportCfgImport>
<!--ro, opt, bool, 是否支持参数导入(ipc参数、设备参数)-->true
</isSupportCfgImport>
<isSupportAdvanceParam>
<!--ro, opt, bool, 是否支持高级参数配置-->true
</isSupportAdvanceParam>
</SystemMaintainCfg>
<NetWork>
<!--ro, opt, object, 网络参数-->
<isSupportTCPIP>
<!--ro, opt, enum, 是否支持TCP/IP参数配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportTCPIP>
<isSupportPortCfg>
<!--ro, opt, enum, 是否支持端口配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportPortCfg>
</NetWork>
<AdvancedNetWork>
<!--ro, opt, object, 高级参数-->
<isSupportEmail>
<!--ro, opt, enum, 是否支持Email参数配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportEmail>
<isSupportUndefined>
<!--ro, opt, enum, 是否支持其他配置(其他页面), subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportUndefined>
</AdvancedNetWork>
<Storage>
<!--ro, opt, object, 存储参数-->
<isSupportRecordPlan>
<!--ro, opt, enum, 是否支持录像计划配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportRecordPlan>
<isSupportHoliday>
<!--ro, opt, enum, 是否支持假日配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportHoliday>
<isSupportNetDiskCfg>
<!--ro, opt, enum, 是否支持网盘配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportNetDiskCfg>
<isSupportUndefined>
<!--ro, opt, enum, 是否支持其他配置(其他页面), subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportUndefined>
<isSupportHDiskIP>
<!--ro, opt, bool, 是否支持硬盘IP参数-->true
</isSupportHDiskIP>
</Storage>
<isSupportChannelManage>
<!--ro, opt, enum, 是否支持通道管理, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportChannelManage>
<isSupportUserManage>
<!--ro, opt, enum, 是否支持用户管理, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportUserManage>
<isSupportEventCfg>
<!--ro, opt, enum, 是否支持事件配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportEventCfg>
<isSupportVehicleDetect>
<!--ro, opt, enum, 是否支持车辆检测, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportVehicleDetect>
<isSupportIntelligentAnalysis>
<!--ro, opt, enum, 是否支持智能分析, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportIntelligentAnalysis>
</ClusterCap>
GET /ISAPI/ContentMgmt/Cluster/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<ClusterCap xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 集群能力, attr:version{req, string, 协议版本, range:[,]}-->
<isSupportCreateCluster>
<!--ro, opt, bool, 设备是否支持创建大域-->true
</isSupportCreateCluster>
<isSupportCardLock>
<!--ro, opt, bool, 设备是否换卡失败锁定-->true
</isSupportCardLock>
<CloudCap>
<!--ro, opt, object, 武汉云能力控制-->
<isHideBaseInfo>
<!--ro, opt, bool, 是否不显示信息总览界面基本信息-->true
</isHideBaseInfo>
<isHideDomainIP>
<!--ro, opt, bool, 是否不显示域IP显示框-->true
</isHideDomainIP>
</CloudCap>
<isSupportClusterSilence>
<!--ro, opt, bool, 设备是否支持全域静音-->true
</isSupportClusterSilence>
<isSupportModeSwitch>
<!--ro, opt, bool, 是否支持模式切换功能-->true
</isSupportModeSwitch>
<isSupportCreation>
<!--ro, opt, bool, 是否支持组网功能-->true
</isSupportCreation>
<maxSlaveNumber>
<!--ro, opt, int, 集群最大设备数, range:[,], step:, unit:, unitType:-->0
</maxSlaveNumber>
<maxChannelNumber>
<!--ro, opt, int, 集群最大通道数, range:[,], step:, unit:, unitType:-->0
</maxChannelNumber>
<maxBandwidth>
<!--ro, opt, int, 集群最大带宽, range:[,], step:, unit:Mbps, unitType:带宽速度-->0
</maxBandwidth>
<isSupportCMLoginIP>
<!--ro, opt, bool, 是否支持下发CM登录IP-->true
</isSupportCMLoginIP>
<isSupportDeviceConfig>
<!--ro, opt, bool, 是否支持集群设备信息配置-->true
</isSupportDeviceConfig>
<isSupportStatus>
<!--ro, opt, bool, 是否支持集群内部状态获取, desc:以下部分,按照通过web 访问虚拟IP (CM)和 通过web 访问集群中的CS 进行区分,定义各功能的支持情况。-->true
</isSupportStatus>
<isSupportPreview>
<!--ro, opt, bool, 是否支持预览-->true
</isSupportPreview>
<isSupportRecord>
<!--ro, opt, bool, 是否支持录像回放、下载-->true
</isSupportRecord>
<LocalCfg>
<!--ro, opt, object, 本地参数-->
<protocalType>
<!--ro, opt, enum, 协议类型, subType:string, [UDP#UDP,TCP#TCP,MULTICAST#多播]-->UDP
</protocalType>
</LocalCfg>
<SystemCfg>
<!--ro, opt, object, 系统参数-->
<isSupportBaseInfoCfg>
<!--ro, opt, bool, 是否支持基本信息配置-->true
</isSupportBaseInfoCfg>
<isSupportTimeCfg>
<!--ro, opt, enum, 是否支持时间配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportTimeCfg>
</SystemCfg>
<SystemMaintainCfg>
<!--ro, opt, object, 系统维护参数-->
<isSupportSimpleRestore>
<!--ro, opt, bool, 是否支持恢复默认值(简单)-->true
</isSupportSimpleRestore>
<isSupportCompleteRestore>
<!--ro, opt, bool, 是否支持恢复默认值(完全)-->true
</isSupportCompleteRestore>
<isSupportCfgImport>
<!--ro, opt, bool, 是否支持参数导入(ipc参数、设备参数)-->true
</isSupportCfgImport>
<isSupportAdvanceParam>
<!--ro, opt, bool, 是否支持高级参数配置-->true
</isSupportAdvanceParam>
</SystemMaintainCfg>
<NetWork>
<!--ro, opt, object, 网络参数-->
<isSupportTCPIP>
<!--ro, opt, enum, 是否支持TCP/IP参数配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportTCPIP>
<isSupportPortCfg>
<!--ro, opt, enum, 是否支持端口配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportPortCfg>
</NetWork>
<AdvancedNetWork>
<!--ro, opt, object, 高级参数-->
<isSupportEmail>
<!--ro, opt, enum, 是否支持Email参数配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportEmail>
<isSupportUndefined>
<!--ro, opt, enum, 是否支持其他配置(其他页面), subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportUndefined>
</AdvancedNetWork>
<Storage>
<!--ro, opt, object, 存储参数-->
<isSupportRecordPlan>
<!--ro, opt, enum, 是否支持录像计划配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportRecordPlan>
<isSupportHoliday>
<!--ro, opt, enum, 是否支持假日配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportHoliday>
<isSupportNetDiskCfg>
<!--ro, opt, enum, 是否支持网盘配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportNetDiskCfg>
<isSupportUndefined>
<!--ro, opt, enum, 是否支持其他配置(其他页面), subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportUndefined>
<isSupportHDiskIP>
<!--ro, opt, bool, 是否支持硬盘IP参数-->true
</isSupportHDiskIP>
</Storage>
<isSupportChannelManage>
<!--ro, opt, enum, 是否支持通道管理, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportChannelManage>
<isSupportUserManage>
<!--ro, opt, enum, 是否支持用户管理, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportUserManage>
<isSupportEventCfg>
<!--ro, opt, enum, 是否支持事件配置, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportEventCfg>
<isSupportVehicleDetect>
<!--ro, opt, enum, 是否支持车辆检测, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportVehicleDetect>
<isSupportIntelligentAnalysis>
<!--ro, opt, enum, 是否支持智能分析, subType:string, [true#是,false#否,readonly#只读]-->true
</isSupportIntelligentAnalysis>
</ClusterCap>
GET /ISAPI/ContentMgmt/record/passback/basicCfg/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<RecordPassBackBasicCfg xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 回传录像基础功能参数, attr:version{req, string, 协议版本, range:[,]}-->
<beginTime min="0" max="65535">
<!--ro, req, int, 检测窗口开始时间, range:[0,65535], step:, unit:min, unitType:时间, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}, desc:先通过/ISAPI/ContentMgmt/record/passback/addPlan配置需要回传的历史录像时间段,再设置此处的检测窗口开始时间和结束时间,然后设备将会自动从前端设备把在回传历史录像时间段之内且在检测起止时间范围之内的录像文件回传过来进行存储-->1
</beginTime>
<endTime min="0" max="65535">
<!--ro, req, int, 检测窗口结束时间, range:[0,65535], step:, unit:min, unitType:时间, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</endTime>
<maxTotalConcurrenceNum min="200" max="400">
<!--ro, req, int, 并发回传路数上限, range:[200,400], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}, desc:针对的是编码器路数, 不是回传任务条数-->1
</maxTotalConcurrenceNum>
<maxDvrConcurrenceNum min="2" max="32">
<!--ro, req, int, 单台DVR并发回传通道数上限, range:[2,32], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</maxDvrConcurrenceNum>
</RecordPassBackBasicCfg>
GET /ISAPI/ContentMgmt/record/passback/basicCfg
无
<?xml version="1.0" encoding="UTF-8"?>
<RecordPassBackBasicCfg xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 回传录像基础功能参数, attr:version{req, string, 协议版本, range:[,]}-->
<beginTime>
<!--ro, req, int, 检测窗口开始时间, range:[0,65535], step:, unit:min, unitType:时间, desc:先通过/ISAPI/ContentMgmt/record/passback/addPlan配置需要回传的历史录像时间段,再设置此处的检测窗口开始时间和结束时间,然后设备将会自动从前端设备把在回传历史录像时间段之内且在检测起止时间范围之内的录像文件回传过来进行存储-->1
</beginTime>
<endTime>
<!--ro, req, int, 检测窗口结束时间, range:[0,65535], step:, unit:min, unitType:时间-->1
</endTime>
<maxTotalConcurrenceNum>
<!--ro, req, int, 并发回传路数上限, range:[200,400], step:, unit:, unitType:, desc:针对的是编码器路数, 不是回传任务条数-->1
</maxTotalConcurrenceNum>
<maxDvrConcurrenceNum>
<!--ro, req, int, 单台DVR并发回传通道数上限, range:[2,32], step:, unit:, unitType:-->1
</maxDvrConcurrenceNum>
</RecordPassBackBasicCfg>
PUT /ISAPI/ContentMgmt/record/passback/basicCfg
<?xml version="1.0" encoding="UTF-8"?>
<RecordPassBackBasicCfg xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 回传录像基础功能参数, attr:version{req, string, 协议版本, range:[,]}-->
<beginTime>
<!--req, int, 检测窗口开始时间, range:[0,65535], step:, unit:min, unitType:时间, desc:先通过/ISAPI/ContentMgmt/record/passback/addPlan配置需要回传的历史录像时间段,再设置此处的检测窗口开始时间和结束时间,然后设备将会自动从前端设备把在回传历史录像时间段之内且在检测起止时间范围之内的录像文件回传过来进行存储-->1
</beginTime>
<endTime>
<!--req, int, 检测窗口结束时间, range:[0,65535], step:, unit:min, unitType:时间-->1
</endTime>
<maxTotalConcurrenceNum>
<!--req, int, 并发回传路数上限, range:[200,400], step:, unit:, unitType:, desc:针对的是编码器路数, 不是回传任务条数-->1
</maxTotalConcurrenceNum>
<maxDvrConcurrenceNum>
<!--req, int, 单台DVR并发回传通道数上限, range:[2,32], step:, unit:, unitType:-->1
</maxDvrConcurrenceNum>
</RecordPassBackBasicCfg>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/record/passback/historyPlanCfg/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<RecordPassBackHistoryPlanCfg xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 历史回传计划, attr:version{req, string, 协议版本, range:[,]}-->
<streamID min="1" max="32">
<!--ro, req, string, 流ID, range:[,], attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->test
</streamID>
<channel min="1" max="1024">
<!--ro, req, int, 通道号, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}, desc:0xffffffff表示值无效-->1
</channel>
<enable opt="true,false">
<!--ro, req, bool, 使能, attr:opt{req, string, 取值范围, range:[,]}-->true
</enable>
<maxSchedulePeriodOfDay min="1" max="8">
<!--ro, req, int, 单日最多可配8个计划时间段, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</maxSchedulePeriodOfDay>
<ScheduleActionList size="56">
<!--ro, opt, array, 录像计划列表, subType:object, range:[,], attr:size{req, int, 数组元素总数, range:[,], step:, unit:, unitType:}-->
<ScheduleAction>
<!--ro, opt, object, 录像计划-->
<id min="1" max="56">
<!--ro, req, int, 索引, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</id>
<ScheduleActionStartTime>
<!--ro, opt, object, 录像计划开始时间-->
<DayOfWeek opt="Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday">
<!--ro, req, enum, 星期, subType:string, [Monday#星期一,Tuesday#星期二,Wednesday#星期三,Thursday#星期四,Friday#星期五,Saturday#星期六,Sunday#星期天], attr:opt{req, string, 取值范围, range:[,]}-->Monday
</DayOfWeek>
<TimeOfDay>
<!--ro, req, time, 当天时间-->00:00:00+08:00
</TimeOfDay>
</ScheduleActionStartTime>
<ScheduleActionEndTime>
<!--ro, opt, object, 录像计划结束时间-->
<DayOfWeek opt="Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday">
<!--ro, req, enum, 星期, subType:string, [Monday#星期一,Tuesday#星期二,Wednesday#星期三,Thursday#星期四,Friday#星期五,Saturday#星期六,Sunday#星期天], attr:opt{req, string, 取值范围, range:[,]}-->Monday
</DayOfWeek>
<TimeOfDay>
<!--ro, req, time, 当天时间-->00:00:00+08:00
</TimeOfDay>
</ScheduleActionEndTime>
<eventType opt="VMD,alarmIn,POS,inquest,AccessControllerEvent,regionEntrance,regionExiting,linedetection,fielddetection,loitering,parking,running,personDensityDetection,unattendedBaggage,attendedBaggage,leavePosition,failDown,violentMotion,safetyHelmetDetection,peopleNumChange,getUp,advReachHeight,Standup,rapidMove,group,scenechangedetection">
<!--ro, opt, enum, 事件类型, subType:string, [VMD#移动侦测,alarmIn#报警输入,POS#POS事件,inquest#审讯事件,AccessControllerEvent#门禁事件,regionEntrance#进入区域,regionExiting#离开区域,linedetection#越界侦测(穿越警戒线),fielddetection#区域入侵,loitering#徘徊侦测,parking#停车侦测,running#人员奔跑,personDensityDetection#人员密度,unattendedBaggage#物品遗留,attendedBaggage#物品拿取,leavePosition#高危岗位异常-离岗检测,failDown#人员倒地,violentMotion#剧烈运动,safetyHelmetDetection#安全帽检测,peopleNumChange#人数变化,getUp#起身,advReachHeight#折线攀高,Standup#人员站立检测,rapidMove#快速移动,group#人员聚集,scenechangedetection#场景变更,PIR#PIR报警], attr:opt{req, string, 取值范围, range:[,]}-->VMD
</eventType>
<AlarmInParam>
<!--ro, opt, object, 报警输入参数, dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,alarmIn}, desc:eventType == "alarmIn"时有效;若eventType=="alarmIn", 但是没有该节点,表示全部报警输入事件-->
<alarmInIDList>
<!--ro, opt, object, 报警输入号列表, desc:没有该节点表示全部报警输入号-->
<alarmInID min="1" max="10">
<!--ro, opt, int, 报警输入号, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</alarmInID>
</alarmInIDList>
</AlarmInParam>
<InquestParam>
<!--ro, opt, object, 审讯事件参数 , dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,inquest}, desc:eventType == "inquest"时有效;若eventType=="inquest", 但是没有该节点,表示全部审讯事件,包括审讯开始信息,审讯停止信息,重点标记信息,审讯片断状态信息;-->
<roomID min="1" max="2">
<!--ro, opt, int, 审讯室ID, range:[1,2], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}, desc:没有该节点表示全部审讯室-->0
</roomID>
</InquestParam>
<ACSAlarmParam>
<!--ro, opt, object, 门禁事件参数, dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,AccessControllerEvent}, desc:== "AccessControllerEvent"时有效;eventType=="AccessControllerEvent", 但是没有该节点,表示全部门禁事件-->
<majorEventType min="1" max="5">
<!--ro, opt, int, 报警主类型, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}, desc:注意此处是10进制,参数“AccessControllerEvent”事件的宏定义; 没有该节点表示全部-->0
</majorEventType>
</ACSAlarmParam>
</ScheduleAction>
</ScheduleActionList>
</RecordPassBackHistoryPlanCfg>
GET /ISAPI/ContentMgmt/record/passback/historyPlanCfg?StreamID=<streamID>&Channel=<channelID>
无
<?xml version="1.0" encoding="UTF-8"?>
<RecordPassBackHistoryPlanCfg xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 回传历史录像计划参数, attr:version{req, string, 协议版本, range:[,]}-->
<enable>
<!--ro, req, bool, 使能-->true
</enable>
<ScheduleActionList size="56">
<!--ro, opt, array, 录像计划列表, subType:object, range:[,], attr:size{req, int, 数组元素总数, range:[,], step:, unit:, unitType:}-->
<ScheduleAction>
<!--ro, opt, object, 录像计划-->
<id>
<!--ro, req, int, 索引, range:[,], step:, unit:, unitType:-->1
</id>
<ScheduleActionStartTime>
<!--ro, opt, object, 录像计划开始时间-->
<DayOfWeek>
<!--ro, req, enum, 星期, subType:string, [Monday#星期一,Tuesday#星期二,Wednesday#星期三,Thursday#星期四,Friday#星期五,Saturday#星期六,Sunday#星期天]-->Monday
</DayOfWeek>
<TimeOfDay>
<!--ro, req, time, 当天时间-->00:00:00+08:00
</TimeOfDay>
</ScheduleActionStartTime>
<ScheduleActionEndTime>
<!--ro, opt, object, 录像计划结束时间-->
<DayOfWeek>
<!--ro, req, enum, 星期, subType:string, [Monday#星期一,Tuesday#星期二,Wednesday#星期三,Thursday#星期四,Friday#星期五,Saturday#星期六,Sunday#星期天]-->Monday
</DayOfWeek>
<TimeOfDay>
<!--ro, req, time, 当天时间-->00:00:00+08:00
</TimeOfDay>
</ScheduleActionEndTime>
<eventType>
<!--ro, opt, enum, 事件类型, subType:string, [VMD#移动侦测,alarmIn#报警输入,POS#POS事件,inquest#审讯事件,AccessControllerEvent#门禁事件,regionEntrance#进入区域,regionExiting#离开区域,linedetection#越界侦测(穿越警戒线),fielddetection#区域入侵,loitering#徘徊侦测,parking#停车侦测,running#人员奔跑,personDensityDetection#人员密度,unattendedBaggage#物品遗留,attendedBaggage#物品拿取,leavePosition#高危岗位异常-离岗检测,failDown#人员倒地,violentMotion#剧烈运动,safetyHelmetDetection#安全帽检测,peopleNumChange#人数变化,getUp#起身,advReachHeight#折线攀高,Standup#人员站立检测,rapidMove#快速移动,group#人员聚集,scenechangedetection#场景变更,PIR#PIR报警]-->VMD
</eventType>
<AlarmInParam>
<!--ro, opt, object, 报警输入参数, dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,alarmIn}, desc:eventType == "alarmIn"时有效;若eventType=="alarmIn", 但是没有该节点,表示全部报警输入事件-->
<alarmInIDList>
<!--ro, opt, object, 报警输入号列表, desc:没有该节点表示全部报警输入号-->
<alarmInID>
<!--ro, opt, int, 报警输入号, range:[,], step:, unit:, unitType:-->1
</alarmInID>
</alarmInIDList>
</AlarmInParam>
<InquestParam>
<!--ro, opt, object, 审讯事件参数 , dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,inquest}, desc:eventType == "inquest"时有效;若eventType=="inquest", 但是没有该节点,表示全部审讯事件,包括审讯开始信息,审讯停止信息,重点标记信息,审讯片断状态信息;-->
<roomID>
<!--ro, opt, int, 审讯室ID, range:[1,2], step:, unit:, unitType:, desc:没有该节点表示全部审讯室-->0
</roomID>
</InquestParam>
<ACSAlarmParam>
<!--ro, opt, object, 门禁事件参数, dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,AccessControllerEvent}, desc:== "AccessControllerEvent"时有效;eventType=="AccessControllerEvent", 但是没有该节点,表示全部门禁事件-->
<majorEventType>
<!--ro, opt, int, 报警主类型, range:[,], step:, unit:, unitType:, desc:注意此处是10进制,参数“AccessControllerEvent”事件的宏定义; 没有该节点表示全部-->0
</majorEventType>
</ACSAlarmParam>
</ScheduleAction>
</ScheduleActionList>
</RecordPassBackHistoryPlanCfg>
PUT /ISAPI/ContentMgmt/record/passback/historyPlanCfg?StreamID=<streamID>&Channel=<channelID>
<?xml version="1.0" encoding="UTF-8"?>
<RecordPassBackHistoryPlanCfg xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 回传历史录像计划参数, attr:version{req, string, 协议版本, range:[,]}-->
<enable>
<!--req, bool, 使能-->true
</enable>
<ScheduleActionList size="56">
<!--opt, array, 录像计划列表, subType:object, range:[,], attr:size{req, int, 数组元素总数, range:[,], step:, unit:, unitType:}-->
<ScheduleAction>
<!--opt, object, 录像计划-->
<id>
<!--req, int, 索引, range:[,], step:, unit:, unitType:-->1
</id>
<ScheduleActionStartTime>
<!--opt, object, 录像计划开始时间-->
<DayOfWeek>
<!--req, enum, 星期, subType:string, [Monday#星期一,Tuesday#星期二,Wednesday#星期三,Thursday#星期四,Friday#星期五,Saturday#星期六,Sunday#星期天]-->Monday
</DayOfWeek>
<TimeOfDay>
<!--req, time, 当天时间-->00:00:00+08:00
</TimeOfDay>
</ScheduleActionStartTime>
<ScheduleActionEndTime>
<!--opt, object, 录像计划结束时间-->
<DayOfWeek>
<!--req, enum, 星期, subType:string, [Monday#星期一,Tuesday#星期二,Wednesday#星期三,Thursday#星期四,Friday#星期五,Saturday#星期六,Sunday#星期天]-->Monday
</DayOfWeek>
<TimeOfDay>
<!--req, time, 当天时间-->00:00:00+08:00
</TimeOfDay>
</ScheduleActionEndTime>
<eventType>
<!--opt, enum, 事件类型, subType:string, [VMD#移动侦测,alarmIn#报警输入,POS#POS事件,inquest#审讯事件,AccessControllerEvent#门禁事件,regionEntrance#进入区域,regionExiting#离开区域,linedetection#越界侦测(穿越警戒线),fielddetection#区域入侵,loitering#徘徊侦测,parking#停车侦测,running#人员奔跑,personDensityDetection#人员密度,unattendedBaggage#物品遗留,attendedBaggage#物品拿取,leavePosition#高危岗位异常-离岗检测,failDown#人员倒地,violentMotion#剧烈运动,safetyHelmetDetection#安全帽检测,peopleNumChange#人数变化,getUp#起身,advReachHeight#折线攀高,Standup#人员站立检测,rapidMove#快速移动,group#人员聚集,scenechangedetection#场景变更,PIR#PIR报警]-->VMD
</eventType>
<AlarmInParam>
<!--opt, object, 报警输入参数, dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,alarmIn}, desc:eventType == "alarmIn"时有效;若eventType=="alarmIn", 但是没有该节点,表示全部报警输入事件-->
<alarmInIDList>
<!--opt, object, 报警输入号列表, desc:没有该节点表示全部报警输入号-->
<alarmInID>
<!--opt, int, 报警输入号, range:[,], step:, unit:, unitType:-->1
</alarmInID>
</alarmInIDList>
</AlarmInParam>
<InquestParam>
<!--opt, object, 审讯事件参数 , dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,inquest}, desc:eventType == "inquest"时有效;若eventType=="inquest", 但是没有该节点,表示全部审讯事件,包括审讯开始信息,审讯停止信息,重点标记信息,审讯片断状态信息;-->
<roomID>
<!--opt, int, 审讯室ID, range:[1,2], step:, unit:, unitType:, desc:没有该节点表示全部审讯室-->0
</roomID>
</InquestParam>
<ACSAlarmParam>
<!--opt, object, 门禁事件参数, dep:and,{$.RecordPassBackHistoryPlanCfg.ScheduleActionList[*].ScheduleAction.eventType,eq,AccessControllerEvent}, desc:== "AccessControllerEvent"时有效;eventType=="AccessControllerEvent", 但是没有该节点,表示全部门禁事件-->
<majorEventType>
<!--opt, int, 报警主类型, range:[,], step:, unit:, unitType:, desc:注意此处是10进制,参数“AccessControllerEvent”事件的宏定义; 没有该节点表示全部-->0
</majorEventType>
</ACSAlarmParam>
</ScheduleAction>
</ScheduleActionList>
</RecordPassBackHistoryPlanCfg>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/System/Token/secretKey/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<TokenSecretKeyCap xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, token密钥获取能力集, attr:version{req, string, 协议版本, range:[,]}-->
<tokenAuthenticateEnable opt="true,false">
<!--ro, req, bool, 是否启用token认证, attr:opt{req, string, 取值范围, range:[,]}-->true
</tokenAuthenticateEnable>
<authenticateMode opt="shareKey">
<!--ro, req, enum, 认证方式, subType:string, [shareKey#目前仅支持:shareKey], attr:opt{req, string, 取值范围, range:[,]}, desc:目前仅支持:shareKey-->shareKey
</authenticateMode>
<KeyInfo>
<!--ro, req, object, 秘钥信息-->
<digesType opt="sha256">
<!--ro, req, enum, 摘要算法类型, subType:string, [sha256#sha256], attr:opt{req, string, 取值范围, range:[,]}, desc:目前仅支持1种摘要算法:sha256-->sha256
</digesType>
<iterationTimes opt="50000,80000,100000">
<!--ro, req, enum, 迭代次数, subType:int, [50000#50000,80000#80000,100000#100000], attr:opt{req, string, 取值范围, range:[,]}, desc:目前仅支持以下迭代次数:50000、80000、100000-->50000
</iterationTimes>
<encryptAlgorithmType opt="AES">
<!--ro, req, enum, 加密算法, subType:string, [AES#AES], attr:opt{req, string, 取值范围, range:[,]}, desc:目前仅支持AES-->AES
</encryptAlgorithmType>
<keyLen opt="128,256">
<!--ro, req, enum, 密钥长度, subType:string, [128#128,256#256], attr:opt{req, string, 取值范围, range:[,]}-->128
</keyLen>
<encryptAlgorithmMode opt="ECB,CBC,CFB,OFB">
<!--ro, req, enum, 加密算法模式, subType:string, [ECB#ECB,CBC#CBC,CFB#CFB,OFB#OFB], attr:opt{req, string, 取值范围, range:[,]}-->ECB
</encryptAlgorithmMode>
<encryptAlgorithmFill opt="yes,no">
<!--ro, req, enum, 加密算法填充方式, subType:string, [yes#填充,no#不填充], attr:opt{req, string, 取值范围, range:[,]}, desc:即AES明文,不足16的倍数,是否需要自动补齐-->yes
</encryptAlgorithmFill>
</KeyInfo>
</TokenSecretKeyCap>
POST /ISAPI/System/Token/secretKey
<?xml version="1.0" encoding="UTF-8"?>
<TokenSecretKey xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, token密钥获取能力集, attr:version{req, string, 协议版本, range:[,]}-->
<tokenAuthenticateEnable>
<!--ro, req, bool, 是否启用token认证-->true
</tokenAuthenticateEnable>
<authenticateMode>
<!--ro, req, enum, 认证方式, subType:string, [shareKey#目前仅支持:shareKey], desc:目前仅支持:shareKey-->shareKey
</authenticateMode>
<keyInfo>
<!--ro, req, object, 秘钥信息, dep:and,{$.TokenSecretKey.tokenAuthenticateEnable,eq,true}-->
<key>
<!--req, string, 密钥, range:[,], desc:密钥含有不可见字符,上层会对该字段进行base编码,设备进行base64解码-->test
</key>
<digesType>
<!--ro, req, enum, 摘要算法类型, subType:string, [sha256#sha256], desc:目前仅支持1种摘要算法:sha256-->sha256
</digesType>
<iterationTimes>
<!--ro, req, enum, 迭代次数, subType:int, [50000#50000,80000#80000,100000#100000], desc:目前仅支持以下迭代次数:50000、80000、100000-->50000
</iterationTimes>
<encryptAlgorithmType>
<!--ro, req, enum, 加密算法, subType:string, [AES#AES], desc:目前仅支持AES-->AES
</encryptAlgorithmType>
<keyLen>
<!--ro, req, enum, 密钥长度, subType:string, [128#128,256#256]-->128
</keyLen>
<encryptAlgorithmMode>
<!--ro, req, enum, 加密算法模式, subType:string, [ECB#ECB,CBC#CBC,CFB#CFB,OFB#OFB]-->ECB
</encryptAlgorithmMode>
<encryptAlgorithmFill>
<!--ro, req, enum, 加密算法填充方式, subType:string, [yes#填充,no#不填充], desc:即AES明文,不足16的倍数,是否需要自动补齐-->yes
</encryptAlgorithmFill>
</keyInfo>
</TokenSecretKey>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
POST /ISAPI/System/Token/check
<?xml version="1.0" encoding="UTF-8"?>
<TokenInfo xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">null
<!--req, object, token信息, attr:version{req, string, 协议版本, range:[,]}-->
<randomStringCiphertext>
<!--req, string, 随机串密文, range:[,]-->test
</randomStringCiphertext>
<randomStringDigest>
<!--req, string, 随机串摘要, range:[,]-->test
</randomStringDigest>
</TokenInfo>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>
GET /ISAPI/ContentMgmt/channels/<channelID>/liteStorage/capabilities
无
<?xml version="1.0" encoding="UTF-8"?>
<LiteStorage xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--ro, req, string, 索引, range:[,]-->test
</id>
<enabled>
<!--ro, req, bool, 使能-->true
</enabled>
<capacity>
<!--ro, opt, float, 容量, range:[,], step:, unit:GB, unitType:信息量-->0.000
</capacity>
<storageTime>
<!--ro, req, int, 存储时间, range:[,], step:, unit:, unitType:-->1
</storageTime>
<level opt="low,medium,high" def="medium">
<!--ro, req, enum, 等级, subType:string, [low#低,medium#中,high#高], attr:opt{req, string, 取值范围, range:[,]},def{req, int, 默认值, range:[,], step:, unit:, unitType:}-->low
</level>
<DefStorageTime>
<!--ro, opt, object, 默认存储时间-->null
<low min="1" max="10">
<!--ro, opt, int, 低模式下天数, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</low>
<medium min="1" max="10">
<!--ro, opt, int, 中模式下天数, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</medium>
<high min="1" max="10">
<!--ro, opt, int, 高模式下天数, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</high>
</DefStorageTime>
</LiteStorage>
GET /ISAPI/ContentMgmt/channels/<channelID>/liteStorage
无
<?xml version="1.0" encoding="UTF-8"?>
<LiteStorage xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--ro, req, string, 索引, range:[,]-->test
</id>
<enabled>
<!--ro, req, bool, 使能-->true
</enabled>
<capacity>
<!--ro, opt, float, 容量, range:[,], step:, unit:GB, unitType:信息量-->0.000
</capacity>
<storageTime min="1" max="30">
<!--ro, req, int, 存储时间, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</storageTime>
<level>
<!--ro, req, enum, 等级, subType:string, [low#低,medium#中,high#高]-->low
</level>
<DefStorageTime>
<!--ro, opt, object, 默认存储时间-->
<low>
<!--ro, opt, int, 低模式下天数, range:[,], step:, unit:, unitType:-->1
</low>
<medium>
<!--ro, opt, int, 中模式下天数, range:[,], step:, unit:, unitType:-->1
</medium>
<high>
<!--ro, opt, int, 高模式下天数, range:[,], step:, unit:, unitType:-->1
</high>
</DefStorageTime>
</LiteStorage>
PUT /ISAPI/ContentMgmt/channels/<channelID>/liteStorage
<?xml version="1.0" encoding="UTF-8"?>
<LiteStorage xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--opt, object, 未定义, attr:version{req, string, 协议版本, range:[,]}-->
<id>
<!--req, string, 索引, range:[,]-->test
</id>
<enabled>
<!--req, bool, 使能-->true
</enabled>
<capacity>
<!--opt, float, 容量, range:[,], step:, unit:GB, unitType:信息量-->0.000
</capacity>
<storageTime min="1" max="30">
<!--req, int, 存储时间, range:[,], step:, unit:, unitType:, attr:min{req, int, 最小值, range:[,], step:, unit:, unitType:},max{req, int, 最大值, range:[,], step:, unit:, unitType:}-->1
</storageTime>
<level>
<!--req, enum, 等级, subType:string, [low#低,medium#中,high#高]-->low
</level>
<DefStorageTime>
<!--opt, object, 默认存储时间-->
<low>
<!--opt, int, 低模式下天数, range:[,], step:, unit:, unitType:-->1
</low>
<medium>
<!--opt, int, 中模式下天数, range:[,], step:, unit:, unitType:-->1
</medium>
<high>
<!--opt, int, 高模式下天数, range:[,], step:, unit:, unitType:-->1
</high>
</DefStorageTime>
</LiteStorage>
<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--ro, req, object, 响应消息, attr:version{ro, req, string, 版本, range:[,]}-->
<requestURL>
<!--ro, req, string, 请求的URL, range:[,]-->null
</requestURL>
<statusCode>
<!--ro, req, enum, 状态码, subType:int, [0#OK,1#OK,2#Device Busy,3#Device Error,4#Invalid Operation,5#Invalid XML Format,6#Invalid XML Content,7#Reboot Required]-->0
</statusCode>
<statusString>
<!--ro, req, enum, 状态信息, subType:string, [OK#成功,Device Busy#设备忙,Device Error#设备异常,Invalid Operation#无效的操作,Invalid XML Format#无效的XML格式,Invalid XML Content#无效的XML内容,Reboot#设备重启]-->OK
</statusString>
<subStatusCode>
<!--ro, req, string, 详细错误码英文描述, range:[,], desc:详细错误码的英文描述-->OK
</subStatusCode>
</ResponseStatus>