张延森 6 anos atrás
pai
commit
261f96c5f9

+ 252
- 202
.idea/workspace.xml Ver arquivo

@@ -5,11 +5,19 @@
5 5
   </component>
6 6
   <component name="ChangeListManager">
7 7
     <list default="true" id="ad2fe330-f201-4a05-ab3f-71348d2d007b" name="Default" comment="">
8
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
9
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
10
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/controller/CommController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/controller/CommController.java" afterDir="false" />
11
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/APIUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/APIUtil.java" afterDir="false" />
12
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/CarDetect.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/CarDetect.java" afterDir="false" />
13
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/HikService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/HikService.java" afterDir="false" />
14
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/PersonDetect.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/PersonDetect.java" afterDir="false" />
8 15
       <change beforePath="$PROJECT_DIR$/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.properties" afterDir="false" />
9 16
     </list>
10 17
     <ignored path="$PROJECT_DIR$/out/" />
11 18
     <ignored path="$PROJECT_DIR$/target/" />
12 19
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
20
+    <option name="TRACKING_ENABLED" value="true" />
13 21
     <option name="SHOW_DIALOG" value="false" />
14 22
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
15 23
     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -70,11 +78,29 @@
70 78
   </component>
71 79
   <component name="FileEditorManager">
72 80
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
73
-      <file leaf-file-name="InitService.java" pinned="false" current-in-tab="false">
74
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/config/InitService.java">
81
+      <file leaf-file-name="application.properties" pinned="false" current-in-tab="false">
82
+        <entry file="file://$PROJECT_DIR$/src/main/resources/application.properties">
75 83
           <provider selected="true" editor-type-id="text-editor">
76
-            <state relative-caret-position="407">
77
-              <caret line="44" column="27" lean-forward="true" selection-start-line="44" selection-start-column="27" selection-end-line="44" selection-end-column="27" />
84
+            <state relative-caret-position="252">
85
+              <caret line="12" column="12" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="12" />
86
+            </state>
87
+          </provider>
88
+        </entry>
89
+      </file>
90
+      <file leaf-file-name="PersonDetect.java" pinned="false" current-in-tab="false">
91
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/PersonDetect.java">
92
+          <provider selected="true" editor-type-id="text-editor">
93
+            <state relative-caret-position="840">
94
+              <caret line="51" column="132" selection-start-line="51" selection-start-column="132" selection-end-line="51" selection-end-column="132" />
95
+            </state>
96
+          </provider>
97
+        </entry>
98
+      </file>
99
+      <file leaf-file-name="HikService.java" pinned="false" current-in-tab="false">
100
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/HikService.java">
101
+          <provider selected="true" editor-type-id="text-editor">
102
+            <state relative-caret-position="455">
103
+              <caret line="313" column="60" lean-forward="true" selection-start-line="313" selection-start-column="60" selection-end-line="313" selection-end-column="60" />
78 104
               <folding>
79 105
                 <element signature="imports" expanded="true" />
80 106
               </folding>
@@ -82,11 +108,38 @@
82 108
           </provider>
83 109
         </entry>
84 110
       </file>
85
-      <file leaf-file-name="MainService.java" pinned="false" current-in-tab="false">
86
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/MainService.java">
111
+      <file leaf-file-name="APIUtil.java" pinned="false" current-in-tab="true">
112
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/APIUtil.java">
113
+          <provider selected="true" editor-type-id="text-editor">
114
+            <state relative-caret-position="340">
115
+              <caret line="173" lean-forward="true" selection-start-line="173" selection-end-line="173" />
116
+            </state>
117
+          </provider>
118
+        </entry>
119
+      </file>
120
+      <file leaf-file-name="pom.xml" pinned="false" current-in-tab="false">
121
+        <entry file="file://$PROJECT_DIR$/pom.xml">
122
+          <provider selected="true" editor-type-id="text-editor">
123
+            <state relative-caret-position="273">
124
+              <caret line="85" selection-start-line="85" selection-end-line="85" />
125
+            </state>
126
+          </provider>
127
+        </entry>
128
+      </file>
129
+      <file leaf-file-name="HCNetSDK.java" pinned="false" current-in-tab="false">
130
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/hik/HCNetSDK.java">
131
+          <provider selected="true" editor-type-id="text-editor">
132
+            <state relative-caret-position="269">
133
+              <caret line="3354" column="34" selection-start-line="3354" selection-start-column="23" selection-end-line="3354" selection-end-column="34" />
134
+            </state>
135
+          </provider>
136
+        </entry>
137
+      </file>
138
+      <file leaf-file-name="NativeString.java" pinned="false" current-in-tab="false">
139
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/NativeString.java">
87 140
           <provider selected="true" editor-type-id="text-editor">
88
-            <state relative-caret-position="302">
89
-              <caret line="43" lean-forward="true" selection-start-line="43" selection-end-line="43" />
141
+            <state relative-caret-position="504">
142
+              <caret line="65" selection-start-line="65" selection-end-line="65" />
90 143
               <folding>
91 144
                 <element signature="imports" expanded="true" />
92 145
               </folding>
@@ -94,20 +147,20 @@
94 147
           </provider>
95 148
         </entry>
96 149
       </file>
97
-      <file leaf-file-name="HikService.java" pinned="false" current-in-tab="true">
98
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/HikService.java">
150
+      <file leaf-file-name="Configer.java" pinned="false" current-in-tab="false">
151
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/Configer.java">
99 152
           <provider selected="true" editor-type-id="text-editor">
100
-            <state relative-caret-position="365">
101
-              <caret line="256" lean-forward="true" selection-start-line="256" selection-end-line="256" />
153
+            <state relative-caret-position="147">
154
+              <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
102 155
             </state>
103 156
           </provider>
104 157
         </entry>
105 158
       </file>
106
-      <file leaf-file-name="Monitor.java" pinned="false" current-in-tab="false">
107
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/Monitor.java">
159
+      <file leaf-file-name="WSServer.java" pinned="false" current-in-tab="false">
160
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/WSServer.java">
108 161
           <provider selected="true" editor-type-id="text-editor">
109
-            <state relative-caret-position="294">
110
-              <caret line="36" lean-forward="true" selection-start-line="36" selection-end-line="36" />
162
+            <state relative-caret-position="2079">
163
+              <caret line="109" column="30" selection-start-line="109" selection-start-column="18" selection-end-line="109" selection-end-column="30" />
111 164
             </state>
112 165
           </provider>
113 166
         </entry>
@@ -115,8 +168,8 @@
115 168
       <file leaf-file-name="CommController.java" pinned="false" current-in-tab="false">
116 169
         <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/controller/CommController.java">
117 170
           <provider selected="true" editor-type-id="text-editor">
118
-            <state relative-caret-position="384">
119
-              <caret line="97" lean-forward="true" selection-start-line="97" selection-end-line="97" />
171
+            <state relative-caret-position="189">
172
+              <caret line="60" selection-start-line="60" selection-end-line="60" />
120 173
               <folding>
121 174
                 <element signature="imports" expanded="true" />
122 175
               </folding>
@@ -181,7 +234,6 @@
181 234
   <component name="IdeDocumentHistory">
182 235
     <option name="CHANGED_PATHS">
183 236
       <list>
184
-        <option value="$PROJECT_DIR$/src/main/java/Main.java" />
185 237
         <option value="$PROJECT_DIR$/src/main/java/Camera.java" />
186 238
         <option value="$PROJECT_DIR$/assembly.xml" />
187 239
         <option value="$PROJECT_DIR$/src/main/resources/assemblies/myassembly.xml" />
@@ -215,10 +267,8 @@
215 267
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/config/InitService.java" />
216 268
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/HardwareApplication.java" />
217 269
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/controller/ResponseBean.java" />
218
-        <option value="$PROJECT_DIR$/pom.xml" />
219 270
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/config/WebSocketConfig.java" />
220 271
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/WSocketServer.java" />
221
-        <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/controller/CommController.java" />
222 272
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/ISubcriber.java" />
223 273
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/WSClient.java" />
224 274
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/Client.java" />
@@ -226,9 +276,15 @@
226 276
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/Monitor.java" />
227 277
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/hik/HCNetSDK.java" />
228 278
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/MainService.java" />
229
-        <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/CarDetect.java" />
230 279
         <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/hik/HIKSupplement.java" />
