ISAPI - Thermal
ISAPI - Thermal
Developer Guide
Intelligent Security API (Thermal) Developer Guide
Legal Information
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE DOCUMENT IS PROVIDED "AS IS"
AND “WITH ALL FAULTS AND ERRORS”. OUR COMPANY MAKES NO REPRESENTATIONS OR
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. IN NO EVENT
WILL OUR COMPANY BE LIABLE FOR ANY SPECIAL, CONSEQUENTIAL, INCIDENTAL, OR INDIRECT
DAMAGES, INCLUDING, AMONG OTHERS, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
INTERRUPTION OR LOSS OF DATA, CORRUPTION OF SYSTEMS, OR LOSS OF DOCUMENTATION,
WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, IN
CONNECTION WITH THE USE OF THE DOCUMENT, EVEN IF OUR COMPANY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES OR LOSS.
i
Intelligent Security API (Thermal) Developer Guide
Contents
Chapter 1 Overview .................................................................................................................... 1
1.1 Introduction ........................................................................................................................... 1
1.2 Update History ....................................................................................................................... 1
Chapter 2 Upload Real-Time Thermal Stream via RTSP ............................................................. 12
Chapter 3 Alarm or Event Receiving .......................................................................................... 17
3.1 Thermal Event/Alarm Types and Details .............................................................................. 17
3.2 Alarm or Event Settings ........................................................................................................ 18
3.2.1 Configure Temperature Screening Alarm .................................................................... 18
3.2.2 Configure Temperature Measurement Alarm in Normal Mode .................................. 21
3.2.3 Configure Temperature Measurement Alarm in Expert Mode ................................... 24
3.2.4 Configure Fire and Smoke Alarm ................................................................................. 28
3.2.5 Configure Ship Flow Detection Alarm ......................................................................... 29
3.2.6 Configure Dredger Detection Alarm ............................................................................ 33
3.3 Receive Alarm/Event in Arming Mode ................................................................................. 37
3.4 Receive Alarm/Event in Listening Mode .............................................................................. 39
3.5 Subscribe Alarm/Event in Arming Mode .............................................................................. 42
Chapter 4 Other Thermal Applications ...................................................................................... 44
Appendix A. Request URIs ........................................................................................................ 50
A.1 /ISAPI/Event/notification/subscribeEventCap ..................................................................... 50
A.2 /ISAPI/Event/notification/subscribeEvent ........................................................................... 50
A.3 /ISAPI/Event/notification/subscribeEvent/<ID> .................................................................. 51
A.4 /ISAPI/Event/notification/unSubscribeEvent ....................................................................... 51
A.5 /ISAPI/Event/schedules/faceThermometrys ....................................................................... 52
A.6 /ISAPI/Event/schedules/faceThermometrys/<ID> .............................................................. 52
A.7 /ISAPI/Event/schedules/dredgerDetection/<ID>/scene/<SID> ........................................... 53
A.8 /ISAPI/Event/schedules/shipsFlowDetection/<ID>/scene/<SID> ........................................ 54
ii
Intelligent Security API (Thermal) Developer Guide
iii
Intelligent Security API (Thermal) Developer Guide
iv
Intelligent Security API (Thermal) Developer Guide
v
Intelligent Security API (Thermal) Developer Guide
vi
Intelligent Security API (Thermal) Developer Guide
A.108 rtsp://<ipaddress>[:port]/ISAPI/Streaming/thermal/channels/<ID>/streamType/<Type>
.................................................................................................................................................. 113
A.109 /ISAPI/Event/notification/alertStream .......................................................................... 114
A.110 /ISAPI/Event/notification/httpHosts .............................................................................. 115
A.111 /ISAPI/Event/notification/httpHosts/<ID> ..................................................................... 116
A.112 /ISAPI/Event/notification/httpHosts/<ID>/test ............................................................. 118
A.113 /ISAPI/Event/notification/httpHosts/capabilities .......................................................... 118
A.114 http://<ipAddress>:<portNo>/<url> .............................................................................. 119
Appendix B. Request and Response Messages ........................................................................ 120
B.1 JSON_advanceParam ......................................................................................................... 120
B.2 JSON_advanceParamCap ................................................................................................... 120
B.3 JSON_basicParam .............................................................................................................. 120
B.4 JSON_basicParamCap ........................................................................................................ 121
B.5 JSON_Cap_functionMode .................................................................................................. 121
B.6 JSON_ClickToThermometryRule ........................................................................................ 122
B.7 JSON_DredgerDetectionRule ............................................................................................. 122
B.8 JSON_DredgerDetectionRuleList ....................................................................................... 123
B.9 JSON_DredgerDetectionRuleListCap ................................................................................. 124
B.10 JSON_EpidemicControlCap .............................................................................................. 125
B.11 JSON_EventNotificationAlert_dredgerDetection ............................................................. 125
B.12 JSON_EventNotificationAlert_TDAMsg ............................................................................ 127
B.13 JSON_EventNotificationAlert_temperatureIntervalMeasurementMsg ........................... 129
B.14 JSON_EventNotificationAlert_ThermalCalibrationFileException ..................................... 132
B.15 JSON_FaceThermReportSearchCond ............................................................................... 133
B.16 JSON_FaceThermReportSearchResult ............................................................................. 133
B.17 JSON_fireDetection_AdvanceParam ................................................................................ 134
B.18 JSON_fireDetection_AdvanceParamCap .......................................................................... 134
B.19 JSON_functionMode ........................................................................................................ 134
vii
Intelligent Security API (Thermal) Developer Guide
viii
Intelligent Security API (Thermal) Developer Guide
ix
Intelligent Security API (Thermal) Developer Guide
x
Intelligent Security API (Thermal) Developer Guide
xi
Intelligent Security API (Thermal) Developer Guide
Chapter 1 Overview
1.1 Introduction
Thermal application developed by ISAPI protocol contains temperature screening and temperature
measurement, which is mainly for thermal products. You can configure the temperature screening
alarm and thermography alarm (including temperature alarm and temperature difference alarm)
and receive the alarms if triggered.
1
Intelligent Security API (Thermal) Developer Guide
Get or set rules of interval temperature measurement alarm: GET or PUT /ISAPI/Thermal/
channels/<ID>/thermometry/<SID>/alarmRules/temperatureIntervalMeasurement?
format=json .
6. Extended configuration capability of pixel-to-pixel temperature measurement parameters
XML_PixelToPixelParamCap and pixel-to-pixel temperature measurement parameters
XML_PixelToPixelParam (related URIs: /ISAPI/Thermal/channels/<ID>/thermometry/
pixelToPixelParam/capabilities and /ISAPI/Thermal/channels/<ID>/thermometry/
pixelToPixelParam ):
added three nodes <rulesOverlayEnabled> (whether to enable thermography rule overlay on
picture), <visiblePicResolution> (visible light picture resolution), and <thermalPicResolution>
(thermal picture resolution).
7. Extended thermal capability XML_ThermalCap (related URI: /ISAPI/Thermal/capabilities ):
added one node <isSupportTemperatureIntervalMeasurement> (whether device supports
interval temperature measurement).
8. Added one event type "temperatureIntervalMeasurement" (interval temperature
measurement) to Thermal Event/Alarm Types and Details ; see
JSON_EventNotificationAlert_temperatureIntervalMeasurementMsg for details.
2
Intelligent Security API (Thermal) Developer Guide
added two sub nodes <visiblePicEnabled> (whether the thermal camera returns visible light
picture) and <captureMode> (image capture mode) to node <JpegPictureWithAppendData>.
3. Extended the pixel-to-pixel temperature measurement parameters XML_PixelToPixelParam
(related URI: /ISAPI/Thermal/channels/<ID>/thermometry/pixelToPixelParam ):
added one sub node <visiblePicEnabled> (whether the thermal camera returns visible light
picture) to node <JpegPictureWithAppendData>.
3
Intelligent Security API (Thermal) Developer Guide
4
Intelligent Security API (Thermal) Developer Guide
5
Intelligent Security API (Thermal) Developer Guide
6
Intelligent Security API (Thermal) Developer Guide
7
Intelligent Security API (Thermal) Developer Guide
8
Intelligent Security API (Thermal) Developer Guide
9
Intelligent Security API (Thermal) Developer Guide
10
Intelligent Security API (Thermal) Developer Guide
11
Intelligent Security API (Thermal) Developer Guide
Figure 2-1 Programming Flow of Uploading Real-Time Thermal Stream via RTSP
1. Optional: Call /ISAPI/System/capabilities by GET method to get the device capability to check
whether the device supports uploading real-time thermal stream via node
<isSupportThermalStreamData>.
The device capability is returned in XML_DeviceCap
12
Intelligent Security API (Thermal) Developer Guide
Note
Before setting the thermal stream parameters, you can get the thermal stream parameters by
the URI: GET /ISAPI/Thermal/channels/<ID>/streamParam .
4. Call rtsp://<ipaddress>[:port]/ISAPI/Streaming/thermal/channels/<ID>/streamType/<Type>
by DESCRIBE method to get the basic information of stream via RTSP.
Example
Interaction Sample of DESCRIBE Method
DESCRIBE rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/
thermal_raw_data RTSP/1.0
DESCRIBE
rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/thermal_raw_data RTSP/1.0
CSeq:0
Accept:application/sdp
Authorization:
User-Agent:NKPlayer-VSPlayer1.0
DESCRIBE
rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/thermal_raw_data RTSP/1.0
CSeq:0
Accept:application/sdp
Authorization:Digest username="admin", realm="IP Camera(51289)",
nonce="9fe43f1322976c0aa218b0f23f554b44",
uri="rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/thermal_raw_data",
response="99b683462210bd819c8d6bafb39dd262"
User-Agent:NKPlayer-VSPlayer1.0
RTSP/1.0 200 OK
CSeq: 0
Content-Type: application/sdp
Content-Length: 737
v=0 o=- 1513571850040093 1513571850040093 IN IP4 10.10.36.212
s=Media Presentation
e=NONE
b=AS:5100 t=0 0
13
Intelligent Security API (Thermal) Developer Guide
a=control:*
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:5000
a=recvonly
a=x-dimensions:1920,1080
a=control:trackID=1
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-sets=Z00AKp2oHgCJ
+WbgICAoAAADAAgAAAMBlCA=,aO48gA==
m=audio 0 RTP/AVP 0
c=IN IP4 0.0.0.0
b=AS:50
a=recvonly
a=control:trackID=2
a=rtpmap:0 PCMU/8000
m=application 0 RTP/AVP 107
c=IN IP4 0.0.0.0 b=AS:50
a=recvonly
a=control:trackID=3
a=rtpmap:107 isapi.metadata/90000
m=application 0 RTP/AVP 109
c=IN IP4 0.0.0.0
b=AS:50
a=recvonly
a=control:trackID=5
a=rtpmap:109 thermalStream/90000
a=Media_header:MEDIAINFO=494D4B48010200000400000110710110401F000000FA00000000000000000000000
0000000000000;
a=appversion:1.0
The parsed stream information is returned by the device, and for thermal stream data, the
trackID=5, that is the information followed trackID=5 is the thermal stream information.
5. Call rtsp://<ipaddress>[:port]/ISAPI/Streaming/thermal/channels/<ID>/streamType/<Type>/
trackID= by SETUP method to interact the session information.
Example
Interaction Sample of SETUP Method
SETUP rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/
thermal_raw_data/trackID=5
SETUP
rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/thermal_raw_data/trackID=5 RTSP/1.0
Seq:3
Authorization:Digest username="admin", realm="IP Camera(51289)",
nonce="9fe43f1322976c0aa218b0f23f554b44",
uri="rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/thermal_raw_data",
response="46b39a563fd9977eff83067adc4e587b"
Session: 408703626
Transport: RTP/AVP/UDP;unicast;
User-Agent:NKPlayer-VSPlayer1.0
14
Intelligent Security API (Thermal) Developer Guide
RTSP/1.0 200 OK
CSeq:0
Session: 408703626;timeout=60
Transport: RTP/AVP/UDP;unicast;interleaved=6-7;ssrc=14b37590;mode="play"
Date: Mon, Dec 18 2017 04:37:30 GMT
6. Call rtsp://<ipaddress>[:port]/ISAPI/Streaming/thermal/channels/<ID>/streamType/<Type>
by PLAY method to start stream transmission.
Example
Interaction Sample of PLAY Method
PLAY rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/
thermal_raw_data/1.0
PLAY
rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/thermal_raw_data RTSP/1.0
CSeq:4
Authorization: Digest username="admi/n", realm="IP Camera(C7968)",
nonce="e554bd56d935913abec7cc6d8f37a175",
uri=" rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/thermal_raw_data",
response="a568b39cb69f993462c9d03f0c3e69fd"
Session:1061719290;timeout=60
Range:npt=0.000000-0.000000
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 4
Session: 1061719290
RTP-Info: url=trackID=5;seq=29477
Date: Fri, Dec 28 2018 15:36:28 GMT
The device starts to upload stream data in the format of RTP packet.
Note
The RTP header payload type of thermal stream is 0×6D, the upper layer can check whether the
data is thermal stream data via the payload type, refer to for details.
7. Optional: Call rtsp://<ipaddress>[:port]/ISAPI/Streaming/thermal/channels/<ID>/
streamType/<Type> by PAUSE method to pause stream transmission.
8. Call rtsp://<ipaddress>[:port]/ISAPI/Streaming/thermal/channels/<ID>/streamType/<Type>
by TEARDOWN method to stop stream transmission.
Example
Interaction Sample of TEARDOWN Method
TEARDOWN rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/
thermal_raw_data RTSP/1.0
TEARDOWN
rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels/1/streamType/thermal_raw_data RTSP/1.0
15
Intelligent Security API (Thermal) Developer Guide
CSeq:4
Authorization: Digest username="admin", realm="IP Camera(51289)",
nonce="9fe43f1322976c0aa218b0f23f554b44",
uri="rtsp://10.10.36.212:554/ISAPI/Streaming/thermal/channels /1/streamType/thermal_raw_data",
response="2822238cec4028c34749cf3a48ce7519"
Session: 408703626;timeout=60
User-Agent:NKPlayer-VSPlayer1.0
16
Intelligent Security API (Thermal) Developer Guide
Note
Currently, for traffic camera or capture camera, receiving alarm or event in arming mode is not
supported.
17
Intelligent Security API (Thermal) Developer Guide
18
Intelligent Security API (Thermal) Developer Guide
Steps
Note
• To switch to each exclusive functions, you should reboot the device to take effect.
• Before setting the functional mutex parameters, you'd better perform GET on the
configuration URL to get the existing or configured parameters for reference.
19
Intelligent Security API (Thermal) Developer Guide
Note
Before setting the basic temperature measurement parameters, you'd better perform GET on
the configuration URL to get the existing or configured parameters for reference.
4. Configure black body parameters.
1) Optional: Call /ISAPI/Thermal/channels/<ID>/blackBody/capabilities by GET method to get
black body configuration capability to check the supported configuration options.
2) Call /ISAPI/Thermal/channels/<ID>/blackBody by PUT method to set the black body
parameters.
Note
• The black body is a heating element with adjustable temperature and regular shape, which is
used as the reference temperature for the calibration of temperature screening. It can
improve the accuracy of temperature measurement.
• Before setting the black body parameters, you'd better perform GET on the configuration URL
to get the existing or configured parameters for reference.
Note
Before setting temperature screening parameters or rules, you'd better perform GET on the
configuration URL to get the existing or configured parameters for reference.
6. Call /ISAPI/Event/schedules/faceThermometrys or /ISAPI/Event/schedules/
faceThermometrys/<ID> by PUT method to configure arming schedule for all temperature
screening alarms or a specific alarm.
Note
Before setting the arming schedule, you'd better perform GET on the configuration URLs to get
the existing or configured parameters for reference.
20
Intelligent Security API (Thermal) Developer Guide
Note
• The linkage action must be set to "center" (upload to alarm center) if you want to receive and
view the alarm information.
• Before setting linkage actions, you'd better perform GET on the configuration URLs to get the
existing or configured parameters for reference.
21
Intelligent Security API (Thermal) Developer Guide
Steps
Figure 3-2 Programming Flow of Configuring Temperature Measurement Alarm in Normal Mode
Note
The temperature measurement parameters, temperature measurement schedule, rules, and
linkage actions can be configured directly by logging in to the device via web page.
1. Optional: Call /ISAPI/Thermal/capabilities by GET method to get the thermal capability to
check if the following functions are supported.
The thermal product capability XML_ThermalCap is returned.
2. Configure functional mutex parameters.
1) Optional: Call /ISAPI/Thermal/channels/<ID>/thermIntell/capabilities by GET method to
get the mutex capability to check the supported configuration options.
2) Call /ISAPI/Thermal/channels/<ID>/thermIntell by PUT method to set functional mutex
parameters.
22
Intelligent Security API (Thermal) Developer Guide
Note
• To switch to each exclusive functions, you should reboot the device to take effect.
• Before setting the functional mutex parameters, you'd better perform GET on the
configuration URL to get the existing or configured parameters for reference.
Note
Before setting the mode, you can perform GET operation on the URL to get the existing or
configured mode for reference.
4. Configure basic temperature measurement parameters.
1) Optional: Call /ISAPI/Thermal/channels/<ID>/thermometry/basicParam/capabilities by
GET method to get the basic configuration capability to check the supported configuration
options.
2) Call /ISAPI/Thermal/channels/<ID>/thermometry/basicParam by PUT to set the basic
temperature measurement parameters.
Note
• Before setting the basic temperature measurement parameters, you'd better perform GET on
the configuration URL to get the existing or configured parameters for reference.
• You can get the calibration coefficient via the URL: POST /ISAPI/Thermal/channels/<ID>/
thermometry/basicParam/calibrationCoefficient .
Note
Before setting the arming schedule, you'd better perform GET on the configuration URLs to get
the existing or configured parameters for reference.
6. Configure linkage actions.
1) Optional: Call /ISAPI/Event/triggersCap by GET method to get the linkage action
configuration capability to check the supported configuration options.
2) Call /ISAPI/Event/triggers or /ISAPI/Event/triggers/<eventType>-<ID> by PUT method to
set linkage actions for all events/alarms or a specific event/alarm.
23
Intelligent Security API (Thermal) Developer Guide
Note
• The linkage action must be set to "center" (upload to alarm center) if you want to receive and
view the alarm information.
• Before setting linkage actions, you'd better perform GET on the configuration URLs to get the
existing or configured parameters for reference.
7. Optional: Receive temperature alarm or temperature difference alarm in arming mode (see
Receive Alarm/Event in Arming Mode for details) or listening mode (see Receive Alarm/Event
in Listening Mode for details).
Note
The alarm type (eventType) refers to "TMA" (temperature measurement alarm), "TMPA"
(temperature measurement pre-alarm), and "TDA" (temperature difference alarm), and for the
alarm details, refer to the message XML_EventNotificationAlert_TemperatureAlarmMsg ,
XML_EventNotificationAlert_TMPAMsg , and JSON_EventNotificationAlert_TDAMsg .
24
Intelligent Security API (Thermal) Developer Guide
Steps
Figure 3-3 Programming Flow of Configuring Temperature Measurement Alarm in Expert Mode
25
Intelligent Security API (Thermal) Developer Guide
Note
The temperature measurement parameters, temperature measurement schedule, rules, and
linkage actions can be configured directly by logging in to the device via web page.
1. Optional: Call /ISAPI/Thermal/capabilities by GET method to get the thermal capability to
check if the following functions are supported.
The thermal product capability XML_ThermalCap is returned.
2. Configure functional mutex parameters.
1) Optional: Call /ISAPI/Thermal/channels/<ID>/thermIntell/capabilities by GET method to
get the mutex capability to check the supported configuration options.
2) Call /ISAPI/Thermal/channels/<ID>/thermIntell by PUT method to set functional mutex
parameters.
Note
• To switch to each exclusive functions, you should reboot the device to take effect.
• Before setting the functional mutex parameters, you'd better perform GET on the
configuration URL to get the existing or configured parameters for reference.
Note
Before setting the mode, you can perform GET operation on the configuration URL to get the
existing or configured mode for reference.
4. Call /ISAPI/PTZCtrl/channels/<ID>/presets by PUT to set the preset for measuring temperature.
5. Configure parameters (including temperature measurement points, lines, and frames) for the
temperature measurement preset (scene).
1) Optional: Call /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/capabilities by GET
method to get the temperature measurement preset (scene) configuration capability check
the supported configuration options.
2) Call /ISAPI/Thermal/channels/<ID>/thermometry/<SID> by PUT method to set the preset
(scene) parameter.
3) Call /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/regions or /ISAPI/Thermal/
channels/<ID>/thermometry/<SID>/regions/<ID> by PUT method to set the temperature
measurement points, lines, and frames for all detection regions or a specific region in a
preset (scene).
26
Intelligent Security API (Thermal) Developer Guide
Note
Before setting the temperature measurement preset (scene) parameters, you'd perform GET
operation on the configuration URLs to get the existing or configured parameters for reference.
6. Configure rules for temperature alarm or temperature difference alarm of a preset (scene).
1) Optional: Call /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/alarmRules/capabilities
by GET method to get the rule configuration capability to check the supported configuration
options.
2) Call /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/alarmRules by PUT method to set
the rule parameters of a preset (scene).
Note
Before setting the rule parameters, you'd perform GET operation on the configuration URL to
get the existing or configured parameters for reference.
7. Call /ISAPI/Event/schedules/Thermometry or /ISAPI/Event/schedules/thermometry/<ID> by
PUT method to configure arming schedule for all temperature measurement alarms or a specific
alarm.
Note
Before setting the arming schedule, you'd better perform GET on the configuration URLs to get
the existing or configured parameters for reference.
8. Configure linkage actions.
1) Optional: Call /ISAPI/Event/triggersCap by GET method to get the linkage action
configuration capability to check the supported configuration options.
2) Call /ISAPI/Event/triggers or /ISAPI/Event/triggers/<eventType>-<ID> by PUT method to
set linkage actions for all events/alarms or a specific event/alarm.
Note
• The linkage action must be set to "center" (upload to alarm center) if you want to receive and
view the alarm information.
• Before setting linkage actions, you'd better perform GET on the configuration URLs to get the
existing or configured parameters for reference.
9. Optional: Receive temperature alarm or temperature difference alarm in arming mode (see
Receive Alarm/Event in Arming Mode for details) or listening mode (see Receive Alarm/Event
in Listening Mode for details).
Note
The alarm type (eventType) refers to "TMA" (temperature measurement alarm), "TMPA"
(temperature measurement pre-alarm), and "TDA" (temperature difference alarm), and for the
alarm details, refer to the message XML_EventNotificationAlert_TemperatureAlarmMsg ,
XML_EventNotificationAlert_TMPAMsg , and JSON_EventNotificationAlert_TDAMsg .
27
Intelligent Security API (Thermal) Developer Guide
28
Intelligent Security API (Thermal) Developer Guide
Note
• To receive alarm in platform, the linkage action must be set to "center" (upload to center).
• The fire and smoke detection parameters and alarm linkage can also be configured by logging
in to device via web browser.
8. Receive fire and smoke alarm in arming mode (see Receive Alarm/Event in Arming Mode for
details) or listening mode (see for details).
Note
The alarm type (eventType) refers to "fireDetection", and for the alarm details, refer to the
message XML_EventNotificationAlert_FireSmokeAlarmEg .
29
Intelligent Security API (Thermal) Developer Guide
Steps
30
Intelligent Security API (Thermal) Developer Guide
31
Intelligent Security API (Thermal) Developer Guide
Note
Before setting arming schedule, you can transmission this URL by GET method to get default or
configured arming schedule for reference.
32
Intelligent Security API (Thermal) Developer Guide
Note
Before setting linkage action, you can transmission this URL by GET method to get default or
configured linkage actions for reference.
10. Optional: Perform the following operation(s) after configuring ship flow detection alarm.
Get Ship Statistics by GET /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
Scene shipsDetectionCount?format=json
Clear Ship Statistics PUT /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
by Scene resetCount?format=json
Receive Alarm in Perform the flow of Receive Alarm/Event in Arming Mode or
Arming or Listening Receive Alarm/Event in Listening Mode .
Mode
Note
The alarm type (eventType) is "shipsFlowDetection", and for the
alarm details, refer to the message
XML_EventNotificationAlert_shipFlowDetection .
33
Intelligent Security API (Thermal) Developer Guide
Steps
34
Intelligent Security API (Thermal) Developer Guide
35
Intelligent Security API (Thermal) Developer Guide
Note
Before setting arming schedule, you can transmission this URL by GET method to get default or
configured arming schedule for reference.
36
Intelligent Security API (Thermal) Developer Guide
Note
Before setting linkage action, you can transmission this URL by GET method to get default or
configured linkage actions for reference.
10. Optional: Perform the following operation(s) after configuring the dredger detection alarm.
Get Ship Statistics by GET /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
Scene shipsDetectionCount?format=json
Clear Ship Statistics PUT /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
by Scene resetCount?format=json
Receive Alarm in Perform the flow of Receive Alarm/Event in Arming Mode or
Arming or Listening Receive Alarm/Event in Listening Mode .
Mode
Note
The alarm type (eventType) is "dredgerDetection", and for the
alarm details, refer to the message
JSON_EventNotificationAlert_dredgerDetection .
37
Intelligent Security API (Thermal) Developer Guide
Steps
38
Intelligent Security API (Thermal) Developer Guide
realm="IP Camera(C2183)",
nonce="4e5468694e7a42694e7a4d364f4449354d7a6b354d54513d",
uri="/ISAPI/Event/notification/alertStream",
cnonce="3d183a245b8729121ae4ca3d41b90f18",
nc=00000001,
qop="auth",
response="f2e0728991bb031f83df557a8f185178"
Host: 10.6.165.192
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: multipart/mixed; boundary=<frontier>
--<frontier>
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length
<EventNotificationAlert/>
--<frontier>
Note
Some alarm data is in JSON format, so the Content-Type may be "application/xml" or "application/
json".
39
Intelligent Security API (Thermal) Developer Guide
Steps
Note
Before setting the listening server, you'd better call the URI by GET method to get the default or
configured parameters for reference.
3. Call /ISAPI/Event/notification/httpHosts/<ID>/test by POST method to check if the listening
server is working normally.
4. Receive the alarm/event information from the listening server.
Example
Sample Code of Receiving Alarm/Event in Listening Mode
• with Binary Picture Data
//Request
POST requestUrl HTTP/1.1
40
Intelligent Security API (Thermal) Developer Guide
Host: data_gateway_ip:port
Accept-Language: en-US
Date: YourDate
Content-Type: multipart/form-data;boundary=<frontier>
Content-Length: body_length
Connection: keep-alive
--<frontier>
Content-Disposition: form-data; name="Event_Type"
Content-Type: text/xml
Content-Length: xml_length
<EventNotificationAlert/>
--<frontier>
Content-Disposition: form-data; name="Picture_Name"
Content-Length: image_length
Content-Type: image/pjpeg
//Response
HTTP/1.1 HTTP statusCode
Date: YourDate
Connection: close
• without Binary Picture Data
//Request
POST requestUrl HTTP/1.1
Host: data_gateway_ip:port
Accept-Language: en-US
Date: YourDate
Content-Type: text/xml;
Content-Length: text_length
Connection: keep-alive
<EventNotificationAlert/>
//Response
HTTP/1.1 HTTP statusCode
Date: YourDate
Connection: close
Note
• The Host is the HTTP server domain name or IP address and port No.
• Some alarm data is in JSON format, so the Content-Type may be "text/xml" or "text/json".
41
Intelligent Security API (Thermal) Developer Guide
42
Intelligent Security API (Thermal) Developer Guide
If the node <isSupportSubscribeEvent> is also returned in the message and its value is "true", it
indicates that alarm/event subscription is supported by device, and you can continue to
perform the following steps;
Otherwise, alarm/event subscription is not supported, please end the task.
2. Call /ISAPI/Event/notification/subscribeEventCap by GET method to get subscription capability
to get supported alarm/event types.
The alarm/event subscription capability is returned in the message XML_SubscribeEventCap .
3. Call /ISAPI/Event/notification/subscribeEvent by POST method to enable alarm/event
uploading.
Note
The sub node <type> of event type list (EventList) in the request message XML_SubscribeEvent
can be set to different values (refer to Supported Alarm/Event Types for details) to subscribe
different types of alarm/event information.
4. Optional: Call /ISAPI/Event/notification/subscribeEvent/<ID> by GET method to get subscribed
alarm/event types for reference.
5. Call /ISAPI/Event/notification/subscribeEvent/<ID> by PUT to set alarm/event type to
subscribe.
Note
The sub node <type> of event type list (EventList) in the request message XML_SubscribeEvent
can be set to different values (refer to Supported Alarm/Event Types for details) to subscribe
different types of alarm/event information.
6. Call /ISAPI/Event/notification/alertStream by GET method to receive the alarm/event
information.
7. Check if the heartbeat receiving timed out or network disconnected.
- If the heartbeat keeps alive and the network still connected, perform the following step to
continue.
- If the heartbeat receiving timed out or network disconnected, perform the above step
repeatedly until reconnected.
8. Call /ISAPI/Event/notification/unSubscribeEvent by PUT method to cancel subscribing alarm/
event.
43
Intelligent Security API (Thermal) Developer Guide
Note
• Before getting real-time temperature measurement
information, you should check whether the device supports
this function via node
<isSupportRealTimethermometryForHTTP> in
XML_ThermalCap .
• It is valid in both normal mode and expert mode.
Note
• Before getting real-time temperature measurement
information, you should check whether the device supports
this function via node
<isSupportRealTimethermometryForHTTP> in
XML_ThermalCap .
• It is valid only in expert mode.
44
Intelligent Security API (Thermal) Developer Guide
Note
Check whether the device supports the function of temperature
correction via the node <isSupportTemperatureCorrection> in
XML_ThermalCap .
45
Intelligent Security API (Thermal) Developer Guide
Picture-in-Picture Configuration
Note
Check whether the device supports the function of click to
detect temperature via node <isSupportClickToThermometry>
in XML_ThermalCap .
46
Intelligent Security API (Thermal) Developer Guide
Burning Prevention
Note
Check whether the device supports the burning prevention
function via node <isSupportBurningPrevention> in
XML_ThermalCap .
47
Intelligent Security API (Thermal) Developer Guide
Face Thermography
48
Intelligent Security API (Thermal) Developer Guide
Note
To check whether the device supports face thermography, you can call /ISAPI/Intelligent/
capabilities by GET method to get the intelligent capability ( XML_IntelliCap ). If supports, the
node <isSupportFaceTemperature> will be returned and its value is true.
Temperature Calibration
49
Intelligent Security API (Thermal) Developer Guide
A.1 /ISAPI/Event/notification/subscribeEventCap
Get event/alarm subscription capability.
A.2 /ISAPI/Event/notification/subscribeEvent
Subscribe events/alarms in arming mode.
Remarks
The XML_EventNotificationAlert_SubscriptionHeartbeat and alarm/event details message is
uploaded repeatedly. The default time interval of uploading heartbeat information is 30s.
50
Intelligent Security API (Thermal) Developer Guide
A.3 /ISAPI/Event/notification/subscribeEvent/<ID>
Get or set alarm/event subscription parameters.
Remarks
The <ID> in the request URI refers to the subscription No. which is returned by the device. After
the persistent connection for receiving events or alarms in arming mode is closed, the device will
release the resource used by the <ID>.
A.4 /ISAPI/Event/notification/unSubscribeEvent
Cancel subscribing alarm/event.
51
Intelligent Security API (Thermal) Developer Guide
Request None.
Response XML_ResponseStatus
A.5 /ISAPI/Event/schedules/faceThermometrys
Operations about arming schedule configuration of all temperature screening alarms.
A.6 /ISAPI/Event/schedules/faceThermometrys/<ID>
Operations about arming schedule configurations of a specified temperature screening alarm.
52
Intelligent Security API (Thermal) Developer Guide
Request None.
Response XML_Schedule
Table A-9 PUT /ISAPI/Event/schedules/faceThermometrys/<ID>
Method PUT
Description Set the temperature screening arming schedule of a specific camera.
Query None.
Request XML_Schedule
Response XML_ResponseStatus
Remarks
The <ID> in the URI refers to temperature screening alarm ID, which consists of the alarm type
name and the corresponding video input channel No., e.g., "faceThermometry-1".
A.7 /ISAPI/Event/schedules/dredgerDetection/<ID>/scene/<SID>
Operations about arming schedule of dredger detection in specified scene.
53
Intelligent Security API (Thermal) Developer Guide
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.8 /ISAPI/Event/schedules/shipsFlowDetection/<ID>/scene/<SID>
Operations about arming schedule of ship flow detection in specified scene.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.9 /ISAPI/Event/schedules/Thermometry
Operations about the arming schedule configurations of all temperature measurement alarms.
54
Intelligent Security API (Thermal) Developer Guide
A.10 /ISAPI/Event/schedules/thermometry/<ID>
Operations about the arming schedule configurations of a specified temperature measurement
alarm.
55
Intelligent Security API (Thermal) Developer Guide
Query None.
Request XML_Schedule
Response XML_ResponseStatus
Remarks
The <ID> in the URI is temperature measurement alarm ID, which consists of alarm type name and
video input channel No., e.g., thermometry-1.
A.11 /ISAPI/Event/schedules/TMPA/<ID>
Get or set the arming schedule of temperature measurement pre-alarm for a specified channel.
Remarks
The <ID> in the request URI refers to temperature measurement pre-alarm ID, which conisists of
event type and video input channel No., e.g., TMPA-1.
56
Intelligent Security API (Thermal) Developer Guide
A.12 /ISAPI/Event/schedules/TMPA
Get or set arming schedules of temperature measurement pre-alarm for all channels in a batch.
A.13 /ISAPI/Event/triggers
Get linkage actions of multiple alarms.
57
Intelligent Security API (Thermal) Developer Guide
A.14 /ISAPI/Event/triggers/dredgerDetection/<ID>/scene/<SID>
Operations about linkage configurations of dredger detection in specified scene.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.15 /ISAPI/Event/triggers/shipsFlowDetection/<ID>/scene/<SID>
Get or set the linkage configurations of ship flow detection in specified scene.
58
Intelligent Security API (Thermal) Developer Guide
Request None.
Response Succeeded: XML_EventTrigger
Failed: XML_ResponseStatus
Table A-26 PUT /ISAPI/Event/triggers/shipsFlowDetection/<ID>/scene/<SID>
Method PUT
Description Set the linkage parameters of ship detection in specified scene.
Query None.
Request XML_EventTrigger
Response XML_ResponseStatus
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.16 /ISAPI/Event/triggers/<eventType>-<ID>
Get, set, or delete the alarm linkage action by channel.
59
Intelligent Security API (Thermal) Developer Guide
Remarks
The <eventType> in the request URI refers to the predefined event or alarm type name, and the
<ID> is the No. of the event detection channel. For example, if the No. of the face capture channel
is 101, the "<eventType>-<ID>" is "faceSnap-101".
A.17 /ISAPI/Event/triggers/thermalCalibrationFileException
Get, set, or delete the alarm linkage configuration parameters of thermography calibration file
exception.
60
Intelligent Security API (Thermal) Developer Guide
A.18 /ISAPI/Event/triggersCap
Get alarm linkage capability.
A.19 /ISAPI/Image/channels/<ID>/DPC/correction
Configure defective pixel correction according to channel ID.
61
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL is defined as channel ID.
A.20 /ISAPI/Image/channels/<ID>/DPC/correction/capabilities
Get the capability of defective pixel correction.
A.21 /ISAPI/Intelligent/capabilities
Get the intelligent capability set.
A.22 /ISAPI/Intelligent/faceTemperature/capabilities?format=json
Get the face thermograhpy capability.
62
Intelligent Security API (Thermal) Developer Guide
A.23 /ISAPI/Intelligent/faceTemperature/dataStatistics?format=json
Search for face thermography statistical report.
A.24 /ISAPI/PTZCtrl/channels/<ID>/presets
Operations about all presets' configurations.
63
Intelligent Security API (Thermal) Developer Guide
Request None.
Response Succeeded: XML_PTZPresetList
Failed: XML_ResponseStatus
Table A-40 PUT /ISAPI/PTZCtrl/channels/<ID>/presets
Method PUT
Description Set all presets' parameters.
Query None.
Request XML_PTZPresetList
Response XML_ResponseStatus
Table A-41 POST /ISAPI/PTZCtrl/channels/<ID>/presets
Method POST
Description Add a preset.
Query None.
Request XML_PTZPreset
Response XML_ResponseStatus
Table A-42 DELETE /ISAPI/PTZCtrl/channels/<ID>/presets
Method DELETE
Description Delete all presets.
Query None.
Request None.
Response XML_ResponseStatus
Remarks
The <ID> in the URI is the camera ID.
A.25 /ISAPI/System/capabilities
Get device capability.
64
Intelligent Security API (Thermal) Developer Guide
A.26 /ISAPI/Thermal/capabilities
Get thermal capability.
A.27 /ISAPI/Thermal/channels/<ID>/blackBody
Operations about black body configuration.
65
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL is the channel ID.
A.28 /ISAPI/Thermal/channels/<ID>/blackBody/capabilities
Get black body capability.
Remarks
The <ID> in the URL is the channel ID.
A.29 /ISAPI/Thermal/channels/<ID>/bodyTemperatureCompensation
Get or set configuration parameters of body temperature compensation.
66
Intelligent Security API (Thermal) Developer Guide
Request None
Response Succeeded: XML_BodyTemperatureCompensation
Failed: XML_ResponseStatus
Table A-49 PUT /ISAPI/Thermal/channels/<ID>/bodyTemperatureCompensation
Method PUT
Description Set body temperature compensation.
Query None
Request XML_BodyTemperatureCompensation
Response XML_ResponseStatus
Remarks
The <ID> in the URI refers to the channel ID.
A.30 /ISAPI/Thermal/channels/<ID>/bodyTemperatureCompensation/
capabilities
Get the capability of body temperature compensation.
Remarks
The <ID> in the URI refers to the channel ID.
A.31 /ISAPI/Thermal/channels/<ID>/Correction
Start correction.
67
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL is the live view channel ID, by default it is the first channel.
A.32 /ISAPI/Thermal/channels/<ID>/CorrectionParam
Get or set temperature correction parameters.
Remarks
The <ID> in the URL is the live view channel ID, by default it is the first channel.
68
Intelligent Security API (Thermal) Developer Guide
A.33 /ISAPI/Thermal/channels/<ID>/CorrectionParam/capabilities
Get the capability set of temperature correction parameters.
Remarks
The <ID> in the URL is the live view channel ID, by default it is the first channel.
Remarks
The <ID> in the URI refers to video input channel ID, and it starts from 1.
A.35 /ISAPI/Thermal/channels/<ID>/faceThermometry
Operations about temperature screening configuration.
69
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URI refers to channel ID.
A.36 /ISAPI/Thermal/channels/<ID>/faceThermometry/capabilities
Get the temperature screening capability by channel.
Remarks
The <ID> in the URI refers to channel ID.
70
Intelligent Security API (Thermal) Developer Guide
A.37 /ISAPI/Thermal/channels/<ID>/faceThermometry/regions
Operations about the temperature screening rule configurations of all detection regions.
Remarks
The <ID> in the URL refers to the channel ID.
A.38 /ISAPI/Thermal/channels/<ID>/faceThermometry/regions/<ID>
Operations about the temperature screening rule configurations of a specific detection region.
71
Intelligent Security API (Thermal) Developer Guide
Request None.
Response XML_ThermometryRegion
Table A-62 PUT /ISAPI/Thermal/channels/<ID>/faceThermometry/regions/<ID>
Method PUT
Description Set the temperature screening rules of a specific detection
region.
Query None.
Request XML_ThermometryRegion
Response XML_ResponseStatus
Remarks
The first <ID> in the URI is the channel ID, and the second <ID> is the detection region ID.
A.39 /ISAPI/Thermal/channels/<ID>/faceThermometry/regions/<ID>/
detectionInfo
Get the temperature screening results of a specific detection region.
Remarks
The first <ID> in the URI is channel ID, and second <ID> is the detection region ID.
A.40 /ISAPI/Thermal/channels/<ID>/fireDetection
Operations about the parameter information of fire and smoke detection.
72
Intelligent Security API (Thermal) Developer Guide
A.41 /ISAPI/Thermal/channels/<ID>/fireDetection/advanceParam/
capabilities?format=json
Get the capability of configuring advanced parameters of fire detection.
73
Intelligent Security API (Thermal) Developer Guide
A.42 /ISAPI/Thermal/channels/<ID>/fireDetection/advanceParam?
format=json
Get and set the advanced parameters of fire detection.
A.43 /ISAPI/Thermal/channels/<ID>/fireDetection/capabilities
Get the configuration capability of fire and smoke detection.
74
Intelligent Security API (Thermal) Developer Guide
A.44 /ISAPI/Thermal/channels/<ID>/historyTemperature
Get history temperature.
A.45 /ISAPI/Thermal/channels/<ID>/historyTemperature/capabilities
Get the history temperature capabilities.
A.46 /ISAPI/Thermal/channels/<ID>/pip
Get or set the picture-in-picture parameters.
75
Intelligent Security API (Thermal) Developer Guide
Request None.
Response XML_ThermalPip
Table A-73 PUT /ISAPI/Thermal/channels/<ID>/pip
Method PUT
Description Set the picture-in-picture parameters.
Query None.
Request XML_ThermalPip
Response XML_ResponseStatus
A.47 /ISAPI/Thermal/channels/<ID>/pip/capabilities
Get the capability of picture-in-picture configuration.
A.48 /ISAPI/Thermal/channels/<ID>/shipsDetection/advanceParam/
capabilities?format=json
Get the capabilities of advanced parameters configuration for ship detection.
76
Intelligent Security API (Thermal) Developer Guide
Request None.
Response Succeeded: JSON_advanceParamCap
Failed: JSON_ResponseStatus
Remarks
The <ID> in the URL refers to the channel No.
A.49 /ISAPI/Thermal/channels/<ID>/shipsDetection/advanceParam?
format=json
Get or set the advanced parameters of ship detection.
Remarks
The <ID> in the URL refers to the channel No.
A.50 /ISAPI/Thermal/channels/<ID>/shipsDetection/basicParam/
capabilities?format=json
Get the basic parameters configuration capability of ship detection.
77
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL refers to the channel No.
A.51 /ISAPI/Thermal/channels/<ID>/shipsDetection/basicParam?
format=json
Get or set the ship detection basic parameters.
78
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL refers to the channel No.
A.52 /ISAPI/Thermal/channels/<ID>/shipsDetection/capabilities?
format=json
Get the ship detection capabilities.
Remarks
The <ID> in the URL refers to the channel No.
A.53 /ISAPI/Thermal/channels/<ID>/shipsDetection/sceneTrace/
capabilities?format=json
Get the scene auto-switch capabilities.
79
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL refers to the channel No.
A.54 /ISAPI/Thermal/channels/<ID>/shipsDetection/sceneTrace?
format=json
Get all scenes information or start the scene auto-switch.
Remarks
The <ID> in the URL refers to the channel No.
A.55 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/capabilities?
format=json
Get the scene parameters configuration capabilities of ship detection.
80
Intelligent Security API (Thermal) Developer Guide
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.56 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
captureRatio/capabilities?format=json
Get the capture ratio configuration capabilities.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
81
Intelligent Security API (Thermal) Developer Guide
A.57 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
captureRatio?format=json
Get or set the capture ratio.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.58 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
dredgerDetection/regions/capabilities?format=json
Get the configuration capabilities of dredger detection rules.
82
Intelligent Security API (Thermal) Developer Guide
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.59 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
dredgerDetection/regions/<ID>?format=json
Get or set a specified rule of dredger detection.
Remarks
• The first <ID> in the URL refers to the channel No., the second <ID> in the URL refers to the rule
ID
• The <SID> in the URL refers to the scene ID.
83
Intelligent Security API (Thermal) Developer Guide
A.60 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
dredgerDetection/regions?format=json
Get or set all rules of dredger detection.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.61 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>?format=json
Operations about specified ship detection scene.
84
Intelligent Security API (Thermal) Developer Guide
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
• You can add a new scene via URL: PUT /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>?
format=json. When adding a new scene, you should input only the node sid (scene ID) and set
other required nodes to NULL in the message JSON_ShipsDetectionScene . The optional nodes
can not be applied.
A.62 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/goto?
format=json
Switch scene for ship detection.
85
Intelligent Security API (Thermal) Developer Guide
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.63 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
shipsDetectionCount?format=json
Get the ship statistics by scene.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.64 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
shipFlowDetection/regions/capabilities?format=json
Get the configuration capabilities of ship flow detection rules.
86
Intelligent Security API (Thermal) Developer Guide
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.65 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
shipFlowDetection/regions/<ID>?format=json
Get or set a specified rule of ship flow detection.
87
Intelligent Security API (Thermal) Developer Guide
Request JSON_ShipFlowDetectionRule
Response JSON_ResponseStatus
Remarks
• The first <ID> in the URL refers to the channel No., the second <ID> in the URL refers to the rule
ID
• The <SID> in the URL refers to the scene ID.
A.66 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
shipFlowDetection/regions?format=json
Get or set all rules of ship flow detection.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
88
Intelligent Security API (Thermal) Developer Guide
A.67 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
shipsFunctionMode/capabilities?format=json
Get the configuration capabilities of scene function mode.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.68 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/
shipsFunctionMode?format=json
Get or set the scene function mode of ship detection.
89
Intelligent Security API (Thermal) Developer Guide
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.69 /ISAPI/Thermal/channels/<ID>/shipsDetection/<SID>/resetCount?
format=json
Clear the ship statistics by scene.
Remarks
• The <ID> in the URL refers to the channel No.
• The <SID> in the URL refers to the scene ID.
A.70 /ISAPI/Thermal/channels/<ID>/shipsDetection?format=json
Operations about all ship detection scenes.
90
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL refers to the channel No.
A.71 /ISAPI/Thermal/channels/<ID>/streamParam
Get or set the thermal stream parameters.
91
Intelligent Security API (Thermal) Developer Guide
Query None.
Request None.
Response XML_ThermalStreamParam
Table A-112 PUT /ISAPI/Thermal/channels/<ID>/streamParam
Method PUT
Description Set the thermal stream parameters.
Query None.
Request XML_ThermalStreamParam
Response XML_ResponseStatus
Remarks
The <ID> in the URL is the channel ID.
A.72 /ISAPI/Thermal/channels/<ID>/streamParam/capabilities
Get the thermal stream parameters capability.
Remarks
The <ID> in the URL is the channel ID.
A.73 /ISAPI/Thermal/channels/<ID>/thermIntell
Operations about functional mutex configuration.
92
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL is the channel ID.
A.74 /ISAPI/Thermal/channels/<ID>/thermIntell/capabilities
Get the capability of functional mutex configuration.
Remarks
The <ID> in the URL is the video input channel ID.
93
Intelligent Security API (Thermal) Developer Guide
A.75 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>
Operations about preset (scene) configurations of temperature measurement.
Remarks
The <ID> in the URI refers to the video input channel ID, and the <SID> in the URI is the scene ID
(or preset No.).
A.76 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/alarmRules
Operations about the rule configuration of temperature alarm or temperature difference alarm of
a specific preset (scene).
94
Intelligent Security API (Thermal) Developer Guide
Request XML_ThermometryAlarmRule
Response XML_ResponseStatus
Remarks
The <ID> in the URL is the channel ID, and the <SID> in the URL is the scene ID (or preset No.).
A.77 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/alarmRules/
capabilities
Get the configuration capability of temperature alarm or temperature difference alarm of a specific
preset (scene).
Remarks
The <ID> in the URL refers to the video input channel ID, and the <SID> in the URL is the scene ID
(or preset No.).
A.78 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/capabilities
Get the preset (scene) configuration capability of temperature measurement.
95
Intelligent Security API (Thermal) Developer Guide
Request None.
Response XML_Cap_ThermometryScene
Remarks
The <ID> in the URI refers to the video input channel ID, and the <SID> in the URI is the scene ID
(or preset No.).
A.79 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/regions
Operations about the temperature measurement points, lines,and frames configuration of all
detection regions in the preset (scene).
Remarks
The <ID> in the URI refers to the video input channel ID, and the <SID> in the URI is the scene ID
(or preset No.).
96
Intelligent Security API (Thermal) Developer Guide
A.80 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/regions/<ID>
Operations about the temperature measurement points, lines, and frames configuration of a
specific detection region in the preset (scene).
Remarks
• The <SID> in the URI refers to scene ID (or preset No).
• The first <ID> in the URI refers to channel ID, and the second <ID> refers to detection region ID.
A.81 /ISAPI/Thermal/channels/<ID>/thermometry/basicParam
Operations about basic configuration of temperature measurement.
97
Intelligent Security API (Thermal) Developer Guide
Request None.
Response XML_ThermometryBasicParam
Table A-127 PUT /ISAPI/Thermal/channels/<ID>/thermometry/basicParam
Method PUT
Description Set the basic parameters of temperature measurement.
Query None.
Request XML_ThermometryBasicParam
Response XML_ResponseStatus
Remarks
The <ID> in the URL is the channel ID.
A.82 /ISAPI/Thermal/channels/<ID>/thermometry/basicParam/
capabilities
Get the capability of basic configuration of temperature measurement.
Remarks
The <ID> in the URL refers to the channel ID.
A.83 /ISAPI/Thermal/channels/<ID>/thermometry/basicParam/
calibrationCoefficient
Get the calibration coefficient.
98
Intelligent Security API (Thermal) Developer Guide
A.84 /ISAPI/Thermal/channels/<ID>/thermometry/
jpegPicWithAppendData?format=json
Get JPEG picture with pixel-to-pixel temperature measurement data.
Example
Returned JPEG Picture Data in Form Format
GET /ISAPI/Thermal/channels/<ID>/thermometry/jpegPicWithAppendData?format=json HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: 10.17.133.46
DNT: 1
Cookie: language=zh; sdMarkMenu=8%3Avehicle; sdMarkTab_1_0=0%3AsettingBasic;
sdMarkTab_6_0=5%3AeventException; sdMarkTab_6_1=6%3AsmartLoiterDetection;
sdMarkTab_7_0=1%3AplanCapture; sdMarkTab_7_1=0%3AstorageManageHarddisk;
sdMarkTab_8=0%3AvehicleParam; WebSession=f81610c130711300cf30
99
Intelligent Security API (Thermal) Developer Guide
HTTP/1.1 200 OK
MIME-Version: 1.0
Content-Type: multipart/form-data; boundary=boundary
--boundary
Content-Type: application/json; charset="UTF-8"
Content-Length:
{
"JpegPictureWithAppendData":
{
"channel": 1,
/*req,integer32,channel ID*/
"jpegPicLen": 1,
/*req, integer32, JPEG picture length*/
"jpegPicWidth": 1,
/*req,integer32,JPEG picture width*/
"jpegPicHeight": 1,
/*req, integer32,JPEG picture height*/
"p2pDataLen": 1,
/*req, integer32,length of pixel-to-pixel temperature measurement data*/
"isFreezedata": false,
/*req, boollean, whether freezes data*/
"temperatureDataLength": 2,
/*req, integer32,temperature measurement data length (2 or 4)*/
"scale": 1,
/*opt,integer32,zoom in scale, it is valid when temperatureDataLength values "2"*/
"offset": 1,
/*opt,integer32,offset, it is valid when temperatureDataLength values "2"*/
}
}
--boundary
Content-Disposition: form-data;
Content-Type: image/pjpeg
Content-Length:
Picture data
--boundary
Content-Disposition: form-data;
Content-Type: application/octet-stream
Content-Length:
A.85 /ISAPI/Thermal/channels/<ID>/thermometry/pixelToPixelParam
Get or set the pixel-to-pixel temperature measurement parameters.
100
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URI refers to channel ID.
A.86 /ISAPI/Thermal/channels/<ID>/thermometry/pixelToPixelParam/
capabilities
Get the configuration capability of pixel-to-pixel temperature measurement parameters.
Remarks
The <ID> in the URL is the channel ID.
101
Intelligent Security API (Thermal) Developer Guide
A.87 /ISAPI/Thermal/channels/<ID>/thermometry/
realTimethermometry/rules/<RuleID>?format=json
Get or search for real-time temperature measurement information of a single rule.
Remarks
• This URI is valid only in the export mode.
• The <ID> in the URI is defined as channel ID.
• The <RuleID> in the URI is defined as rule ID.
A.88 /ISAPI/Thermal/channels/<ID>/thermometry/
realTimethermometry/rules?format=json
Get or search for real-time temperature measurement information of all rules.
102
Intelligent Security API (Thermal) Developer Guide
Remarks
• This URI is available in both normal mode and expert mode.
• The <ID> in the URI is defined as channel ID.
A.89 /ISAPI/Thermal/channels/<ID>/thermometryMode
Operations about temperature measurement mode.
103
Intelligent Security API (Thermal) Developer Guide
Request None.
Response XML_ThermometryMode
Table A-139 PUT /ISAPI/Thermal/channels/<ID>/thermometryMode
Method PUT
Description Set the temperature measurement mode.
Query None.
Request XML_ThermometryMode
Response XML_ResponseStatus
Remarks
The <ID> in the URI refers to channel ID.
A.90 /ISAPI/Thermal/channels/<ID>/thermometryMode/capabilities
Get the configuration capability of temperature measurement mode.
Remarks
The <ID> in the URI refers to video input channel ID.
A.91 /ISAPI/Thermal/channels/<ID>/burningPrevention
Get or set configuration parameters of burning prevention.
104
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL is the channel ID.
A.92 /ISAPI/Thermal/channels/<ID>/burningPrevention/capabilities
Get burning prevention capabilities.
A.93 /ISAPI/Thermal/channels/<ID>/clickToThermometry/initialization
Initialize clicking to detect temperature.
105
Intelligent Security API (Thermal) Developer Guide
A.94 /ISAPI/Thermal/channels/<ID>/clickToThermometry/rules/<ID>?
format=json
Set the rules of temperature measurement by point.
Remarks
The first <ID> in the URI is the channel ID, the second <ID> in the URL is the rule ID.
A.95 /ISAPI/Thermal/channels/<ID>/temperatureCorrect/capabilities?
format=json
Get the temperature calibration capability.
106
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URI refers to channel No.
A.96 /ISAPI/Thermal/channels/<ID>/temperatureCorrect?format=json
Get or set the temperature calibration configuration parameters
Remarks
The <ID> in the URI refers to channel No.
A.97 /ISAPI/Thermal/channels/<ID>/thermalDataConversion
For thermal data conversion.
107
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL refers to the channel ID.
A.98 /ISAPI/Thermal/channels/<ID>/thermalDataConversion/
capabilities
Get the capabilities of thermal data conversion.
Remarks
The <ID> in the URL refers to the channel ID.
A.99 /ISAPI/Thermal/channels/<ID>/thermometry/OffLineCapture?
format=json
Device captures one picture offline.
108
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URL refers to the channel ID.
A.100 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/alarmRules/
temperatureIntervalMeasurement/capabilities?format=json
Get the configuration capability of interval temperature measurement alarm.
Remarks
• The <ID> in the request URI refers to channel ID.
• The <SID>in the request URI refers to scene ID.
109
Intelligent Security API (Thermal) Developer Guide
A.101 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/alarmRules/
temperatureIntervalMeasurement?format=json
Get or set the configuration parameters of interval temperature measurement alarm.
Remarks
• The <ID> in the request URI refers to channel ID.
• The <SID>in the request URI refers to scene ID.
A.102 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/
rulesTemperatureInfo?format=json
Manually get the temperature information of temperature measurement rules in batch.
110
Intelligent Security API (Thermal) Developer Guide
Remarks
The <ID> in the URI refers to channel ID.
A.103 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/
rulesTemperatureInfo/<ID>?format=json
Manually get the single temperature information of temperature measurement rules.
Remarks
The first <ID> in the URI is the channel No., the second <ID> in the URL is the rule ID.
111
Intelligent Security API (Thermal) Developer Guide
A.104 /ISAPI/Thermal/channels/<ID>/thermometry/<SID>/
rulesTemperatureInfo/capabilities?format=json
Get capability of manually getting temperature information of temperature measurement rules.
Remarks
The <ID> in the URI refers to channel No.
A.105 /ISAPI/Thermal/Power
Get the camera battery parameters.
112
Intelligent Security API (Thermal) Developer Guide
A.106 /ISAPI/Thermal/Power/capabilities
Get the configuration capability of camera battery.
A.107 rtsp://<ipaddress>[:port]/ISAPI/Streaming/thermal/channels/
<ID>/streamType/<Type>/trackID=
Upload the real-time thermal stream of specified channel via RTSP.
Remarks
• The <Type> in the URL is defined as thermal stream data type as follows:
thermal_raw_data (the original outputted data); pixel-to-pixel_thermometry_data (temperature
data after the original data has processed by algorithm); real-time_raw_data (real-time raw
data)
• The trackID in the URL is defined as stream ID, and for thermal stream, the trackID=5.
A.108 rtsp://<ipaddress>[:port]/ISAPI/Streaming/thermal/channels/
<ID>/streamType/<Type>
Upload the real-time thermal stream of specified channel via RTSP.
113
Intelligent Security API (Thermal) Developer Guide
Remarks
The <Type> in the URL is defined as thermal stream data type as follows:
thermal_raw_data (the original outputted data); pixel-to-pixel_thermometry_data (temperature
data after the original data has processed by algorithm); real-time_raw_data (real-time raw data)
A.109 /ISAPI/Event/notification/alertStream
Get the uploaded heartbeat or alarm/event information.
114
Intelligent Security API (Thermal) Developer Guide
Request None.
Response Option 1: XML_EventNotificationAlert_AlarmEventInfo or
XML_EventNotificationAlert_HeartbeatInfo
Option 2: JSON_EventNotificationAlert_Alarm/EventInfo
Note
The messages here only show the format of alarm/event
information to be uploaded. For details, refer to the corresponding
alarm/event configuration chapters.
Remarks
• After calling this URI, a persistent connection is set up between the device and the platform, and
the alarm or event information will be uploaded from device continuously once the alarm is
triggered or event occurred.
• You can check if the XML response message is the heartbeat information according to the nodes
<eventType> and <eventState>. If the values of these two node are "videoloss" and "inactive",
respectively, the returned message is the heartbeat information.
A.110 /ISAPI/Event/notification/httpHosts
Get or set parameters of all HTTP listening servers, add a HTTP listening server, and delete all HTTP
listening servers.
115
Intelligent Security API (Thermal) Developer Guide
A.111 /ISAPI/Event/notification/httpHosts/<ID>
Get or set the parameters of a HTTP listening server, and delete a HTTP listening server.
116
Intelligent Security API (Thermal) Developer Guide
117
Intelligent Security API (Thermal) Developer Guide
Request None
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the HTTP listening server No.
A.112 /ISAPI/Event/notification/httpHosts/<ID>/test
Check whether the HTTP listening server is working normally.
Remarks
The <ID> in the request URI refers to the HTTP listening server ID.
A.113 /ISAPI/Event/notification/httpHosts/capabilities
Get the configuration capabilities of all HTTP listening servers.
118
Intelligent Security API (Thermal) Developer Guide
A.114 http://<ipAddress>:<portNo>/<url>
HTTP listening sever sends alarm information to alarm center.
Remarks
• The <ipAddress> in the request URL refers to the IP address or domain name of HTTP listening
server, the <portNo> is the port No. of HTTP listening server, and the <url> represents the
streaming URL, which is configured via the HTTP listening server.
• The default port No. is 80, so the request URL without port No. is also valid.
119
Intelligent Security API (Thermal) Developer Guide
B.1 JSON_advanceParam
advanceParam message in JSON format
{
"advanceParam":{
"targetDetectionThreshold":,
/*optional, integer type, target detection sensitivity threshold, ranges from 0 to 4, the default value is 3*/
"targetGenerationSpeed":
/*optional, integer type, target generation speed, ranges from 0 to 4, the default value is 3*/
}
}
B.2 JSON_advanceParamCap
advanceParamCap message in JSON format
{
"advanceParamCap":{
"targetDetectionThreshold":{
/*optional, integer type, target detection sensitivity threshold, ranges from 0 to 4, the default value is 3*/
"@min":0,
"@max":4,
"def":3
},
"targetGenerationSpeed":{
/*optional, integer type, target generation speed, ranges from 0 to 4, the default value is 3*/
"@min":0,
"@max":4,
"def":3
}
}
}
B.3 JSON_basicParam
basicParam message in JSON format
{
"basicParam":{
"enabled":,
/*required, boolean type, enable ship detection*/
"horizontalHeight":,
/*required, float type, device horizontal height, corrects to one decimal place*/
120
Intelligent Security API (Thermal) Developer Guide
"displayShipInfoOnStreamEnabled":,
/*optional, boolean type, enable displaying ship information on stream*/
"backToSceneTime":
/*optional, integer type, back to scene time, ranges from 0 to 100, the default value is 15, unit: second*/
}
}
B.4 JSON_basicParamCap
basicParamCap message in JSON format
{
"basicParamCap":{
"enabled":{
/*required, boolean type, enable ship detection*/
"@opt":"true,false"
},
"horizontalHeight":{
/*required, float type, device horizontal height, corrects to one decimal place*/
"@min":0.0,
"@max":100.0,
"def":0.0
},
"displayShipInfoOnStreamEnabled":{
/*optional, boolean type, enable displaying ship information on stream*/
"@opt":"true,false"
},
"backToSceneTime":{
/*optional, integer type, back to scene time, ranges from 0 to 100, the default value is 15, unit: second*/
"@min":0,
"@max":100,
"def":15
}
}
}
B.5 JSON_Cap_functionMode
functionMode capability message in JSON format
{
"functionMode":{
/*required, string type, scene function mode of ship detection: shipFlowDetection-ship flow detection mode,
dredgerDetection-dredger detection mode*/
"@opt":"shipFlowDetection,dredgerDetection"
}
}
121
Intelligent Security API (Thermal) Developer Guide
B.6 JSON_ClickToThermometryRule
ClickToThermometryRule message in JSON format
{
"ClickToThermometryRule":{
"Point":{
"positionX": "",
/*required, float, point coordinates, normalized value, ranges from 0 to 1, corrects to three decimal places*/
"positionY": ""
/*required, float, point coordinates, normalized value, ranges from 0 to 1, corrects to three decimal places*/
}
}
}
B.7 JSON_DredgerDetectionRule
DredgerDetectionRule message in JSON format
{
"DredgerDetectionRule":{
"id":,
/*required, integer type, rule ID*/
"enabled":,
/*required, boolean type, enable rule*/
"overStayingAlarmTime":,
/*optional, integer type, overstay alarm time, ranges from 60 to 3600, the default value is 180, unit: second*/
"RegionCoordinatesList":[
{
/*optional, list of detection region coordinates*/
"positionX":,
/*required, integer type, X-coordinate*/
"positionY":
/*required, integer type, Y-coordinate*/
}
],
"TriggerLineList":[
{
"id":,
/*required, integer type, trigger line ID*/
"enabled":,
/*required, boolean type, enable trigger line*/
"MinimumTargetSize":{
/*required, the minimum target size*/
"width":,
/*required, integer type, width, ranges from 0 to 100, the default value is 52*/
"height":35
/*required, integer type, height, ranges from 0 to 100, the default value is 35*/
},
122
Intelligent Security API (Thermal) Developer Guide
}
]
}
}
B.8 JSON_DredgerDetectionRuleList
DredgerDetectionRuleList message in JSON format
{
"DredgerDetectionRuleList":[
{
"DredgerDetectionRule":{
"id":,
/*required, integer type, rule ID*/
"enabled":,
/*required, boolean type, enable rule*/
"overStayingAlarmTime":,
/*optional, integer type, overstay alarm time, ranges from 60 to 3600, the default value is 180, unit: second*/
"RegionCoordinatesList":[
{
/*optional, list of detection region coordinates*/
"positionX":,
/*required, integer type, X-coordinate*/
"positionY":
/*required, integer type, Y-coordinate*/
}
],
"TriggerLineList":[
{
"id":,
/*required, integer type, trigger line ID*/
"enabled":,
/*required, boolean type, enable trigger line*/
"MinimumTargetSize":{
/*required, the minimum target size*/
"width":,
/*required, integer type, width, ranges from 0 to 100, the default value is 52*/
"height":
/*required, integer type, height, ranges from 0 to 100, the default value is 35*/
},
}
]
}
}
]
}
123
Intelligent Security API (Thermal) Developer Guide
B.9 JSON_DredgerDetectionRuleListCap
DredgerDetectionRuleListCap message in JSON format
{
"DredgerDetectionRuleListCap":{
"maxSize":5,
/*required, integer type, the maximum number of supported dredger detection rules*/
"DredgerDetectionRuleCap":{
"enabled":{
/*required, boolean type, enable rule*/
"@opt":"true,false"
},
"overStayingAlarmTime":{
/*optional, integer type, overstay alarm time, ranges from 60 to 3600, the default value is 180, unit: second*/
"@min":60,
"@max":3600,
"@def":180
},
"RegionCoordinatesList":{
/*optional, list of detection region coordinates*/
"maxSize":5,
/*required, integer type, the number of supported regions*/
"positionX":{
/*required, integer type, X-coordinate*/
"@min":0,
"@max":1000
},
"positionY":{
/*required, integer type, Y-coordinate*/
"@min":0,
"@max":1000
}
},
"TriggerLineList":{
"maxSize":5,
/*required, integer type, the number of supported trigger lines*/
"enabled":{
/*required, boolean type, enable trigger line*/
"@opt":"true,false"
},
"MinimumTargetSize":{
/*required, the minimum target size*/
"width":{
/*required, integer type, width, ranges from 0 to 100, the default value is 52*/
"@min":0,
"@max":100,
"@def":52
},
"height":{
/*required, integer type, height, ranges from 0 to 100, the default value is 35*/
124
Intelligent Security API (Thermal) Developer Guide
"@min":0,
"@max":100,
"@def":35
},
}
}
}
}
}
B.10 JSON_EpidemicControlCap
JSON message about face thermography capability
{
"EpidemicControlCap":{
"reportType":{
/*required, string, report type: "daily,weekly,monthly,yearly"*/
"@opt":[
"daily",
"weekly",
"monthly",
"yearly"
]
},
"startTime":{
/*required, string, start time*/
"@min":0,
"@max":0
},
"endTime":{
/*required, string, end time*/
"@min":0,
"@max":0
},
"channel":{
/*optional, array of strings, channel No., multiple channels can be separated by comma*/
"@min":0,
"@max":0
}
}
}
B.11 JSON_EventNotificationAlert_dredgerDetection
The information of dredger detection alarm is uploaded in the JSON format, see details below.
{
"ipAddress":"",
125
Intelligent Security API (Thermal) Developer Guide
/*required, alarm device IPV4 address, string type, the maximum length is 32*/
"ipv6Address":"",
/*optional, alarm device IPV6 address, string type, the maximum length is 128*/
"portNo":"",
/*optional, alarm device port No., integer32 type*/
"protocol":"",
/*optional, protocol type: HTTP or HTTPS, string type, the maximum length is 32*/
"macAddress":"",
/*optional, MAC address, string type, the maximum length is 32*/
"channelID":,
/*optional, channel ID number, which triggers the alarm, integer32 type*/
"releatedChannelList": [1,2,3],
/*optional, array of integers, list of alarm related channels, which are of the same camera with channelID; this
parameter is used for live view or playback on the platform*/
"dateTime":"",
/*required, alarm triggered time, ISO8601 time format, string type, the maximum length is 32*/
"activePostCount":,
/*required, the number of one alarm uploaded times, integer32 type*/
"eventType":"",
/*required, event type: dredgerDetection-dredger detection, string type, the maximum length is 128*/
"eventState":"",
/*required, event triggering status: active-triggered, inactive-not triggered (heartbeat data), string type, the maximum
length is 32*/
"eventDescription":"",
/*required, event description: dredger detection alarm)*/
"DetectionRegionList":[{
/*ship detection region list*/
"DetectionRegionEntry":{
"RegionCoordinatesList":[{
/*ship detection region*/
"RegionCoordinates":{
"positionX":,
/*required, float type, X-coodinate*/
"positionY":
/*required, float type, Y-coordinate*/
}
}],
"ShipsDetection":{
"shipsInfoList":[{
"shipsInfo":{
"id":,
/*required, integer type, ship ID*/
"shipsLength":,
/*required, float type, ship length*/
"shipsHeight":,
/*required, float type, ship height*/
"shipsWidth":
/*required, float type, ship width*/
}
}]
}
}
126
Intelligent Security API (Thermal) Developer Guide
}],
"sid":,
/*optional, integer type, scene ID*/
"sceneName":""
/*optional, string type, scene name*/
}
B.12 JSON_EventNotificationAlert_TDAMsg
JSON message about temperature difference alarm details
Content-Type: multipart/form-data; boundary=MIME_boundary
--MIME_boundary
Content-Type: application/json
Content-Length:
{
"ipAddress":"",
/*required, string, IPv4 address of alarm device; the maximum string length is 32 bytes*/
"ipv6Address":"",
/*optional, string, IPv6 address of alarm device; the maximum string length is 128 bytes*/
"portNo":,
/*optional, integer32, device's communication port No.*/
"protocol":"",
/*optional, string, transport protocol type: HTTP, HTTPS, EHome; the maximum string length is 32 bytes*/
"macAddress":"",
/*optional, string, MAC address; the maximum string length is 32 bytes*/
"channelID":,
/*optional, integer32, channel No., which triggers alarm*/
"releatedChannelList": [1,2,3],
/*optional, array of integers, list of alarm related channels, which are of the same camera with channelID; this
parameter is used for live view or playback on the platform*/
"dateTime":"",
/*required, string, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00; the maximum
string length is 32 bytes*/
"activePostCount":,
/*required, integer32, event occurred times*/
"eventType":"",
/*required, string, event types, here it should be set to "TDA"; the maximum string length is 128 bytes*/
"eventState":"",
/*required, string, event status (for persistent event): active, inactive; the maximum string length is 32 bytes*/
"eventDescription":"",
/*required, event description: Temperature Diff Alarm*/
"DetectionRegionList":[{
/*region list of temperature difference alarm*/
"DetectionRegionEntry":{
"AlarmRuleList":[{
"alarmID":,
/*required, integer, rule ID of temperature difference alarm*/
"RegionCoordinatesList":[{
127
Intelligent Security API (Thermal) Developer Guide
128
Intelligent Security API (Thermal) Developer Guide
--MIME_boundary
Content-Disposition: form-data; name="F4F665D6A18E41308CE9934DCDDD1111"; filename="TDA.jpg";
Content-Type: image/jpeg
Content-Length: 5798
Content-ID: TDA
B.13
JSON_EventNotificationAlert_temperatureIntervalMeasurementMsg
JSON message about details of interval temperature measurement alarm
Accept: text/html, application/xhtml+xml,
Accept-Language: en-US
Content-Type: multipart/form-data; boundary=MIME_boundary
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 10.10.36.29:8080
Content-Length: 9907
//In listening mode, the uploaded message contains Content-Length, and its value is the length of message and
pictures; in arming mode, the uploaded message does not contain Content-Length//
Connection: Keep-Alive
Cache-Control: no-cache
//Contents above are HTTP header contents, and below are detailed alarm information//
--MIME_boundary
Content-Disposition: form-data; name="temperatureIntervalMeasurement"
Content-Type: application/json
Content-Length: 9907 //JSON message length//
{
"ipAddress": "172.6.64.7",
/*required, string, IPv4 address of alarm device; the maximum length is 32 bytes*/
"ipv6Address": "",
/*optional, string, IPv6 address of alarm device; the maximum length is 128 bytes*/
"portNo": 80,
/*optional, integer32, port No. of alarm device*/
"protocol": "HTTP",
/*optional, string, "HTTP"-for device network SDK, "HTTPS", "EHome"-for ISUP SDK; the maximum length is 32 bytes*/
"macAddress": "01:17:24:45:D9:F4",
/*optional, string, MAC address; the maximum length is 32 bytes*/
"channelID": 1,
/*optional, integer32, No. of alarm triggered channel*/
"dateTime": "2004-05-03T17:30:08+08:00",
/*required, string, alarm triggered time (ISO 8601 format); the maximum length is 32 bytes*/
"activePostCount": 1,
129
Intelligent Security API (Thermal) Developer Guide
130
Intelligent Security API (Thermal) Developer Guide
"name": "",
/*optional, string, rule name*/
"type": "",
/*optional, string, rule type: "point", "line", "region"-area*/
"Point":{
/*optional, point coordiantes*/
"positionX":0.123,
/*required, float, X-coordiante, the value is normalized, range: [0,1]; the value should be accurate to three decimal
places; the reference origin is the upper left corner of image*/
"positionY":0.123
/*required, float, Y-coordiante, the value is normalized, range: [0,1]; the value should be accurate to three decimal
places; the reference origin is the upper left corner of image*/
},
"Line":[{
/*optional, line coordinates*/
"Point":{
/*optional, point coordiantes*/
"positionX":0.123,
/*required, float, X-coordiante, the value is normalized, range: [0,1]; the value should be accurate to three decimal
places; the reference origin is the upper left corner of image*/
"positionY":0.123
/*required, float, Y-coordiante, the value is normalized, range: [0,1]; the value should be accurate to three decimal
places; the reference origin is the upper left corner of image*/
}
}],
"Region":[{
/*optional, area coordinates*/
"Point":{
/*optional, point coordinates*/
"positionX":0.123,
/*required, float, X-coordiante, the value is normalized, range: [0,1]; the value should be accurate to three decimal
places; the reference origin is the upper left corner of image*/
"positionY":0.123
/*required, float, Y-coordiante, the value is normalized, range: [0,1]; the value should be accurate to three decimal
places; the reference origin is the upper left corner of image*/
}
}],
"alarmType": "",
/*optional, string, alarm type: "highestTemp"-the highest temperature, "lowestTemp"-the lowest temperature*/
"currTemperature": 35.0,
/*optional, float, current temperature, value range: [-20,550], unit: Celsius; the value should be accurate to one
decimal place*/
"CurrTemperaturePoint":{
/*optional, current temperature point coordiantes*/
"positionX":0.123,
/*required, float, X-coordiante, the value is normalized, range: [0,1]; the value should be accurate to three decimal
places; the reference origin is the upper left corner of image*/
"positionY":0.123
/*required, float, Y-coordiante, the value is normalized, range: [0,1]; the value should be accurate to three decimal
places; the reference origin is the upper left corner of image*/
},
"TemperatureInterval":{
131
Intelligent Security API (Thermal) Developer Guide
B.14 JSON_EventNotificationAlert_ThermalCalibrationFileException
JSON message about alarm details of thermography calibration file exception
{
"ipAddress": "172.6.64.7",
/*required, string, IPv4 address of alarm device; the maximum length is 32 bytes*/
"ipv6Address": "",
/*optional, string, IPv6 address of alarm device; the maximum length is 128 bytes*/
"portNo": 80,
/*optional, integer32, port No. of alarm device*/
"protocolType": "HTTP",
132
Intelligent Security API (Thermal) Developer Guide
/*optional, string, "HTTP"-for device network SDK, "HTTPS"; the maximum length is 32 bytes*/
"macAddress":"01:17:24:45:D9:F4",
/*optional, string, MAC address; the maximum length is 32 bytes*/
"channelID":1,
/*optional, integer32, No. of alarm triggered channel*/
"dateTime":"2004-05-03T17:30:08+08:00",
/*required, string, alarm triggered time (ISO 8601 format); the maximum length is 32 bytes*/
"activePostCount": 1,
/*required, integer32, uploaded times of one alarm*/
"eventType": "terminalExceptionStatus",
/*required, string, triggered event type, here it should be set to "thermalCalibrationFileException"-thermography
calibration file exception; the maximum length is 128 bytes*/
"eventState": "active",
/*required, string, event status: "active"-occured, "inactive"-unoccurred; the maximum length is 32 bytes*/
"eventDescription": "Thermal CalibrationFile Exception",
/*required, string, event description, the maximum length is 128 bytes*/
"deviceID": "test0123"
/*optional, device ID (PUID), which should be returned in ISUP alarm*/
}
B.15 JSON_FaceThermReportSearchCond
JSON message about search condition of face thermography statistical report
{
"reportType": "",
/*required, string, report type: "daily,weekly,monthly,yearly"*/
"startTime": "",
/*required, string, start time*/
"endTime": "",
/*optional, string, end time*/
"channel": ""
/*optional, array of strings, channel No., multiple channels can be separated by comma*/
}
B.16 JSON_FaceThermReportSearchResult
JSON message about search result of face thermography statistical report
{
"numOfMatches":,
/*required, int, the number of returned records*/
"matchList":[
{
"timeSpan":{
/*time span for daily report is one hour, e.g., from 2020-02-20T02:00:00+08:00 to 2020-02-20T03:00:00+08:00; for
weekly and monthly report is one day, e.g., from 2020-02-20T00:00:00+08:00 to 2020-02-21T00:00:00+08:00; for
annual report is one month, e.g., from 2020-02-00T00:00:00+08:00 to 2020-03-00T00:00:00+08:00*/
"startTime":"",
133
Intelligent Security API (Thermal) Developer Guide
B.17 JSON_fireDetection_AdvanceParam
JSON message about advanced parameters of fire detection
{
"AdvanceParam": {
"minPixel":
/*optional, int, the minimum pixel of fire detection, range: [1,2]*/
}
}
B.18 JSON_fireDetection_AdvanceParamCap
JSON message about capability of configuring advanced parameters of fire detection.
{
"AdvanceParamCap": {
"minPixel": {
/*optional, int, the minimum pixel of fire detection, range: [1,2]*/
"@min": 1,
"@max": 2
}
}
}
B.19 JSON_functionMode
functionMode message in JSON format
134
Intelligent Security API (Thermal) Developer Guide
{
"functionMode":""
/*required, string type, scene function mode of ship detection: shipFlowDetection-ship flow detection mode,
dredgerDetection-dredger detection mode*/
}
B.20 JSON_ResponseStatus
JSON message about response status
{
"requestURL":"",
/*optional, string, request URL*/
"statusCode": ,
/*optional, int, status code*/
"statusString":"",
/*optional, string, status description*/
"subStatusCode":"",
/*optional, string, sub status code*/
"errorCode": ,
/*required, int, error code, which corresponds to subStatusCode, this field is required when statusCode is not 1. The
returned value is the transformed decimal number*/
"errorMsg":"",
/*required, string, error details, this field is required when statusCode is not 1*/
"MErrCode": "0xFFFFFFFF",
/*optional, string, error code categorized by functional modules*/
"MErrDevSelfEx": "0xFFFFFFFF"
/*optional, string, extension of MErrCode. It is used to define the custom error code, which is categorized by
functional modules*/
}
Note
See Response Codes of Text Protocol for details about the status codes, sub status codes, error
codes, and error descriptions.
B.21 JSON_ShipDetectionCount
ShipDetectionCount message in JSON format
{
"ShipsDetectionCount":{
"sid":,
/*required, integer type, scene ID*/
"upShipsCount":,
/*required, integer type, number of upstream ships*/
"downShipsCount":,
/*required, integer type, number of downstream*/
135
Intelligent Security API (Thermal) Developer Guide
"leftShipsCount":,
/*required, integer type, number of ships on the left*/
"rightShipsCount":,
/*required, integer type, number of ships on the right*/
"totalCount":,
/*required, integet type,total number of ships*/
"beginTime":""
/*required, string type,ISO8601 time format, the maximum length is 32 bits*/
}
}
B.22 JSON_shipsDetectionCap
shipsDetectionCap message in JSON format
{
"shipsDetectionCap":{
"isSupportBasicConfig":,
/*required, boolean type, whether supports basic parameters configuration of ship detection*/
"isSupportAdvanceConfig":,
/*optional, boolean type, whether supports advanced parameters configuration of ship detection*/
"isSupportSceneConfig":,
/*optional, boolean type, whether supports scene parameters configuration of ship detection*/
"isSupportCaptureRatio":,
/*optional, boolean type, whether supports capture ratio configuration of ship detection*/
"isSupportFunctionMode":,
/*optional, boolean type, whether supports function mode configuration of ship detection*/
"isSupportShipsFlowDetectionRuleConfig":,
/*optional, boolean type, whether supports rule configuration of ship flow detection mode*/
"isSupportDredgerDetectionRuleConfig":,
/*optional, boolean type, whether supports rule configuration of dredger detection mode*/
"isSupportShipsDetectionCount":,
/*optional, boolean type, whether supports ship counting*/
"isSupportSceneCruise":,
/*optional, boolean type, whether supports scene auto-switch*/
"sceneRatioId":{
/*optional, string type, the ID of channel, which supports scene ratio*/
"@opt":""
},
"shipsDetectionSceneNum":
/*optional, integer type, the maximum number of supported scenes for ship detection*/
}
}
B.23 JSON_ShipsDetectionScene
ShipsDetectionScene message in JSON format
136
Intelligent Security API (Thermal) Developer Guide
{
"ShipsDetectionScene":{
"sid":,
/*required, integer type, scene ID*/
"sceneName":"",
/*optional, string type, scene name*/
"sceneRatio":,
/*optional, integer type, scene ratio (actual ratio of each channel). You can get the channel No. via URL: /ISAPI/
Thermal/shipsDetection/capabilities?format=json*/
"SceneNameOverlay":{
/*optional, scene name on-screen display*/
"enabled":,
/*required, enable scene name OSD*/
"normalizedScreenSize":{
/*normalized size*/
"normalizedScreenWidth":,
/*optional, float type, normalized width*/
"normalizedScreenHeight":
/*optional, float type, normalized height*/
},
"positionX":,
/*optional, integer type, original point X-coordinate*/
"positionY":
/*optional, integer type, original point Y-coordinate*/
}
}
}
B.24 JSON_ShipsDetectionSceneCap
ShipsDetectionSceneCap message in JSON format
{
"ShipsDetectionSceneCap":{
"sid":,
/*required, integer type, scene ID*/
"sceneName":"",
/*optional, string type, scene name*/
"sceneRatio":{
/*optional, integer type, scene ratio (actual ratio of each channel). You can get the channel No. via URL: /ISAPI/
Thermal/shipsDetection/capabilities?format=json*/
"@min":,
"@max":,
"def":,
},
"SceneNameOverlay":{
/*optional, scene name on-screen display*/
"enabled":{
/*required, enable scene name OSD*/
"@opt":"true,false"
137
Intelligent Security API (Thermal) Developer Guide
},
"normalizedScreenSize":{
/*normalized size*/
"normalizedScreenWidth":{
/*optional, float type, normalized width*/
"@min":0,
"@max":1,
},
"normalizedScreenHeight":{
/*optional, float type, normalized height*/
"@min":0,
"@max":1,
}
},
"positionX":{
/*optional, integer type, original point X-coordinate*/
"@min":,
"@max":,
},
"positionY":{
/*optional, integer type, original point Y-coordinate*/
"@min":,
"@max":,
}
}
}
}
B.25 JSON_ShipsDetectionSceneList
ShipsDetectionSceneList message in JSON format
{
"ShipsDetectionSceneList":[{
"ShipsDetectionScene":{
"sid":,
/*required, integer type, scene ID*/
"sceneName":"",
/*optional, string type, scene name*/
"sceneRatio":,
/*optional, integer type, scene ratio (actual ratio of each channel). You can get the channel No. via URL: /ISAPI/
Thermal/shipsDetection/capabilities?format=json*/
"SceneNameOverlay":{
/*optional, scene name on-screen display*/
"enabled":,
/*required, enable scene name OSD*/
"normalizedScreenSize":{
/*normalized size*/
"normalizedScreenWidth":,
/*optional, float type, normalized width*/
138
Intelligent Security API (Thermal) Developer Guide
"normalizedScreenHeight":
/*optional, float type, normalized height*/
},
"positionX":,
/*optional, integer type, original point X-coordinate*/
"positionY":
/*optional, integer type, original point Y-coordinate*/
}
}
}
}]
}
B.26 JSON_ShipsDetectionCaptureRatio
ShipsDetectionCaptureRatio message in JSON format
{
"ShipsDetectionCaptureRatio":{
"centerCaptureEnabled":,
/*required, boolean type, enable center capture mode*/
"captureRatio":
/*optional, integer type, capture ratio*/
}
}
B.27 JSON_ShipsDetectionCaptureRatioCap
ShipsDetectionCaptureRatioCap message in JSON format
{
"ShipsDetectionCaptureRatioCap":{
"centerCaptureEnabled":"true,false",
/*required, boolean type, enable center capture mode*/
"captureRatio":{
/*optional, integer type, capture ratio*/
"@min":1,
"@max":32
}
}
}
B.28 JSON_ShipsDetectionTraceListCap
ShipsDetectionTraceListCap message in JSON format
139
Intelligent Security API (Thermal) Developer Guide
{
"ShipsDetectionTraceListCap":{
"maxSize":"",
/*required, integer type, the maximum number of supported scenes*/
"ShipsDetectionTraceCap":{
"functionMode":{
/*optional, string type, supported function mode*/
"@opt":"shipFlowDetection"
},
"dwelltime":{
/*optional, integer type, scene dwell time, ranges from 30s to 3600s*/
"@min":30,
"@max":3600
},
"overStayingAlarmTime":{
/*optional, integer type, overstay alarm time, ranges from 60s to 3600s. The scene dwell time should be no less than
overstay alarm time*/
"@min":60,
"@max":3600
},
"SceneNameOverlay":{
/*optional, scene name OSD*/
"enabled":{
/*required, enable scene name OSD*/
"opt":"true,false"
},
"normalizedScreenSize":{
/*normalized size*/
"normalizedScreenWidth":{
/*optional, integer type, normalized width*/
"@min":0,
"@max":1
},
"normalizedScreenHeight":{
/*optional, integer type, normalized height*/
"@min":0,
"@max":1
}
},
"positionX":{
/*optional, integer type, original point X-coordinate*/
"@min":,
"@max":
},
"positionY":{
/*optional, integer type, original point Y-coordiante*/
"@min":,
"@max":
}
}
}
140
Intelligent Security API (Thermal) Developer Guide
}
}
B.29 JSON_ShipsDetectionSceneTraceList
ShipsDetectionSceneTraceList message in JSON format
{
"ShipsDetectionSceneTraceList":[{
"ShipsDetectionSceneTrace":{
"sid":,
/*required, integer type, scene ID*/
"sceneName":"",
*required, string type, scene name*/
"patrolId":,
/*optional, integer type, patrol sequence ID, it is the scene serial number in the patrol*/
"functionMode":"",
/*optional, string type, function mode: shipFlowDetection-ship flow detection mode, dredgerDetection-dredger
detection mode*/
"dwelltime":,
/*optional, integer type, scene dwell time, ranges from 30s to 3600s*/
"overStayingAlarmTime":,
/*optional, integer type, ranges from 60s to 3600s. The scene dwell time should be no less than overstay alarm time*/
"SceneNameOverlay":{
/*optional, scene name OSD*/
"enabled":,
/*required, enable scene name OSD*/
"ScreenSize":{
/*normalized size*/
"ScreenWidth":1,
/*optional, integer type, normalized width*/
"ScreenHeight":1
/*optional, integer type, normalized height*/
},
"positionX":1,
/*optional, integer type, original point X-coordinate*/
"positionY":1
/*optional, integer type, original point Y-coordiante*/
}
}
}]
}
B.30 JSON_ShipFlowDetectionRuleListCap
ShipFlowDetectionRuleListCap message in JSON format
{
"ShipFlowDetectionRuleListCap":{
141
Intelligent Security API (Thermal) Developer Guide
"maxSize":5,
/*required, integer type, the maximum number of supported ship flow detection rules*/
"ShipFlowDetectionRuleCap":{
"enabled":{
/*required, boolean type, enable ship flow detection rule*/
"@opt":"true,false"
},
"regionEnOrExAlarmEnabled":{
/*optional, boolean type, enable alarm of region entrance or region exit*/
"@opt":"true,false"
},
"RegionCoordinatesList":{
/*optional, list of detection region coordinates*/
"maxSize":5,
/*required, integer type, the maximum number of supported regions*/
"positionX":{
/*required, integer type, X-coordinate*/
"@min":0,
"@max":1000
},
"positionY":{
/*required, integer type, Y-coordinate*/
"@min":0,
"@max":1000
}
},
"TriggerLineList":{
"maxSize":5,
/*required, integer type, the number of supported trigger lines*/
"enabled":{
/*required, boolean type, enable trigger line*/
"@opt":"true,false"
},
"MinimumTargetSize":{
/*required, the minimum target size*/
"width":{
/*required, integer type, width, ranges from 0 to 100, the value is 52 by default*/
"@min":0,
"@max":100,
"@def":52
},
"height":{
/*required, integer type, height, ranges from 0 to 100, the value is 35 by default*/
"@min":0,
"@max":100,
"@def":35
},
},
"TriggerLineCoordinatesList":{
"positionX":{
/*required, integer type, X-coordinate*/
"@min":0,
142
Intelligent Security API (Thermal) Developer Guide
"@max":1000
},
"positionY":{
/*required, integer type, Y--coordinate*/
"@min":0,
"@max":1000
}
}
}
}
}
}
B.31 JSON_ShipFlowDetectionRuleList
ShipFlowDetectionRuleList message in JSON format
{
"ShipFlowDetectionRuleList":[
{
"ShipFlowDetectionRule":{
"id":,
/*required, integer type, rule ID*/
"enabled":,
/*required, boolean type, enable the rule*/
"regionEnOrExAlarmEnabled":,
/*optional, boolean type, enable alarm of region entrance or region exit*/
"RegionCoordinatesList":[
{
/*optional, list of detection region coordinates*/
"positionX":,
/*required, integer type, X-coordiante*/
"positionY":
/*required, integer type, Y-coordinate*/
}
],
"TriggerLineList":[
{
"id":,
/*required, integer type, trigger line ID*/
"enabled":,
/*required, boolean type, enable trigger line*/
"MinimumTargetSize":{
/*required, the minimum target size*/
"width":,
/*required, integer type, width, ranges from 0 to 100, the value is 52 by default*/
"height":
/*required, integer type, height, ranges from 0 to 100, the value is 35 by default*/
},
"TriggerLineCoordinatesList":[
143
Intelligent Security API (Thermal) Developer Guide
{
"positionX":,
/*required, integer type, X-coordinate*/
"positionY":
/*required, integer type, Y-coordinate*/
}
]
}
]
}
}
]
}
B.32 JSON_ShipFlowDetectionRule
ShipFlowDetectionRule message in JSON format
{
"ShipFlowDetectionRule":{
"id":,
/*required, integer type, rule ID*/
"enabled":,
/*required, boolean type, enable the rule*/
"regionEnOrExAlarmEnabled":,
/*optional, boolean type, enable alarm of region entrance or region exit*/
"RegionCoordinatesList":[
{
/*optional, list of detection region coordinates*/
"positionX":,
/*required, integer type, X-coordiante*/
"positionY":
/*required, integer type, Y-coordinate*/
}
],
"TriggerLineList":[
{
"id":,
/*required, integer type, trigger line ID*/
"enabled":,
/*required, boolean type, enable trigger line*/
"MinimumTargetSize":{
/*required, the minimum target size*/
"width":,
/*required, integer type, width, ranges from 0 to 100, the value is 52 by default*/
"height":
/*required, integer type, height, ranges from 0 to 100, the value is 35 by default*/
},
"TriggerLineCoordinatesList":[
{
144
Intelligent Security API (Thermal) Developer Guide
"positionX":,
/*required, integer type, X-coordinate*/
"positionY":
/*required, integer type, Y-coordinate*/
}
]
}
]
}
}
B.33 JSON_ThermometryUploadList
JSON message about real-time temperature measurement data of all rules
--boundary
Content-Type: application/json; charset="UTF-8"
Content-Length:
{
"ThermometryUploadList":
{
"ThermometryUpload":
/*real-time temperature measurement data, see JSON_ThermometryUpload for details*/
}
}
--boundary
See Also
JSON_ThermometryUpload
B.34 JSON_TemperatureCorrect
JSON message about temperature calibration configuration parameters
{
"TemperatureCorrect": {
"enabled": ,
/*optional, boolean, whether to enable the function*/
"streamOverlay": ,
/*optional, string, whether to display calibrated temperature on video*/
"correctEnabled": ,
/*optional, string, whether to enable temperature calibration*/
"emissivity": ,
/*optional, float, emissivity, range: [0.01,1.00]*/
"distance": ,
145
Intelligent Security API (Thermal) Developer Guide
B.35 JSON_TemperatureCorrectCap
JSON message about temperature calibration capability
{
"TemperatureCorrectCap":{
"enabled":{
/*optional, boolean, whether to enable the function*/
"@opt":[true,false]
},
"streamOverlay":{
/*optional, string, whether to display calibrated temperature on video*/
"@opt":[true,false]
},
"correctEnabled":{
/*optional, string, whether to enable temperature calibration*/
"@opt":[true,false]
},
"emissivity":{
/*optional, float, emissivity, range: [0.01,1.00]*/
"@min":0.01,
"@max":1
},
"distance":{
/*optional, float, distance: range: [0.3,2]m*/
"@min":0.3,
"@max":2
},
"temperature":{
/*optional, float, temperature, range: [30.0,50.0]°C*/
"@min":30,
"@max":50
},
146
Intelligent Security API (Thermal) Developer Guide
"CentrePoint":{
/*optional, normalized coordinates of black body center point, from 0 to 1000*/
"CalibratingCoordinates":{
"positionX": ,
/*required, int, x-coordinate*/
"positionY":
/*required, int, y-coordinate*/
}
},
"correctTemperature":{
/*optional, float, temperature calibration coefficient, range: [-99.0,-99.0]°C*/
"@min":-99,
"@max":99
}
}
}
B.36 JSON_TemperatureIntervalMeasurementAlarmRule
JSON message about interval temperature measurement rule
{
"TemperatureIntervalMeasurementAlarmRule":{
"RulesList":[{
"Rule":{
"id": 1,
/*required, int, rule ID*/
"enabled": true,
/*optional, boolean, whether to enable*/
"alarmType": "",
/*optional, string, alarm type: "highestTemp"-the highest temperature, "lowestTemp"-the lowest temperature*/
"TemperatureIntervalList":[{
/*temperature interval list; up to four intervals are supported*/
"TemperatureInterval":{
"id": 1,
/*required, int, No.*/
"enabled": true,
/*optional, boolean, whether to enable*/
"name": "",
/*optional, string, interval name*/
"minTemperature": 35.0,
/*optional, float, the minimum temperature, range: [-20,550], unit: Celsius; the value should be accurate to one
decimal place*/
"maxTemperature": 37.0,
/*optional, float, the maximum temperature, range: [-20,550], unit: Celsius; the value should be accurate to one
decimal place*/
"alarmColor":{
/*optional, alarm color of temperature interval*/
"R": 1,
/*optional, int*/
147
Intelligent Security API (Thermal) Developer Guide
"G": 1,
/*optional, int*/
"B": 1
/*optional, int*/
},
"AlarmOutputIOPortList":[{
/*optional, alarm output port list*/
"OutputIOPort":{
"portID": 1,
/*required, int, port No.*/
"enabled": true
/*required, boolean, whether to enable*/
}
}]
}
}]
}
}]
}
}
B.37 JSON_TemperatureIntervalMeasurementAlarmRuleCap
JSON message about configuration capability of interval temperature measurement rule
{
"TemperatureIntervalMeasurementAlarmRuleCap":{
"RulesList":{
"maxSize": 21,
/*required, int, the maximum number of rules*/
"Rule":{
"id": {
/*optional, int, rule ID*/
"@min": 1,
"@max": 21
},
"enabled": {
/*optional, boolean, whether to enable*/
"@opt":[true,false]
},
"alarmType": {
/*optional, string, alarm type: "highestTemp"-the highest temperature, "lowestTemp"-the lowest temperature*/
"@opt":["highestTemp","lowestTemp"],
"#text":"highestTemp"
},
"TemperatureIntervalList":{
/*temperature interval list; up to four intervals are supported*/
"maxSize": 4,
/*required, int, the maximum number of intervals*/
"TemperatureInterval":{
148
Intelligent Security API (Thermal) Developer Guide
"id": {
/*optional, int, No.*/
"@min": 1,
"@max": 4
},
"enabled": {
/*optional, boolean, whether to enable*/
"@opt":[true,false]
},
"name": {
/*optional, string, interval name*/
"@min": 1,
"@max": 32
},
"minTemperature": {
/*optional, float, the minimum temperature, range: [-20,550], unit: Celsius; the value should be accurate to one
decimal place*/
"@min": -20,
"@max": 550
},
"maxTemperature": {
/*optional, float, the maximum temperature, range: [-20,550], unit: Celsius; the value should be accurate to one
decimal place*/
"@min": -20,
"@max": 550
},
"alarmColor": {
/*optional, alarm color of temperature interval*/
"R": 1,
/*optional, int*/
"G": 1,
/*optional, int*/
"B": 1
/*optional, int*/
},
"AlarmOutputIOPortList":{
/*optional, alarm output port list*/
"maxSize": 2,
/*required, int, the maximum number of ports*/
"OutputIOPort":{
/*optional, int, port No.*/
"portID": {
"@min": 1,
"@max": 2
},
"enabled": {
/*required, boolean, whether to enable*/
"@opt":[true,false]
}
}
}
}
149
Intelligent Security API (Thermal) Developer Guide
}
}
}
}
}
B.38 JSON_thermometryOffLineCapture
thermometryOffLineCapture message in JSON format
{
"thermometryOffLineCapture":{
"channel": ,
/*required, integer32, channel ID*/
"thermometryOffLineCaptureDataLen": ,
/*optional, integer32, the size of offline captured picture*/
}
}
B.39 JSON_ThermometryRulesTemperatureInfo
ThermometryRulesTemperatureInfo message in JSON format
{
"ThermometryRulesTemperatureInfo": {
"id": "",
/*required, integer32, rule ID*/
"maxTemperature": "",
/*required, float, the maximum temperature (corrects to one decimal place, unit: degree centigrade)*/
"minTemperature": "",
/*required, float,the minimum temperature (corrects to one decimal place, unit: degree centigrade)*/
"averageTemperature": "",
/*required, float,the average temperature (corrects to one decimal place, unit: degree centigrade)*/
"MaxTemperaturePoint": {
"positionX": "",
/*required, float,the coordinates of max. temperature position, normalized value, ranges from 0 to 1, accuracy: 0.001,
reference point refers to top left corner of picture*/
"positionY": ""
/*required, float, the coordinates of max. temperature position, normalized value, ranges from 0 to 1, accuracy: 0.001,
reference point refers to top left corner of picture*/
},
"MinTemperaturePoint":{
"positionX": "",
/*required, float, the coordinates of min. temperature position, normalized value, ranges from 0 to 1, accuracy: 0.001,
reference point refers to top left corner of picture*/
"positionY": ""
/*required, float, the coordinates of min. temperature position, normalized value, ranges from 0 to 1, accuracy: 0.001,
reference point refers to top left corner of picture*/
}
150
Intelligent Security API (Thermal) Developer Guide
"isFreezedata": ""
/*optional, boolean, whether freezes data*/
}
}
B.40 JSON_ThermometryRulesTemperatureInfoList
ThermometryRulesTemperatureInfoList message in JSON format
{
"ThermometryRulesTemperatureInfoList":{
"ThermometryRulesTemperatureInfo": [{
"id": "",
/*required, integer32, rule ID*/
"maxTemperature": "",
/*required, float, the maximum temperature (corrects to one decimal place, unit: degree centigrade)*/
"minTemperature": "",
/*required, float, the minimum temperature (corrects to one decimal place, unit: degree centigrade)*/
"averageTemperature": "",
/*required, float, the average temperature (corrects to one decimal place, unit: degree centigrade)*/
"MaxTemperaturePoint": {
"positionX": "",
/*required, float, the coordinates of max. temperature position, normalized value, ranges from 0 to 1, accuracy: 0.001,
reference point refers to top left corner of picture*/
"positionY": ""
/*required, float, the coordinates of max. temperature position, normalized value, ranges from 0 to 1, accuracy: 0.001,
reference point refers to top left corner of picture*/
},
"MinTemperaturePoint":{
"positionX": "",
/* required, float, the coordinates of min. temperature position, normalized value, ranges from 0 to 1, accuracy:
0.001, reference point refers to top left corner of picture*/
"positionY": ""
/* required, float, the coordinates of min. temperature position, normalized value, ranges from 0 to 1, accuracy:
0.001, reference point refers to top left corner of picture*/
}
"isFreezedata": ""
/*optional, boolean, whether freezes data*/
}]
}
}
B.41 JSON_ThermometryRulesTemperatureInfoListCap
ThermometryRulesTemperatureInfoListCap message in JSON format
{
"ThermometryRulesTemperatureInfoListCap":{
"ThermometryRulesTemperatureInfoList":{
151
Intelligent Security API (Thermal) Developer Guide
"ThermometryRulesTemperatureInfo": {
"id":{
/*required, integer32, rule ID*/
"@min": ,
"@max":
},
"maxTemperature":{
/*required, float, the maximum temperature (corrects to one decimal place, unit: degree centigrade)*/
"@min": ,
"@max":
},
"minTemperature":{
/*required, float, the minimum temperature (corrects to one decimal place, unit: degree centigrade)*/
"@min": ,
"@max":
},
"averageTemperature":{
/*required, float, the average temperature (corrects to one decimal place, unit: degree centigrade)*/
"@min": ,
"@max":
},
"MaxTemperaturePoint":{
"positionX":{
/*required, float, the coordinates of max. temperature position, normalized value, ranges from 0 to 1, accuracy: 0.001,
reference point refers to top left corner of picture*/
"@min": ,
"@max":
},
"positionY":{
/*required, float, the coordinates of max. temperature position, normalized value, ranges from 0 to 1, accuracy: 0.001,
reference point refers to top left corner of picture*/
"@min": ,
"@max":
},
},
"MinTemperaturePoint":{
"positionX":{
/* required, float, the coordinates of min. temperature position, normalized value, ranges from 0 to 1, accuracy:
0.001, reference point refers to top left corner of picture*/
"@min": ,
"@max":
},
"positionY":{
/* required, float, the coordinates of max. temperature position, normalized value, ranges from 0 to 1, accuracy:
0.001, reference point refers to top left corner of picture*/
"@min": ,
"@max":
},
},
"isFreezedata": ""
/*optional, boolean, whether freezes data*/
}
152
Intelligent Security API (Thermal) Developer Guide
}
}
}
B.42 JSON_ThermometryUpload
JSON message about real-time temperature measurement data
Content-Type: multipart/form-data; boundary=boundary
--boundary
Content-Type: application/json; charset="UTF-8"
Content-Length:
{
"ThermometryUpload":{
"relativeTime": ,
/*required,integer32,relative time*/
"absTime": ,
/*required,integer32,absolute time*/
"ruleName": "",
/*required,string,rule name*/
"ruleID": ,
/*required,integer32,rule ID, ranges from 1 to 21*/
"ruleCalibType": ,
/*required,integer32,rule calibration type: 0-point, 1-frame, 2-line*/
"presetNo": ,
/*required,integer32,preset number*/
"PointThermCfg":{
/*optional, point thermography information, it is valid when ruleCalibType values "0"*/
"temperature":
/*required,float, current temperature, corrects to one decimal place*/
"Point": {
/*optional, coordinates of point thermography*/
"positionX":,
/*required,float,X-coordinate, normalized value, ranges from 0 to 1, accuracy is 0.001, the origin of coordinates is
upper-left corner*/
"positionY":
/*required,float,Y-coordinate, normalized value, ranges from 0 to 1, accuracy is 0.001, the origin of coordinates is
upper-left corner*/
}
}
"LinePolygonThermCfg":{
/*optional, frame/line thermography, it is valid when ruleCalibType values "1" or "2"*/
"MaxTemperature":
/*required,float,max. temperature, corrects to one decimal place*/
"MinTemperature":
/*required,float,min. temperature, corrects to one decimal place*/
"AverageTemperature":
/*required,float,average temperature, corrects to one decimal place*/
153
Intelligent Security API (Thermal) Developer Guide
"TemperatureDiff":
/*required,float,temperature difference, corrects to one decimal place*/
"Region":[{
/*optional, region coordinates*/
"Point":{
/*optional, point coordinate*/
"positionX":,
/*required,float,X-coordinate, normalized value, ranges from 0 to 1, accuracy is 0.001, the origin of coordinates is
upper-left corner*/
"positionY":
/*required,float,Y-coordinate, normalized value, ranges from 0 to 1, accuracy is 0.001, the origin of coordinates is
upper-left corner*/
}
}]
}
"thermometryUnit": ,
/*required,integer32,temperature measurement unit: 0-Celsius (°C), 1-Fahrenheit (°F), 2-Kelvin (K).*/
"dataType": ,
/*required,integer32,data status: 0-measuring, 1-start, 2-end*/
"centerPointTemperature":
/*optional, float,central point temperature, it is not returned if not supported, corrects to one decimal place*/
"highestPointTemperature":
/*optional, float,temperature of highest point, it is not returned if not supported, corrects to one decimal place*/
"lowestPointTemperature":
/*optional, float,temperature of lowest point, it is not returned if not supported, corrects to one decimal place*/
"isFreezedata": ,
/*required,boolean, whether freezes data*/
"HighestPoint":{
/*optional, the coordinates of maximum temperature position, it is valid when ruleCalibType values "1" or "2"*/
"positionX":,
/*required, float,X-coordinate, normalized value, ranges from 0 to 1, accuracy is 0.001, the origin of coordinates is
upper-left corner*/
"positionY":
/*required, float,Y-coordinate, normalized value, ranges from 0 to 1, accuracy is 0.001, the origin of coordinates is
upper-left corner*/
},
"LowestPoint":{
/*optional, the coordinates of minimum temperature position, it is valid when ruleCalibType values "1" or "2"*/
"positionX":,
/*required, float, X-coordinate, normalized value, ranges from 0 to 1, accuracy is 0.001, the origin of coordinates is
upper-left corner*/
"positionY":
/*required, float, Y-coordinate, normalized value, ranges from 0 to 1, accuracy is 0.001, the origin of coordinates is
upper-left corner*/
},
"faceSnapThermometryEnabled": ,
/*optional, boolean, whether to enable uploading alarm with temperature information*/
"faceRect": {
/*optional, face thumbnail rectangle*/
"height": ,
/*optional, height, float*/
"width": ,
154
Intelligent Security API (Thermal) Developer Guide
B.43 JSON_ThermometryUploadDescription
JSON message about search condition of all rules
{
"ThermometryUploadDescription":{
"mode": "test",
/*optional, string, uploading mode: "timing" (scheduled), "temperatureDifferenceComparison" (temperature
difference)*/
"interval": 1,
/*optional, integer32, interval; unit: second*/
"temperatureDiff": 1.0
/*optional, float, temperature difference*/
}
}
B.44 XML_BodyTemperatureCompensation
XML message about body temperature compensation parameters
<?xml version="1.0" encoding="utf-8"?>
<BodyTemperatureCompensation version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type><!--required, xs:string, compensation type: "manual"-manual, "auto"-automatic--></type>
<ManualParam><!--dependent,type="manual"-->
<compensationValue><!--optional, xs:float, compensation value, range: [-10.0 10.0], unit: celsius degree--></
compensationValue>
<smartCorrection><!--optional, xs:float, manual calibration, the range varies according to device type--></
smartCorrection>
<environmentalTemperature>
<!--dependent, xs:float, environment temperature, it is configurable when the value of type is "manual" and read
only when the value is of type is "auto"-->
</environmentalTemperature>
<temperatureCompensation><!--optional, xs:boolean, whether to enable body temperature compensation--></
temperatureCompensation>
<environmentalTemperatureMode>
<!--optional, xs:string, environment temperature mode: "auto"-automatic, "manual"-manual, "precision"-precise-->
</environmentalTemperatureMode>
</ManualParam>
<AutoParam><!--dependent, type="auto"-->
155
Intelligent Security API (Thermal) Developer Guide
<compensationValue><!--optional, ro, xs:float, compensation value, range: [-10.0 10.0], unit: celsius degree--></
compensationValue>
<smartCorrection><!--optional, xs:float, smart calibration, range: [-10.0 10.0], unit: celsius degree--></
smartCorrection>
<environmentalTemperature><!--optional, ro, xs:float, environment temperature--></environmentalTemperature>
<temperatureCompensation><!--optional, xs:boolean, whether to enable body temperature compensation--></
temperatureCompensation>
<environmentalTemperatureMode>
<!--optional, xs:string, environment temperature mode: "auto"-automatic, "manual"-manual, "precision"-precise-->
</environmentalTemperatureMode>
</AutoParam>
</BodyTemperatureCompensation>
B.45 XML_BodyTemperatureCompensationCap
XML message about capability of body temperature compensation
<?xml version="1.0" encoding="utf-8"?>
<BodyTemperatureCompensationCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type opt="manual, auto"><!--required, xs:string, compensation type: manual, automatic--></type>
<ManualParam><!--dependent, type="manual"-->
<compensationValue min="-10.0" max="10.0"><!--optional, xs:float, compensation value, range: [-10.0 10.0], unit:
celsius degree--></compensationValue>
<smartCorrection min="" max=""><!--optional, xs:float, manual calibration, the range varies according to device
type--></smartCorrection>
<environmentalTemperature min="" max="">
<!--dependent, xs:float, environment temperature, it is configurable when the value of type is "manual" and read
only when the value is of type is "auto"-->
</environmentalTemperature>
<temperatureCompensation opt="true,false"><!--optional, xs:boolean, whether to enable body temperature
compensation--></temperatureCompensation>
<environmentalTemperatureMode opt="auto,manual,precision">
<!--optional,xs:string, environment temperature mode: "auto"-automatic, "manual"-manual, "precision"-precise-->
</environmentalTemperatureMode>
</ManualParam>
<AutoParam><!--dep type="auto"-->
<compensationValue min="-10.0" max="10.0"><!--optional, ro, xs:float, compensation value, range: [-10.0 10.0],
unit: celsius degree"--></compensationValue>
<smartCorrection min="-10.0" max="10.0"><!--optional, xs:float, smart calibration, range: [-10.0 10.0], unit: celsius
degree--></smartCorrection>
<environmentalTemperature><!--optional, ro, xs:float, environment temperature--></environmentalTemperature>
<temperatureCompensation opt="true,false"><!--optional, xs:boolean, whether to enable body temperature
compensation--></temperatureCompensation>
<environmentalTemperatureMode opt="auto,manual,precision">
<!--optional, xs:string, environment temperature mode: "auto"-automatic, "manual"-manual, "precision"-precise-->
</environmentalTemperatureMode>
</AutoParam>
</BodyTemperatureCompensationCap>
156
Intelligent Security API (Thermal) Developer Guide
B.46 XML_BurningPrevention
BurningPrevention message in XML format.
<BurningPrevention version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean "true,false"--></enabled>
<mode><!--opt, xs:string, mode: manual, automatic--></mode>
<closedDuration><!--opt, xs:integer, close duration, unit: second--></closedDuration>
<shutterStatus><!--opt, xs:string, shutter status: closed, open--></shutterStatus>
<protectionMode>
<!--opt, xs:string, protection mode: lensMovement-lens movement, shutterClose-close shutter-->
</protectionMode>
<burningRecoveryEnabled>
<!--opt, xs:boolean, enable burning recovery or not-->
</burningRecoveryEnabled>
<movementDuration>
<!--dep, xs:integer, duration of lens movement for burning protection, unit: minute-->
</movementDuration>
</BurningPrevention>
Remarks
• When protectionMode is "lensMovement", the node movementDurationis valid.
• When protectionMode is "shutterClose", the node closedDuration, shutterStatus, and
burningRecoveryEnabled are valid.
• When mode is "automatic", the shutter is open, and cannot be configured.
B.47 XML_BurningPreventionCap
BurningPreventionCap message in XML format
<BurningPreventionCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="rue,false"><!--req, xs:boolean--></enabled>
<mode opt="manual,automatic"><!--opt, xs:string, mode: manual, automatic--></mode>
<closedDuration min="5" max="60" default="10">
<!--opt, xs:integer, closed status duration, unit: second-->
</closedDuration>
<shutterStatus opt="closed,open"><!--opt, xs:string, shutter status: closed, open--></shutterStatus>
<protectionMode opt="lensMovement,shutterClose">
<!--opt, xs:string, protection mode: lensMovement-lens movement, shutterClose-close shutter-->
</protectionMode>
<burningRecoveryEnabled opt="true,false">
<!--opt, xs:boolean, enable burning recovery or not-->
</burningRecoveryEnabled>
<movementDuration min="" max="" default="">
<!-- opt, xs:integer, duration of lens movement for burning protection, unit: minute-->
</movementDuration>
</ BurningPreventionCap>
157
Intelligent Security API (Thermal) Developer Guide
Remarks
• When protectionMode is "lensMovement", the node movementDuration is valid.
• When protectionMode is "shutterClose", the node closedDuration, shutterStatus, and
burningRecoveryEnabled are valid.
• When mode is "automatic", the shutter is open, and cannot be configured.
B.48 XML_CalibrationCoefficientDescription
CalibrationCoefficientDescription message in XML format
<CalibrationCoefficientDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enviroTemperature><!--opt, xs:float,environment temperature, ranges from -273.3 to 1000.0--></
enviroTemperature>
</CalibrationCoefficientDescription>
B.49 XML_CalibrationCoefficientResult
CalibrationCoefficientResult in XML format
<CalibrationCoefficientResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<calibrationCoefficient><!--dep, xs:float, calibration coefficient, ranges from 0 to 30, corrects to two decimal places--
></calibrationCoefficient>
</CalibrationCoefficientResult>
B.50 XML_Cap_DPC
DPC capability message in XML format
<DPC version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode opt="correction,moveup,movedown,moveleft,moveright,cancelCorrect,allCorrection,save, start, exit,
display">
<!--req, xs:string, it is invalid when dpcMode values "auto"-->
</mode>
<dpcMode opt="manual,auto" def="auto">
<!--opt, xs:string, defective pixel correction mode-->
</dpcMode>
<normalizedScreenSize><!--opt, ro-->
<normalizedScreenWidth><!--req, ro,xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--req, ro,xs:integer--></normalizedScreenHeight>
</normalizedScreenSize>
<Point><!--opt-->
<positionX><!--req,xs:integer;coordinate--></positionX>
<positionY><!--req,xs:integer;coordinate--></positionY>
</Point>
</DPC>
158
Intelligent Security API (Thermal) Developer Guide
B.51 XML_Cap_FaceThermometry
XML message about temperature screening configuration capability
<FaceThermometry version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<faceThermometryEnabled opt="true,false">
<!--required, xs:boolean, whether enables temperature screening: true-yes, false-no-->
</faceThermometryEnabled>
<thermometrShowEnabled opt="true,false">
<!--required, xs:boolean, whether enables temperature OSD: true-yes, false-no-->
</thermometrShowEnabled>
<alarmEnabled opt="true,false">
<!--required, xs:boolean, whether enables alarm subscription: true-yes, false-no-->
</alarmEnabled>
<alarmIntervalTime min="0.5" max="600" def="1">
<!--dependent,endent, xs:float, unit:s, alarm interval time, which is valid in non-card mode, the interval is between
0.5s and 60s, corrects to one decimal place. The default time interval is 1 second-->
</alarmIntervalTime>
<normalizedScreenSize>
<!--required, read-only; it is the multiples of normalized coordinates returned by device-->
<normalizedScreenWidth>
<!--required, read-only, xs:integer, normalized screen width-->
</normalizedScreenWidth>
<normalizedScreenHeight>
<!--required, read-only, xs:integer, normalized screen height-->
</normalizedScreenHeight>
</normalizedScreenSize>
<FaceThermometryRegionList size="1">
<!--optional, temperature screening rule list-->
<ThermometryRegion>
<!--optional, temperature screening rule-->
<id min="1" max="40">
<!--required, xs:integer, rule ID-->
</id>
<name min="0" max="32">
<!--optional, xs:string, rule name-->
</name>
<sensitivity min="1" max="5" def="3">
<!--required, xs:integer, sensitivity, normalized value, ranges from 1 to 5, default value:3-->
</sensitivity>
<PupilParam>
<!--required, pupil parameters-->
<pupilDistance min="42" max="1000">
<!--required, xs:integer, pupil distance, normalized value, range: [0,1000], valid range: [42,1000]-->
</pupilDistance>
<Region>
<!--required, pupil region coordinates, normalized value, range: [0,1000],-->
<RegionCoordinatesList size="">
<!--required-->
<RegionCoordinates>
<!--optional, pupil region coordinates-->
159
Intelligent Security API (Thermal) Developer Guide
<positionX>
<!--required, xs:integer, X-coordinate-->
</positionX>
<positionY>
<!--required, xs:integer, Y-coordinate-->
</positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</PupilParam>
<MaxPupilParam><!--optional, the maximum pupil distance-->
<pupilDistance min="10" max="625">
<!--optional, xs:integer, pupil distance range, normalized value, range: [0,1000], valid range: [10,625], default
value: 625-->
</pupilDistance>
<Region>
<RegionCoordinatesList size=""><!--req-->
<RegionCoordinates><!--list, pupil region coordinates-->
<positionX><!--required, xs:integer, coordinate, X-coordinate--></positionX>
<positionY><!--required, xs:integer, coordinate, Y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</MaxPupilParam>
<targetSpeed min="1" max="5" def="3">
<!--required, xs:integer, target generating speed, ranges from 1 to 5, and default value is 3-->
</targetSpeed>
<alarmTemperature min="0.0" max="60.0">
<!--optional, xs:float, alarm triggered temperature, unit:℃, ranges from -20.0 to 60.0, and corrects to one decimal
place-->
</alarmTemperature>
<type opt="region">
<!--required, xs:string, rule type-->
</type>
<Region>
<!--required, rule region coordinates-->
<RegionCoordinatesList size="">
<!--dependent,-->
<RegionCoordinates>
<!--opt-->
<positionX>
<!--required, xs:integer;coordinate-->
</positionX>
<positionY>
<!--required, xs:integer;coordinate-->
</positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
<RegionBoundary>
<RegionCoordinatesList size="">
<!--dependent-->
160
Intelligent Security API (Thermal) Developer Guide
<RegionCoordinates>
<!--opt-->
<positionX>
<!--required, xs:integer;coordinate-->
</positionX>
<positionY>
<!--required, xs:integer;coordinate-->
</positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</RegionBoundary>
<alarmRule opt="highestGreater,highestLess">
<!--optional, xs:string, alarm rule: highestGreater-Max. temperature higher than, highestLess-Max. temperature
lower than-->
</alarmRule>
<alert min="-100.0" max="1000.0"><!--optional, xs:float, pre-alarm threshold, unit: Celsius, corrects to one
decimal place-->
</alert>
</ThermometryRegion>
</FaceThermometryRegionList>
<isSupportFaceThermDetectionInfo>
<!--optional, xs:boolean, whether supports getting temperature screening result, corresponds to URL of /ISAPI/
Thermal/channels/<ID>/faceThermometry/regions/<ID>/detectionInfo-->
</isSupportFaceThermDetectionInfo>
<imageQuality opt="high,medium,low">
<!--optional, xs:string-->
</imageQuality>
<mode opt="barrierPassing, targeting">
<!--optional, xs:string, temperature screening mode: "barrierPassing"-barrier passing (transmit the custom in
airport), "targeting"-targeting (detect the person with high temperature)-->
</mode>
<faceSnapUploadEnabled opt="true,false">
<!--optional, xs:boolean, whether to enable uploading captured face picture: true-enable, false-disable-->
</faceSnapUploadEnabled>
<maxTemperatureCoordinatesEnabled>
<!--optional, xs:boolean, whether to enable displaying the maximum temperature position: true-enable, false-
disable-->
</maxTemperatureCoordinatesEnabled>
<faceRectShowEnabled opt="true,false">
<!--optional, xs:boolean, whether to enable displaying a frame on the target person: true-enable, false:disable-->
</faceRectShowEnabled>
<faceTemperatureShowEnabled opt="true,false">
<!--optional, xs:boolean, whether to enable displaying face temperature: true-enable, false:disable-->
</faceTemperatureShowEnabled>
</FaceThermometry>
B.52 XML_Cap_FireDetection
FireDetection capability message in XML format
161
Intelligent Security API (Thermal) Developer Guide
162
Intelligent Security API (Thermal) Developer Guide
B.53 XML_Cap_Power
Power capability message in XML format
<?xml version="1.0" encoding="utf-8"?>
<Power version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<powerSwitch>
<!--req, xs:boolean, switch on/off: "true"-switch on, wake up device, "false"-switch off, device will be in sleep
mode-->
</powerSwitch>
<batteryPower min="1" max="100">
<!--opt, xs:integer, battery percentage-->
</batteryPower>
</Power>
B.54 XML_Cap_ThermalBlackBody
ThermalBlackBody capability message in XML format.
<ThermalBlackBody version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<emissivity min="0.01" max="1" def="0.97">
<!--required, xs:float, black body emissivity is between 0.01 and 1, which corrects to two decimal places. The default
value is 0.97-->
</emissivity>
<distance min="0.0" max="10.0" def="2.0">
<!--required, xs: float, the distance between lens and black body, ranges from 0.0 m to 10.0 m, which corrects to
one decimal place. The default value is 2.0 m, unit:m-->
</distance>
<temperature min="30.0" max="50.0" def="35.0">
<!--required, xs:float, black body temperature is between 30.0 °C and 50.0 °C, which corrects to one decimal place.
The default value is 35.0 °C, unit: °C-->
</temperature>
<CentrePoint><!--required, center position of black body. After clicking this position, the normalized coordinate
163
Intelligent Security API (Thermal) Developer Guide
B.55 XML_Cap_ThermIntell
ThermIntell capability message in XML format.
<ThermIntell version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer--></id>
<intellType
opt="thermometryAndSmart,shipsDetection,fireDetection,pip,faceThermometry,thermometryAndSmokeFireDetection
,thermometryAndFireDetection,basicBehavior,thermometry" def="thermometryAndSmart">
<!--req, xs:string,smart function resource configuration type: "thermometryAndSmart"-temperature measurement
+behavior analysis (default), "shipsDetection"-ship detection, "fireDetection"-fire source detection, "pip"-picture in
picture function, "faceThermometry"-temperature screening, "thermometryAndSmokeFireDetection"-temperature
measurement+smoke and fire source detection, "thermometryAndFireDetection"-temperature measurement+fire
source detection, "basicBehavior"-behavior analysis, "thermometry"-temperature measurement-->
</intellType>
</ThermIntell>
164
Intelligent Security API (Thermal) Developer Guide
B.56 XML_Cap_ThermalPip
ThermalPip capability message in XML format
<ThermalPip version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<!--required, capability of picture-in-picture configuration-->
<enabled><!--required, xs:boolean, enable or not--></enabled>
<pipMode opt="overlap,fusion, normal" def="normal">
<!--required, xs:string, picture-in-picture mode: overlap-overlay mode, fusion-integration mode, normal-normal
mode-->
</pipMode>
<overlapType opt="visibleOverlapThermal,thermalOverlapVisible">
<!--required, xs:string, overlay type: visibleOverlapThermal-overlay visible light on thermal imaging picture,
thermalOverlapVisible-overlay thermal imaging on visible light-->
</overlapType>
<transparency min="0" max="100">
<!--opt, xs: integer, transparency-->
</transparency>
<normalizedScreenSize><!--required, read-only, screen with normalized coordinates-->
<normalizedScreenWidth><!--required, read-only, xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--required, read-only, xs:integer--></normalizedScreenHeight>
</normalizedScreenSize>
<PipRegion> <!--dependent, picture-in-picture area-->
<RegionCoordinatesList size ="4"><!--dependent, coordinates list of picture-in-picture area-->
<RegionCoordinates><!--optional, picture-in-picture area coordinate-->
<positionX><!--required, xs:integer;x-coordinate--> </positionX>
<positionY><!--required, xs:integer;y-coordinate--> </positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</PipRegion>
<imageFusionRatio min="0" max="100" default="75">
<!--dependent, xs: integer, image fusion ratio, it is valid when pipMode is "fusion"-->
</imageFusionRatio>
<borderFusionRatio min="0" max="100" default="100">
<!--dependent, xs: integer, border fusion ratio, it is valid when pipMode is "fusion"-->
</borderFusionRatio>
<distance><!--dependent, xs:float, fusion distance, it is valid when pipMode is "fusion", ranges from 0.1 m to 4.0 m--
></distance>
<borderEnhancementSensitivity min="0" max="100" default="80">
<!--dependent, xs:integer, border enhancement sensitivity. The lower the sensitivity, the less details and lower
noise; the higher the sensitivity, the more details and higher noise. It is valid when the value of pipMode is "fusion"-->
</borderEnhancementSensitivity>
</ThermalPip>
B.57 XML_Cap_ThermometryAlarmRule
XML message about alarm rules parameters of temperature measurement preset
165
Intelligent Security API (Thermal) Developer Guide
<ThermometryAlarmRule version="2.0">
<ThermometryAlarmModeList size="">
<!--req, alarm rules parameters of temperature measurement preset -->
<ThermometryAlarmMode>
<id min="" max="">
<!--req, xs:inter, rule ID -->
</id>
<enabled opt="true,false">
<!--req, xs:boolean, enable: false-no, true-yes-->
</enabled>
<name min="0" max="32">
<!--req, xs:string, ro, rule name-->
</name>
<pointRule opt="averageGreater,averageLess" def="averageGreater">
<!--req, xs:string, alarm temperature comparison mode of point thermography: averageGreater-average
temperature higher than (default), averageLess-average temperature lower than-->
</pointRule>
<lineRule opt="highestGreater,highestLess,lowestGreater,lowestLess, averageGreater,averageLess"
def="averageGreater">
<!--req, xs:string, alarm temperature comparison mode of line thermography: highestGreater-Max. temperature
higher than, highestLess-Max. temperature lower than, lowestGreater-Min. temperature lower than, lowestLess-Min.
temperature lower than, averageGreater-average temperature higher than (default), averageLess-average
temperature lower than-->
</lineRule>
<regionRule
opt="highestGreater,highestLess,lowestGreater,lowestLess,averageGreater,averageLess,diffTempGreater,diffTempLess"
def="averageGreater">
<!--req, xs:string, alarm temperature comparison of frame thermography: highestGreater-Max. temperature
higher than, highestLess-Max. temperature lower than, lowestGreater-Min. temperature lower than, lowestLess-Min.
temperature lower than, averageGreater-average temperature higher than (default), averageLess-average
temperature lower than, diffTempGreater-temperature difference higher than, diffTempLess-temperature difference
lower than-->
</regionRule>
<alert min="0" max="32">
<!--req, xs: float, pre-alarm temperature-->
</alert>
<alarm min="0" max="32">
<!--req, xs: float, alarm temperature-->
</alarm>
<threshold min="0" max="32">
<!--req, xs: float, threshold temperature-->
</threshold>
<isSupportAlertOutputIOPortList>
<!--opt, xs:boolean, "true", if supports, this node will be returned and the value is "true", if not support, it will not
be returned-->
</isSupportAlertOutputIOPortList>
<isSupportAlarmOutputIOPortList>
<!--opt, xs:boolean, "true", if supports, this node will be returned and the vlue is "true", if not support, it will not
be returned-->
</isSupportAlarmOutputIOPortList>
<alertFilteringTime min="0" max="200" default="0">
<!--opt, xs:integer, temperature pre-alarm dwell time, unit: s-->
166
Intelligent Security API (Thermal) Developer Guide
</alertFilteringTime>
<alarmFilteringTime min="0" max="200" default="0">
<!--opt, xs:integer, temperature pre-alarm dwell time, unit:s-->
</alarmFilteringTime>
<visibleLightLinkageEnabled opt="true, false">
<!--opt, xs:boolean, visible light linkage-->
</visibleLightLinkageEnabled>
<TemperatureSuddenChange>
<mode opt="close, temperatureSuddenIncrease, temperatureSuddenDecrease">
<!--req, xs:string, temperature sudden change mode-->
</mode>
<cycle opt="1, 5, 10, 30, 60"><!--opt, xs:integer, cycle period, unit: second--></cycle>
<alert min="" max=""><!--opt, xs: float, pre-alarm threshold--></alert>
<alarm min="" max=""><!--opt, xs: float, alarm threshold--></alarm>
</TemperatureSuddenChange>
</ThermometryAlarmMode>
</ThermometryAlarmModeList>
<TemperatureDifferenceComparisonList size="">
<!--req, temperature difference configuration parameters of temperature measurement preset-->
<TemperatureDifferenceComparison>
<id min="" max="">
<!--req, xs:inter, rule ID-->
</id>
<enabled opt="true,false">
<!--req, xs:boolean, enable: false-no, true-yes-->
</enabled>
<ruleID1 min="" max="">
<!--req, xs:string, alarm point 1-->
</ruleID1>
<ruleID2 min="" max="">
<!--req, xs:string, alarm point 2-->
</ruleID2>
<pointRule opt="averageGreater,averageLess" def="averageGreater">
<!--req, xs:string, alarm temperature comparison modes of point thermography: averageGreater-average
temperature higher than (default), averageLess-average temperature lower than-->
</pointRule>
<lineRule opt="highestGreater,highestLess,lowestGreater,lowestLess, averageGreater,averageLess"
def="averageGreater">
<!--req, xs:string, alarm temperature comparison modes of line thermography: highestGreater-Max. temperature
higher than, highestLess-Max. temperature lower than, lowestGreater-Min. temperature higher than, lowestLess-Min.
temperature lower than, averageGreater-average temperature higher than (default), averageLess-average
temperature lower than -->
</lineRule>
<regionRule
opt="highestGreater,highestLess,lowestGreater,lowestLess,averageGreater,averageLess,diffTempGreater,diffTempLess"
def="averageGreater">
<!--req, xs:string, alarm temperature comparison modes of frame thermography: highestGreater-Max.
temperature higher than, highestLess-Max. temperature lower than, lowestGreater-Min. temperature lower than,
lowestLess-Min. temperature lower than, averageGreater-average temperature higher than (Default), averageLess-
average temperature lower than, diffTempGreater-temperature difference higher than, diffTempLess-temperature
difference lower than-->
</regionRule>
167
Intelligent Security API (Thermal) Developer Guide
B.58 XML_Cap_ThermometryBasicParam
XML message about capability of temperature measurement basic parameters
<ThermometryBasicParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer, channel number--></id>
<enabled opt="true,false"><!--req, xs:boolean, enable or not: false-no, true-yes--></enabled>
<streamOverlay opt="true,false"><!--req, xs:boolean, whether displays temperature information on the stream: false-
no, true-yes--></streamOverlay>
<pictureOverlay opt="true,false"><!--req, xs:boolean, whether displays temperature information on the captured
picture: false-no, true-yes--></pictureOverlay>
<temperatureRange
opt="-20-150,0-550,0-650,-4-302,32-1022,32-1200,-20-650,-20-1500,automatic,-20-120,20-350,20-45,20-350,30-45,1
00-550">
<!--req, xs:string, temperature range-->
</temperatureRange>
<temperatureUnit opt="degreeCentigrade,degreeFahrenheit,degreeKelvin">
<!--req, xs:string, temperature unit: degreeCentigrade-Celsius(°C), degreeFahrenheit-Fahrenheit(°F), degreeKelvin-
Kelvin(K)-->
</temperatureUnit>
<temperatureCurve opt="close,transverseTemperatureTrend,longitudinalTemperatureTrend">
<!--opt, xs:string, temperature curve modes: close-closed, transverseTemperatureTrend-transverse temperature
mode, longitudinalTemperatureTrend-longitudinal temperature mode-->
</temperatureCurve>
<fireImageMode opt="blackWhite,thermalProbe,fireGround">
<!--opt, xs:string, fire detection modes: blackWhite-black and white mode, thermalProbe-thermal detection mode,
fireGroud-fire scene mode-->
</fireImageMode>
<emissivity min="0.01" max="1.00" default="0.96">
<!--opt, xs:float, the emissivity is between 0.01 and 1.00, which corrects to two decimal places. This parameter is
used by the device (i.e., DS-2TF03-260V/GLT, DS-2TF03-167V/GLT) that does not support regular frame and preset--->
</emissivity>
<distanceUnit opt="meter,feet,centimeter">
<!--req, xs:string-->
</distanceUnit>
<TemperatureColor>
<!--opt, set the alarm information color for the temperature measurement-->
<type opt="highTemperature,lowTemperature,rangeTemperature,heatPreservation">
<!--req ,xs:string, set temperature alarm types: highTemperature field-high temperature alarm, when the
measured temperature is higher than the configured value of highTemperature field, the measured temperature will
be marked by color; lowTemperature-low temperature alarm, when the measured temperature is lower than the
configured value of lowTemperature field, the measured temperature will be marked by color; rangeTemperature-
range temperature alarm, when the measured temperature is between the configured values of highTemperature
168
Intelligent Security API (Thermal) Developer Guide
field and lowTemperature field, the measured temperature will be marked by color; heatPreservation-insulation
alarm, when the measured temperature is not between the configured values of highTemperature field and
lowTemperature field, the measured temperature will be marked by color-->
</type>
<highTemperature min="-273" max="10000"><!--dep, xs:integer--></highTemperature>
<lowTemperature min="-273" max="10000"><!--dep, xs:integer--></lowTemperature>
</TemperatureColor>
<enviroTemperature min="-273" max="10000"><!--opt, xs:integer, environment temperature, unit: °C--></
enviroTemperature>
<enviroHumidity min="0" max="100"><!--opt, xs:integer, environment humidity, unit:%--></enviroHumidity>
<correctionVolume min="-100" max="100" def="0"><!--opt, xs:integer, temperature correction--></
correctionVolume>
<specialPointThermType opt="centerPoint,highestPoint,lowestPoint">
<!--req, xs:string, display the special point temperature, central point temperature, highest temperature, lowest
temperature. Supports multiple selections-->
</specialPointThermType>
<distance min="0" max="50"><!--req, xs:integer; unit:m, the distance range is [0, 10000]--></distance>
<reflectiveEnable><!--req, xs:boolean, whether enables temperature reflection--></reflectiveEnable>
<reflectiveTemperature min="" max=""><!--opt, xs:float, reflective temperature, which corrects to one decimal place--
></reflectiveTemperature>
<alert min="-73.3" max="1000.0"><!--opt, xs: float, pre-alarm threshold--></alert>
<alarm min="-73.3" max="1000.0"><!--opt, xs: float, alarm threshold--></alarm>
<showTempStripEnable><!--opt, xs:boolean, whether enables displaying temperature bar--></showTempStripEnable>
<thermalOpticalTransmittance min="0.001" max="1.000" def="1.000">
<!--opt, xs: float, optical transmissivity is between 0.001 and 1.000, which corrects to three decimal places. The
default value is 1.000-->
</thermalOpticalTransmittance>
<externalOpticsWindowCorrection min="-40.0" max="80.0" def="20.0">
<!--opt, xs: float, external optical temperature is between -40.0 °C and 80.0 °C. The default value is 20 °C-->
</externalOpticsWindowCorrection>
<isSupportAlertOutputIOPortList><!--opt, xs:boolean, "true", true indicates support, no return indicates not support--
></isSupportAlertOutputIOPortList>
<isSupportAlarmOutputIOPortList><!--opt, xs:boolean, "true", true indicates support, no return indicates not
support--></isSupportAlarmOutputIOPortList>
<alertFilteringTime min="0" max="200" default="0"><!--opt, xs:integer, temperature pre-alarm dwell time, unit:s--></
alertFilteringTime>
<alarmFilteringTime min="0" max="200" default="0"><!--opt, xs:integer, temperature alarm dwell time, unit:s--></
alarmFilteringTime>
<displayMaxTemperatureEnabled opt="true,false"><!--opt, xs:boolean, whether displays the maximum temperature--
></displayMaxTemperatureEnabled>
<displayMinTemperatureEnabled opt="true,false"><!--opt, xs:boolean, whether displays the minimum temperature--
></displayMinTemperatureEnabled>
<displayAverageTemperatureEnabled opt="true,false"><!--opt, xs:boolean, whether displays the average
temperature--></displayAverageTemperatureEnabled>
<thermometryInfoDisplayposition opt="rules_around,top_left_of_screen">
<!--opt, xs:string, position of temperature measurement information overlay-->
</thermometryInfoDisplayposition>
<calibrationCoefficientEnabled opt="true,false"><!--opt, xs:boolean, whether enables calibration coefficient--></
calibrationCoefficientEnabled>
<calibrationCoefficient min="0.00" max="30.00"><!--dep, xs:float, calibration coefficient, ranges from 0 to 30,
corrects to two decimal places--></calibrationCoefficient>
<emissivityMode opt="rougher,rough,smooth,smoother,customsettings">
169
Intelligent Security API (Thermal) Developer Guide
<!--opt,xs:string, emissivity type: "rougher"-rougher 0.95, "rough"-rough 0.80, "smooth"-smooth 0.60, "smoother"-
smoother 0.30, "customsettings"-customized value, ranges from 0.01 to 1.00, the larger the value, the higher the
roughness-->
</emissivityMode>
<displayTemperatureInOpticalChannelEnabled opt="true,false">
<!--opt,xs:boolean, display the temperature information of optical channel-->
</displayTemperatureInOpticalChannelEnabled>
<distanceMode opt="selfAdapt,fixed"><!--optional, xs:string, distance mode: "selfAdapt"-self-adaption, "fixed"-fixed
distance--></distanceMode>
<faceTemperatureInfoUploadEnabled opt="true,false"><!--optional, xs:boolean, whether to enable uploading face
temperature information: true-enable, false-disable--></faceTemperatureInfoUploadEnabled>
<calibrationFileVersion><!--optional, xs:string, read-only, calibration file version information--></
calibrationFileVersion>
<alarmInterval min="1" max="300"><!--optional, xs:integer, temperature measurement interval, unit: second--></
alarmInterval>
<rulesOverlayMode opt="all,alarm"><!--optional, xs:string, rule overlay mode: all (all rules), alarm (triggered alarm
rule)--></rulesOverlayMode>
<toleranceTemperature min="1" max="5"><!--optional, xs:float, tolerance temperature, value range: [1,5], unit:
Celsius--></toleranceTemperature>
<alarmMode opt="temperatureIntervalMeasurement,alarm_alert"><!--optional, xs:string, alarm mode:
"temperatureIntervalMeasurement" (temperature range measurement), "alarm_alert" (pre-alarm/alarm)--></
alarmMode>
<NormalRulesColor><!--optional, normal rule color; this node is valid when the value of alarmMode is
"temperatureIntervalMeasurement"-->
<R><!--required, xs:integer--></R>
<G><!--required, xs:integer--></G>
<B><!--required, xs:integer--></B>
</NormalRulesColor>
<NormalTemperatureIntervalMeasurement><!--optional, normal temperature range measurement-->
<alarmType opt="highestTemp,lowestTemp"><!--optional, xs:string, alarm type: "highestTemp" (the highest
temperature), "lowestTemp" (the lowest temperature)--></alarmType>
<TemperatureIntervalList size="4"><!--optional, temperature range list; up to 4 temperature ranges are allowed-->
<TemperatureInterval>
<id min="1" max="4"><!--optional, xs:integer, No.--></id>
<enabled opt="true,false"><!--optional, xs:boolean, whether to enable--></enabled>
<name min="" max=""><!--optional, xs:string, range name--></name>
<minTemperature min="" max=""><!--optional, xs:float, the lowest temperature; value range: [-20,550], unit:
Celsius; the value should be accurate to one decimal place--></minTemperature>
<maxTemperature min="" max=""><!--optional, xs:float, the highest temperature; value range: [-20,550], unit:
Celsius; the value should be accurate to one decimal place--></maxTemperature>
<AlarmColor><!--optional, alarm color of temperature range-->
<R><!--required, xs:integer--></R>
<G><!--required, xs:integer--></G>
<B><!--required, xs:integer--></B>
</AlarmColor>
<AlarmOutputIOPortList size=""><!--optional, alarm output port list-->
<OutputIOPort><!--list-->
<portID min="" max=""><!--required, xs:string, port No.--></portID>
<enabled opt="true,false"><!--required, xs:boolean, whether to enable--></enabled>
</OutputIOPort>
</AlarmOutputIOPortList>
</TemperatureInterval>
170
Intelligent Security API (Thermal) Developer Guide
</TemperatureIntervalList>
</NormalTemperatureIntervalMeasurement>
</ThermometryBasicParam>
Remarks
The following nodes are not supported by the thermographic automation thermal camera
(DS-2TA03-15SVI, DS2TA06-25SVI): <TemperatureColor>, <specialPointThermType>, and
<reflectiveEnable>.
B.59 XML_Cap_ThermometryMode
XML message about temperature measurement mode capability
<ThermometryMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<!--req, capability sets of temperature measurement mode-->
<mode opt="normal,expert" def="normal">
<!--req, xs:string, temperature measurement: normal-normal mode, expert-expert mode-->
<!--Normal mode: configure overall temperature measurement without distinguishing rule and preset. In normal
mode, the related configuration in the basic parameter configuration structure is valid. Expert mode: configure
temperature measurement configuration by rule and preset. In expert mode, the related configuration in the preset
configuration structure is valid-->
</mode>
<thermometryROIEnabled opt="true,false"><!--opt,xs:boolean, whether enables ROI temperature measurement--></
thermometryROIEnabled>
</ThermometryMode>
Remarks
The ROI temperature measurement and mode configuration is mutually exclusive, ROI temperature
measurement is mainly applied to temperature measurement.
B.60 XML_Cap_ThermometryScene
ThermometryScene capability message in XML format.
<ThermometryScene version="2.0">
<normalizedScreenSize>
<!--req, ro, coordinate normalization-->
<normalizedScreenWidth>
<!--req, ro, xs:integer, normalized width-->
</normalizedScreenWidth>
<normalizedScreenHeight>
<!--req, ro, xs:integer, normalized height-->
</normalizedScreenHeight>
</normalizedScreenSize>
<ThermometryRegionList size="">
<ThermometryRegion>
<id min="1" max="21">
171
Intelligent Security API (Thermal) Developer Guide
172
Intelligent Security API (Thermal) Developer Guide
</diffTempValue>
<RegionCoordinatesList size="">
<!--dep, area coordinates list of the frame-->
<RegionCoordinates>
<!--opt-->
<positionX>
<!--req, xs:integer;coordinate -->
</positionX>
<positionY>
<!--req, xs:integer;coordinate -->
</positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
<Line>
<!--dep, temperature measurement by line, display the maximum and minimum temperature-->
<highestTempValue min="-273.0" max="10000.0">
<!--dep, xs: float, ro, maximum temperature-->
</highestTempValue>
<lowestTempValue min="-273.0" max="10000.0">
<!--dep, xs: float, ro, minimum temperature-->
</lowestTempValue>
<RegionCoordinatesList size="">
<!--dep, endpoint coordinates list of the line-->
<RegionCoordinates><!--opt-->
<positionX><!--req, xs:integer;coordinate--></positionX>
<positionY><!--req, xs:integer;coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Line>
<distanceUnit opt="meter,feet,centimeter"><!--opt, xs:string--></distanceUnit>
<emissivityMode opt="rougher,rough,smooth,smoother,customsettings">
<!--opt,xs:string, emissivity type: "rougher"-rougher 0.95, "rough"-rough 0.80, "smooth"-smooth 0.60,
"smoother"-smoother 0.30, "customsettings"-customized value, ranges from 0.01 to 1.00, the larger the value, the
higher the roughness-->
</emissivityMode>
<RegionBoundary><!--opt, rule region boundary-->
<RegionCoordinatesList size=""> <!--dep-->
<RegionCoordinates><!--opt-->
<positionX><!--req, xs:integer; x-coordinate--></positionX>
<positionY><!--req, xs:integer; y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</RegionBoundary>
</ThermometryRegion>
<maxPointNum><!--req, xs:integer, maximum number of point rules that can be configured--></maxPointNum>
<maxLineNum><!--req, xs:integer, maximum number of line rules that can be configured--></maxLineNum>
<maxRegionNum><!--req, xs:integer, maximum number of frame rules that can be configured--></maxRegionNum>
</ThermometryRegionList>
</ThermometryScene>
173
Intelligent Security API (Thermal) Developer Guide
B.61 XML_CorrectionParam
CorrectionParam in XML format.
<xml version="1.0" encoding="utf-8">
< CorrectionParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<distance><!--req, distance, float, unit:m--></distance>
<enviroTemperature><!--req, environment temperature, corrects to one decimal place, unit: ℃--></
enviroTemperature>
<emissivity><!--req, emissivity, float, corrects to two decimal places--></emissivity>
<TemperaturePointList><!--req, temperature point information list-->
<TemperaturePoint><!--req, temperature point information-->
<id><!--req, temperature point number, integer--></id>
<presetTemperature><!--req, predefined temperature, corrects to one decimal place, float, unit: ℃--></
presetTemperature>
<Coordinates> <!--req, temperature point coordinates-->
<x><!--req, temperature point X-coordinate, float--></x>
<y><!--req, temperature point Y-coordinate, float--></y>
</Coordinates>
</TemperaturePoint>
</TemperaturePointList>
</CorrectionParam>
B.62 XML_CorrectionParamCap
CorrectionParamCap message in XML format.
<xml version="1.0" encoding="utf-8">
<CorrectionParamCap version="2.0" xmlns=" http://www.isapi.org/ver20/XMLSchema">
<distance min="0" max="10.0"><!--req, distance, float, unit:m--></distance>
<enviroTemperature min="-273.0" max="100">
<!--req, environment temperature, corrects to one decimal place, float, unit: ℃-->
</enviroTemperature>
<emissivity min="0.01" max="1.00">
<!--req, emissivity, float, corrects to two decimal places-->
</emissivity>
<TemperaturePointList size="4"><!--opt-->
<TemperaturePoint>
<!--opt, temperature point information-->
<id min="0" max="4"><!--req, temperature point number, integer--></id>
<presetTemperature min="-40.0" max="650.0">
<!--req, predefined temperature, corrects to one decimal place, float, unit: ℃-->
</presetTemperature>
<Coordinates>
<!--opt, temperature point coordinates-->
<x min="0" max="1"><!--req, temperature point X-coordinates, float--></x>
<y min="0" max="1"><!--req, temperature point Y-coordinates, float--></y>
</Coordinates>
</TemperaturePoint>
174
Intelligent Security API (Thermal) Developer Guide
</TemperaturePointList>
</CorrectionParamCap>
B.63 XML_DeviceCap
XML message about device capability
<DeviceCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SysCap><!--optional-->
<isSupportDst><!--optional, xs: boolean, whether it supports daylight saving time--></isSupportDst>
<NetworkCap/><!--optional, xs: boolean, network capability-->
<IOCap/><!--optional, IO capability-->
<SerialCap/><!--optional, serial port capability-->
<VideoCap/><!--optional, video capability, see details in the message of XML_VideoCap-->
<AudioCap/><!--optional, audio capability-->
<isSupportHolidy><!--optional, xs:boolean--></isSupportHolidy>
<RebootConfigurationCap>
<Genetec><!--optional, xs:boolean--></Genetec>
<ONVIF><!--optional, xs:boolean--></ONVIF>
<RTSP><!--optional, xs:boolean--></RTSP>
<HTTP><!--optional, xs:boolean--></HTTP>
<SADP>
<ISDiscoveryMode><!--optional, xs:boolean--></ISDiscoveryMode>
<PcapMode><!--optional, xs:boolean--></PcapMode>
</SADP>
<IPCAddStatus><!--optional, xs:boolean--></IPCAddStatus>
</RebootConfigurationCap>
<isSupportExternalDevice><!--optional, xs:boolean--></isSupportExternalDevice>
<isSupportChangedUpload>
<!--optional, xs: boolean, whether it supports uploading status changes-->
</isSupportChangedUpload>
<isSupportGettingWorkingStatus>
<!--optional, xs:boolean, whether it supports getting device status-->
</isSupportGettingWorkingStatus>
<isSupportGettingChannelInfoByCondition>
<!--optional, xs:boolean-->
</isSupportGettingChannelInfoByCondition>
<isSupportDiagnosedDataParameter>
<!--optional, xs:boolean-->
</isSupportDiagnosedDataParameter>
<isSupportSimpleDevStatus>
<!--optional, xs: boolean, whether it supports getting device working status-->
</isSupportSimpleDevStatus>
<isSupportFlexible>
<!--optional, xs: boolean, whether it supports getting channel status by condition-->
</isSupportFlexible>
<isSupportPTZChannels>
<!--optional, xs:boolean, whether it supports returning PTZ channel (which is different from the video channel)-->
</isSupportPTZChannels>
<isSupportSubscribeEvent>
175
Intelligent Security API (Thermal) Developer Guide
176
Intelligent Security API (Thermal) Developer Guide
<isSupportEmailTest><!--optional, xs:boolean--></isSupportEmailTest>
</TestCap>
<ThermalCap/><!--optional, temperature measurement capability-->
<WLAlarmCap/><!--optional, wireless alarm capability-->
<SecurityCPCapabilities/><!--optional, security control panel capability-->
<isSupportGIS>
<!--optional, xs:boolean, whether it supports GIS capability-->
</isSupportGIS>
<isSupportCompass>
<!--optional, xs:boolean-->
</isSupportCompass>
<isSupportRoadInfoOverlays>
<!--optional, xs:boolean-->
</isSupportRoadInfoOverlays>
<isSupportFaceCaptureStatistics>
<!--optional, xs:boolean-->
</isSupportFaceCaptureStatistics>
<isSupportExternalDevice>
<!--optional, xs:boolean-->
</isSupportExternalDevice>
<isSupportElectronicsEnlarge>
<!--optional, xs:boolean, whether it supports digital zoom-->
</isSupportElectronicsEnlarge>
<isSupportRemoveStorage>
<!--optional, xs:boolean-->
</isSupportRemoveStorage>
<isSupportCloud>
<!--optional, xs:boolean-->
</isSupportCloud>
<isSupportRecordHost>
<!--optional, xs:boolean-->
</isSupportRecordHost>
<isSupportEagleEye>
<!--optional, xs:boolean, whether it supports PanoVu series camera-->
</isSupportEagleEye>
<isSupportPanorama>
<!--optional, xs:boolean, whether it supports panorama-->
</isSupportPanorama>
<isSupportFirmwareVersionInfo>
<!--optional, xs:boolean, whether it supports displaying firmware version information-->
</isSupportFirmwareVersionInfo>
<isSupportExternalWirelessServer>
<!--optional, xs: boolean-->
</isSupportExternalWirelessServer>
<isSupportSetupCalibration>
<!--optional, xs:boolean, whether it supports setting calibration-->
</isSupportSetupCalibration>
<isSupportGetmutexFuncErrMsg>
<!--optional, xs:boolean, whether it supports getting mutex information-->
</isSupportGetmutexFuncErrMsg>
<isSupportTokenAuthenticate><!--optional, xs:boolean--></isSupportTokenAuthenticate>
<isSupportStreamDualVCA><!--optional, xs:boolean--></isSupportStreamDualVCA>
177
Intelligent Security API (Thermal) Developer Guide
<isSupportlaserSpotManual>
<!--optional, boolean, whether it supports laser spot configuration-->
</isSupportlaserSpotManual>
<isSupportRTMP><!--optional, xs:boolean--></isSupportRTMP>
<isSupportTraffic><!--optional, xs:boolean--></isSupportTraffic>
<isSupportLaserSpotAdjustment>
<!--optional, boolean, whether it supports adjusting laser spot size-->
</isSupportLaserSpotAdjustment>
<VideoIntercomCap/><!--optional, video intercom capability-->
<isSupportSafetyCabin>
<!--optional, xs:boolean-->
</isSupportSafetyCabin>
<isSupportPEA>
<!--optional, xs:boolean, whether it supports one-touch security control panel capability-->
</isSupportPEA>
<isSupportCurrentLock>
<!--optional, xs:boolean, whether it supports locking current configuration-->
</isSupportCurrentLock>
<isSupportGuardAgainstTheft>
<!--optional, xs:boolean, whether it supports device anti-theft configuration-->
</isSupportGuardAgainstTheft>
<isSupportPicInfoOverlap>
<!--optional, xs:boolean, whether it supports picture information overlay-->
</isSupportPicInfoOverlap>
<isSupportPlay>
<!--optional, xs: boolean, whether it supports live view: "true,false"-->
</isSupportPlay>
<isSupportPlayback>
<!--optional, xs: boolean, whether it supports playback: "true,false"-->
</isSupportPlayback>
<UHFRFIDReader>
<!--optional, supported capability of UHF RFID card reader-->
<isSupportBasicInformation>
<!--optional, xs:boolean, whether it supports basic parameters of UHF RFID card reader-->
</isSupportBasicInformation>
<isSupportHardDiskStorageTest>
<!--optional, xs:boolean, whether it supports hard disk storage test of UHF RFID card reader-->
</isSupportHardDiskStorageTest>
</UHFRFIDReader>
<isSupportIntelligentStructureAnalysis>
<!--optional, xs:boolean, whether it supports structured VCA-->
</isSupportIntelligentStructureAnalysis>
<isSupportIntelligentAnalysisEngines>
<!--optional, xs:boolean, whether it supports VCA engine configuration-->
</isSupportIntelligentAnalysisEngines>
<PreviewDisplayNum>
<!--optional, xs:integer, the number of live view windows, which is the number of simultaneous live view windows
controlled by the device. Limited by the performance of DeepinMind series network video recorder, currently only live
view of a network camera is supported, and playback is not supported-->
</PreviewDisplayNum>
<isSupportBoard opt="true,false">
<!--optional, xs:boolean, whether it supports protocol related to sub-board-->
178
Intelligent Security API (Thermal) Developer Guide
</isSupportBoard>
<ResourceSwitch>
<workMode opt="4KPreview,educationRecord">
<!--req, xs:string, device working mode:"4KPreview"-4K live view mode, "educationRecord"-education recording
mode-->
</workMode>
</ResourceSwitch>
<isSupportCustomStream><!--optional, xs:boolean--></isSupportCustomStream>
<isSupportTriggerCapCheck>
<!--optional, xs:boolean, whether it supports verifying capability of alarm linkage actions-->
</isSupportTriggerCapCheck>
<isSupportActiveMulticast>
<!--optional, xs: boolean, whether it supports active multicast-->
</isSupportActiveMulticast>
<isSupportChannelEventCap>
<!--optional, xs:boolean, whether it supports getting event capability by channel-->
</isSupportChannelEventCap>
<isSupportPictureServer>
<!-- opt, xs:boolean, whether it supports picture storage server-->
</isSupportPictureServer>
<isSupportVideoCompositeAlarm>
<!--optional, xs:boolean, whether it supports video double check alarm-->
</isSupportVideoCompositeAlarm>
<isSupportSensorCalibrating>
<!--optional, xs:boolean, whether it supports double sensor calibration-->
</isSupportSensorCalibrating>
<isSupportChannelEventListCap>
<!--optional, xs:boolean, whether it supports getting event capability of all channels-->
</isSupportChannelEventListCap>
<VCAResourceChannelsCap>
<!--optional, whether it supports independently switching to another VCA resource by channel-->
<ChannelsList>
<channelsID>
<!--req, xs:integer, channel No. supported by the device-->
</channelsID>
</ChannelsList>
</VCAResourceChannelsCap>
<SensorCap/><!--optional, intelligent cabinet capability-->
<isSupportSecurityCP/>
<!--optional, xs:boolean, whether it supports the applications of security control panel: "true, false"-->
</isSupportSecurityCP>
<isSupportClientProxyWEB>
<!--optional, xs:boolean, whether it supports the function that the client proxy passes through the remote web
configuration: "true"-->
</isSupportClientProxyWEB>
<WEBLocation>
<!--optional, string type, web page location: "local"-local device, "remote"-remote location. If this node is not
returned, the web page will be in the local device by default-->
</WEBLocation>
<isSupportTime/>
<!--optional, xs:boolean, "true, false", whether it supports time configuration-->
</isSupportTime>
179
Intelligent Security API (Thermal) Developer Guide
<isSupportTimeZone/>
<!--optional, xs:boolean, "true, false", whether it supports daylight saving time (DST) configuration-->
</isSupportTimeZone>
<isSupportMixedTargetDetection>
<!--optional, xs:boolean, "true, false", whether it supports multi-target-type detection-->
</isSupportMixedTargetDetection>
<isSupportFaceContrastMode>
<!--optional, xs:boolean, whether it supports face picture comparison mode-->
</isSupportFaceContrastMode>
<isSupportPictureCaptureComparision>
<!--optional, xs:boolean, whether it supports face picture N:1 comparison between face pictures captured by the
camera and imported face pictures-->
</isSupportPictureCaptureComparision>
<isSupportGPSCalibratation>
<!--optional, xs:boolean, whether it supports GPS calibration capability-->
</isSupportGPSCalibratation>
<isSupportChannelFullEventListCap>
<!--optional, xs:boolean, whether it supports getting event list capability of all channels-->
</isSupportChannelFullEventListCap>
<isSupportAUXInfoCap>
<!--optional, xs:boolean, whether it supports getting property capability of all channels-->
</isSupportAUXInfoCap>
<isSupportCalibrationFile>
<!--optional, xs:boolean, whether it supports importing calibration file-->
</isSupportCalibrationFile>
<isSupportDisplayTrajectory>
<!--optional, xs:boolean, whether it supports displaying trajectory-->
</isSupportDisplayTrajectory>
<maximumSuperPositionTime opt="5,10,20,30">
<!--dep,xs:integer, the maximum time of trajectory displaying,unit: second, it is valid only when displaying
trajectory is supported-->
</maximumSuperPositionTime>
<isSupportUnitConfig>
<!--optional, xs:boolean, whether it supports unit configuration-->
</isSupportUnitConfig>
<isSupportAutoMaintenance>
<!--optional, xs:boolean, whether it supports automatic maintenance. When this node exists and values "true", it
indicates support-->
</isSupportAutoMaintenance>
<isSupportGetLinkSocketIP>
<!--optional, xs: boolean, "true,false", whether it supports getting the SocketIP of current connection-->
</isSupportGetLinkSocketIP>
<isSupportIntelligentSearch>
<!--optional, xs:boolean, whether it supports intelligent search-->
</isSupportIntelligentSearch>
<IOTCap><!--optional, xs:boolean, IoT device access capability-->
<supportChannelNum>
<!--req, xs:integer, number of supported channels of IoT device-->
</supportChannelNum>
<startChannelNo>
<!--optional, xs:integer, initial channel ID, if this node is not inputted, it indicates that the initial channel ID is 1-->
</startChannelNo>
180
Intelligent Security API (Thermal) Developer Guide
<isSupportlinkageChannelsSearch>
<!--optional, boolean, returns "true" if support, returns "false" if not support-->
</isSupportlinkageChannelsSearch>
</IOTCap>
<isSupportEncryption>
<!--optional, xs: boolean, stream encryption capability-->
</isSupportEncryption>
<AIDEventSupport opt="abandonedObject, pedestrian, congestion, roadBlock, construction, trafficAccident,
fogDetection, wrongDirection, illegalParking, SSharpDriving, lowSpeed, dragRacing">
<!--optional, xs:string, supported traffic incident type: "abandonedObject"-objects dropped down, "pedestrian"-
pedestrian, "congestion"-congestion, "roadBlock"-roadblock, "construction"-construction, "trafficAccident"-traffic
accident, "fogDetection"-fog, "wrongDirection"-wrong-way driving, "illegalParking"-illegal parking, "SSharpDriving"-
slalom driving, "lowSpeed"-driving in low speed, "dragRacing"-street racing-->
</AIDEventSupport>
<TFSEventSupport
opt="illegalParking ,wrongDirection,crossLane,laneChange,vehicleExist,turnRound,parallelParking,notKeepDistance,not
SlowZebraCrossing,overtakeRightSide,lowSpeed,dragRacing,changeLaneContinuously,SSharpDriving,largeVehicleOccup
yLine,jamCrossLine">
<!--optional, xs:string, supported enforcement event type: "illegalParking"-illegal parking, "wrongDirection"-wrong-
way driving, "crossLane"-driving on the lane line, "laneChange"-illegal lane change, "vehicleExist"-motor vehicle on
non-motor vehicle lane, "turnRound"-illegal U-turn, "parallelParking"-parallel parking, "notKeepDistance"-not keeping
vehicle distance, "notSlowZebraCrossing"-not slowing down at zebra corssing, "overtakeRightSide"-overtaking on the
right, "lowSpeed"-driving in low speed, "dragRacing"-street racing, "changeLaneContinuously"-continuous lane
change, "SSharpDriving"-slalom driving, "largeVehicleOccupyLine"-lane occupation by large-sized vehicle,
"jamCrossLine"-queue jumping-->
</TFSEventSupport>
<isVehicleStatisticsSupport>
<!--optional, xs: boolean, whether it supports setting parameters for traffic data collection-->
</isVehicleStatisticsSupport>
<isSupportIntersectionAnalysis>
<!--optional, xs: boolean, whether it supports intersection analysis-->
</isSupportIntersectionAnalysis>
<supportRemoteCtrl opt="up,down,left,right,enter,menu,num,power,esc,edit,F1,.prev,rec,play,stop,notSupport"/><!--
whether it supports remote control-->
<isSptDiagnosis>
<!--optional, xs:boolean, whether it supports device diagnosis: "true", "false"-->
</isSptDiagnosis>
<isSptSerialLogCfg>
<!--optional, xs:boolean, whether it supports configuring serial port log redirection: "true", "false"-->
</isSptSerialLogCfg>
<isSptFileExport>
<!--optional, xs:boolean, whether it supports exporting files from the device: "true", "false"-->
</isSptFileExport>
<isSptCertificationStandard>
<!--optional, xs:boolean, whether it supports configuring authentication standard for security control panel: "true",
"false"-->
</isSptCertificationStandard>
<isSptKeypadLock>
<!--optional, xs:boolean, whether it supports locking keypad: "true", "false"-->
</isSptKeypadLock>
<MixedTargetDetection><!--optional, whether the device supports recognizing specific target among mixed targets-->
<isSupportFaceRecognition><!--optional, xs:boolean, whether it supports face recognition--></
181
Intelligent Security API (Thermal) Developer Guide
isSupportFaceRecognition>
<isSupportHumanRecognition><!--optional, xs:boolean, whether it supports human body recognition--></
isSupportHumanRecognition>
<isSupportVehicleRecognition><!--optional, xs:boolean, whether it supports vehicle recognition--></
isSupportVehicleRecognition>
</MixedTargetDetection>
<isSupportDiscoveryMode><!--optional, xs:boolean--></isSupportDiscoveryMode>
<streamEncryptionType>
<!--dep, xs:string, stream encryption type: "RTP/TLS", "SRTP/UDP", "SRTP/MULTICAST". This node is valid when
<isSupportEncryption> is "true", and the device can support one or more stream encryption types-->
</streamEncryptionType>
<isSupportLms><!--optional, xs:boolean, whether it supports laser--></isSupportLms>
<isSupportLCDScreen><!--optional, xs:boolean, whether it supports LCD screen--></isSupportLCDScreen>
<isSupportBluetooth><!--optional, xs:boolean, whether it supports bluetooth--></isSupportBluetooth>
<isSupportAcsUpdate>
<!--optional, whether it supports upgrading slave access control devices or peripheral modules: "true"-yes, this
node is not returned-no-->
</isSupportAcsUpdate>
<isSupportAccessControlCap>
<!--optional, whether it supports access control capability: "true"-yes, this node is not returned-no-->
</isSupportAccessControlCap>
<isSupportIDCardInfoEvent><!--optional, whether it supports ID card swiping event: "true"-yes. This node will not be
returned if this function is not supported--></isSupportIDCardInfoEvent>
<OpenPlatformCap><!--optional, embedded open platform capability, refer to the message XML_OpenPlatformCap
for details-->
<isSupportInstallationAngleCalibration>
<!--optional, xs:boolean, whether it supports installation angle calibration-->
</isSupportInstallationAngleCalibration>
<isSupportZeroBiasCalibration>
<!--optional, xs:boolean, whether it supports zero bias calibration-->
</isSupportZeroBiasCalibration>
<isSupportDevStatus><!--optional, xs:boolean, whether device supports getting device status--></
isSupportDevStatus>
<isSupportRadar><!--optional, xs:boolean, whether it supports the security radar--></isSupportRadar>
<isSupportRadarChannels><!--optional, xs:boolean, whether it supports getting radar channels--></
isSupportRadarChannels>
<radarIPDForm><!--optional, xs:string, radar form: "single"-single radar, "double_diagonal"-two radars forming an
180° diagonal, "double_vertical"-two radars forming a 90° vertical angle--></radarIPDForm>
<isSupportRadarFieldDetection><!--optional, xs:boolean, whether it supports intrusion detection (radar)--></
isSupportRadarFieldDetection>
<isSupportRadarLineDetection><!--optional, xs:boolean, whether it supports line crossing detection (radar)--></
isSupportRadarLineDetection>
<mixedTargetDetectionWebNoDisplay><!--optional, xs:boolean, whether to enable not displaying multi-target-type
recognition--></mixedTargetDetectionWebNoDisplay>
<SHMCap><!--opt-->
<isSupportHighHDTemperature><!--optional, xs:boolean, whether it supports HDD high temperature detection--></
isSupportHighHDTemperature>
<isSupportLowHDTemperature><!--optional, xs:boolean, whether it supports HDD low temperature detection--></
isSupportLowHDTemperature>
<isSupportHDImpact><!--optional, xs:boolean, whether it supports HDD impact detection--></isSupportHDImpact>
<isSupportHDBadBlock><!--optional, xs:boolean, whether it supports HDD bad sector detection--></
isSupportHDBadBlock>
182
Intelligent Security API (Thermal) Developer Guide
183
Intelligent Security API (Thermal) Developer Guide
B.64 XML_DPC
DPC message in XML format
<DPC version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode>
<!--req, xs:string,
opt="correction,moveup,movedown,moveleft,moveright,cancelCorrect,allCorrection,save,start,exit,display"-->
</mode>
<dpcMode><!--opt, xs:string, defective pixel correction mode, opt="manual,auto"--></dpcMode>
<normalizedScreenSize><!--opt, ro-->
<normalizedScreenWidth><!--req, ro,xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--req, ro,xs:integer--></normalizedScreenHeight>
</normalizedScreenSize>
<Point><!--dep, it is valid when mode values "display"-->
<positionX><!--req,xs:integer;coordinate--></positionX>
<positionY><!--req,xs:integer;coordinate--></positionY>
</Point>
</DPC>
B.65 XML_EventNotificationAlert_FireSmokeAlarmEg
The fire and smoke alarm information is uploaded in the XML format of EventNotificationAlert
message, see details below.
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<portNo><!--opt, xs:integer--></portNo>
<protocol><!--opt, xs:string,"HTTP,HTTPS"--></protocol>
<macAddress><!--opt, xs:string;MAC--></macAddress>
<channelID><!--dep, xs:string--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
by commas--></releatedChannelList>
<dateTime>
<!--req, xs:datetime based on IOS8601, e.g., 2017-04-22T15:39:01+08:00-->
184
Intelligent Security API (Thermal) Developer Guide
</dateTime>
<activePostCount><!--req, xs:integer--></activePostCount>
<eventType>
<!--req, xs:string, "fireDetection"-->
</eventType>
<eventState>
<!--req, xs:string, "active,inactive"-->
</eventState>
<eventDescription>
<!--req, xs:string, "Fire and Smoke Alarm"-->
</eventDescription>
<DetectionRegionList>
<DetectionRegionEntry>
<regionID><!--required, integer, region ID--></regionID>
<RegionCoordinatesList><!--opt, coordinates of detection region-->
<RegionCoordinates>
<positionX><!--req, xs:integer; X-coordinate--></positionX>
<positionY><!--req, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
<RegionCoordinates>
<positionX><!--req, xs:integer; X-coordinate--></positionX>
<positionY><!--req, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
<RegionCoordinates>
<positionX><!--req, xs:integer; X-coordinate--></positionX>
<positionY><!--req, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
<RegionCoordinates>
<positionX><!--req, xs:integer; X-coordinate--></positionX>
<positionY><!--req, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
<FireDetection>
<FireRegion><!--coordinates of fire source region-->
<x><!--req, xs:integer; X-coordinate--></x>
<y><!--req, xs:integer; Y-coordinate--></y>
<width><!--region width--></width>
<height><!--region height--></height>
</FireRegion>
<HighestPoint><!--coordinates of point with highest temperature-->
<x><!--req, xs:integer; X-coordinate--></x>
<y><!--req, xs:integer; Y-coordinate--></y>
</HighestPoint>
<temperatureUnit><!--required, xs: string, temperature unit--></temperatureUnit>
<fireMaxTemperature><!--maximum temperature--></fireMaxTemperature>
<targetDistance><!--target distance--></targetDistance>
<AbsoluteHigh>
<elevation><!-- opt, xs:integer, between -900 and 2700--></elevation>
<azimuth><!--opt, xs:integer, between 0 and 3600--></azimuth>
<absoluteZoom><!--opt, xs:integer, between 0 and 1000--><</absoluteZoom>
</AbsoluteHigh>
</FireDetection>
185
Intelligent Security API (Thermal) Developer Guide
</DetectionRegionEntry>
</DetectionRegionList>
<channelName><!--opt,xs:string, channel name--></channelName>
<detectionPicturesNumber>
<!--opt,xs:string, picture transmission format: "url,binary"-->
</detectionPicturesNumber>
</EventNotificationAlert>
Example
GET /ISAPI/Event/notification/alertStream HTTP/1.1
Authorization: Digest username="admin",realm="IP
Camera(C2183)",nonce="4e5468694e7a42694e7a4d364f4449354d7a6b354d54513d",uri="/ISAPI/Event/notification/
alertStream",cnonce="3d183a245b8729121ae4ca3d41b90f18",nc=00000001,qop="auth",response="f2e0728991bb03
1f83df557a8f185178"
Host: 10.6.165.192
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: multipart/mixed; boundary=boundary
--boundary
Content-Type: application/xml; charset="UTF-8"
Content-Length: 1579
186
Intelligent Security API (Thermal) Developer Guide
<RegionCoordinates>
<positionX>382</positionX>
<positionY>611</positionY>
</RegionCoordinates>
</RegionCoordinatesList>
<FireDetection>
<FireRegion>
<x>382</x>
<y>364</y>
<width>247</width>
<height>277</height>
</FireRegion>
<HighestPoint>
<x>505</x>
<y>489</y>
</HighestPoint>
<temperatureUnit>celsius</temperatureUnit>
<fireMaxTemperature>88</fireMaxTemperature>
<targetDistance>-1</targetDistance>
<AbsoluteHigh>
<elevation>26202</elevation>
<azimuth>633</azimuth>
<absoluteZoom>100</absoluteZoom>
</AbsoluteHigh>
</FireDetection>
</DetectionRegionEntry>
</DetectionRegionList>
<channelName>Camera 02</channelName>
<detectionPicturesNumber>2</detectionPicturesNumber>
</EventNotificationAlert>
--boundary
Content-Disposition: form-data;
Content-Type: image/pjpeg
Content-Length: 114648
......JFIF.....`.`........8....".....................................
.................}........!1A..Qa."q.2....#B...R..$3br.
....
B.66 XML_EventNotificationAlert_IntrusionAlarmMsg
XML Message about alarm details of intrusion detection
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transmission protocol type: "HTTP, HTTPS, EHome"--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
187
Intelligent Security API (Thermal) Developer Guide
188
Intelligent Security API (Thermal) Developer Guide
<thermalURL>
<!--optional, xs:string, thermal picture URL-->
</thermalURL>
<targetAttrs><!--optional, transparent transmission field, the following fields are recommended-->
<![CDATA[{
/*optional, transparent transmission field, the following fields are recommended*/
"deviceId": "",
/*optional, string, device ID, the maximum size is 64 bytes*/
"deviceChannel": ,
/*optional, integer32, device channel ID*/
"deviceName": ""
/*optional, string, device name, the maximum size is 128 bytes*/
}]]>
</targetAttrs>
<TaskInfo><!--optional, task information submitted by Data Center products-->
<taskID><!--required, xs:string, task ID, the maximum size is 64 bytes--></taskID>
<algorithmType>
<!--optional, xs:integer, algorithm type: 1-"hightQualityVehicle" (high-quality vehicle),
2-"hightPerformanceVehicle" (high-performance vehicle), 3-"personStructModel" (person structural modeling),
4-"vehicleAndPersonStructModel" (person and vehicle structural modeling), 5-"videoFaceDetect" (video face
detection), 6-"videoFaceDetectModel" (video face detection and modeling), 7-"smart" (face detection (output frame
without recognizing properties)+human body detection (output properties and frame)+behavior detection)-->
</algorithmType>
<taskName><!--optional, xs:string, task name--></taskName>
<algorithmID><!--optional, xs:string, algorithm package ID--></algorithmID>
<monitorPointID><!--optional, xs:string, camera No.--></monitorPointID>
<monitorPointName><!--optional, xs:string, camera name--></monitorPointName>
<streamType><!--optional, xs:string, stream type: "realtime,historyvideo,localvideo--></streamType>
<ruleID><!--optional, xs:string, rule ID, which is used to distinguish different tasks with the same name, and the
ruleID in the event uploading message indicates that the event is related to this task--></ruleID>
<ruleCustomName><!--required, xs:string, custom event name, which is included in the message when the alarm is
uploaded, and the maximum size is 128 bytes--></ruleCustomName>
<algorithmInfo><!--optional, algorithm version information, this field is required for secondary analysis-->
<algorithmId><!--optional, xs:string, algorithm package --></algorithmId>
<algoVendorId><!--optional, xs:string, manufacturer ID--></algoVendorId>
<algoVersionId><!--optional, xs:string, algorithm version ID--></algoVersionId>
<algoChipType><!--optional, xs:string, chip type--></algoChipType>
<algoModelVersion><!--optional, xs:string, model version--></algoModelVersion>
</algorithmInfo>
</TaskInfo>
<timeStamp><!--optional, xs:string, time of the alarm being triggered, ISO 8601 time format--></timeStamp>
<uid><!--optional, xs:string, unique ID of event upload, the maximum length is 64 bytes--></uid>
</EventNotificationAlert>
B.67 XML_EventNotificationAlert_LineCrossingAlarmMsg
XML Message about alarm details of line crossing detection
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
189
Intelligent Security API (Thermal) Developer Guide
190
Intelligent Security API (Thermal) Developer Guide
</URLCertificationType>
<pId><!--optional, xs:string, picture ID--></pId>
<visibleLightURL>
<!--optional, xs:string, optical picture URL-->
</visibleLightURL>
<thermalURL>
<!--optional, xs:string, thermal picture URL-->
</thermalURL>
<targetAttrs><!--optional, transparent transmission field, the following fields are recommended-->
<![CDATA[{
/*optional, transparent transmission field, the following fields are recommended*/
"deviceId": "",
/*optional, string, device ID, the maximum size is 64 bytes*/
"deviceChannel": ,
/*optional, integer32, device channel ID*/
"deviceName": ""
/*optional, string, device name, the maximum size is 128 bytes*/
}]]>
</targetAttrs>
<TaskInfo><!--optional, task information submitted by Data Center products-->
<taskID><!--required, xs:string, task ID, the maximum size is 64 bytes--></taskID>
<algorithmType>
<!--optional, xs:integer, algorithm type: 1-"hightQualityVehicle" (high-quality vehicle),
2-"hightPerformanceVehicle" (high-performance vehicle), 3-"personStructModel" (person structural modeling),
4-"vehicleAndPersonStructModel" (person and vehicle structural modeling), 5-"videoFaceDetect" (video face
detection), 6-"videoFaceDetectModel" (video face detection and modeling), 7-"smart" (face detection (output frame
without recognizing properties)+human body detection (output properties and frame)+behavior detection)-->
</algorithmType>
<taskName><!--optional, xs:string, task name--></taskName>
<algorithmID><!--optional, xs:string, algorithm package ID--></algorithmID>
<monitorPointID><!--optional, xs:string, camera No.--></monitorPointID>
<monitorPointName><!--optional, xs:string, camera name--></monitorPointName>
<streamType><!--optional, xs:string, stream type: "realtime,historyvideo,localvideo--></streamType>
<ruleID><!--optional, xs:string, rule ID, which is used to distinguish different tasks with the same name, and the
ruleID in the event uploading message indicates that the event is related to this task--></ruleID>
<ruleCustomName><!--required, xs:string, custom event name, which is included in the message when the alarm is
uploaded, and the maximum size is 128 bytes--></ruleCustomName>
<algorithmInfo><!--optional, algorithm version information, this field is required for secondary analysis-->
<algorithmId><!--optional, xs:string, algorithm package --></algorithmId>
<algoVendorId><!--optional, xs:string, manufacturer ID--></algoVendorId>
<algoVersionId><!--optional, xs:string, algorithm version ID--></algoVersionId>
<algoChipType><!--optional, xs:string, chip type--></algoChipType>
<algoModelVersion><!--optional, xs:string, model version--></algoModelVersion>
</algorithmInfo>
</TaskInfo>
<timeStamp><!--optional, xs:string, time of the alarm being triggered, ISO 8601 time format--></timeStamp>
<uid><!--optional, xs:string, unique ID of event upload, the maximum length is 64 bytes--></uid>
</EventNotificationAlert>
Example
Sample Message of Line Crossing Detection Alarm in XML Format
191
Intelligent Security API (Thermal) Developer Guide
B.68 XML_EventNotificationAlert_RegionEntranceAlarmMsg
XML Message about alarm details of region entrance detection
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transmission protocol type: "HTTP, HTTPS, EHome"--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
by commas--></releatedChannelList>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
192
Intelligent Security API (Thermal) Developer Guide
193
Intelligent Security API (Thermal) Developer Guide
</targetAttrs>
<TaskInfo><!--optional, task information submitted by Data Center products-->
<taskID><!--required, xs:string, task ID, the maximum size is 64 bytes--></taskID>
<algorithmType>
<!--optional, xs:integer, algorithm type: 1-"hightQualityVehicle" (high-quality vehicle),
2-"hightPerformanceVehicle" (high-performance vehicle), 3-"personStructModel" (person structural modeling),
4-"vehicleAndPersonStructModel" (person and vehicle structural modeling), 5-"videoFaceDetect" (video face
detection), 6-"videoFaceDetectModel" (video face detection and modeling), 7-"smart" (face detection (output frame
without recognizing properties)+human body detection (output properties and frame)+behavior detection)-->
</algorithmType>
<taskName><!--optional, xs:string, task name--></taskName>
<algorithmID><!--optional, xs:string, algorithm package ID--></algorithmID>
<monitorPointID><!--optional, xs:string, camera No.--></monitorPointID>
<monitorPointName><!--optional, xs:string, camera name--></monitorPointName>
<streamType><!--optional, xs:string, stream type: "realtime,historyvideo,localvideo--></streamType>
<ruleID><!--optional, xs:string, rule ID, which is used to distinguish different tasks with the same name, and the
ruleID in the event uploading message indicates that the event is related to this task--></ruleID>
<ruleCustomName><!--required, xs:string, custom event name, which is included in the message when the alarm is
uploaded, and the maximum size is 128 bytes--></ruleCustomName>
<algorithmInfo><!--optional, algorithm version information, this field is required for secondary analysis-->
<algorithmId><!--optional, xs:string, algorithm package --></algorithmId>
<algoVendorId><!--optional, xs:string, manufacturer ID--></algoVendorId>
<algoVersionId><!--optional, xs:string, algorithm version ID--></algoVersionId>
<algoChipType><!--optional, xs:string, chip type--></algoChipType>
<algoModelVersion><!--optional, xs:string, model version--></algoModelVersion>
</algorithmInfo>
</TaskInfo>
<timeStamp><!--optional, xs:string, time of the alarm being triggered, ISO 8601 time format--></timeStamp>
<uid><!--optional, xs:string, unique ID of event upload, the maximum length is 64 bytes--></uid>
</EventNotificationAlert>
B.69 XML_EventNotificationAlert_RegionExitingAlarmMsg
XML message about alarm details of region exiting detection
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transmission protocol type: "HTTP, HTTPS, EHome"--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
by commas--></releatedChannelList>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
194
Intelligent Security API (Thermal) Developer Guide
195
Intelligent Security API (Thermal) Developer Guide
</targetAttrs>
<TaskInfo><!--optional, task information submitted by Data Center products-->
<taskID><!--required, xs:string, task ID, the maximum size is 64 bytes--></taskID>
<algorithmType>
<!--optional, xs:integer, algorithm type: 1-"hightQualityVehicle" (high-quality vehicle),
2-"hightPerformanceVehicle" (high-performance vehicle), 3-"personStructModel" (person structural modeling),
4-"vehicleAndPersonStructModel" (person and vehicle structural modeling), 5-"videoFaceDetect" (video face
detection), 6-"videoFaceDetectModel" (video face detection and modeling), 7-"smart" (face detection (output frame
without recognizing properties)+human body detection (output properties and frame)+behavior detection)-->
</algorithmType>
<taskName><!--optional, xs:string, task name--></taskName>
<algorithmID><!--optional, xs:string, algorithm package ID--></algorithmID>
<monitorPointID><!--optional, xs:string, camera No.--></monitorPointID>
<monitorPointName><!--optional, xs:string, camera name--></monitorPointName>
<streamType><!--optional, xs:string, stream type: "realtime,historyvideo,localvideo--></streamType>
<ruleID><!--optional, xs:string, rule ID, which is used to distinguish different tasks with the same name, and the
ruleID in the event uploading message indicates that the event is related to this task--></ruleID>
<ruleCustomName><!--required, xs:string, custom event name, which is included in the message when the alarm is
uploaded, and the maximum size is 128 bytes--></ruleCustomName>
<algorithmInfo><!--optional, algorithm version information, this field is required for secondary analysis-->
<algorithmId><!--optional, xs:string, algorithm package --></algorithmId>
<algoVendorId><!--optional, xs:string, manufacturer ID--></algoVendorId>
<algoVersionId><!--optional, xs:string, algorithm version ID--></algoVersionId>
<algoChipType><!--optional, xs:string, chip type--></algoChipType>
<algoModelVersion><!--optional, xs:string, model version--></algoModelVersion>
</algorithmInfo>
</TaskInfo>
<timeStamp><!--optional, xs:string, time of the alarm being triggered, ISO 8601 time format--></timeStamp>
<uid><!--optional, xs:string, unique ID of event upload, the maximum length is 64 bytes--></uid>
</EventNotificationAlert>
B.70 XML_EventNotificationAlert_shipFlowDetection
The information of ship flow detection alarm is uploaded in the XML format of
EventNotificationAlert message, see details below.
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string--></ipAddress>
<ipv6Address><!--dependent, xs:string--></ipv6Address>
<portNo><!--optional, xs:integer--></portNo>
<protocol><!--optional, xs:string, "HTTP,HTTPS"--></protocol>
<macAddress><!--optional, xs:string;MAC--></macAddress>
<channelID><!--dependent, xs:string--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
by commas--></releatedChannelList>
<dateTime><!--required, xs:datetime, ISO 8601 time, eg: 2017-04-22T15:39:01+08:00--></dateTime>
<activePostCount><!--required, xs:integer--></activePostCount>
<eventType><!--required, xs:string, "shipsDetection"--></eventType>
<eventState><!--required, xs:string, "active,inactive"--></eventState>
196
Intelligent Security API (Thermal) Developer Guide
<eventDescription><!--required, xs:string--></eventDescription>
<DetectionRegionList\>
<channelName><!--optional, xs:string--></channelName>
<detectionPicturesNumber><!--optional, xs:integer--></detectionPicturesNumber>
<sid><!--optional, xs:integer,scene ID--></sid>
<sceneName><!--optional, xs:string, scene name--></sceneName>
</EventNotificationAlert>
B.71 XML_EventNotificationAlert_SubscriptionHeartbeat
Heartbeat information message returned when subscribing alarm/event, and it is in XML format.
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<ipAddress>10.17.133.46</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
<macAddress>44:19:b6:6d:24:85</macAddress>
<channelID>1</channelID>
<dateTime>2017-05-04T11:20:02+08:00</dateTime>
<activePostCount>0</activePostCount>
<eventType>heartBeat</eventType>
<eventState>active</eventState>
<eventDescription>heartBeat</eventDescription>
</EventNotificationAlert>
See Also
XML_EventNotificationAlert_AlarmEventInfo
B.72 XML_EventNotificationAlert_TemperatureAlarmMsg
XML message about temperature alarm details
MIME-Version: 1.0
Connection: close
Content-Type: multipart/mixed; boundary=boundary
--boundary
Content-Type: application/xml; charset="UTF-8"
Content-Length: 1645
197
Intelligent Security API (Thermal) Developer Guide
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "TMA"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
<DetectionRegionList><!--dependent-->
<DetectionRegionEntry><!--required-->
<regionID><!--required, xs:string--></regionID>
<RegionCoordinatesList><!--optional-->
<RegionCoordinates><!--optional-->
<positionX><!--required, xs:integer; x-coordinate--></positionX>
<positionY><!--required, xs:integer; y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
<TMA><!--dependent-->
<thermometryUnit><!--required, xs:string, temperature unit: "celsius, fahrenheit, kelvin"--></thermometryUnit>
<ruleTemperature><!--required, xs:float, configured temperature threshold---></ruleTemperature>
<currTemperature><!--required, xs:float, current temperature---></currTemperature>
<ruleCalibType><!--required, xs:string, "point,line,region"--></ruleCalibType>
<MaximumTemperaturePoint><!--dependent, it is valid when <ruleCalibType> is "line" or "region"-->
<RegionCoordinates><!--optional-->
<positionX><!--required, xs:integer; x-coordinate--></positionX>
<positionY><!--required, xs:integer; y-coordinate--></positionY>
</RegionCoordinates>
</MaximumTemperaturePoint>
<AbsoluteHigh>
<elevation><!-- optional, xs:integer, between -900 and 2700--></elevation>
<azimuth><!--optional, xs:integer, between 0 and 3600--></azimuth>
<absoluteZoom><!--optional, xs:integer, between 0 and 1000--></absoluteZoom>
</AbsoluteHigh>
<presetNo><!--optional, xs:integer, preset No.--></presetNo>
</TMA>
</DetectionRegionEntry>
</DetectionRegionList>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
<detectionPicturesNumber><!--optional, xs:integer--></detectionPicturesNumber>
<visibleLightURL><!--optional, xs:string, visible picture URL--></visibleLightURL>
<thermalURL><!--optional, xs:string, thermal picture URL--></thermalURL>
<thermalInfoURL><!--optional, xs:string, thermal additional information URL--></thermalInfoURL>
<URLCertificationType>
<!--optional, xs:string, authentication mode of picture URL: no (none authentication),digest (by digest, for local
picture URL returned by NVR or DVR)-->
</URLCertificationType>
</EventNotificationAlert>
--boundary
Content-Disposition: form-data;
Content-Type: image/pjpeg
Content-Length: 47432
198
Intelligent Security API (Thermal) Developer Guide
<Picture data>
......JFIF......................................
...
--boundary--
B.73 XML_EventNotificationAlert_TMPAMsg
XML message about temperature measurement precautionary alarm
MIME-Version: 1.0
Connection: close
Content-Type: multipart/mixed; boundary=boundary
--boundary
Content-Type: application/xml; charset="UTF-8"
Content-Length: 1662
199
Intelligent Security API (Thermal) Developer Guide
<ruleType><!--optional, xs:string, rule type: "highest temp is higher than"-highest temperature is higher than,
"lowest temp is higher than"-lowest temperature is higher than, "average temp is higher than"-average temperature
is higher than, "temp diff is higher than"-temperature difference is higher than, "highest temp is lower than"-highest
temperature is lower than, "lowest temp is lower than"-lowest temperature is lower than, "average temp is lower
than"-average temperature is lower than, "temp diff is lower than"-temperature difference is lower than--></
ruleType>
<MaximumTemperaturePoint><!--dependent, it is valid when <ruleCalibType> is "line" or "region"-->
<RegionCoordinates><!--optional-->
<positionX><!--required, xs:integer; x-coordinate--></positionX>
<positionY><!--required, xs:integer; y-coordinate--></positionY>
</RegionCoordinates>
</MaximumTemperaturePoint>
<AbsoluteHigh>
<elevation><!-- optional, xs:integer, between -900 and 2700--></elevation>
<azimuth><!--optional, xs:integer, between 0 and 3600--></azimuth>
<absoluteZoom><!--optional, xs:integer, between 0 and 1000--></absoluteZoom>
</AbsoluteHigh>
<presetNo><!--optional, xs:integer, preset No.--></presetNo>
<alarmRuleTemperature><!--required, xs:float, pre-alarm rule temperature--></alarmRuleTemperature>
</TMPA>
</DetectionRegionEntry>
</DetectionRegionList>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
<detectionPicturesNumber><!--optional, xs:integer, the number of pictures--></detectionPicturesNumber>
<visibleLightURL><!--optional, xs:string, visible picture URL, it is not encrypted--></visibleLightURL>
<thermalURL><!--optional, xs:string, thermal picture URL, it is not encrypted--></thermalURL>
<thermalInfoURL><!--optional, xs:string, thermal additional information URL, it is not encrypted--></thermalInfoURL>
<URLCertificationType><!--optional, xs:string, authentication mode of picture URL: no (none authentication),digest
(by digest, for local picture URL returned by NVR or DVR; the maximum string length is 32 bits--></
URLCertificationType>
</EventNotificationAlert>
--boundary
Content-Disposition: form-data;
Content-Type: image/pjpeg
Content-Length: 49164
<Picture data>
......JFIF....................................
.....
--boundary--
B.74 XML_EventTrigger
Linkage parameter message in XML format
<EventTrigger version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<eventType>
<!--required, xs:string, see details in the "Remarks" below-->
200
Intelligent Security API (Thermal) Developer Guide
</eventType>
<eventDescription><!--optional, xs:string--></eventDescription>
<inputIOPortID><!--dependent, xs:string, alarm input ID--></inputIOPortID>
<dynInputIOPortID><!--dependent, xs:string, dynamic alarm input ID--></dynInputPortID>
<videoInputChannelID>
<!--dependent, xs:string, video input channel ID, it is valid when <eventType> is "VMD, videoloss, tamperdetection,
regionEntrance, regionExiting, loitering, group, rapidMove, parking, unattendedBaggage, attendedBaggage"-->
</videoInputChannelID>
<dynVideoInputChannelID><!--dependent, xs:string, dynamic video input channel ID--></dynVideoInputChannelID>
<intervalBetweenEvents><!--optional, xs:integer, event time interval, unit: second--></intervalBetweenEvents>
<WLSensorID><!--dependent, xs:string, ID--></WLSensorID>
<EventTriggerNotificationList/><!--optional, alarm/event linkage actions, see details in the message of
XML_EventTriggerNotificationList-->
</EventTrigger>
Remarks
The node <eventType> can be the following values: IO, VMD, videoloss, raidfailure,
recordingfailure, badvideo, POS, analytics, fanfailure, overheat, tamperdetection, diskfull, diskerror,
nicbroken, ipconflict, illaccess, videomismatch, resolutionmismatch, radifailure, PIR, WLSensor,
spareException, poePowerException, heatmap, counting, linedetection, fielddetection,
regionEntrance, regionExiting, loitering, group,rapidMove, parking, unattendedBaggage,
attendedBaggage, HUMANATTRIBUTE, blackList, whitelist, peopleDetection, allVehicleList,
otherVehicleList, vehicledetection, storageDetection, shipsDetection, humanAttribute,
faceContrast, blackListFaceContrast, whiteListFaceContrast, faceSnap, faceLib,
personDensityDetection, personQueueDetecton, mixedTargetDetection, HVTVehicleDetection,
illegalParking, pedestrian, trafficAccident, construction, roadblock, abandonedObject,
parallelParking, parkingState, congestion, intersectionAnalysis, heatMap, thermometry,
shipsFlowDetection, dredgerDetection, reverseEntrance, luma, highHDTemperature,
lowHDTemperature, hdImpact, hdBadBlock, SevereHDFailure, safetyHelmetDetection,
vibrationDetection, HBDLib,TMPA,faceThermometry,noMaskDetection
See Also
XML_EventTriggerNotificationList
B.75 XML_EventTriggerList
EventTriggerList message in XML format
<EventTriggerList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<EventTrigger/><!--opt, see details in the message of XML_EventTrigger-->
</EventTriggerList>
See Also
XML_EventTrigger
201
Intelligent Security API (Thermal) Developer Guide
Example
XML_EventTriggerList Message Example of Linkage Configurations of Multiple Alarms
<EventTriggerList version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<EventTrigger>
<id>VMD-1</id>
<eventType>VMD</eventType>
<eventDescription>VMD Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>tamper-1</id>
<eventType>tamperdetection</eventType>
<eventDescription>shelteralarm Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>diskfull</id>
<eventType>diskfull</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>diskerror</id>
<eventType>diskerror</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>beep</id>
<notificationMethod>beep</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>nicbroken</id>
<eventType>nicbroken</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>ipconflict</id>
202
Intelligent Security API (Thermal) Developer Guide
<eventType>ipconflict</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>illaccess</id>
<eventType>illaccess</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>videomismatch</id>
<eventType>videomismatch</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>beep</id>
<notificationMethod>beep</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>badvideo</id>
<eventType>badvideo</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>storageDetection-1</id>
<eventType>storageDetection</eventType>
<eventDescription>storageDetection Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>illegalParking-1</id>
<eventType>illegalParking</eventType>
<eventDescription>illegalParking Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
203
Intelligent Security API (Thermal) Developer Guide
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>pedestrian-1</id>
<eventType>pedestrian</eventType>
<eventDescription>pedestrian Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>trafficAccident-1</id>
<eventType>trafficAccident</eventType>
<eventDescription>trafficAccident Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>construction-1</id>
<eventType>construction</eventType>
<eventDescription>construction Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>roadBlock-1</id>
<eventType>roadBlock</eventType>
<eventDescription>roadBlock Event trigger Information</eventDescription>
204
Intelligent Security API (Thermal) Developer Guide
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>abandonedObject-1</id>
<eventType>abandonedObject</eventType>
<eventDescription>abandonedObject Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>parallelParking-1</id>
<eventType>parallelParking</eventType>
<eventDescription>parallelParking Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>trafficJam-1</id>
<eventType>trafficJam</eventType>
<eventDescription>trafficJam Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
205
Intelligent Security API (Thermal) Developer Guide
</EventTrigger>
</EventTriggerList>
B.76 XML_EventTriggerNotification
Event linkage notification message in XML format
<EventTriggerNotification><!--opt-->
<id><!--required, xs:string, device ID--></id>
<notificationMethod>
<!--required, xs:string, linkage actions, opt="email,IM,IO,syslog,HTTP,FTP,beep,ptz,record, monitorAlarm, center,
LightAudioAlarm,focus,trace,cloud,SMS,whiteLight,audio,whiteLight,faceContrast,siren,output"-->
</notificationMethod>
<notificationRecurrence>
<!--optional, xs:string, "beginning,beginningandend,recurring"-->
</notificationRecurrence>
<notificationInterval><!--dependent, xs:integer, unit: millisecond--></notificationInterval>
<outputIOPortID><!--dependent, xs:string, video output No., it is required only when notificationMethod is "IO"--></
outputIOPortID>
<dynOutputIOPortID><!--dependent, xs:string, dynamic video output No., it is required only when
notificationMethod is "IO"--></dynOutputIOPortID>
<videoInputID><!--dependent, xs:string, video input No., it is required only when notificationMethod is "record"--></
videoInputID>
<dynVideoInputID><!--dependent, xs:string, dynamic video input No., it is required only when notificationMethod is
"record"--></dynVideoInputID>
<ptzAction><!--dependent, it is required only when notificationMethod is "ptz"-->
<ptzChannelID><!--required, xs:string, PTZ channel ID--></ptzChannelID>
<actionName><!--required, xs:string, PTZ control type: "preset", "pattern", "patrol"--></actionName>
<actionNum><!--dependent, xs:integer></actionNum>
</ptzAction>
<WhiteLightAction><!--dependent, white light linkage parameters, this node is valid when notificationMethod is
"whiteLight"-->
<whiteLightDurationTime><!--required, xs:integer, white light flashing duration, it is between 1 and 60, unit:
second--></whiteLightDurationTime>
</WhiteLightAction>
<cellphoneNumber><!--dependent, xs:string, min="0" max="11",cellphone number--></cellphoneNumber-->
</EventTriggerNotification>
B.77 XML_EventTriggerNotificationList
EventTriggerNotificationList message in XML format
<EventTriggerNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<EventTriggerNotification/><!--opt, see details in the message of XML_EventTriggerNotification-->
</EventTriggerNotificationList>
See Also
XML_EventTriggerNotification
206
Intelligent Security API (Thermal) Developer Guide
B.78 XML_EventTriggersCap
XML message about linkage capabilities of different alarm categories
<EventTriggersCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DiskfullTriggerCap><!--optional, xs: EventTriggerCapType--></DiskfullTriggerCap>
<DiskerrorTriggerCap><!--optional, xs: EventTriggerCapType--></DiskerrorTriggerCap>
<NicbrokenTriggerCap><!--optional, xs: EventTriggerCapType--></NicbrokenTriggerCap>
<IpconflictTriggerCap><!--optional, xs: EventTriggerCapType--></IpconflictTriggerCap>
<IllaccesTriggerCap><!--optional, xs: EventTriggerCapType--></IllaccesTriggerCap>
<BadvideoTriggerCap><!--optional, xs: EventTriggerCapType--></BadvideoTriggerCap>
<VideomismatchTriggerCap><!--optional, xs: EventTriggerCapType--></VideomismatchTriggerCap>
<IOTriggerCap><!--optional, xs: EventTriggerCapType--></IOTriggerCap>
<LineDetectTriggerCap><!--optional, xs: EventTriggerCapType--></LineDetectTriggerCap>
<RegionEntranceTriggerCap><!--optional, xs: EventTriggerCapType--></RegionEntranceTriggerCap>
<RegionExitingTriggerCap><!--optional, xs: EventTriggerCapType--></RegionExitingTriggerCap>
<LoiteringTriggerCap><!--optional, xs: EventTriggerCapType--></LoiteringTriggerCap>
<GroupDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></GroupDetectionTriggerCap>
<RapidMoveTriggerCap><!--optional, xs: EventTriggerCapType--></RapidMoveTriggerCap>
<ParkingTriggerCap><!--optional, xs: EventTriggerCapType--></ParkingTriggerCap>
<UnattendedBaggageTriggerCap><!--optional, xs: EventTriggerCapType--></UnattendedBaggageTriggerCap>
<AttendedBaggageTriggerCap><!--optional, xs: EventTriggerCapType--></AttendedBaggageTriggerCap>
<FireDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></FireDetectionTriggerCap>
<FireDetectionCap><!--optional, xs: EventTriggerCapType--></FireDetectionCap>
<StorageDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></StorageDetectionTriggerCap>
<ShipsDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></ShipsDetectionTriggerCap>
<ThermometryCap><!--optional, xs: EventTriggerCapType--></ThermometryCap>
<VandalProofTriggerCap><!--optional, xs: EventTriggerCapType--></VandalProofTriggerCap>
<BlackListTriggerCap><!--opt, xs: EventTriggerCapType, configuration capability of blocklist arming linkage--></
BlackListTriggerCap>
<WhiteListTriggerCap><!--opt, xs: EventTriggerCapType, configuration capability of allowlist arming linkage--></
WhiteListTriggerCap>
<AllVehicleListTriggerCap><!--optional,xs:EventTriggerCapType, configuration capability of other list arming linkage--
></AllVehicleListTriggerCap>
<OtherVehicleListTriggerCap><!--optional,xs:EventTriggerCapType--></OtherVehicleListTriggerCap>
<PeopleDetectionTriggerCap><!--optional,xs:EventTriggerCapType--></PeopleDetectionTriggerCap>
<PIRAlarmCap><!--optional, xs: EventTriggerCapType--></PIRAlarmCap>
<TamperDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></TamperDetectionTriggerCap>
<DefocusDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></DefocusDetectionTriggerCap>
<FaceDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></FaceDetectionTriggerCap>
<SceneChangeDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></SceneChangeDetectionTriggerCap>
<VandalProofAlarmCap><!--optional, xs: EventTriggerCapType--></VandalProofAlarmCap>
<JudgmentTriggerCap><!--optional, xs: EventTriggerCapType--></JudgmentTriggerCap>
<FightingTriggerCap><!--optional, xs: EventTriggerCapType--></FightingTriggerCap>
<RisingTriggerCap><!--optional, xs: EventTriggerCapType--></RisingTriggerCap>
<DozingTriggerCap><!--optional, xs: EventTriggerCapType--></DozingTriggerCap>
<CountingTriggerCap><!--optional, xs: EventTriggerCapType--></CountingTriggerCap>
<VideoLossTriggerCap><!--optional, xs: EventTriggerCapType--></VideoLossTriggerCap>
<HideTriggerCap><!--optional, xs:EventTriggerCapType--></HideTriggerCap>
<AlarmInTriggerCap><!--optional, xs: EventTriggerCapType--></AlarmInTriggerCap>
<VehicleDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></VehicleDetectionTriggerCap>
207
Intelligent Security API (Thermal) Developer Guide
208
Intelligent Security API (Thermal) Developer Guide
LowHDTemperatureTriggerCap>
<HDImpactTriggerCap><!--optional, xs:EventTriggerCapType, HDD impact detection--></HDImpactTriggerCap>
<HDBadBlockTriggerCap><!--optional, xs:EventTriggerCapType, HDD bad sector detection--></
HDBadBlockTriggerCap>
<SevereHDFailureTriggerCap><!--optional, xs:EventTriggerCapType, HDD severe fault detection--></
SevereHDFailureTriggerCap>
<HUMANATTRIBUTECap><!--optional, xs:EventTriggerCapType--></HUMANATTRIBUTECap>
<HumanAttributeTriggerCap><!--optional, xs:EventTriggerCapType, human body attribute--></
HumanAttributeTriggerCap>
<BlackListFaceContrastTriggerCap><!--opt, xs:EventTriggerCapType, alarm linkage capability of blocklist face
comparison--></BlackListFaceContrastTriggerCap>
<FaceLibTriggerCap><!--optional, xs:EventTriggerCapType--></FaceLibTriggerCap>
<SafetyHelmetDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of hard hat
detection--></SafetyHelmetDetectionTriggerCap>
<VibrationDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of vibration detection--
></VibrationDetectionTriggerCap>
<RadarLineDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of radar line crossing
detection--></RadarLineDetectionTriggerCap>
<RadarFieldDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of radar intrusion
detection--></RadarFieldDetectionTriggerCap>
<HBDLibTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of human body picture library--></
HBDLibTriggerCap>
<FaceThermometryCap><!--optional, xs:EventTriggerCapType--></FaceThermometryCap>
<NoMaskDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of no wearing mask
detection--></NoMaskDetectionTriggerCap>
<TMPATriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of temperature measurement pre-
alarm--></TMPATriggerCap>
<FireEscapeDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of fire engine access
detection--></FireEscapeDetectionTriggerCap>
<TakingElevatorDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of elevator
detection--></TakingElevatorDetectionTriggerCap>
<RuleTriggerCap><!--optional, linkage capability of rule triggered alarm -->
<isSupportCityManagement>
<!--optional, xs:boolean, whether the city management supports setting linkage actions by area; if supports, the
value is true, otherwise, this node will not be returned-->
</isSupportCityManagement>
</RuleTriggerCap>
<ThermalCalibrationFileExceptionCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of
thermography calibration file exception--></ThermalCalibrationFileExceptionCap>
</EventTriggersCap>
See Also
XML_EventTriggerCapType
B.79 XML_EventTriggerCapType
XML message about capability of alarm linkage action types
<EventTriggerCapType version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportCenter><!--optional, xs:boolean--></isSupportCenter>
209
Intelligent Security API (Thermal) Developer Guide
<isSupportRecord><!--optional, xs:boolean--></isSupportRecord>
<isSupportMonitorAlarm><!--optional, xs:boolean--></isSupportMonitorAlarm>
<isSupportBeep><!--optional, xs: boolean, whether it supports audible warning--></isSupportBeep>
<isSupportIO><!--optional, xs:boolean--></isSupportIO>
<isSupportFTP><!--optional, xs:boolean--></isSupportFTP>
<isSupportEmail><!--optional, xs:boolean--></isSupEmail>
<isSupportLightAudioAlarm><!--optional, xs:boolean--></isSupportLightAudioAlarm>
<isSupportFocus><!--optional, xs:boolean--></isSupportFocus>
<isSupportPTZ><!--optional, xs:boolean--></isSupportPTZ>
<maxPresetActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPresetActionNum>
<maxPatrolActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPatrolActionNum>
<maxPatternActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPatternActionNum>
<isSupportTrack><!--optional, xs:boolean, whether it supports PTZ linked tracking--></isSupportTrack>
<isSupportWhiteLight>
<!--optional, xs: boolean, whether it supports supplement light alarm linkage-->
</isSupportWhiteLight>
<isSupportCloud><!--optional, xs:boolean, whether it supports upload to the cloud--></isSupportCloud>
<targetNotificationInterval max="1000" min="0" default="30"><!--xs:integer, range: [0, 1000], the default value is 30,
unit: seconds, this node is valid for <MotionDetectionTriggerCap> and <TamperDetectionTriggerCap> and this node is
valid when <isSupportPTZ> is "true"--></targetNotificationInterval>
<direction opt="both,forward,reverse"><!--xs:string, triggering direction, this node is valid for the node
<BlackListTriggerCap>, <WhiteListTriggerCap>, and <VehicleDetectionTriggerCap>--></direction>
<presetDurationTime min="" max=""><!--dependent, xs:integer--></presetDurationTime>
<isSupportSMS><!--optional, xs:boolean, whether to support SMS (Short Message Service)--></isSupportSMS>
<maxCellphoneNum><!--dependent, xs:integer, the maximum number of cellphones, which is node is valid only
when <isSupportSMS> is "true"--></maxCellphoneNum>
<isSupportOSD><!--optional, xs:boolean--></isSupportOSD>
<isSupportAudio><!--optional, xs:boolean, whether it supports setting audio alarm independently. If this node is set
to "true", audio alarm and buzzer alarm can be linked separately, and the linage method is audio--></isSupportAudio>
<AudioAction><!--dependent, this node is valid when <isSupportBeep> is "true" or <isSupportAudio> is "true"-->
<audioTypeList>
<audioType><!--list-->
<audioID><!--required, xs:integer, alarm sound type--></audioID>
<audioDescription><!--required, xs:string, alarm sound description, it should correspond to the alarm sound type--
></audioDescription>
</audioType>
</audioTypeList>
<alarmTimes opt="0,1,2,3,4,5,6,7,8,9,255"><!--required, xs:integer, alarm times, it is between 0 and 9, 255-
continuous alarm, unit: time--></alarmTimes>
</AudioAction>
<isSupportSMS><!--optional, xs:boolean --></isSupportSMS>
<maxCellphoneNum><!--dependent, if <isSupportSMS> is true, xs:integer--></maxCellphoneNum>
<isNotSupportCenterModify><!--optional, xs:boolean, whether editing configuration parameters of the surveillance
center is not supported: "true"-yes (configuration parameters of the surveillance center cannot be edited), "false" or
this node is not returned-no (configuration parameters of the surveillance center can be edited)--></
isNotSupportCenterModify>
210
Intelligent Security API (Thermal) Developer Guide
<isSupportMessageConfig>
<!--optional, xs:boolean, whether it supports SMS configuration, if supports, set cellphoneNumber to null-->
</isSupportMessageConfig>
<isSupportAnalogOutput><!--optional, xs:boolean, whether it supports IO output of linkage analog channel--></
isSupportAnalogOutput>
<isSupportIOOutputUnify><!--optional, xs:boolean, whether it supports configuration of IO output--></
isSupportIOOutputUnify>
<isSupportFaceContrast><!--optional, xs:boolean, whether it supports face picture comparison linkage--></
isSupportFaceContrast>
<isSupportSiren><!--optional, xs:boolean, whether it supports siren linkage--></isSupportSiren>
<isSupportOutput><!--optional, xs:boolean, whether it supports relay linkage--></isSupportOutput>
</EventTriggerCapType>
B.80 XML_FaceThermDetectionInfo
XML message about temperature screening result.
<FaceThermDetectionInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id> <!--req, xs:integer, rule ID--> </id>
<name> <!--req, xs:string, rule name--> </name>
<time> <!--req, xs:ISO8601_time, detection time--></time>
<faceDetectionState>
<!--req, xs:boolean, face detection status: false-no face detected, true-face detected-->
</faceDetectionState>
<alarmTemperature>
<!--opt, xs:float, alarm triggered temperature, ranges from 20.0℃ to 150.0℃-->
</alarmTemperature>
<visibleLightImageLen><!--opt, xs:integer, the size of visible light image binary data--></visibleLightImageLen>
<faceImageLen>
<!--opt, xs:integer, size of face thumbnail binary data, that is the size of Opaque Data(visibleLightImage), if no
Opaque Data(visibleLightImage), it values 0-->
</faceImageLen>
<FaceRect>
<!--opt, face thumbnail coordinates-->
<height><!--req, xs:float--></height>
<width><!--req, xs:float--></width>
<x><!--req, xs:float--></x>
<y><!--req,xs:float--></y>
</FaceRect>
<minTemperature> <!--opt, xs:float, -20.0~150.0℃--> </minTemperature>
<ruleTemperature> <!--opt, xs:float, 0.0℃~60.0℃--> </ruleTemperature>
<averageTemperature> <!--opt, xs:float, -20.0~150.0℃--> </averageTemperature>
<MinTemperaturePoint>
<!--opt, the coordinates of lowest temperature position-->
<x><!--req-xs:float--></x>
<y><!--req-xs:float--></y>
</MinTemperaturePoint>
<MaxTemperaturePoint>
<!--opt, the coordinates of highest temperature position-->
<x><!--req-xs:float--></x>
211
Intelligent Security API (Thermal) Developer Guide
<y><!--req-xs:float--></y>
</MaxTemperaturePoint>
<alarmRule>
<!--opt, xs:string, alarm rule: highestGreater-max. temperature higher than, highestLess-min. temperature lower
than-->
</alarmRule>
<highTemperatureTargetImageLen><!--opt, xs:integer--></ highTemperatureTargetImageLen>
<HighTemperatureTargetRect>
<!--opt, the coordiantes of high object thumbnail-->
<height><!--req-xs:float--></height>
<width><!--req-xs:float--></width>
<x><!--req-xs:float--></x>
<y><!--req-xs:float--></y>
</HighTemperatureTargetRect>
</FaceThermDetectionInfo>
Example
Transmit Result Information in Form Format
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: 10.17.133.46
DNT: 1
Connection: Keep-Alive
Cookie: language=zh; sdMarkMenu=8%3Avehicle; sdMarkTab_1_0=0%3AsettingBasic;
sdMarkTab_6_0=5%3AeventException; sdMarkTab_6_1=6%3AsmartLoiterDetection;
sdMarkTab_7_0=1%3AplanCapture; sdMarkTab_7_1=0%3AstorageManageHarddisk;
sdMarkTab_8=0%3AvehicleParam; WebSession=f81610c130711300cf30
HTTP/1.1 200 OK
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=boundary
--boundary
Content-Type: application/xml; charset="UTF-8"
Content-Length: 480
<FaceThermDetectionInfo>
--boundary
Content-Disposition: form-data;
Content-Type: image/pjpeg
Content-Length: 480
Opaque Data(visibleLightImage)
--boundary
Content-Disposition: form-data;
Content-Type: image/pjpeg
Content-Length: 480
Opaque Data(faceImage)
212
Intelligent Security API (Thermal) Developer Guide
--boundary
Content-Disposition: form-data;
Content-Type: image/pjpeg
Content-Length: 480
B.81 XML_FaceThermometry
XML message about temperature screening parameters
<FaceThermometry version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:integer, channel No.--></id>
<faceThermometryEnabled><!--required, xs:boolean, whether enables temperature screening: true-yes, false-no--></
faceThermometryEnabled>
<thermometrShowEnabled><!--required, xs:boolean, whether enables temperature OSD: true-yes, false-no--></
thermometrShowEnabled>
<alarmEnabled><!--required, xs:bool, enable alarm subscription, opt="true,false"--></alarmEnabled>
<alarmIntervalTime min="0.5" max="600" def="1"><!--dep, xs:float, alarm interval time, which is valid in non-card
mode, the interval is between 0.5 s and 60 s. The default time interval is 1s, unit:s--></alarmIntervalTime>
<normalizedScreenSize><!--required, read-only, read-only, it is the multiples of normalized coordinates returned by
device-->
<normalizedScreenWidth><!--required, read-only, xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--required, read-only, xs:integer--></normalizedScreenHeight>
</normalizedScreenSize>
<FaceThermometryRegionList/><!--optional, temperature screening rule list-->
<imageQuality><!--optional, xs:string, image quality, including high, medium, and low, "high,medium,low"--></
imageQuality>
<mode><!--optional, xs:string, temperature screening mode: "barrierPassing"-barrier passing (transmit the custom in
airport), "targeting"-targeting (detect the person with high temperature)--></mode>
<faceSnapUploadEnabled><!--optional, xs:boolean, whether to enable uploading captured face picture: true-enable,
false-disable--></faceSnapUploadEnabled>
<maxTemperatureCoordinatesEnabled><!--optional, xs:boolean, whether to enable displaying the maximum
temperature position: true-enable, false-disable--></maxTemperatureCoordinatesEnabled>
<faceRectShowEnabled><!--optional, xs:boolean, whether to enable displaying a frame on the target person: true-
enable, false:disable--></faceRectShowEnabled>
<faceTemperatureShowEnabled><!--optional, xs:boolean, whether to enable displaying face temperature: true-
enable, false:disable--></faceTemperatureShowEnabled>
</FaceThermometry>
B.82 XML_FaceThermometryRegionList
XML message about temperature screening rule list
<FaceThermometryRegionList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ThermometryRegion/><!--opt, single rule information of temperature screening-->
</FaceThermometryRegionList>
213
Intelligent Security API (Thermal) Developer Guide
B.83 XML_FaceThermometryScheduleList
FaceThermometryScheduleList message in XML format.
<FaceThermometryScheduleList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<Schedule/><!--opt, see details in XML_Schedule-->
</FaceThermometryScheduleList>
See Also
XML_Schedule
B.84 XML_FireDetection
FireDetection message in XML format
<FireDetection version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean--></enabled>
<sensitivity><!--req, xs:integer, ranges from 1 to 100--></sensitivity>
<fireComfirmTime><!--opt, xs:integer, ranges from 0 to 120--></fireComfirmTime>
<fireRegionOverlay><!--opt, xs:boolean--></fireRegionOverlay>
<detectionMode><!--opt, xs:string, "multipleFarme, singleFarme"--></detectionMode>
<fireFocusMode><!--opt, xs:string, "auto, cruise"--></fireFocusMode>
<FireZoom>
<zoomMode><!--req, xs:string, "auto, manual"--></zoomMode>
<zoomLevel><!--dep, xs:integer, ranges from 1 to 100--></zoomLevel>
</FireZoom>
<AlarmStrategy>
<strategyType><!--req, xs:string, "any, cooperate, multisystem, appointFire, appointSmoke"--></strategyType>
<alarmType><!--dep, xs:string, "fire, smoke"--></strategyType>
</AlarmStrategy>
<SmokeDetection>
<enabled><!--req, xs:boolean--></enabled>
<sensitivity><!--opt, xs:integer, ranges from 1 to 100--></sensitivity>
<patrolSensitivity><!--opt, xs:integer, sensitivity of patrol detection, ranges from 1 to 100--></patrolSensitivity>
<doubleCheckSensitivity><!--opt, xs:integer, sensitivity of double filtering, ranges from 1 to 100--></
doubleCheckSensitivity>
<displaySmokeInfoOnStreamEnabled><!--opt, xs:boolean, overlay smoke information on stream--></
displaySmokeInfoOnStreamEnabled>
</SmokeDetection>
<smokeFireEnabled><!--req, xs:boolean--></smokeFireEnabled>
<ApplicationScene>
<mode><!--opt, xs:string. "forest-Fire_Prevention, strawBurning, high-building, Indoor/Perimeter"--></mode>
<InstallationHeight><!--xs:interger, it is valid only when mode is "strawBurning", "high-building", or "Indoor/
Perimeter", ranges from 1 to 500, unit: m--></InstallationHeight>
</ApplicationScene>
<cancelRepeatedAlarmEnabled>
<!--opt, xs:boolean, cancel repeated alarm, it is valid only when detectionMode is "multipleFarme"-->
</cancelRepeatedAlarmEnabled>
214
Intelligent Security API (Thermal) Developer Guide
B.85 XML_HistoryTemperatureCap
HistoryTemperatureCap message in XML format
<HistoryTemperatureCap version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<id min="1" max="40">
<!--req, xs:integer, preset ID-->
</id>
<thermometryUnit opt = "celsius,fahrenheit,kelvin">
<!--req, temperature measurement unit, xs:string:"celsius,fahrenheit,kelvin"-->
</thermometryUnit>
<ruleId min = "1" max = "10">
<!--req, xs:integer -->
</ruleId>
<tempValue min="-40.0" max="1000.0">
<!--req, xs: float ro-->
</tempValue>
</HistoryTemperatureCap>
215
Intelligent Security API (Thermal) Developer Guide
B.86 XML_HistoryTemperatureDescription
HistoryTemperatureDescription message in XML format
<HistoryTemperatureDescription version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<id><!--req, xs:integer, preset ID--></id>
<startTime><!--req,xs:time, ISO8601 time--></startTime>
<RuleIdList><!--req-->
<ruleId><!-- req ,xs:integer--></ruleId>
</RuleIdList>
</HistoryTemperatureDescription>
B.87 XML_HistoryTemperatureResult
HistoryTemperatureResult message in XML format
<HistoryTemperatureResult version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<thermometryUnit>
<!--req,xs:string,"celsius,fahrenheit,kelvin"-->
</thermometryUnit>
<RuleInfoList><!--req-->
<RuleInfo>
<ruleId><!--req ,xs:integer--></ruleId>
<TempInfoList>
<TempInfo>
<time><!--req,xs:time, ISO8601 time--></time>
<tempValue>
<!--dep, xs:float, "-40.0 .. 1000.0", corrects to one decimal place, ro-->
</tempValue>
</TempInof>
</TempInfoList>
</RuleInfo>
</RuleInfoList>
</HistoryTemperatureResult>
B.88 XML_IntelliCap
XML message about intelligent capability
<IntelliCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isFaceSupport><!--optional, xs:boolean, whether it supports face detection--></isFaceSupport>
<isBehaviorSupport><!--optional, xs:boolean, whether it supports behavior analysis--></isBehaviorSupport>
<isLineDetectionSupport><!--optional, xs:boolean, whether it supports line crossing detection--></
isLineDetectionSupport>
<isFieldDetectionSupport><!--optional, xs:boolean, whether it supports intrusion detection--></
isFieldDetectionSupport>
<isRegionEntranceSupport><!--optional, xs:boolean, whether it supports region entrance detection--></
216
Intelligent Security API (Thermal) Developer Guide
isRegionEntranceSupport>
<isRegionExitingSupport><!--optional, xs:boolean, whether it supports region exiting detection--></
isRegionExitingSupport>
<isLoiteringSupport><!--optional, xs:boolean, whether it supports loitering detection--></isLoiteringSupport>
<isGroupSupport><!--optional, xs:boolean, whether it supports people gathering detection--></isGroupSupport>
<isRapidMoveSupport><!--optional, xs:boolean, whether it supports fast moving detection--></
isRapidMoveSupport>
<isParkingSupport><!--optional, xs:boolean, whether it supports parking detection--></isParkingSupport>
<isUnattendedBaggageSupport><!--optional, xs:boolean, whether it supports unattended baggage detection--></
isUnattendedBaggageSupport>
<isAttendedBaggageSupport><!--optional, xs:boolean, whether it supports object removal detection--></
isAttendedBaggageSupport>
<isTeacherSupport><!--optional, xs:boolean, whether it supports teacher's behavior detection--></
isTeacherSupport>
<isStudentSupport><!--optional, xs:boolean, whether it supports student's behavior detection--></
isStudentSupport>
<isCombinedSupport><!--optional, xs:boolean, whether it supports combined detection--></isCombinedSupport>
<isTrafficSupport><!--optional, xs:boolean, whether it supports traffic detection--></isTrafficSupport>
<RestoreLib>
<libName opt="studentsStoodUp,peopleCounting,shipDetection"><!--optional, xs:string,--></libName>
</RestoreLib>
<RestoreDefParamForbid>
<!--optional, xs:boolean "true, false", forbid restoring algorithm library to default. When the node does not exist, it
indicates restoring to default is not supported. When the node exists and its value is "ture", it indicates support, when
the value is "false", it indicates not support-->
</RestoreDefParamForbid>
<RestoreAlgLibParam>
<!--optional, the capabilities of restoring algorithm library parameters according to algorithm library name-->
<libName opt="faceSnap,HMS,behaviorAnalysis"><!--optional, xs:string--></libName>
</RestoreAlgLibParam>
<isFaceCaptureStatisticsSupport><!--whether it supports face picture statistics--></isFaceCaptureStatisticsSupport>
<isSupportPersonQueueDetection><!--whether it supports queue management--></
isSupportPersonQueueDetection>
<isSupportIntersectionAnalysis>
<!--optional, xs: boolean, whether it supports intersection analysis-->
</isSupportIntersectionAnalysis>
<mixedTargetDetectionWithoutAttribute><!--optional, xs: boolean--></mixedTargetDetectionWithoutAttribute>
<isSupportUploadFacePictureByForm><!--optional, xs:boolean, whether it supports uploading face pictures by form--
></isSupportUploadFacePictureByForm>
<isSupportUploadFacePictureByUrl><!--optional, xs: boolean, whether it supports uploading face pictures by URL--
></isSupportUploadFacePictureByUrl>
<isSupportUploadHumanPictureByForm><!--optional, xs:boolean, whether it supports uploading human pictures in
form--></isSupportUploadHumanPictureByForm>
<isSupportMisinfoFilterStatisticalMode><!--optioal, xs:boolean, whether it supports statistics of filtering face
comparison--></isSupportMisinfoFilterStatisticalMode>
<isSupportFaceScore><!--optional, xs:boolean, whether it supports face grading configuration (camera)--></
isSupportFaceScore>
<HumanRecognitionModeSearchCap>
<searchTargetsNumMax><!--optional, xs:integer, maximum number of sample pictures that can be imported for
searching by picture--></searchTargetsNumMax>
<HumanMode>
<searchCond opt="age_group,gender,jacet_color,glass,bag,ride,unlimit"/><!--setting multiple search conditions is
217
Intelligent Security API (Thermal) Developer Guide
supported-->
<similarity min="0.0" max="100.0"/><!--optional, xs:float, similarity, range: [0.0,100.0]-->
</HumanMode>
<HumanInfo><!--optional, person attribute information, it is required when searching for picture by attributes-->
<age_group opt="child,infant,kid,middle,middleAged,old,prime,teenager,unknown,young">
<!--optional, xs:string, age group: "child,infant,kid,middle,middleAged,old,prime,teenager,unknown,young"-->
</age_group>
<gender opt="female,male,unknown"><!--optional, xs:string, gender: "female,male,unknown"--></gender>
<jacet_color
opt="black,black,blue,brown,cyan,deepBlue,deepGray,gray,green,mixture,orange,pink,purple,red,silver,unknown,whit
e,yellow">
<!--optional, xs:string, tops color-->
</jacet_color>
<glass opt="yes,no,unknown,sunglasses"><!--optional, xs:string, whether the person is wearing glasses--></glass>
<bag opt="yes,no,unknown"><!--optional, xs:string, whether the person is carrying a bag--></bag>
<ride opt="yes,no,unknown"><!--optional, xs:string, whether the person is riding--></ride>
</HumanInfo>
<positive opt="true,false"/><!--optional, xs:boolean, whether it is false human body recognition alarm: "true"-yes,
"false"-no-->
<eventType opt="unlimit,humanRecognition">
<!--optional, xs:string, event type: "unlimit"-no limit, "humanRecognition"-human body detection alarm-->
</eventType>
<isSupportMultiChannelSearch>
<!--optional, xs:boolean, whether it supports multi-channel search-->
</isSupportMultiChannelSearch>
<isSupportTotalSearchResult>
<!--optional, xs:boolean, whether it supports limiting number of results that can be obtained after a single search--
>
</isSupportTotalSearchResult>
</HumanRecognitionModeSearchCap>
<VehicleRecognitionModeSearchCap>
<searchTargetsNumMax><!--optional, xs:integer, maximum number of sample pictures that can be imported for
searching by picture--></searchTargetsNumMax>
<eventType opt="unlimit,vehicleBlackList,vehicleWhiteList"/><!--xs:string, event type: "unlimit"-no limit,
"vehicleBlackList"-vehicle blocklist, "vehicleWhiteList"-vehicle allowlist-->
<VehicleMode>
<searchCond opt="licensePlate,vehicleLogo,vehicleSubLogoRecog,vehicleType,vehicleColor,unlimit"/>
<similarity min="0.0" max="100.0"/><!--optional, xs:float, similarity, range: [0.0,100.0]-->
</VehicleMode>
<isSupportMultiChannelSearch>
<!--optional, xs:boolean, whether it supports multi-channel search-->
</isSupportMultiChannelSearch>
<isSupportTotalSearchResult>
<!--optional, xs:boolean, whether it supports limiting number of results that can be obtained after a single search--
>
</isSupportTotalSearchResult>
</VehicleRecognitionModeSearchCap>
<FaceContrastAnalyzeCap><!--capability of manual comparison and analysis of face pictures-->
<isSupportTrigger opt="false,true"><!--optional, xs:boolean--></isSupportTrigger>
<SearchCondition><!--optional-->
<startTime><!--required, xs:time, ISO8601 time--></startTime>
<endTime><!--required, xs:time, ISO8601 time--></endTime>
218
Intelligent Security API (Thermal) Developer Guide
</SearchCondition>
</FaceContrastAnalyzeCap>
<FramesPeopleCountingCap><!--capability of people counting statistics in a single frame-->
<Statistics>
<SearchCondition>
<startTime><!--required, xs:time,ISO8601 time--></startTime>
<endTime><!--required, xs:time,ISO8601 time--></endTime>
</SearchCondition>
</Statistics>
<MaskRegion><!--optional, shielded region-->
<maxRegionNum><!--optional, xs:integer, number of regions--></maxRegionNum>
<Region>
<vertexNum min="3" max="10"><!--optional, xs:integer, number of region vertexes--></vertexNum>
</Region>
</MaskRegion>
</FramesPeopleCountingCap>
<FaceContrastPersonInfoExtend><!--configuration capability of face comparison tag-->
<personInfoCap>
<maxPersonInfo min="0" max="4">
<!--optional, xs:integer, maximum number of person tags-->
</maxPersonInfo>
</personInfoCap>
<personInfoFDlibCap>
<maxPersonInfo min="0" max="4">
<!--optional, xs:integer, maximum number of person tags-->
</maxPersonInfo>
</personInfoFDlibCap>
</FaceContrastPersonInfoExtend>
<isSupportSafetyHelmetDetection>
<!-- opt, xs:boolean, whether it supports hard hat detection-->
</isSupportSafetyHelmetDetection>
<isSupportDistanceRecognition><!--optional, xs:boolean, whether supports distance measurement--></
isSupportDistanceRecognition>
<isSupportATM><!--optional, xs:boolean, ATM intelligent configuraiton, corresponds to URI: /ISAPI/Intelligent/ATM/
capabilities?format=json--></isSupportATM>
<isSupportFaceTemperature><!--optional, xs:boolean, whether the device supports face thermography, corresponds
to URI: /ISAPI/Intelligent/faceTemperature/capabilities?format=json--></isSupportFaceTemperature>
<isSupportFireEscapeDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for fire engine access detection events of multiple
channels (related URI: URI/ISAPI/Intelligent/fireEscapeDetection/search/capabilities?format=json)-->
</isSupportFireEscapeDetectionSearch>
<isSupportTakingElevatorDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for elevator detection events of multiple channels
(related URI: /ISAPI/Intelligent/takingElevatorDetection/search/capabilities?format=json)-->
</isSupportTakingElevatorDetectionSearch>
<isSupportCityManagementSearch>
<!--optional, xs:boolean, whether the device supports searching for city management events of multiple channels
(related URI: /ISAPI/Intelligent/cityManagement/search/capabilities?format=json)-->
</isSupportCityManagementSearch>
<isSupportSafetyHelmetDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for hard hat detection events of multiple channels
(related URI: /ISAPI/Intelligent/safetyHelmetDetection/search/capabilities?format=json)-->
219
Intelligent Security API (Thermal) Developer Guide
</isSupportSafetyHelmetDetectionSearch>
</IntelliCap>
B.89 XML_PixelToPixelParam
XML message about parameters of pixel-to-pixel temperature measurement
<PixelToPixelParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer, channel No.--></id>
<maxFrameRate>
<!--opt, xs: integer, maximum frame rate-->
</maxFrameRate>
<reflectiveEnable>
<!--opt, xs: boolean, enable reflection temperature or not-->
</reflectiveEnable>
<reflectiveTemperature>
<!--opt, xs: float, reflection temperature-->
</reflectiveTemperature>
<emissivity>
<!--opt, xs: float, emissivity-->
</emissivity>
<distance>
<!--req, xs: integer, unit: m, distance-->
</distance>
<refreshInterval>
<!--opt, xs: integer, the refresh interval of pixel-to-pixel temperature measurement-->
</refreshInterval>
<distanceUnit>
<!--opt, xs:string, distance unit, opt="meter,feet,centimeter"-->
</distanceUnit>
<temperatureDataLength>
<!--opt, xs:integer, temperature data length-->
</temperatureDataLength>
<JpegPictureWithAppendData>
<!--opt, configuration of getting JPEG picture with pixel-to-pixel temperature measurement data-->
<jpegPicEnabled><!--opt, xs:boolean, whether returns JPEG picture--></jpegPicEnabled>
<visiblePicEnabled><!--optional, xs:boolean, whether the thermal camera returns visible light picture--></
visiblePicEnabled>
<rulesOverlayEnabled><!--optional, xs:boolean, whether to enable thermography rule overlay on picture--></
rulesOverlayEnabled>
<visiblePicResolution><!--optional, xs:boolean, visible light picture resolution: 600*800, 1200*1600--></
visiblePicResolution>
<thermalPicResolution><!--optional, xs:boolean, thermal picture resolution: 160*120, 640*480--></
thermalPicResolution>
</JpegPictureWithAppendData>
</PixelToPixelParam>
220
Intelligent Security API (Thermal) Developer Guide
B.90 XML_PixelToPixelParamCap
XML message about capability of pixel-to-pixel temperature measurement
<PixelToPixelParamCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:integer, channel No.--></id>
<maxFrameRate opt="">
<!--optional, xs:integer, maximum frame rate-->
</maxFrameRate>
<reflectiveEnable opt="true false">
<!--optional, xs:boolean, enable reflection temperature or not-->
</reflectiveEnable>
<reflectiveTemperature>
<!--optional, xs:float, reflection temperature-->
</reflectiveTemperature>
<emissivity min="0.01" max="1.00">
<!--optional, xs:float, emissivity-->
</emissivity>
<distance min="0" max="50">
<!--required, xs:integer, unit: m, distance-->
</distance>
<refreshInterval min="1" max="500">
<!--optional, xs:integer, the refresh interval of pixel-to-pixel temperature measurement-->
</refreshInterval>
<distanceUnit opt="meter,feet,centimeter">
<!--optional, xs:string, distance unit-->
</distanceUnit>
<temperatureDataLength opt="2,4">
<!--optional, xs:integer, temperature data length-->
</temperatureDataLength>
<JpegPictureWithAppendData>
<!--optional, configuration of getting JPEG picture with pixel-to-pixel temperature measurement data-->
<jpegPicEnabled opt="true,false"><!--optional, xs:boolean, whether returns JPEG picture--></jpegPicEnabled>
<visiblePicEnabled opt="true,false"><!--optional, xs:boolean, whether the thermal camera returns visible light
picture--></visiblePicEnabled>
<captureMode opt="standard"><!--optional, xs:string, image capture mode: standard--></captureMode>
<rulesOverlayEnabled opt="true,false"><!--optional, xs:boolean, whether to enable thermography rule overlay on
picture--></rulesOverlayEnabled>
<visiblePicResolution opt="600*800,1200*1600"><!--optional, xs:boolean, visible light picture resolution: 600*800,
1200*1600--></visiblePicResolution>
<thermalPicResolution opt="160*120,640*480"><!--optional, xs:boolean, thermal picture resolution: 160*120,
640*480--></thermalPicResolution>
</JpegPictureWithAppendData>
</PixelToPixelParamCap>
B.91 XML_Power
Power message in XML format
221
Intelligent Security API (Thermal) Developer Guide
B.92 XML_PTZPreset
XML message about preset parameters
<?xml version="1.0" encoding="utf-8"?>
<PTZPreset version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean, whether to enable preset configuration--></enabled>
<id><!--required, xs:string, preset No.--></id>
<presetName><!--required, xs:string, preset name--></presetName>
<AbsoluteHigh>
<elevation><!--optional, xs:integer, tilting parameter, the value is between -900 and 2700--></elevation>
<azimuth><!--optional, xs:integer, panning parameter, the value is between 0 and 3600--></azimuth>
<absoluteZoom><!--optional, xs:integer, zooming parameter, the value is between 1 and 1000--></absoluteZoom>
</AbsoluteHigh>
</PTZPreset>
B.93 XML_PTZPresetList
XML message about preset information list
<?xml version="1.0" encoding="utf-8"?>
<PTZPresetList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<PTZPreset/><!--optional, see details in XML_PTZPreset-->
</PTZPresetList>
See Also
XML_PTZPreset
B.94 XML_RegionalExposure
RegionalExposure message in XML format
<RegionalExposure version=“2.0” xmlns=“http://www.isapi.com/ver20/XMLSchema”>
<StartPoint><!--from 0 to 1000-->
<positionX><!--req, xs:integer--></positionX>
<positionY><!--req, xs:integer--></positionY>
</StartPoint>
222
Intelligent Security API (Thermal) Developer Guide
<EndPoint><!--from 0 to 1000-->
<positionX><!--req, xs:integer--></positionX>
<positionY><!--req, xs:integer--></positionY>
</EndPoint>
</RegionalExposure>
B.95 XML_ResponseStatus
XML message about response status
<?xml version="1.0" encoding="utf-8"?>
<ResponseStatus version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL>
<!--required, read-only, xs:string, request URL-->
</requestURL>
<statusCode>
<!--required, read-only, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid
XML Format, 6-Invalid XML Content, 7-Reboot Required, 9-Additional Error-->
</statusCode>
<statusString>
<!--required, read-only, xs:string, status description: OK, Device Busy, Device Error, Invalid Operation, Invalid XML
Format, Invalid XML Content, Reboot, Additional Error-->
</statusString>
<subStatusCode>
<!--required, read-only, xs:string, describe the error reason in detail-->
</subStatusCode>
<MErrCode>
<!--optional, xs:string, error code categorized by functional modules, e.g., 0x12345678-->
</MErrCode>
<MErrDevSelfEx>
<!--optional, xs:string, extension field of MErrCode. It is used to define the custom error code, which is categorized
by functional modules-->
</MErrDevSelfEx>
</ResponseStatus>
Note
See Response Codes of Text Protocol for details about sub status codes and corresponding error
codes.
B.96 XML_Schedule
Schedule message in XML format
<Schedule version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<eventType>
<!--optional, xs:string, alarm/event types, see details in the "Remarks" below-->
</eventType>
223
Intelligent Security API (Thermal) Developer Guide
Remarks
The node <eventType> can be set to the following values: IO, VMD,videoloss, PIR,linedetection,
fielddetection, audioexception, facedetection, regionEntrance, regionExiting, loitering, group,
rapidMove, parking, unattendedBaggage,attendedBaggage, storageDetection, shipsDetection,
HUMANATTRIBUTE, humanAttribute, faceContrast, faceSnap, faceLib, whiteListFaceContrast,
personDensityDetection, personQueueDetection, mixedTargetDetection, fireDetection,
illegalParking, pedestrian, trafficAccident,construction, roadblock, abandonedObject,
parallelParking, parkingState, congestion, intersectionAnalysis, heatMap, reverseEntrance,
vehicledetect, safetyHelmetDetection, vibrationDetection, TMPA, faceThermometry, HBDLib.
B.97 XML_SubscribeEvent
SubscribeEvent message in XML format
<SubscribeEvent version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema" >
<heartbeat>
<!--optional, xs:integer, heartbeat interval, unit: second, the default value is 30s-->
</heartbeat>
<eventMode>
<!--required, xs:string, "all"-upload all alarms/events, "list"-upload specified alarm/event-->
224
Intelligent Security API (Thermal) Developer Guide
</eventMode>
<EventList>
<Event><!--uploading mode of specified alarm/event, this node exists only when eventMode is "list"-->
<type>
<!--required, xs:string, alarm/event types, which are obtained from the capability, refer to Alarm/Event Types for
Subscription for its values-->
</type>
<minorAlarm>
<!--opt, xs:string, minor alarm type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type. This
node is required when type is "AccessControllerEvent"-->
</minorAlarm>
<minorException>
<!--opt, xs:string, minor exception type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorException>
<minorOperation>
<!--opt, xs:string, minor operation type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorOperation>
<minorEvent>
<!--opt, xs:string, minor event type: "0x01,0x02,0x03,0x04", see details in Access Control Event Type. This node is
required when type is "AccessControllerEvent"-->
</minorEvent>
<pictureURLType>
<!--opt, xs:string, alarm picture format: "binary"-binary, "localURL"-device local URL, "cloudStorageURL"-cloud
storage URL-->
</pictureURLType>
</Event>
</EventList>
<channels>
<!--optional, xs:string, event linked channel information, and multiple channels can be linked, each channel is
separated by comma, e.g., "1,2,3,4…"-->
</channels>
<channels>
<!--optional, xs:string, specify channels (each channel is separated by comma, e.g., "1,2,3,4…") to be armed, this
node does not exist if you want to arm all channels, and if this node exists, the sub node <channels> in the node
<Event> is invalid-->
</channels>
<identityKey max="64"/>
<!--opt, xs: string, interaction command of subscription, supports subscribing comparison results of face picture
library (importing with this command), the maximum length is 64-->
</SubscribeEvent>
B.98 XML_SubscribeEventCap
SubscribeEventCap capability message in XML format
<SubscribeEventCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<heartbeat min="" max="" />
<!--optional, heartbeat time interval, unit: second-->
225
Intelligent Security API (Thermal) Developer Guide
226
Intelligent Security API (Thermal) Developer Guide
<identityKey max="64"/>
<!--opt, xs: string, interaction command of subscription, supports subscribing comparison results of face picture
library (importing with this command), the maximum length is 64-->
</SubscribeEventCap>
B.99 XML_SubscribeEventResponse
SubscribeEventResponse message in XML format
<SubscribeEventResponse>
<id><!--req, xs:integer, subscription ID--></id>
<FailedEventList>
<!--opt, list of subscription failed events. When subscription failed, it should be returned, and the upper layer can
check whether all event/alarm subscriptions are succeeded via the existence of node FailedEventList-->
<Event>
<type>
<!--req, xs:string, refer to Supported Alarm/Event Types for details-->
</type>
<minorAlarm>
<!--opt, xs:string, minor alarm type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type. This
node is required when type is "AccessControllerEvent"-->
</minorAlarm>
<minorException>
<!--opt, xs:string, minor exception type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorException>
<minorOperation>
<!--opt, xs:string, minor operation type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorOperation>
<minorEvent>
<!--opt, xs:string, minor event type: "0x01,0x02,0x03,0x04", see details in Access Control Event Type. This node is
required when type is "AccessControllerEvent"-->
</minorEvent>
<pictureURLType>
<!--opt,xs:string, opt="binary,localURL,cloudStorageURL", alarm picture transmission mode: "binary"-binary,
"localURL"-device local URL, "cloudStorageURL"-cloud storage URL-->
</pictureURLType>
<channels>
<!--opt, xs:string, "1,2,3,4…", event related channel ID, supports multiple channels, and the channel ID is
separated by commas-->
</channels>
<subStatusCode>
<!--req, string, subscription failure error code-->
</subStatusCode>
</Event>
</FailedEventList>
</SubscribeEventResponse>
227
Intelligent Security API (Thermal) Developer Guide
B.100 XML_ThermalBlackBody
ThermalBlackBody message in XML format.
<ThermalBlackBody version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<emissivity><!--req, xs:float, black body emissivity is between 0.01 and 1, which corrects to two decimal places. The
default value is 0.97 --></emissivity>
<distance><!--req, xs: float, the distance between lens and black body, ranges from 0.0 m to 10.0 m, which corrects
to one decimal place. The default value is 2.0 m, unit:m--></distance>
<temperature><!--req, xs:float, black body temperature is between 30.0 °C and 50.0 °C, which corrects to one
decimal place. The default value is 35.0 °C, unit: °C--></temperature>
<CentrePoint><!--req, center position of black body. After clicking this position, the normalized coordinate
information (between 0 and 1000) will be applied-->
<CalibratingCoordinates><!--dep-->
<positionX><!--req, xs:integer; coordinate--></positionX>
<positionY><!--req, xs:integer; coordinate--></positionY>
</CalibratingCoordinates>
</CentrePoint>
<normalizedScreenSize><!--req, ro, read-only, it is the multiples of normalized coordinates returned by device-->
<normalizedScreenWidth><!--req, ro,xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--req, ro,xs:integer--></normalizedScreenHeight>
</normalizedScreenSize>
<enabled opt="true,false"><!--optional, xs:boolean, whether to enable black body--></enabled>
<BlackBodyReigon><!--optional, black body detection area-->
<type opt="point,region"><!--required, xs:string, "point, region", area type: "point", "region"--></type>
<Point><!--dependent, point coordinate, it is valid when value of type is "point"-->
<CalibratingCoordinates><!--dependent, point coordinate-->
<positionX><!--required, xs:integer; coordinate--></positionX>
<positionY><!--required, xs:integer; coordinate--></positionY>
</CalibratingCoordinates>
</Point>
<Region><!--dependent, frame coordinate, it is valid when value of type is "region"-->
<RegionCoordinatesList size="4"><!--dependent, list of region coordinates-->
<RegionCoordinates><!--list, optional-->
<positionX><!--required, xs:integer; X-coordinate--></positionX>
<positionY><!--required, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</BlackBodyReigon>
</ThermalBlackBody>
B.101 XML_ThermalCap
XML message about thermal capability
<ThermalCap version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<isSupportFireDetection><!--optional, xs:boolean, whether supports fire detection--></isSupportFireDetection>
<isSupportThermometry><!--optional, xs:boolean, whether supports temperature measurement--></
228
Intelligent Security API (Thermal) Developer Guide
isSupportThermometry>
<isSupportRealtimeThermometry><!--optional, xs:boolean, whether supports uploading real-time temperature
measurement data--></isSupportRealtimeThermometry>
<isFireFocusZoomSupport><!--optional, xs:boolean, whether supports visible light lens zooming--></
isFireFocusZoomSupport>
<isSupportManualRanging>
<!--optional, xs:boolean, this node will be returned if one or more channels of device supports this function, see
detailed channel capability in the response information"-->
</isSupportManualRanging>
<isSupportPower><!--optional, xs:boolean, whether supports power on/off capability--></isSupportPower>
<isSupportRealtimeTempHumi><!--optional, xs:boolean, whether supports real-time detection of temperature and
humidity--></isSupportRealtimeTempHumi>
<ManualThermCap>
<manualThermRuleNum>
<!--optional, xs:integer, the max. number of supported rules for manual temperature measurement. If this node is
not returned, it indicates manual temperature measurement is not supported-->
</manualThermRuleNum>
</ManualThermCap>
<isSupportManualThermBasic>
<!--optional, xs:boolean, whether supports basic configuration of manual temperature measurement-->
</isSupportManualThermBasic>
<isSupportFireShieldMask><!--optional, xs:boolean--></isSupportFireShieldMask>
<isSupportsmokeShieldMask><!--optional, xs:boolean--></isSupportsmokeShieldMask>
<isSupportThermometryMode>
<!--optional, xs:boolean, whether the device supports the configuration of temperature measurement mode-->
</isSupportThermometryMode>
<isSupportThermalPip>
<!--optional, xs:boolean, whether the device supports the PIP configuration-->
</isSupportThermalPip>
<isSupportThermalIntelRuleDisplay><!--optional, xs:boolean, whether supports VCA rule configuration--></
isSupportThermaIntelRuleDisplay>
<AlgVersionInfo><!-opt, whether supports getting the version information of thermal algorithms library-->
<thermometryAlgName min = "1" max = "128">
<!--read-only, xs:string, version information of temperature measurement algorithms library-->
</thermometryAlgName>
<shipsAlgName min = "1" max = "128"><!--read-only, xs:string, version name of ship detection algorithms library--
></shipsAlgName>
</AlgVersionInfo>
<isSupportFaceThermometry><!--optional, xs:boolean, whether supports temperature screening configuration--></
isSupportFaceThermometry>
<isSupportThermalBlackBody><!--optional, xs:boolean, whether supports black body configuration--></
isSupportThermalBlackBody>
<isSupportThermalStreamParam><!--optional, xs:boolean, whether supports stream configuration--></
isSupportThermalStreamParam>
<isSupportBodyTemperatureCompensation>
<!--optional, xs:boolean, whether supports temperature compensation configuration-->
</isSupportBodyTemperatureCompensation>
<isSupportTemperatureCorrection><!--optional, xs:boolean, whether device supports temperature measurement
correction--></isSupportTemperatureCorrection>
<isSupportClickToThermometry><!--optional, xs:boolean, whether device supports clicking to detect temperature--
></isSupportClickToThermometry>
<isSupportThermometryHistorySearch><!--optional, xs:boolean--></isSupportThermometryHistorySearch>
229
Intelligent Security API (Thermal) Developer Guide
Remarks
When getting thermal product capabilities, isSupportShipsDetectionWithScene has a higher
priority than isSupportShipsDetection. That is, firstly check if the node
isSupportShipsDetectionWithScene exists and its value is "true", that indicates ship detection
according to scene is supported, otherwise, check the if the node isSupportShipsDetection exists.
B.102 XML_ThermalDataConversionCap
ThermalDataConversionCap message in XML format
230
Intelligent Security API (Thermal) Developer Guide
B.103 XML_ThermalDataConversionDescription
ThermalDataConversionDescription in XML format
<ThermalDataConversionDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<conversionMethod>
<!--req, xs:string, conversion method, opt="convertGrayscaleToTemperature,convertTemperatureToGrayscale"-->
</conversionMethod>
<temperature>
<!--dep, it is valid when conversionMethod is "convertTemperatureToGrayscale", xs:float, temperature, corrects to
one decimal place-->
</temperature>
<grayscale>
<!--dep, it is valid when conversionMethod is "convertGrayscaleToTemperature", xs:integer, grayscale-->
</grayscale>
</ThermalDataConversionDescription>
B.104 XML_ThermalDataConversionResult
ThermalDataConversionResult message in XML format
<ThermalDataConversionResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<conversionMethod>
<!--req, xs:string, conversion method, opt="convertGrayscaleToTemperature,convertTemperatureToGrayscale"-->
</conversionMethod>
<temperature>
<!--dep, it is valid when conversionMethod is "convertGrayscaleToTemperature", xs:float, temperature, corrects to
one decimal place-->
</temperature>
<grayscale>
<!--dep, it is valid when conversionMethod is "convertTemperatureToGrayscale", xs:integer, grayscale-->
</grayscale>
</ThermalDataConversionResult>
B.105 XML_ThermalPip
ThermalPip message in XML format
231
Intelligent Security API (Thermal) Developer Guide
B.106 XML_ThermalStreamParam
ThermalStreamParam message in XML format.
<ThermalStreamParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<videoCodingType>
<!--opt, xs:string, coding type, opt="thermal_raw_data, pixel-to-pixel_thermometry_data, real-time_raw_data"-->
</videoCodingType>
</ThermalStreamParam>
232
Intelligent Security API (Thermal) Developer Guide
B.107 XML_ThermalStreamParamCap
ThermalStreamParamCap message in XML format.
<ThermalStreamParamCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<videoCodingType opt="thermal_raw_data, pixel-to-pixel_thermometry_data, real-time_raw_data"
def="thermal_raw_data">
<!--opt, xs:string, coding type: "thermal_raw_data"-original data, "pixel-to-pixel_thermometry_data"-pixel-to-pixel
temperature measurement data, "real-time_raw_data"-real-time raw data-->
</videoCodingType>
</ThermalStreamParamCap>
B.108 XML_ThermIntell
ThermIntell message in XML format.
<ThermIntell version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:integer--></id>
<intellType>
<!--required, xs:string, intelligent function types, each two types are mutually exclusive, "thermometryAndSmart"-
temperature measurement+behavior analysis (default), "shipsDetection"-ship detection, "fireDetection"-fire source
detection, "pip"-picture in picture function, "faceThermometry"-temperature screening,
"thermometryAndSmokeFireDetection"-temperature measurement+smoke and fire source detection,
"thermometryAndFireDetection"-temperature measurement+fire source detection, "basicBehavior"-behavior
analysis, "thermometry"-temperature measurement-->
</intellType>
</ThermIntell>
B.109 XML_ThermometryAlarmRule
ThermometryAlarmRule message in XML format.
<ThermometryAlarmRule version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ThermometryAlarmModeList size="">
<ThermometryAlarmMode>
<id min="" max=""><!--req, xs:inter--></id>
<enabled><!--req, xs:boolean--></enabled>
<name><!--req, xs:string ro--></name>
<rule opt="highestGreater, highestLess, lowestGreater, lowestLess, averageGreater, averageLess, diffTempGreater,
diffTempLess">
<!--req, xs:string,-->
</rule>
<alert><!--req, xs: float--></alert>
<alarm><!--req, xs: float--></alarm>
<threshold><!--req, xs: float--></threshold>
<AlertOutputIOPortList><!--opt, temperature pre-alarm I/O port list-->
<OutputIOPort>
233
Intelligent Security API (Thermal) Developer Guide
<portID><!--req, xs:string--></portID>
<enabled><!--req, xs:bool, "true,false"--></enabled>
</OutputIOPort>
</AlertOutputIOPortList>
<AlarmOutputIOPortList><!--opt, temperature alarm I/O port list-->
<OutputIOPort>
<portID><!--req, xs:string--></portID>
<enabled><!--req, xs:bool, "true,false"--></enabled>
</OutputIOPort>
</AlarmOutputIOPortList>
<alertFilteringTime><!-- opt ,xs:integer, temperature pre-alarm dwell time, unit: second--></alertFilteringTime>
<alarmFilteringTime><!-- opt ,xs:integer, temperature alarm dwell time, unit: second--></alarmFilteringTime>
</ThermometryAlarmMode>
</ThermometryAlarmModeList>
<TemperatureDifferenceComparisonList size="">
<TemperatureDifferenceComparison>
<id min="" max=""><!--req, xs:inter--></id>
<enabled><!--req ,xs:boolean--></enabled>
<ruleID1 min="" max=""><!--req, xs:string--></ruleID1>
<ruleID2 min="" max=""><!--req, xs:string--></ruleID2>
<rule opt="highestGreater, highestLess, lowestGreater, lowestLess, averageGreater, averageLess, diffTempGreater,
diffTempLess">
<!--req, xs:string,-->
</rule>
<temperatureDifference><!--req, xs: float--></temperatureDifference>
</TemperatureDifferenceComparison>
</TemperatureDifferenceComparisonList>
</ThermometryAlarmRule>
B.110 XML_ThermometryBasicParam
XML message about temperature measurement basic parameters
<ThermometryBasicParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:integer, channel number--></id>
<enabled><!--required, xs:boolean, enable or not: false-no, true-yes--></enabled>
<streamOverlay><!--required, xs:boolean, whether displays temperature information on the stream: false-no, true-
yes--></streamOverlay>
<pictureOverlay><!--required, xs:boolean, whether displays temperature information on the captured picture: false-
no, true-yes--></pictureOverlay>
<temperatureRange>
<!--required, xs:string, temperature range: "-20-150", "0-550", "0-650", "-4-302", "32-1022", "32-1200", "20-650",
"-20-1500", "automatic", "-20-120", "20-350", "20-45", "20-350", "30-45", "100-550"-->
</temperatureRange>
<temperatureUnit>
<!--required, xs:string, temperature unit: degreeCentigrade-Celsius (°C), degreeFahrenheit-Fahrenheit (°F),
degreeKelvin-Kelvin(K)-->
</temperatureUnit>
<temperatureCurve>
<!--optional, xs:string, temperature curve modes: close-closed, transverseTemperatureTrend-transverse
234
Intelligent Security API (Thermal) Developer Guide
235
Intelligent Security API (Thermal) Developer Guide
</AlertOutputIOPortList>
<AlarmOutputIOPortList><!--optional, list of temperature alarm output ports-->
<OutputIOPort>
<portID><!--required, xs:string--></portID>
<enabled><!--required, xs:boolean, "true,false"--></enabled>
</OutputIOPort>
</AlarmOutputIOPortList>
<alertFilteringTime><!--optional, xs:integer, temperature pre-alarm dwell time, unit:s--></alertFilteringTime>
<alarmFilteringTime><!--optional, xs:integer, temperature alarm dwell time, unit:s--></alarmFilteringTime>
<displayMaxTemperatureEnabled><!--optional, xs:boolean, whether displays the maximum temperature--></
displayMaxTemperatureEnabled>
<displayMinTemperatureEnabled><!--optional, xs:boolean, whether displays the minimum temperature--></
displayMinTemperatureEnabled>
<displayAverageTemperatureEnabled><!--optional, xs:boolean, whether displays the average temperature--></
displayAverageTemperatureEnabled>
<thermometryInfoDisplayposition><!--optional, xs:string, position of temperature measurement information overlay,
"rules_around,top_left_of_screen"--></thermometryInfoDisplayposition>
<calibrationCoefficientEnabled><!--optional, xs:boolean, whether enables calibration coefficient--></
calibrationCoefficientEnabled>
<calibrationCoefficient><!--dep, xs:float, calibration coefficient, ranges from 0 to 30, corrects to two decimal places--
></calibrationCoefficient>
<emissivityMode>
<!--optional, xs:string, emissivity type: "rougher"-rougher 0.95, "rough"-rough 0.80, "smooth"-smooth 0.60,
"smoother"-smoother 0.30, "customsettings"-customized setting, values from 0.01 to 1.00, the larger the value, the
higher the roughness-->
</emissivityMode>
<displayTemperatureInOpticalChannelEnabled>
<!--optional, xs:boolean, display the temperature information of optical channel-->
</displayTemperatureInOpticalChannelEnabled>
<distanceMode><!--optional, xs:string, distance mode: "selfAdapt"-self-adaption, "fixed"-fixed distance--></
distanceMode>
<faceTemperatureInfoUploadEnabled>
<!--optional, xs:boolean, whether to enable uploading face temperature information: true-enable, false-disable-->
</faceTemperatureInfoUploadEnabled>
<calibrationFileVersion><!--optional, xs:string, read-only, calibration file version information--></
calibrationFileVersion>
<alarmInterval><!--optional, xs:integer, temperature measurement interval, unit: second--></alarmInterval>
<rulesOverlayMode><!--optional, xs:string, rule overlay mode: all (all rules), alarm (triggered alarm rule)--></
rulesOverlayMode>
<toleranceTemperature><!--optional, xs:float, tolerance temperature, value range: [1,5], unit: Celsius--></
toleranceTemperature>
<alarmMode><!--optional, xs:string, alarm mode: "temperatureIntervalMeasurement" (temperature range
measurement), "alarm_alert" (pre-alarm/alarm)--></alarmMode>
<NormalRulesColor><!--optional, normal rule color; this node is valid when the value of alarmMode is
"temperatureIntervalMeasurement"-->
<R><!--required, xs:integer--></R>
<G><!--required, xs:integer--></G>
<B><!--required, xs:integer--></B>
</NormalRulesColor>
<NormalTemperatureIntervalMeasurement><!--optional, normal temperature range measurement-->
<alarmType><!--optional, xs:string, alarm type: "highestTemp" (the highest temperature), "lowestTemp" (the lowest
temperature)--></alarmType>
236
Intelligent Security API (Thermal) Developer Guide
Remarks
The following nodes are not supported by the thermographic automation thermal camera
(DS-2TA03-15SVI, DS2TA06-25SVI): <TemperatureColor>, <specialPointThermType>, and
<reflectiveEnable>.
B.111 XML_ThermometryMode
XML message about temperature measurement mode information
<ThermometryMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode><!--required, xs:string, temperature measurement: "normal"-normal mode (default), "expert"-expert mode--
></mode>
<thermometryROIEnabled><!--optional, xs:boolean, whether to enable ROI temperature measurement, "true"-yes,
"false"-no--></thermometryROIEnabled>
</ThermometryMode>
Remarks
The ROI temperature measurement and mode configuration is mutually exclusive, ROI temperature
measurement is mainly applied to temperature measurement.
237
Intelligent Security API (Thermal) Developer Guide
B.112 XML_ThermometryRegion
ThermometryRegion message in XML format
<ThermometryRegion version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer--></id>
<enabled><!--req, xs:boolean--></enabled>
<name><!--req, xs:string--></name>
<emissivity><!--req, xs:float, corrects to two decimal places--></emissivity>
<distance><!--req, xs:integer--></distance>
<reflectiveEnable><!--req, xs:boolean--></reflectiveEnable>
<reflectiveTemperature><!--opt, xs:float, reflective temperature, corrects to one decimal place--></
reflectiveTemperature>
<sensitivity> <!--req, xs:integer, sensitivity, normalized value, from 1 to 5--></sensitivity>
<PupilParam><!--req, pupil parameters-->
<Region><!--req, pupil region coordinates, normalized value, from 0 to 1000-->
<RegionCoordinatesList> <!--dep-->
<RegionCoordinates> <!--opt -->
<positionX><!-- req, xs:integer;coordinate--></positionX>
<positionY><!-- req, xs:integer;coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</PupilParam>
<MaxPupilParam><!--optional, the maximum pupil distance-->
<pupilDistance min="10" max="625">
<!--optional, xs:integer, pupil distance range, normalized value, range: [0,1000], valid range: [10,625], default value:
625-->
</pupilDistance>
<Region>
<RegionCoordinatesList size=""><!--req-->
<RegionCoordinates><!--list, pupil region coordinates-->
<positionX><!--required, xs:integer, coordinate, X-coordinate--></positionX>
<positionY><!--required, xs:integer, coordinate, Y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</MaxPupilParam>
<targetSpeed> <!--req, xs:integer--></targetSpeed>
<alarmTemperature> <!--opt, xs:float, unit:℃, alarm triggered temperature, corrects to one decimal place, ranges
from 0.0℃ to 60.0℃--></alarmTemperature>
<type><!--opt, xs:string, "point,region,line"--></type>
<Point>
<TempValue><!--dep, xs:float "-40.0...1000.0" ro--></TempValue>
<CalibratingCoordinates><!--dep-->
<positionX><!--req, xs:integer;coordinate--></positionX>
<positionY><!--req, xs:integer;coordinate--></positionY>
</CalibratingCoordinates>
</Point>
<Region>
<highestTempValue><!--dep, xs: float "-273.0...10000.0" ro--></highestTempValue>
238
Intelligent Security API (Thermal) Developer Guide
B.113 XML_ThermometryRegionList
XML message about temperature measurement region list
<ThermometryRegionList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ThermometryRegion/><!--see details in XML_ThermometryRegion-->
</ThermometryRegionList>
See Also
XML_ThermometryRegion
B.114 XML_ThermometryScene
XML message about information of temperature measurement scene
<ThermometryScene version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:integer--></id>
<normalizedScreenSize><!--required, ro-->
<normalizedScreenWidth><!--required, ro, xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--required, ro, xs:integer--></normalizedScreenHeight>
</normalizedScreenSize>
<ThermometryRegionList/><!--see details in XML_ThermometryRegionList-->
</ThermometryScene>
See Also
XML_ThermometryRegionList
239
Intelligent Security API (Thermal) Developer Guide
B.115 XML_ThermometryScheduleList
XML message about temperature measurement schedules
<ThermometryScheduleList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<Schedule/><!--opt, see details in XML_Schedule-->
</ThermometryScheduleList>
See Also
XML_Schedule
B.116 XML_TMPAScheduleList
XML message about temperature measurement pre-alarm arming schedules
<?xml version="1.0" encoding="utf-8"?>
<TMPAScheduleList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<Schedule/><!--optional, see XML_Schedule for details-->
</TMPAScheduleList>
See Also
XML_Schedule
B.117 JSON_EventNotificationAlert_Alarm/EventInfo
EventNotificationAlert message with alarm or event information in JSON format.
{
"ipAddress": "",
/*required, device IPv4 address , string, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, device IPv6 address, string, the maximum size is 128 bytes*/
"portNo": ,
/*optional, device port No., integer32*/
"protocol": "",
/*optional, protocol type, "HTTP, HTTPS", string, the maximum size is 32 bytes*/
"macAddress": "",
/*optional, MAC address, string, the maximum size is 32 bytes, e.g., 01:17:24:45:D9:F4*/
"channelID": "",
/*optional, device channel No., integer32*/
"dateTime": "",
/*optional, string, alarm/event triggered or occurred time based on ISO8601, the maximum size is 32 bytes, e.g.,
2009-11-14T15:27Z*/
"activePostCount": "",
/*required, alarm/event frequency, integer32*/
"eventType": "",
240
Intelligent Security API (Thermal) Developer Guide
/*required, alarm/event type, "captureResult, faceCapture,...", string, the maximum size is 128 bytes*/
"eventState": "",
/*required, string, the maximum size is 32 bytes, durative alarm/event status: "active"-valid, "inactive"-invalid*/
"eventDescription": "",
/*required, event description, string, the maximum size is 128 bytes*/
"deviceID":"",
/*string type, device ID*/
"uuid":"",
/*string type, event UUID, which is used to uniquely identify an event, the standard UUID format is xxxxxxxx-xxxx-xxxx-
xxxx-xxxxxxxxxxxx*/
...
/*optional, for different alarm/event types, the nodes are different, see the message examples in different
applications*/
}
B.118 XML_EventNotificationAlert_AlarmEventInfo
EventNotificationAlert message with alarm/event information in XML format.
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dep, xs:string, device IPv4 address--></ipAddress>
<ipv6Address><!--dep, xs:string, device IPv6 address--></ipv6Address>
<portNo><!--opt, xs:integer, device port number--></portNo>
<protocol><!--opt, xs:string, protocol type for uploading alarm/event information, "HTTP,HTTPS"--></protocol>
<macAddress><!--opt, xs:string, MAC address--></macAddress>
<channelID><!--dep, xs:string, device channel No., starts from 1--></channelID>
<dateTime><!--req, alarm/event triggered or occurred time, format: 2017-07-19T10:06:41+08:00--></dateTime>
<activePostCount><!--req, xs:integer, alarm/event frequency, starts from 1--></activePostCount>
<eventType><!--req, xs:string, alarm/event type, "peopleCounting, ANPR,..."--></eventType>
<eventState>
<!--req, xs:string, durative alarm/event status: "active"-valid, "inactive"-invalid, e.g., when a moving target is
detected,
the alarm/event information will be uploaded continuously unit the status is set to "inactive"-->
</eventState>
<eventDescription><!--req, xs:string, alarm/event description--></eventDescription>
<...><!--opt, for different alarm/event types, the nodes are different, see the message examples in different
applications--></...>
</EventNotificationAlert>
B.119 XML_EventNotificationAlert_HeartbeatInfo
EventNotificationAlert message with heartbeat information (when there is no alarm is triggered) in
XML format
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipv6Address><!--dep, xs:string, device IPv6 address--></ipv6Address>
<portNo><!--opt, xs:integer, device port number--></portNo>
<protocol><!--opt, xs:string, protocol type for uploading alarm/event information, "HTTP,HTTPS"--></protocol>
241
Intelligent Security API (Thermal) Developer Guide
Remarks
• For network camera or network speed dome with the version 5.5.0 and lower, the heartbeat
frequency is 300 ms per heartbeat.
• For network camera or network speed dome with the version 5.5.0 and higher, the heartbeat
frequency is 10 s per heartbeat. If no heartbeat received for continuous 30 s, it indicates that the
heartbeat is timed out.
Example
Message Example of Heartbeat
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<ipAddress>10.17.133.46</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
<macAddress>44:19:b6:6d:24:85</macAddress>
<channelID>1</channelID>
<dateTime>2017-05-04T11:20:02+08:00</dateTime>
<activePostCount>0</activePostCount>
<eventType>videoloss</eventType>
<eventState>inactive</eventState>
<eventDescription>videoloss alarm</eventDescription>
</EventNotificationAlert>
B.120 XML_HttpHostNotification
XML message about parameters of a HTTP listening server
<HttpHostNotification version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<url><!--required, xs:string, the absolute path, e.g., http://<ipAddress>:<portNo>/<uri>--></url>
<protocolType><!--required, xs:string, "HTTP,HTTPS,EHome"--></protocolType>
<parameterFormatType><!--required, xs:string, alarm/event information format, "XML,JSON"--></
parameterFormatType>
<addressingFormatType><!--required, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName><!--dependent, xs:string--></hostName>
<ipAddress><!--dependent, xs:string--></ipAddress>
<ipv6Address><!--dependent, xs:string--></ipv6Address>
<portNo><!--optional, xs:integer--></portNo>
242
Intelligent Security API (Thermal) Developer Guide
<userName><!--dependent, xs:string--></userName>
<password><!--dependent, xs:string--></password>
<httpAuthenticationMethod><!--required, xs:string, "MD5digest,none"--></httpAuthenticationMethod>
<ANPR><!--optional-->
<detectionUpLoadPicturesType>
<!--optional, xs:string, types of alarm picture to be uploaded: "all, licensePlatePicture, detectionPicture"-->
</detectionUpLoadPicturesType>
</ANPR>
<eventType optional="AID,TFS,TPS"><!--required, xs:string--></eventType>
<uploadImagesDataType>
<!--optional, xs:string, "URL", "binary" (default), for cloud storage, only "URL" is supported-->
</uploadImagesDataType>
<eventMode><!--optional, xs:string, "all,list"--></eventMode>
<EventList><!--dependent, it is valid only when eventMode is "list"-->
<Event><!--required-->
<type><!--required, xs:string--></type>
</Event>
</EventList>
<channels><!--optional, xs:string, "1,2,3,4…"--></channels>
<SubscribeEvent/><!--optional, event subscription parameters, see details in the message of XML_SubscribeEvent-->
</HttpHostNotification>
B.121 XML_HttpHostNotificationCap
XML message about capability of HTTP listening server
<?xml version="1.0" encoding="utf-8"?>
<HttpHostNotificationCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hostNumber>2</hostNumber>
<urlLen max=""/>
<protocolType opt="HTTP,HTTPS,EHome"/>
<parameterFormatType opt="XML,querystring,JSON"/>
<addressingFormatType opt="ipaddress,hostname"/>
<ipAddress opt="ipv4,ipv6"/>
<portNo min="" max=""/>
<userNameLen min="" max=""/>
<passwordLen min="" max=""/>
<httpAuthenticationMethod opt="MD5digest,none"/>
<Extensions>
<intervalBetweenEvents min="" max=""/>
</Extensions>
<uploadImagesDataType opt="URL,binary"/>
<ANPR><!--optional-->
<detectionUpLoadPicturesType opt="all,licensePlatePicture,detectionPicture…"/><!--optional, xs:string, types of
alarm pictures to be uploaded-->
<alarmHttpPushProtocol opt="baseline,custom"/>
</ANPR>
<httpBroken opt="true,false" def="true" ><!--optional, xs:boolean, whether to enable global ANR: true, false--></
httpBroken>
<SubscribeEventCap>
243
Intelligent Security API (Thermal) Developer Guide
B.122 XML_HttpHostNotificationList
HttpHostNotificationList message in XML format
<HttpHostNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<HttpHostNotification>
<id><!--req, xs:string, ID--></id>
<url><!--req, xs:string--></url>
<protocolType><!--req, xs:string, "HTTP,HTTPS"--></protocolType>
<parameterFormatType><!--req, xs:string, alarm/event information format, "XML,JSON"--></parameterFormatType>
<addressingFormatType><!--req, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<portNo><!--opt, xs:integer--></portNo>
<userName><!--dep, xs:string--></userName>
<password><!--dep, xs:string--></password>
244
Intelligent Security API (Thermal) Developer Guide
Example
HttpHostNotificationList Message Example
<HttpHostNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<HttpHostNotification>
<id>1</id>
<url></url>
<protocolType>HTTP</protocolType>
<parameterFormatType>XML</parameterFormatType>
<addressingFormatType>ipaddress</addressingFormatType>
<ipAddress>0.0.0.0</ipAddress>
<portNo>80</portNo>
<userName></userName>
<httpAuthenticationMethod>none</httpAuthenticationMethod>
</HttpHostNotification>
</HttpHostNotificationList>
B.123 XML_HttpHostTestResult
HttpHostTestResult message in XML format.
<HttpHostTestResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<errorDescription>
<!--req, xs:string-->
</errorDescription>
</HttpHostTestResult>
245
Intelligent Security API (Thermal) Developer Guide
Appendix C. Appendixes
V
2-bit RTP version No.; currently, it is 2.
P
1-bit padding flag. If its value is1, the message end will be padded with a or multiple 8-bit
array(s), but the padded array(s) is (are) not a part of payload.
X
Extension flag, set to 0 and reserved for further extension requirement.
CC
4-bit CSRC counter, which indicates the number of CSRC identifiers.
M
1-bit maker flag, when there is a lot of stream data, the data will be packaging into multiple
subpackets to be sent, for subpacket, the value of maker flag is 0, and for end packet, the value
of maker flag is 1.
PT
7-bit payload type, which is obtained via DESCRIBE operation.
sequence number
246
Intelligent Security API (Thermal) Developer Guide
16-bit serial No., which identifies the sent RTP message. The No. starts from 0 in HELIX server
and will plus 1 when sending RTP message for once. The No. of video and audio message is
counted separately.
When the lower-layer adopts UDP, or the network condition is bad, the serial No. can be used to
check the packet loss; when the network jitter occurred, the serial No. can be used to reorder
the data.
Timestamp: 32 bits
32-bit timestamp, which indicates the sampling time of the first 8-bit array in the RTP message.
The receiver can calculate the delay or delay jitter, and control according to the timestamp.
SSRC
32-bit synchronization source identifier, which is randomly selected, and the identifier value of
two synchronization sources in same RTP session cannot be same.
CSRC
32-bit contributing source identifier, up to 16 identifiers are supported, its value is between 0
and 15, and each CSRC identifier identifies all contributing sources in the payload of the RTP
message.
RTP Payload
The payload consists of binary data, which transmits the detailed information and useful content.
StatusCode=1
247
Intelligent Security API (Thermal) Developer Guide
StatusCode=2
StatusCode=3
248
Intelligent Security API (Thermal) Developer Guide
249
Intelligent Security API (Thermal) Developer Guide
StatusCode=4
250
Intelligent Security API (Thermal) Developer Guide
251
Intelligent Security API (Thermal) Developer Guide
252
Intelligent Security API (Thermal) Developer Guide
253
Intelligent Security API (Thermal) Developer Guide
254
Intelligent Security API (Thermal) Developer Guide
255
Intelligent Security API (Thermal) Developer Guide
256
Intelligent Security API (Thermal) Developer Guide
257
Intelligent Security API (Thermal) Developer Guide
258
Intelligent Security API (Thermal) Developer Guide
259
Intelligent Security API (Thermal) Developer Guide
260
Intelligent Security API (Thermal) Developer Guide
261
Intelligent Security API (Thermal) Developer Guide
262
Intelligent Security API (Thermal) Developer Guide
263
Intelligent Security API (Thermal) Developer Guide
264
Intelligent Security API (Thermal) Developer Guide
265
Intelligent Security API (Thermal) Developer Guide
266
Intelligent Security API (Thermal) Developer Guide
267
Intelligent Security API (Thermal) Developer Guide
268
Intelligent Security API (Thermal) Developer Guide
269
Intelligent Security API (Thermal) Developer Guide
270
Intelligent Security API (Thermal) Developer Guide
271
Intelligent Security API (Thermal) Developer Guide
272
Intelligent Security API (Thermal) Developer Guide
273
Intelligent Security API (Thermal) Developer Guide
274
Intelligent Security API (Thermal) Developer Guide
StatusCode=5
StatusCode=6
275
Intelligent Security API (Thermal) Developer Guide
276
Intelligent Security API (Thermal) Developer Guide
277
Intelligent Security API (Thermal) Developer Guide
278
Intelligent Security API (Thermal) Developer Guide
279
Intelligent Security API (Thermal) Developer Guide
280
Intelligent Security API (Thermal) Developer Guide
StatusCode=7
281