280
+        <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/CarDetect.java" />
281
+        <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/PersonDetect.java" />
231 282
         <option value="$PROJECT_DIR$/src/main/resources/application.properties" />
283
+        <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/NativeString.java" />
284
+        <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/controller/CommController.java" />
285
+        <option value="$PROJECT_DIR$/pom.xml" />
286
+        <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/HikService.java" />
287
+        <option value="$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/APIUtil.java" />
232 288
       </list>
233 289
     </option>
234 290
   </component>
@@ -272,7 +328,10 @@
272 328
       <select />
273 329
     </treeState>
274 330
   </component>
275
-  <component name="ProjectFrameBounds" extendedState="6">
331
+  <component name="NodePackageJsonFileManager">
332
+    <packageJsonPaths />
333
+  </component>
334
+  <component name="ProjectFrameBounds" extendedState="7">
276 335
     <option name="x" value="-10" />
277 336
     <option name="width" value="2585" />
278 337
     <option name="height" value="1465" />
@@ -285,76 +344,47 @@
285 344
       <foldersAlwaysOnTop value="true" />
286 345
     </navigator>
287 346
     <panes>
288
-      <pane id="Scope" />
289
-      <pane id="AndroidView" />
290 347
       <pane id="ProjectPane">
291 348
         <subPane>
292 349
           <expand>
293 350
             <path>
294 351
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
295
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
296
-            </path>
297
-            <path>
298
-              <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
299
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
300
-              <item name="src" type="462c0819:PsiDirectoryNode" />
352
+              <item name="hardware" type="462c0819:PsiDirectoryNode" />
301 353
             </path>
302 354
             <path>
303 355
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
304
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
356
+              <item name="hardware" type="462c0819:PsiDirectoryNode" />
305 357
               <item name="src" type="462c0819:PsiDirectoryNode" />
306
-              <item name="main" type="462c0819:PsiDirectoryNode" />
307 358
             </path>
308 359
             <path>
309 360
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
310
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
361
+              <item name="hardware" type="462c0819:PsiDirectoryNode" />
311 362
               <item name="src" type="462c0819:PsiDirectoryNode" />
312 363
               <item name="main" type="462c0819:PsiDirectoryNode" />
313
-              <item name="java" type="462c0819:PsiDirectoryNode" />
314 364
             </path>
315 365
             <path>
316 366
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
317
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
318
-              <item name="src" type="462c0819:PsiDirectoryNode" />
319
-              <item name="main" type="462c0819:PsiDirectoryNode" />
320
-              <item name="java" type="462c0819:PsiDirectoryNode" />
321 367
               <item name="hardware" type="462c0819:PsiDirectoryNode" />
322
-            </path>
323
-            <path>
324
-              <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
325
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
326 368
               <item name="src" type="462c0819:PsiDirectoryNode" />
327 369
               <item name="main" type="462c0819:PsiDirectoryNode" />
328 370
               <item name="java" type="462c0819:PsiDirectoryNode" />
329
-              <item name="hardware" type="462c0819:PsiDirectoryNode" />
330
-              <item name="config" type="462c0819:PsiDirectoryNode" />
331 371
             </path>
332 372
             <path>
333 373
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
334
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
335
-              <item name="src" type="462c0819:PsiDirectoryNode" />
336
-              <item name="main" type="462c0819:PsiDirectoryNode" />
337
-              <item name="java" type="462c0819:PsiDirectoryNode" />
338 374
               <item name="hardware" type="462c0819:PsiDirectoryNode" />
339
-              <item name="controller" type="462c0819:PsiDirectoryNode" />
340
-            </path>
341
-            <path>
342
-              <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
343
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
344 375
               <item name="src" type="462c0819:PsiDirectoryNode" />
345 376
               <item name="main" type="462c0819:PsiDirectoryNode" />
346 377
               <item name="java" type="462c0819:PsiDirectoryNode" />
347 378
               <item name="hardware" type="462c0819:PsiDirectoryNode" />
348
-              <item name="libs" type="462c0819:PsiDirectoryNode" />
349 379
             </path>
350 380
             <path>
351 381
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
352
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
382
+              <item name="hardware" type="462c0819:PsiDirectoryNode" />
353 383
               <item name="src" type="462c0819:PsiDirectoryNode" />
354 384
               <item name="main" type="462c0819:PsiDirectoryNode" />
355 385
               <item name="java" type="462c0819:PsiDirectoryNode" />
356 386
               <item name="hardware" type="462c0819:PsiDirectoryNode" />
357
-              <item name="config" type="462c0819:PsiDirectoryNode" />
387
+              <item name="controller" type="462c0819:PsiDirectoryNode" />
358 388
             </path>
359 389
             <path>
360 390
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
@@ -363,7 +393,7 @@
363 393
               <item name="main" type="462c0819:PsiDirectoryNode" />
364 394
               <item name="java" type="462c0819:PsiDirectoryNode" />
365 395
               <item name="hardware" type="462c0819:PsiDirectoryNode" />
366
-              <item name="controller" type="462c0819:PsiDirectoryNode" />
396
+              <item name="hik" type="462c0819:PsiDirectoryNode" />
367 397
             </path>
368 398
             <path>
369 399
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
@@ -372,7 +402,7 @@
372 402
               <item name="main" type="462c0819:PsiDirectoryNode" />
373 403
               <item name="java" type="462c0819:PsiDirectoryNode" />
374 404
               <item name="hardware" type="462c0819:PsiDirectoryNode" />
375
-              <item name="hik" type="462c0819:PsiDirectoryNode" />
405
+              <item name="libs" type="462c0819:PsiDirectoryNode" />
376 406
             </path>
377 407
             <path>
378 408
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
@@ -388,20 +418,13 @@
388 418
               <item name="hardware" type="462c0819:PsiDirectoryNode" />
389 419
               <item name="src" type="462c0819:PsiDirectoryNode" />
390 420
               <item name="main" type="462c0819:PsiDirectoryNode" />
391
-              <item name="resources" type="462c0819:PsiDirectoryNode" />
392
-            </path>
393
-            <path>
394
-              <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
395
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
396
-              <item name="src" type="462c0819:PsiDirectoryNode" />
397
-              <item name="main" type="462c0819:PsiDirectoryNode" />
398 421
               <item name="java" type="462c0819:PsiDirectoryNode" />
399 422
               <item name="hardware" type="462c0819:PsiDirectoryNode" />
400 423
               <item name="websocket" type="462c0819:PsiDirectoryNode" />
401 424
             </path>
402 425
             <path>
403 426
               <item name="welcome-hardware" type="b2602c69:ProjectViewProjectNode" />
404
-              <item name="hdware-welcome3" type="462c0819:PsiDirectoryNode" />
427
+              <item name="hardware" type="462c0819:PsiDirectoryNode" />
405 428
               <item name="src" type="462c0819:PsiDirectoryNode" />
406 429
               <item name="main" type="462c0819:PsiDirectoryNode" />
407 430
               <item name="resources" type="462c0819:PsiDirectoryNode" />
@@ -411,6 +434,8 @@
411 434
         </subPane>
412 435
       </pane>
413 436
       <pane id="PackagesPane" />
437
+      <pane id="AndroidView" />
438
+      <pane id="Scope" />
414 439
     </panes>
415 440
   </component>
416 441
   <component name="PropertiesComponent">
@@ -575,85 +600,88 @@
575 600
       <workItem from="1560993922038" duration="57076000" />
576 601
       <workItem from="1561339057930" duration="778000" />
577 602
       <workItem from="1561343515369" duration="21976000" />
603
+      <workItem from="1561451112799" duration="21614000" />
604
+      <workItem from="1561692194101" duration="15054000" />
578 605
     </task>
579 606
     <servers />
580 607
   </component>
581 608
   <component name="TimeTrackingManager">
582
-    <option name="totallyTimeSpent" value="225557000" />
609
+    <option name="totallyTimeSpent" value="262225000" />
583 610
   </component>
584 611
   <component name="ToolWindowManager">
585
-    <frame x="-7" y="-7" width="2062" height="1126" extended-state="6" />
612
+    <frame x="-8" y="-8" width="1936" height="1015" extended-state="7" />
613
+    <editor active="true" />
586 614
     <layout>
587
-      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.49918962" visible="true" weight="0.23353294" />
588
-      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
615
+      <window_info anchor="right" id="Palette" order="3" />
616
+      <window_info anchor="bottom" id="Event Log" order="8" sideWeight="0.500998" side_tool="true" weight="0.35500515" />
617
+      <window_info anchor="right" id="Maven Projects" order="7" weight="0.04424307" />
618
+      <window_info anchor="bottom" id="Database Changes" order="10" show_stripe_button="false" />
619
+      <window_info id="Capture Tool" order="6" />
589 620
       <window_info id="Designer" order="2" />
590
-      <window_info id="Image Layers" order="3" />
621
+      <window_info anchor="right" id="Database" order="8" weight="0.3291506" />
622
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
623
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
591 624
       <window_info id="UI Designer" order="4" />
592
-      <window_info id="Favorites" order="5" side_tool="true" />
593
-      <window_info id="Capture Tool" order="6" />
594
-      <window_info id="Web" order="7" sideWeight="0.5008104" side_tool="true" weight="0.23353294" />
595
-      <window_info anchor="bottom" id="Flutter Performance" side_tool="true" />
596
-      <window_info anchor="bottom" id="Message" order="0" />
597
-      <window_info anchor="bottom" id="Find" order="1" weight="0.3295325" />
598
-      <window_info anchor="bottom" id="Run" order="2" weight="0.22234891" />
599
-      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.499002" visible="true" weight="0.32920536" />
600
-      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
601
-      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
625
+      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.499002" visible="true" weight="0.5461802" />
602 626
       <window_info anchor="bottom" id="TODO" order="6" weight="0.32920536" />
603
-      <window_info anchor="bottom" id="Terminal" order="7" weight="0.22291021" />
604
-      <window_info anchor="bottom" id="Event Log" order="8" sideWeight="0.500998" side_tool="true" weight="0.35500515" />
605
-      <window_info anchor="bottom" id="Messages" order="9" sideWeight="0.499501" weight="0.3364293" />
606
-      <window_info anchor="bottom" id="Database Changes" order="10" show_stripe_button="false" />
627
+      <window_info anchor="bottom" id="Messages" order="9" sideWeight="0.499501" weight="0.336374" />
628
+      <window_info anchor="right" id="Palette&#9;" order="9" />
629
+      <window_info id="Image Layers" order="3" />
630
+      <window_info anchor="bottom" id="Java Enterprise" order="13" weight="0.32920536" />
631
+      <window_info anchor="right" id="Capture Analysis" order="6" />
632
+      <window_info anchor="bottom" id="Run" order="2" weight="0.22234891" />
607 633
       <window_info anchor="bottom" id="Version Control" order="11" weight="0.32920536" />
608 634
       <window_info anchor="bottom" id="Spring" order="12" />
609
-      <window_info anchor="bottom" id="Java Enterprise" order="13" weight="0.32920536" />
610
-      <window_info anchor="right" id="Flutter Outline" />
611
-      <window_info anchor="right" id="Flutter Inspector" />
635
+      <window_info anchor="bottom" id="Terminal" order="7" weight="0.22234891" />
636
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.49918962" visible="true" weight="0.23614073" />
637
+      <window_info anchor="right" id="Bean Validation" order="12" weight="0.32995737" />
638
+      <window_info id="Web" order="7" sideWeight="0.5008104" side_tool="true" weight="0.23353294" />
639
+      <window_info anchor="right" id="Theme Preview" order="10" />
640
+      <window_info id="Favorites" order="5" side_tool="true" />
641
+      <window_info anchor="right" id="Flutter Inspector" order="4" />
642
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
612 643
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
613
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
644
+      <window_info anchor="bottom" id="Flutter Performance" order="7" side_tool="true" />
645
+      <window_info anchor="bottom" id="Message" order="0" />
646
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
647
+      <window_info anchor="right" id="Flutter Outline" order="5" />
614 648
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
615
-      <window_info anchor="right" id="Palette" order="3" />
616
-      <window_info anchor="right" id="Capture Analysis" order="4" />
617
-      <window_info anchor="right" id="Maven Projects" order="5" weight="0.04424307" />
618
-      <window_info anchor="right" id="Database" order="6" weight="0.3291506" />
619
-      <window_info anchor="right" id="Palette&#9;" order="7" />
620
-      <window_info anchor="right" id="Theme Preview" order="8" />
621
-      <window_info anchor="right" id="Coverage" order="9" side_tool="true" weight="0.32995737" />
622
-      <window_info anchor="right" id="Bean Validation" order="10" />
649
+      <window_info anchor="bottom" id="Find" order="1" weight="0.3295325" />
650
+      <window_info anchor="right" id="Coverage" order="11" side_tool="true" weight="0.32995737" />
623 651
     </layout>
624 652
     <layout-to-restore>
625
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.17377399" />
626
-      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
627 653
       <window_info id="Designer" order="2" />
654
+      <window_info anchor="right" id="Palette" order="3" />
655
+      <window_info anchor="bottom" id="Spring" order="12" />
628 656
       <window_info id="Image Layers" order="3" />
629
-      <window_info id="UI Designer" order="4" />
630
-      <window_info id="Favorites" order="5" side_tool="true" />
631
-      <window_info id="Capture Tool" order="6" />
632
-      <window_info id="Web" order="7" side_tool="true" />
633
-      <window_info anchor="bottom" id="Message" order="0" />
634
-      <window_info anchor="bottom" id="Find" order="1" weight="0.32964474" />
635 657
       <window_info anchor="bottom" id="Run" order="2" weight="0.22234891" />
636
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.41619155" />
637 658
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
638
-      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
639
-      <window_info anchor="bottom" id="TODO" order="6" />
659
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
660
+      <window_info id="UI Designer" order="4" />
661
+      <window_info id="Favorites" order="5" side_tool="true" />
640 662
       <window_info anchor="bottom" id="Terminal" order="7" weight="0.22348917" />
663
+      <window_info id="Capture Tool" order="6" />
664
+      <window_info anchor="right" id="Capture Analysis" order="4" />
665
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
641 666
       <window_info anchor="bottom" id="Event Log" order="8" side_tool="true" />
642
-      <window_info anchor="bottom" id="Database Changes" order="9" show_stripe_button="false" />
643
-      <window_info anchor="bottom" id="Version Control" order="10" />
644 667
       <window_info anchor="bottom" id="Messages" order="11" />
645
-      <window_info anchor="bottom" id="Spring" order="12" />
646
-      <window_info anchor="bottom" id="Java Enterprise" order="13" />
647
-      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
648
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
668
+      <window_info anchor="bottom" id="TODO" order="6" />
649 669
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
650
-      <window_info anchor="right" id="Palette" order="3" />
651
-      <window_info anchor="right" id="Capture Analysis" order="4" />
652
-      <window_info anchor="right" id="Database" order="5" weight="0.3291506" />
670
+      <window_info anchor="bottom" id="Java Enterprise" order="13" />
671
+      <window_info anchor="bottom" id="Database Changes" order="9" show_stripe_button="false" />
672
+      <window_info anchor="bottom" id="Version Control" order="10" />
653 673
       <window_info anchor="right" id="Maven Projects" order="6" visible="true" weight="0.04424307" />
674
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.17377399" />
675
+      <window_info anchor="right" id="Database" order="5" weight="0.3291506" />
676
+      <window_info anchor="bottom" id="Message" order="0" />
677
+      <window_info id="Web" order="7" side_tool="true" />
654 678
       <window_info anchor="right" id="Palette&#9;" order="7" />
655 679
       <window_info anchor="right" id="Theme Preview" order="8" />
680
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
681
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
682
+      <window_info anchor="bottom" id="Find" order="1" weight="0.32964474" />
656 683
       <window_info anchor="right" id="Bean Validation" order="9" />
684
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.41619155" />
657 685
     </layout-to-restore>
658 686
   </component>
659 687
   <component name="TypeScriptGeneratedFilesManager">
@@ -662,28 +690,16 @@
662 690
   <component name="VcsContentAnnotationSettings">
663 691
     <option name="myLimit" value="2678400000" />
664 692
   </component>
693
+  <component name="XDebuggerManager">
694
+    <breakpoint-manager>
695
+      <option name="time" value="17" />
696
+    </breakpoint-manager>
697
+  </component>
665 698
   <component name="antWorkspaceConfiguration">
666 699
     <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
667 700
     <option name="FILTER_TARGETS" value="false" />
668 701
   </component>
669 702
   <component name="editorHistoryManager">
670
-    <entry file="file://$PROJECT_DIR$/bak/pom.xml">
671
-      <provider selected="true" editor-type-id="text-editor">
672
-        <state relative-caret-position="700">
673
-          <caret line="71" column="21" selection-start-line="41" selection-start-column="18" selection-end-line="71" selection-end-column="21" />
674
-        </state>
675
-      </provider>
676
-    </entry>
677
-    <entry file="file://$PROJECT_DIR$/bak/setting.conf">
678
-      <provider selected="true" editor-type-id="text-editor">
679
-        <state>
680
-          <caret selection-end-line="10" />
681
-        </state>
682
-      </provider>
683
-    </entry>
684
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/App.java" />
685
-    <entry file="jar://D:/REPO/com/squareup/okhttp3/okhttp/3.14.0/okhttp-3.14.0.jar!/okhttp3/Response.class" />
686
-    <entry file="jar://D:/REPO/com/squareup/okhttp3/okhttp/3.14.0/okhttp-3.14.0.jar!/okhttp3/ResponseBody.class" />
687 703
     <entry file="jar://D:/Application/jdk1.8.0_161/src.zip!/java/lang/ClassLoader.java" />
688 704
     <entry file="jar://D:/REPO/com/squareup/okhttp3/okhttp/3.14.0/okhttp-3.14.0.jar!/okhttp3/Headers.class" />
689 705
     <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/TinyLog.java" />
@@ -719,20 +735,6 @@
719 735
         </state>
720 736
       </provider>
721 737
     </entry>
722
-    <entry file="file://$PROJECT_DIR$/pom.xml">
723
-      <provider selected="true" editor-type-id="text-editor">
724
-        <state relative-caret-position="210">
725
-          <caret line="28" column="21" selection-start-line="28" selection-start-column="21" selection-end-line="28" selection-end-column="21" />
726
-        </state>
727
-      </provider>
728
-    </entry>
729
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/APIUtil.java">
730
-      <provider selected="true" editor-type-id="text-editor">
731
-        <state relative-caret-position="302">
732
-          <caret line="35" column="32" lean-forward="true" selection-start-line="35" selection-start-column="32" selection-end-line="35" selection-end-column="32" />
733
-        </state>
734
-      </provider>
735
-    </entry>
736 738
     <entry file="jar://D:/Application/jdk1.8.0_161/src.zip!/java/io/FileInputStream.java">
737 739
       <provider selected="true" editor-type-id="text-editor">
738 740
         <state relative-caret-position="163">
@@ -755,20 +757,10 @@
755 757
       </provider>
756 758
     </entry>
757 759
     <entry file="jar://D:/REPO/org/java-websocket/Java-WebSocket/1.4.0/Java-WebSocket-1.4.0.jar!/org/java_websocket/client/WebSocketClient.class" />
758
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/WSServer.java">
759
-      <provider selected="true" editor-type-id="text-editor">
760
-        <state relative-caret-position="2079">
761
-          <caret line="109" column="30" selection-start-line="109" selection-start-column="18" selection-end-line="109" selection-end-column="30" />
762
-        </state>
763
-      </provider>
764
-    </entry>
765 760
     <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/Client.java">
766 761
       <provider selected="true" editor-type-id="text-editor">
767 762
         <state relative-caret-position="1197">
768 763
           <caret line="66" selection-start-line="66" selection-end-line="66" />
769
-          <folding>
770
-            <element signature="imports" expanded="true" />
771
-          </folding>
772 764
         </state>
773 765
       </provider>
774 766
     </entry>
@@ -800,16 +792,6 @@
800 792
         </state>
801 793
       </provider>
802 794
     </entry>
803
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/WSClient.java">
804
-      <provider selected="true" editor-type-id="text-editor">
805
-        <state relative-caret-position="474">
806
-          <caret line="47" column="53" selection-start-line="47" selection-start-column="53" selection-end-line="47" selection-end-column="53" />
807
-          <folding>
808
-            <element signature="imports" expanded="true" />
809
-          </folding>
810
-        </state>
811
-      </provider>
812
-    </entry>
813 795
     <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/Ping.java">
814 796
       <provider selected="true" editor-type-id="text-editor">
815 797
         <state relative-caret-position="127">
@@ -848,93 +830,161 @@
848 830
         </state>
849 831
       </provider>
850 832
     </entry>
851
-    <entry file="file://$PROJECT_DIR$/src/main/resources/application.properties">
833
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/Ping.java">
852 834
       <provider selected="true" editor-type-id="text-editor">
853
-        <state relative-caret-position="239">
854
-          <caret line="12" selection-start-line="12" selection-end-line="12" selection-end-column="13" />
835
+        <state relative-caret-position="108">
836
+          <caret line="16" selection-start-line="16" selection-end-line="16" />
855 837
         </state>
856 838
       </provider>
857 839
     </entry>
858
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/hik/HCNetSDK.java">
840
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/config/InitService.java">
859 841
       <provider selected="true" editor-type-id="text-editor">
860
-        <state relative-caret-position="77">
861
-          <caret line="3856" column="13" selection-start-line="3856" selection-start-column="13" selection-end-line="3856" selection-end-column="13" />
842
+        <state relative-caret-position="-210">
843
+          <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
844
+          <folding>
845
+            <element signature="imports" expanded="true" />
846
+          </folding>
862 847
         </state>
863 848
       </provider>
864 849
     </entry>
865
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/Ping.java">
850
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/config/WebSocketConfig.java">
866 851
       <provider selected="true" editor-type-id="text-editor">
867
-        <state relative-caret-position="108">
868
-          <caret line="16" selection-start-line="16" selection-end-line="16" />
852
+        <state relative-caret-position="189">
853
+          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
854
+        </state>
855
+      </provider>
856
+    </entry>
857
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/Monitor.java">
858
+      <provider selected="true" editor-type-id="text-editor">
859
+        <state relative-caret-position="45">
860
+          <caret line="34" column="51" selection-start-line="34" selection-start-column="51" selection-end-line="34" selection-end-column="51" />
861
+        </state>
862
+      </provider>
863
+    </entry>
864
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/MainService.java">
865
+      <provider selected="true" editor-type-id="text-editor">
866
+        <state relative-caret-position="302">
867
+          <caret line="43" selection-start-line="43" selection-end-line="43" />
868
+          <folding>
869
+            <element signature="imports" expanded="true" />
870
+          </folding>
869 871
         </state>
870 872
       </provider>
871 873
     </entry>
872 874
     <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/config/InitService.java">
873 875
       <provider selected="true" editor-type-id="text-editor">
874
-        <state relative-caret-position="-210">
875
-          <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
876
+        <state relative-caret-position="659">
877
+          <caret line="44" column="27" selection-start-line="44" selection-start-column="27" selection-end-line="44" selection-end-column="27" />
876 878
           <folding>
877 879
             <element signature="imports" expanded="true" />
878 880
           </folding>
879 881
         </state>
880 882
       </provider>
881 883
     </entry>
884
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/WSClient.java">
885
+      <provider selected="true" editor-type-id="text-editor">
886
+        <state relative-caret-position="285">
887
+          <caret line="47" column="53" lean-forward="true" selection-start-line="47" selection-start-column="46" selection-end-line="47" selection-end-column="58" />
888
+        </state>
889
+      </provider>
890
+    </entry>
882 891
     <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/CarDetect.java">
883 892
       <provider selected="true" editor-type-id="text-editor">
884
-        <state relative-caret-position="48">
885
-          <caret line="31" column="100" selection-start-line="31" selection-start-column="90" selection-end-line="31" selection-end-column="100" />
893
+        <state relative-caret-position="735">
894
+          <caret line="50" column="20" selection-start-line="50" selection-start-column="20" selection-end-line="50" selection-end-column="20" />
886 895
         </state>
887 896
       </provider>
888 897
     </entry>
889
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/config/WebSocketConfig.java">
898
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/PersonDetect.java">
890 899
       <provider selected="true" editor-type-id="text-editor">
891
-        <state relative-caret-position="189">
892
-          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
900
+        <state relative-caret-position="840">
901
+          <caret line="51" column="132" selection-start-line="51" selection-start-column="132" selection-end-line="51" selection-end-column="132" />
893 902
         </state>
894 903
       </provider>
895 904
     </entry>
896
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/Monitor.java">
905
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/websocket/WSServer.java">
897 906
       <provider selected="true" editor-type-id="text-editor">
898
-        <state relative-caret-position="294">
899
-          <caret line="36" lean-forward="true" selection-start-line="36" selection-end-line="36" />
907
+        <state relative-caret-position="2079">
908
+          <caret line="109" column="30" selection-start-line="109" selection-start-column="18" selection-end-line="109" selection-end-column="30" />
900 909
         </state>
901 910
       </provider>
902 911
     </entry>
903
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/config/InitService.java">
912
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/Configer.java">
913
+      <provider selected="true" editor-type-id="text-editor">
914
+        <state relative-caret-position="147">
915
+          <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
916
+        </state>
917
+      </provider>
918
+    </entry>
919
+    <entry file="jar://D:/Application/jdk1.8.0_161/jre/lib/ext/nashorn.jar!/jdk/nashorn/internal/objects/NativeString.class">
904 920
       <provider selected="true" editor-type-id="text-editor">
905
-        <state relative-caret-position="407">
906
-          <caret line="44" column="27" lean-forward="true" selection-start-line="44" selection-start-column="27" selection-end-line="44" selection-end-column="27" />
921
+        <state relative-caret-position="861">
922
+          <caret line="46" column="4" selection-start-line="46" selection-start-column="4" selection-end-line="46" selection-end-column="4" />
923
+        </state>
924
+      </provider>
925
+    </entry>
926
+    <entry file="file://$PROJECT_DIR$/src/main/resources/application.properties">
927
+      <provider selected="true" editor-type-id="text-editor">
928
+        <state relative-caret-position="252">
929
+          <caret line="12" column="12" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="12" />
930
+        </state>
931
+      </provider>
932
+    </entry>
933
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/NativeString.java">
934
+      <provider selected="true" editor-type-id="text-editor">
935
+        <state relative-caret-position="504">
936
+          <caret line="65" selection-start-line="65" selection-end-line="65" />
907 937
           <folding>
908 938
             <element signature="imports" expanded="true" />
909 939
           </folding>
910 940
         </state>
911 941
       </provider>
912 942
     </entry>
913
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/MainService.java">
943
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/hik/HCNetSDK.java">
914 944
       <provider selected="true" editor-type-id="text-editor">
915
-        <state relative-caret-position="302">
916
-          <caret line="43" lean-forward="true" selection-start-line="43" selection-end-line="43" />
945
+        <state relative-caret-position="269">
946
+          <caret line="3354" column="34" selection-start-line="3354" selection-start-column="23" selection-end-line="3354" selection-end-column="34" />
947
+        </state>
948
+      </provider>
949
+    </entry>
950
+    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.1.6.RELEASE/spring-web-5.1.6.RELEASE.jar!/org/springframework/web/method/support/InvocableHandlerMethod.class">
951
+      <provider selected="true" editor-type-id="text-editor">
952
+        <state relative-caret-position="65">
953
+          <caret line="108" selection-start-line="108" selection-end-line="108" />
954
+        </state>
955
+      </provider>
956
+    </entry>
957
+    <entry file="file://$PROJECT_DIR$/pom.xml">
958
+      <provider selected="true" editor-type-id="text-editor">
959
+        <state relative-caret-position="273">
960
+          <caret line="85" selection-start-line="85" selection-end-line="85" />
961
+        </state>
962
+      </provider>
963
+    </entry>
964
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/controller/CommController.java">
965
+      <provider selected="true" editor-type-id="text-editor">
966
+        <state relative-caret-position="189">
967
+          <caret line="60" selection-start-line="60" selection-end-line="60" />
917 968
           <folding>
918 969
             <element signature="imports" expanded="true" />
919 970
           </folding>
920 971
         </state>
921 972
       </provider>
922 973
     </entry>
923
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/controller/CommController.java">
974
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/HikService.java">
924 975
       <provider selected="true" editor-type-id="text-editor">
925
-        <state relative-caret-position="384">
926
-          <caret line="97" lean-forward="true" selection-start-line="97" selection-end-line="97" />
976
+        <state relative-caret-position="455">
977
+          <caret line="313" column="60" lean-forward="true" selection-start-line="313" selection-start-column="60" selection-end-line="313" selection-end-column="60" />
927 978
           <folding>
928
-            <element signature="e#1984#1985#0" expanded="true" />
929
-            <element signature="e#2032#2033#0" expanded="true" />
979
+            <element signature="imports" expanded="true" />
930 980
           </folding>
931 981
         </state>
932 982
       </provider>
933 983
     </entry>
934
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/service/HikService.java">
984
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/hardware/libs/APIUtil.java">
935 985
       <provider selected="true" editor-type-id="text-editor">
936
-        <state relative-caret-position="365">
937
-          <caret line="256" lean-forward="true" selection-start-line="256" selection-end-line="256" />
986
+        <state relative-caret-position="340">
987
+          <caret line="173" lean-forward="true" selection-start-line="173" selection-end-line="173" />
938 988
         </state>
939 989
       </provider>
940 990
     </entry>

+ 13
- 0
pom.xml Ver arquivo

@@ -71,6 +71,19 @@
71 71
 			<artifactId>Java-WebSocket</artifactId>
72 72
 			<version>1.4.0</version>
73 73
 		</dependency>
74
+		<!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
75
+		<dependency>
76
+			<groupId>org.dom4j</groupId>
77
+			<artifactId>dom4j</artifactId>
78
+			<version>2.1.1</version>
79
+		</dependency>
80
+		<!-- https://mvnrepository.com/artifact/jaxen/jaxen -->
81
+		<dependency>
82
+			<groupId>jaxen</groupId>
83
+			<artifactId>jaxen</artifactId>
84
+			<version>1.2.0</version>
85
+		</dependency>
86
+
74 87
 	</dependencies>
75 88
 
76 89
 	<build>

+ 19
- 0
src/main/java/com/huiju/welcome/hardware/controller/CommController.java Ver arquivo

@@ -2,8 +2,11 @@ package com.huiju.welcome.hardware.controller;
2 2
 
3 3
 import com.huiju.welcome.hardware.libs.APIUtil;
4 4
 import com.huiju.welcome.hardware.libs.Configer;
5
+import com.huiju.welcome.hardware.service.HikService;
6
+import org.springframework.beans.factory.annotation.Autowired;
5 7
 import org.springframework.util.DigestUtils;
6 8
 import org.springframework.web.bind.annotation.*;
9
+import org.springframework.web.multipart.MultipartFile;
7 10
 
8 11
 import javax.servlet.http.HttpServletRequest;
9 12
 import javax.servlet.http.HttpServletResponse;
@@ -15,6 +18,9 @@ import java.net.URI;
15 18
 @RequestMapping("/")
16 19
 public class CommController {
17 20
 
21
+    @Autowired
22
+    HikService hikService;
23
+
18 24
     @GetMapping("/local")
19 25
     public ResponseBean getLocalFileOfOSS(@RequestParam String url, HttpServletRequest request, HttpServletResponse response) {
20 26
         response.addHeader("Content-type", request.getContentType());
@@ -45,6 +51,19 @@ public class CommController {
45 51
         return null;
46 52
     }
47 53
 
54
+    @PostMapping("/testCompare")
55
+    public ResponseBean testCompare(MultipartFile file) {
56
+        try {
57
+            byte[] bytes = file.getBytes();
58
+            return ResponseBean.success(hikService.compareImage(bytes));
59
+        } catch (IOException e) {
60
+            e.printStackTrace();
61
+        } catch (Exception e) {
62
+            e.printStackTrace();
63
+        }
64
+        return ResponseBean.error("error", 400);
65
+    }
66
+
48 67
     private void responseOrigin(String url, HttpServletResponse response, String ...localFiles) {
49 68
         byte[] data = APIUtil.download(url);
50 69
         responseInputBytes(data, response);

+ 5
- 3
src/main/java/com/huiju/welcome/hardware/libs/APIUtil.java Ver arquivo

@@ -135,7 +135,9 @@ public class APIUtil {
135 135
                         } else if (item instanceof FileInputStream) {
136 136
                             buildFileInputStream(builder, (FileInputStream) item, fieldName);
137 137
                         } else if (item instanceof ByteBuffer) {
138
-                            buildFileBytes(builder, ((ByteBuffer) item).array(), fieldName);
138
+                            byte[] array = new byte[((ByteBuffer) item).remaining()];
139
+                            ((ByteBuffer) item).get(array);
140
+                            buildFileBytes(builder, array, fieldName);
139 141
                         } else {
140 142
                             log.error("不支持的 form-data 类型 " + item.getClass());
141 143
                         }
@@ -163,7 +165,7 @@ public class APIUtil {
163 165
 
164 166
             MediaType tp = MediaType.get("application/octet-stream");
165 167
             RequestBody body = RequestBody.create(tp, content);
166
-            builder.addFormDataPart(field, "未知文件.jpg", body);
168
+            builder.addFormDataPart(field, "unknown.jpg", body);
167 169
         } catch (IOException e) {
168 170
             e.printStackTrace();
169 171
             log.error("转换 form-data 数据 到 body 失败: " + e.getMessage());
@@ -173,7 +175,7 @@ public class APIUtil {
173 175
     private static void buildFileBytes(MultipartBody.Builder builder, byte[] content, String field) {
174 176
         MediaType tp = MediaType.get("application/octet-stream");
175 177
         RequestBody body = RequestBody.create(tp, content);
176
-        builder.addFormDataPart(field, "未知文件.jpg", body);
178
+        builder.addFormDataPart(field, "unknown.jpg", body);
177 179
     }
178 180
 
179 181
     private static String getSearchString(Map<String, String> query) {

+ 102
- 0
src/main/java/com/huiju/welcome/hardware/libs/NativeString.java Ver arquivo

@@ -0,0 +1,102 @@
1
+package com.huiju.welcome.hardware.libs;
2
+
3
+import com.sun.jna.Memory;
4
+import com.sun.jna.Native;
5
+import com.sun.jna.Pointer;
6
+
7
+import java.nio.CharBuffer;
8
+
9
+/** Provides a temporary allocation of an immutable C string
10
+ * (<code>const char*</code> or <code>const wchar_t*</code>) for use when
11
+ * converting a Java String into a native memory function argument.
12
+ *
13
+ * @author  Todd Fast, todd.fast@sun.com
14
+ * @author twall@users.sf.net
15
+ */
16
+public class NativeString implements CharSequence, Comparable {
17
+
18
+    private Pointer pointer;
19
+    private boolean wide;
20
+
21
+    /** Create a native string (NUL-terminated array of <code>char</code>).<p>
22
+     * If the system property <code>jna.encoding</code> is set, its value will
23
+     * be used to encode the native string.  If not set or if the encoding
24
+     * is unavailable, the default platform encoding will be used.
25
+     */
26
+    public NativeString(String string) {
27
+        this(string, false);
28
+    }
29
+
30
+    /** Create a native string as a NUL-terminated array of <code>wchar_t</code>
31
+     * (if <code>wide</code> is true) or <code>char</code>.<p>
32
+     * If the system property <code>jna.encoding</code> is set, its value will
33
+     * be used to encode the native <code>char</code>string.
34
+     * If not set or if the encoding is unavailable, the default platform
35
+     * encoding will be used.
36
+     *
37
+     * @param string value to write to native memory
38
+     * @param wide whether to store the String as <code>wchar_t</code>
39
+     */
40
+    public NativeString(String string, boolean wide) {
41
+        if (string == null) {
42
+            throw new NullPointerException("String must not be null");
43
+        }
44
+        // Allocate the memory to hold the string.  Note, we have to
45
+        // make this 1 element longer in order to accommodate the terminating
46
+        // NUL (which is generated in Pointer.setString()).
47
+        this.wide = wide;
48
+        if (wide) {
49
+            int len = (string.length() + 1 ) * Native.WCHAR_SIZE;
50
+            pointer = new Memory(len);
51
+            pointer.setString(0, string, true);
52
+        }
53
+        else {
54
+            byte[] data = Native.toByteArray(string);
55
+            pointer = new Memory(data.length + 1);
56
+            pointer.write(0, data, 0, data.length);
57
+            pointer.setByte(data.length, (byte)0);
58
+        }
59
+    }
60
+
61
+    public int hashCode() {
62
+        return toString().hashCode();
63
+    }
64
+
65
+    public boolean equals(Object other) {
66
+
67
+        if (other instanceof CharSequence) {
68
+            return compareTo(other) == 0;
69
+        }
70
+        return false;
71
+    }
72
+
73
+    public String toString() {
74
+        String s = wide ? "const wchar_t*" : "const char*";
75
+        s += "(" + pointer.getString(0, wide) + ")";
76
+        return s;
77
+    }
78
+
79
+    public Pointer getPointer() {
80
+        return pointer;
81
+    }
82
+
83
+    public char charAt(int index) {
84
+        return toString().charAt(index);
85
+    }
86
+
87
+    public int length() {
88
+        return toString().length();
89
+    }
90
+
91
+    public CharSequence subSequence(int start, int end) {
92
+        return CharBuffer.wrap(toString()).subSequence(start, end);
93
+    }
94
+
95
+    public int compareTo(Object other) {
96
+
97
+        if (other == null)
98
+            return 1;
99
+
100
+        return toString().compareTo(other.toString());
101
+    }
102
+}

+ 2
- 2
src/main/java/com/huiju/welcome/hardware/service/CarDetect.java Ver arquivo

@@ -30,7 +30,6 @@ public class CarDetect implements HCNetSDK.FMSGCallBack_V31 {
30 30
 
31 31
     // 海康回调
32 32
     public boolean invoke(NativeLong lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) {
33
-
34 33
         switch (lCommand.intValue()){
35 34
             case HCNetSDK.COMM_ITS_PLATE_RESULT:
36 35
 
@@ -49,7 +48,8 @@ public class CarDetect implements HCNetSDK.FMSGCallBack_V31 {
49 48
                 }
50 49
 
51 50
                 break;
52
-
51
+            default:
52
+                break;
53 53
         }
54 54
         return true;
55 55
     }

+ 195
- 9
src/main/java/com/huiju/welcome/hardware/service/HikService.java Ver arquivo

@@ -15,26 +15,28 @@ package com.huiju.welcome.hardware.service;
15 15
  * 7、释放SDK资源  NET_DVR_Cleanup
16 16
  */
17 17
 
18
-import com.alibaba.fastjson.JSONObject;
19 18
 import com.huiju.welcome.hardware.hik.HCNetSDK;
20 19
 import com.huiju.welcome.hardware.hik.HIKSupplement;
21
-import com.huiju.welcome.hardware.libs.APIUtil;
22 20
 import com.huiju.welcome.hardware.libs.Configer;
21
+import com.huiju.welcome.hardware.libs.NativeString;
23 22
 import com.huiju.welcome.hardware.libs.Ping;
23
+import com.huiju.welcome.hardware.libs.Rand;
24
+import com.sun.jna.Memory;
24 25
 import com.sun.jna.Native;
25 26
 import com.sun.jna.NativeLong;
26 27
 import com.sun.jna.Pointer;
27 28
 import com.sun.jna.ptr.IntByReference;
29
+import org.dom4j.*;
28 30
 import org.slf4j.Logger;
29 31
 import org.slf4j.LoggerFactory;
30 32
 import org.springframework.beans.factory.annotation.Autowired;
31 33
 import org.springframework.stereotype.Component;
32 34
 
33
-import java.io.FileInputStream;
34
-import java.io.IOException;
35 35
 import java.io.UnsupportedEncodingException;
36 36
 import java.nio.ByteBuffer;
37 37
 import java.util.HashMap;
38
+import java.util.Iterator;
39
+import java.util.List;
38 40
 import java.util.Map;
39 41
 
40 42
 @Component
@@ -168,6 +170,8 @@ public class HikService {
168 170
 
169 171
     // 上传人脸图片到设备
170 172
     public void uploadFace(String personId, byte[] avatar) throws Exception {
173
+        initDevice();
174
+
171 175
         HCNetSDK.NET_DVR_FACELIB_COND facelibCond = new HCNetSDK.NET_DVR_FACELIB_COND();
172 176
         facelibCond.dwSize = facelibCond.size();
173 177
         facelibCond.szFDID = String.valueOf(1).getBytes();
@@ -197,12 +201,12 @@ public class HikService {
197 201
                 "</FaceAppendData>";
198 202
         byte[] appendDataBytes = appendXML.getBytes();
199 203
 
200
-
201 204
         int picLength = avatar.length;
202 205
         HCNetSDK.BYTE_ARRAY picData = new HCNetSDK.BYTE_ARRAY(picLength);
203 206
         HCNetSDK.BYTE_ARRAY appendData = new HCNetSDK.BYTE_ARRAY(appendDataBytes.length);
204 207
 
205 208
         picData.byValue = avatar;
209
+        picData.write();
206 210
         appendData.byValue = appendDataBytes;
207 211
         appendData.write();
208 212
 
@@ -228,16 +232,167 @@ public class HikService {
228 232
             if (uploadStatus.longValue() == 1) {
229 233
                 break;
230 234
             } else if (uploadStatus.longValue() != 2) {
231
-                hcNetSDK.NET_DVR_UploadClose(upHandle);
232 235
                 String error = getHcNetError();
233 236
                 log.error(error);
234
-                throw new Exception("上传海康人脸失败: " + error);
237
+                hcNetSDK.NET_DVR_UploadClose(upHandle);
238
+//                throw new Exception("上传海康人脸失败: " + error);
239
+                break;
235 240
             }
236 241
         }
237 242
 
238 243
         hcNetSDK.NET_DVR_UploadClose(upHandle);
239 244
     }
240 245
 
246
+    public String compareImage(byte[] image) throws Exception {
247
+        // 0、获取人脸比对库能力集
248
+        // NET_DVR_STDXMLConfig(GET /ISAPI/Intelligent/FDLib/capabilities)
249
+        HCNetSDK.NET_DVR_XML_CONFIG_INPUT lpInputParam0 = new HCNetSDK.NET_DVR_XML_CONFIG_INPUT();
250
+        lpInputParam0.dwSize = lpInputParam0.size();
251
+
252
+        String url = "GET /ISAPI/Intelligent/FDLib/capabilities\r\n";
253
+        HCNetSDK.BYTE_ARRAY ptrUrl = new HCNetSDK.BYTE_ARRAY(url.length());
254
+        System.arraycopy(url.getBytes(), 0, ptrUrl.byValue, 0, url.length());
255
+        ptrUrl.write();
256
+        lpInputParam0.lpRequestUrl = ptrUrl.getPointer();
257
+        lpInputParam0.dwRequestUrlLen = url.length();
258
+
259
+        lpInputParam0.write();
260
+
261
+        HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT lpOutputParam0 = new HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT();
262
+        lpOutputParam0.dwSize = lpOutputParam0.size();
263
+
264
+        HCNetSDK.BYTE_ARRAY ptrOutByte = new HCNetSDK.BYTE_ARRAY(HCNetSDK.ISAPI_DATA_LEN);
265
+        lpOutputParam0.lpOutBuffer = ptrOutByte.getPointer();
266
+        lpOutputParam0.dwOutBufferSize = HCNetSDK.ISAPI_DATA_LEN;
267
+
268
+        lpOutputParam0.write();
269
+
270
+        if (!hcNetSDK.NET_DVR_STDXMLConfig(user, lpInputParam0, lpOutputParam0)) {
271
+            String error = getHcNetError();
272
+            log.error("上传图片到设备进行人脸分析失败: {}", error);
273
+            throw new Exception(error);
274
+        }
275
+
276
+        boolean isSupportFDExecuteControl = false;
277
+        byte[] fDLibCap = lpOutputParam0.lpOutBuffer.getByteArray(0, lpOutputParam0.dwReturnedXMLSize);
278
+        String xml = new String(fDLibCap, "GBK");
279
+        Document dom = DocumentHelper.parseText(xml);
280
+        Element root = dom.getRootElement();
281
+        for (Iterator<Element> it = root.elementIterator(); it.hasNext();) {
282
+            Element element = it.next();
283
+            String name = element.getName();
284
+            if ("isSupportFDExecuteControl".equals(name)) {
285
+                String val = element.getText();
286
+                isSupportFDExecuteControl = "true".equals(val);
287
+            }
288
+        }
289
+
290
+        // 1、上传图片到设备进行人脸分析
291
+        // NET_DVR_STDXMLConfig(POST /ISAPI/Intelligent/analysisImage/face)
292
+        HCNetSDK.NET_DVR_XML_CONFIG_INPUT lpInputParam = new HCNetSDK.NET_DVR_XML_CONFIG_INPUT();
293
+        lpInputParam.dwSize = lpInputParam.size();
294
+
295
+        url = "POST /ISAPI/Intelligent/analysisImage/face\r\n";
296
+        ptrUrl = new HCNetSDK.BYTE_ARRAY(url.length());
297
+        System.arraycopy(url.getBytes(), 0, ptrUrl.byValue, 0, url.length());
298
+        ptrUrl.write();
299
+        lpInputParam.lpRequestUrl = ptrUrl.getPointer();
300
+        lpInputParam.dwRequestUrlLen = url.length();
301
+
302
+        HCNetSDK.BYTE_ARRAY lpInBuffer = new HCNetSDK.BYTE_ARRAY(image.length);
303
+        lpInBuffer.byValue = image;
304
+        lpInBuffer.write();
305
+        lpInputParam.lpInBuffer = lpInBuffer.getPointer();
306
+        lpInputParam.dwInBufferSize = image.length;
307
+
308
+        lpInputParam.write();
309
+
310
+        HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT lpOutputParam = new HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT();
311
+        lpOutputParam.dwSize = lpOutputParam.size();
312
+
313
+        ptrOutByte = new HCNetSDK.BYTE_ARRAY(HCNetSDK.ISAPI_DATA_LEN);
314
+        lpOutputParam.lpOutBuffer = ptrOutByte.getPointer();
315
+        lpOutputParam.dwOutBufferSize = HCNetSDK.ISAPI_DATA_LEN;
316
+        HCNetSDK.BYTE_ARRAY ptrStatusByte = new HCNetSDK.BYTE_ARRAY(HCNetSDK.ISAPI_STATUS_LEN);
317
+        lpOutputParam.lpStatusBuffer = ptrStatusByte.getPointer();
318
+        lpOutputParam.dwStatusSize = HCNetSDK.ISAPI_STATUS_LEN;
319
+
320
+        lpOutputParam.write();
321
+
322
+        if (!hcNetSDK.NET_DVR_STDXMLConfig(user, lpInputParam, lpOutputParam)) {
323
+            String error = getHcNetError();
324
+            log.error("上传图片到设备进行人脸分析失败: {}", error);
325
+            throw new Exception(error);
326
+        }
327
+
328
+        //
329
+
330
+        // 2、人脸库以图搜图
331
+        // NET_DVR_STDXMLConfig(命令:POST /ISAPI/Intelligent/FDLib/FDSearch)
332
+        HCNetSDK.NET_DVR_XML_CONFIG_INPUT lpInputParam2 = new HCNetSDK.NET_DVR_XML_CONFIG_INPUT();
333
+        lpInputParam2.dwSize = lpInputParam2.size();
334
+
335
+        url = "POST /ISAPI/Intelligent/FDLib/FDSearch\r\n";
336
+        ptrUrl = new HCNetSDK.BYTE_ARRAY(url.length());
337
+        System.arraycopy(url.getBytes(), 0, ptrUrl.byValue, 0, url.length());
338
+        ptrUrl.write();
339
+        lpInputParam2.lpRequestUrl = ptrUrl.getPointer();
340
+        lpInputParam2.dwRequestUrlLen = url.length();
341
+
342
+
343
+        String fDSearchDesc = "<FDSearchDescription version=\"2.0\" xmlns=\"http://www.std-cgi.org/ver20/XMLSchema\">" +
344
+                "<searchID>" + Rand.string(16) + "</searchID>" +
345
+                "<searchResultPosition>" + (isSupportFDExecuteControl ? 0 : 1) + "</searchResultPosition>" +
346
+                "<maxResults>1</maxResults>" +
347
+                "<startTime>1970-01-01T00:00:00Z</startTime>" +
348
+                "<FaceModeList>"+
349
+                "  <FaceMode>" +
350
+                "    <ModeInfo>" +
351
+                "      <similarity>70</similarity>" + // 相似度,取值范围:[0.0,100.0]
352
+                "    </ModeInfo>" +
353
+                "  </FaceMode>" +
354
+                "</FaceModeList>" +
355
+                "</FDSearchDescription>";
356
+
357
+        NativeString fDSearchDescription = new NativeString(fDSearchDesc, true);
358
+        lpInputParam2.lpInBuffer = fDSearchDescription.getPointer();
359
+        lpInputParam2.dwInBufferSize = fDSearchDescription.length();
360
+        lpInputParam2.dwRecvTimeOut = 0; // 接收超时时间,单位:ms,填0则使用默认超时5s
361
+        lpInputParam2.write();
362
+
363
+        HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT lpOutputParam2 = new HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT();
364
+        lpOutputParam2.dwSize = lpOutputParam2.size();
365
+
366
+        ptrOutByte = new HCNetSDK.BYTE_ARRAY(HCNetSDK.ISAPI_DATA_LEN);
367
+        lpOutputParam2.lpOutBuffer = ptrOutByte.getPointer();
368
+        lpOutputParam2.dwOutBufferSize = HCNetSDK.ISAPI_DATA_LEN;
369
+
370
+        lpOutputParam2.write();
371
+
372
+        if (!hcNetSDK.NET_DVR_STDXMLConfig(user, lpInputParam2, lpOutputParam2)) {
373
+            String error = getHcNetError();
374
+            log.error("人脸库以图搜图失败: {}", error);
375
+            throw new Exception(error);
376
+        }
377
+
378
+        byte[] fDSearchResult = lpOutputParam2.lpOutBuffer.getByteArray(0, lpOutputParam2.dwOutBufferSize);
379
+        xml = new String(fDSearchResult, "GBK");
380
+        Document document = DocumentHelper.parseText(xml);
381
+        Integer numOfMatches = Integer.valueOf(document.valueOf("/FDSearchResult/numOfMatches"));
382
+        if (null == numOfMatches || numOfMatches < 1) {
383
+            // 如果没有匹配数据
384
+            return null;
385
+        }
386
+
387
+        return document.valueOf("/FDSearchResult/MatchList[1]/MatchElement/name");
388
+    }
389
+
390
+    /**
391
+     * 获取人脸比对结果
392
+     * @param pAlarmInfo
393
+     * @return
394
+     * @throws Exception
395
+     */
241 396
     public Map<String, Object> getSnapMatchData(Pointer pAlarmInfo) throws Exception {
242 397
         HCNetSDK.NET_VCA_FACESNAP_MATCH_ALARM strFaceSnapMatch = new HCNetSDK.NET_VCA_FACESNAP_MATCH_ALARM();
243 398
         strFaceSnapMatch.write();
@@ -293,7 +448,13 @@ public class HikService {
293 448
 
294 449
         // 车牌信息
295 450
         HCNetSDK.NET_DVR_PLATE_INFO plateInfo = plateResult.struPlateInfo;
296
-        String plateLicense = plateInfo.sLicense.toString();
451
+        String plateLicense = null;
452
+        try {
453
+            plateLicense = new String(plateInfo.sLicense, "GBK").trim();
454
+        } catch (UnsupportedEncodingException e) {
455
+            log.error("获取车牌出错: {}", e.getMessage());
456
+            e.printStackTrace();
457
+        }
297 458
 
298 459
         // 车辆信息
299 460
         HCNetSDK.NET_DVR_VEHICLE_INFO vehicleInfo = plateResult.struVehicleInfo;
@@ -301,6 +462,7 @@ public class HikService {
301 462
         String carModel = HIKSupplement.VLR_VEHICLE_CLASS.resolve(vehicleInfo.byVehicleLogoRecog & 0xFF).brand();
302 463
 
303 464
         ByteBuffer sceneImage = null;      // 场景图
465
+        ByteBuffer licenseImage = null;      // 车牌图
304 466
         ByteBuffer driverImage = null;     // 主驾驶
305 467
         ByteBuffer copilotImage = null;    // 副驾驶
306 468
 
@@ -312,7 +474,9 @@ public class HikService {
312 474
             int byType = pictureInfos[i].byType & 0xFF;
313 475
             ByteBuffer image = pictureInfos[i].pBuffer.getByteBuffer(0, pictureInfos[i].dwDataLen);
314 476
 
315
-            if (byType == 1) {
477
+            if (byType == 0) {
478
+                licenseImage = image;
479
+            } else if (byType == 1) {
316 480
                 sceneImage = image;
317 481
             } else if (byType == 6) {
318 482
                 driverImage = image;
@@ -326,6 +490,7 @@ public class HikService {
326 490
         data.put("color", carColor);
327 491
         data.put("carModel", carModel);
328 492
         if (null != sceneImage) data.put("sceneImage", sceneImage);
493
+        if (null != licenseImage) data.put("licenseImage", licenseImage);
329 494
         if (null != driverImage) data.put("driverImage", driverImage);
330 495
         if (null != copilotImage) data.put("copilotImage", copilotImage);
331 496
 
@@ -343,6 +508,7 @@ public class HikService {
343 508
         query.put("username", Configer.pick("device.loginUser"));
344 509
         query.put("password", Configer.pick("device.password"));
345 510
         query.put("status", "1");
511
+        query.put("afr", Configer.pick("device.afr"));
346 512
         query.put("api", Configer.pick("api.current") + ":" + Configer.pick("server.port"));
347 513
 
348 514
         try {
@@ -355,4 +521,24 @@ public class HikService {
355 521
             return false;
356 522
         }
357 523
     }
524
+
525
+    private Pointer NativeStringPointer(String string, boolean wide) {
526
+        if (string == null) {
527
+            throw new NullPointerException("String must not be null");
528
+        }
529
+
530
+        if (wide) {
531
+            int len = (string.length() + 1 ) * Native.WCHAR_SIZE;
532
+            Pointer pointer = new Memory(len);
533
+            pointer.setString(0, string, true);
534
+            return pointer;
535
+        }
536
+        else {
537
+            byte[] data = Native.toByteArray(string);
538
+            Pointer pointer = new Memory(data.length + 1);
539
+            pointer.write(0, data, 0, data.length);
540
+            pointer.setByte(data.length, (byte)0);
541
+            return pointer;
542
+        }
543
+    }
358 544
 }

+ 1
- 0
src/main/java/com/huiju/welcome/hardware/service/PersonDetect.java Ver arquivo

@@ -50,6 +50,7 @@ public class PersonDetect implements HCNetSDK.FMSGCallBack_V31 {
50 50
     // 海康回调
51 51
     @Override
52 52
     public boolean invoke(NativeLong lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) {
53
+
53 54
         // 回调类型
54 55
         switch (lCommand.intValue()){
55 56
             // 人脸黑名单比对报警

+ 3
- 1
src/main/resources/application.properties Ver arquivo

@@ -4,11 +4,13 @@ server.port=8081
4 4
 
5 5
 # 设备信息
6 6
 device.id=98
7
-device.name=测试摄像头
7
+device.name=车辆
8 8
 device.loginUser=admin
9 9
 device.password=huiju999
10 10
 device.ip=192.168.0.99
11 11
 device.port=8000
12
+# 支持人脸识别 1 支持, 0 不支持
13
+device.afr=1
12 14
 # 1-人脸识别相机,  2-车辆识别相机
13 15
 device.type=1
14 16