001 /* 002 * =========================================================================================== 003 * = COPYRIGHT 004 * PAX Computer Technology (Shenzhen) Co., Ltd. PROPRIETARY INFORMATION 005 * This software is supplied under the terms of a license agreement or nondisclosure 006 * agreement with PAX Computer Technology (Shenzhen) Co., Ltd. and may not be copied or 007 * disclosed except in accordance with the terms in that agreement. 008 * Copyright (C) 2017-2023 PAX Computer Technology (Shenzhen) Co., Ltd. All rights reserved. 009 * Description: // Detail description about the function of this module, 010 * // interfaces with the other modules, and dependencies. 011 * Revision History: 012 * Date Author Action 013 * 2017/04/01 PAX Create/Add/Modify/Delete 014 * =========================================================================================== 015 */ 016 017package com.pax.dal; 018 019import com.pax.dal.entity.EUartPort; 020import com.pax.dal.entity.ScanResult; 021import java.util.Map; 022 023 public interface IScanner { 024 025 public interface IScanListener { 026 /** 027 * <div class="zh"> 读取成功回调 </div> <div class="en"> the underlying called when read success </div> 028 * 029 * @param scanResult {@link ScanResult} 030 */ 031 public void onRead(ScanResult scanResult); 032 033 /** 034 * <div class="zh"> 扫描结束回调 </div> <div class="en"> the underlying called when finish scanning </div> 035 * 036 */ 037 public void onFinish(); 038 039 /** 040 * <div class="zh"> 取消扫描回调 </div> <div class="en"> the underlying called when cancelled </div> 041 * 042 */ 043 public void onCancel(); 044 } 045 046 /** 047 * <div class="zh"> 打开扫码 </div> <div class="en"> open scanner </div> 048 * 049 * @return <div class="zh"> 050 * <ul> 051 * <li>true -- 打开成功</li> 052 * <li>false -- 打开失败</li> 053 * </ul> 054 * </div> <div class="en"> 055 * <ul> 056 * <li>true -- open success</li> 057 * <li>false -- failure</li> 058 * </ul> 059 * </div> 060 * 061 * @return 062 */ 063 public boolean open(); 064 065 /** 066 * <div class="zh"> 开始扫描 </div> <div class="en"> begin scan </div> 067 * 068 * @param listener 069 * {@link IScanListener} 070 */ 071 public void start(IScanListener listener); 072 073 /** 074 * <div class="zh"> 关闭摄像头 </div> <div class="en"> close scanner </div> 075 * 076 */ 077 public void close(); 078 079 /** 080 * <div class="zh"> 设置超时时间</div> <div class="en">set timeout </div> 081 * 082 * @param timeOut 083 * <div class="zh"> 超时时间 </div> <div class="en"> timeout </div> 084 */ 085 public void setTimeOut(int timeOut); 086 087 /** 088 * <div class="zh"> 设置最大扫码次数</div> <div class="en">Set the maximum number of scan </div> 089 * 090 * @param times 091 * <div class="zh"> 最大扫码次数,0代表连续扫码</div> <div class="en">Maximum scan times,0 represents continuous 092 * scan.</div> 093 * @return <div class="zh"> true:设置成功; false:设置失败;</div> <div class="en">true:set successful false:set failed </div> 094 * @since V2.02.00 095 */ 096 boolean setContinuousTimes(int times); 097 098 /** 099 * <div class="zh"> 设置扫码间隔</div> <div class="en">Set scan interval </div> 100 * 101 * @param interval 102 * <div class="zh"> 扫码间隔时间(ms)</div> <div class="en">Scan interval time (ms)</div> 103 * @since V2.02.00 104 */ 105 void setContinuousInterval(int interval); 106 107 /** 108 * <div class="zh"> 设置外置扫码模块的连接端口</div> <div class="en"> Set connection port of the external scanner</div> 109 * 110 * @param port 111 * {@link EUartPort} 112 * @since V3.02.00 113 */ 114 void setPort(EUartPort port); 115 116 /** 117 * <div class="zh">设置扫码时是否开启闪光灯。</div> <div class="en">Set whether flash is turned on when scanning.</div> 118 * 119 * @param isOn <div class="zh"> 120 * <ul> 121 * <li>true:开启。</li> 122 * <li>false:关闭。</li> 123 * </ul></div> 124 * <div class="en"> 125 * <ul> 126 * <li>true:Turn on.</li> 127 * <li>false:Turn off.</li> 128 * </ul></div> 129 * 130 * @return <div class="zh">设置结果。 131 * <ul> 132 * <li>true:成功。</li> 133 * <li>false:失败。</li> 134 * </ul></div> 135 * <div class="en">The result of setting. 136 * <ul> 137 * <li>true:success.</li> 138 * <li>false:failure.</li> 139 * </ul></div> 140 * @since V3.11.00 141 */ 142 boolean setFlashOn(boolean isOn); 143 144 /** 145 * <div class="zh">停止扫码。要和{@link #start(IScanListener)}成对使用。</div> 146 * <div class="en">Stop scanning. Use it in pairs with {@link #start(IScanListener)}.</div> 147 * @since V3.25.00 148 */ 149 void stop(); 150 151 /** 152 * <div class="zh">设置扫码类型。</div> <div class="en">Set the scan type.</div> 153 * 154 * @param type <div class="zh">扫码类型。 155 * <ul> 156 * <li>0:Zxing</li> 157 * <li>1:Cortex</li> 158 * <li>2:ScanIt</li> 159 * <li>3:ScanS</li> 160 * <li>4:LiveScan</li> 161 * </ul> 162 * </div> 163 * <div class="en">The scan type. 164 * <ul> 165 * <li>0:Zxing</li> 166 * <li>1:Cortex</li> 167 * <li>2:ScanIt</li> 168 * <li>3:ScanS</li> 169 * <li>4:LiveScan</li> 170 * </ul> 171 * </div> 172 * @return <div class="zh">结果。 173 * <ul> 174 * <li>true:成功。</li> 175 * <li>false:失败。</li> 176 * </ul> 177 * </div> 178 * <div class="en">The result. 179 * <ul> 180 * <li>true:success.</li> 181 * <li>false:failure.</li> 182 * </ul> 183 * </div> 184 * @since V3.25.00 185 */ 186 boolean setScannerType(int type); 187 188 /** 189 * <div class="zh">设置条形码设备参数。</div> <div class="en">Set bar code device parameters.</div> 190 * 191 * @param paramMap 192 * 193 * <div class="zh">D800条形码参数的键值对. 194 * Map的键如下: 195 * <table border="1"> 196 * <tr> 197 * <th>Key</th> 198 * <th>Meaning</th> 199 * </tr> 200 * <tr> 201 * <td>preferences_decode_upc_a</td> 202 * <td>support UPC-A format decoding</td> 203 * </tr> 204 * <tr> 205 * <td>preferences_decode_upc_e</td> 206 * <td>support UPC-E format decoding</td> 207 * </tr> 208 * 209 * <tr> 210 * <td>preferences_decode_ean_8_jan8</td> 211 * <td>support EAN-8/JAN8 format decoding</td> 212 * </tr> 213 * <tr> 214 * <td>preferences_decode_ean_13_jan13</td> 215 * <td>support EAN-13/JAN13 format decoding</td> 216 * </tr> 217 * <tr> 218 * <td>preferences_decode_code128</td> 219 * <td>support CODE128 format decoding</td> 220 * </tr> 221 * <tr> 222 * <td>preferences_decode_code39</td> 223 * <td>support CODE39 format decoding</td> 224 * </tr> 225 * <tr> 226 * <td>preferences_decode_code93</td> 227 * <td>support CODE93 format decoding</td> 228 * </tr> 229 * <tr> 230 * <td>preferences_decode_code11</td> 231 * <td>support CODE11 format decoding</td> 232 * </tr> 233 * <tr> 234 * <td>preferences_decode_i25</td> 235 * <td>support I25 format decoding</td> 236 * </tr> 237 * <tr> 238 * <td>preferences_decode_d25</td> 239 * <td>support D25 format decoding</td> 240 * </tr> 241 * <tr> 242 * <td>preferences_decode_codabar</td> 243 * <td>support Codabar format decoding</td> 244 * </tr> 245 * <tr> 246 * <td>preferences_decode_msi</td> 247 * <td>support MSI format decoding</td> 248 * </tr> 249 * <tr> 250 * <td>preferences_decode_chinese2of5</td> 251 * <td>support "Chinese 2 of 5" format decoding</td> 252 * </tr> 253 * <tr> 254 * <td>preferences_decode_korean3of5</td> 255 * <td>support "Korean 3 of 5" format decoding</td> 256 * </tr> 257 * <tr> 258 * <td>preferences_decode_matrix2of5</td> 259 * <td>support "Matrix 2 of 5" format decoding</td> 260 * </tr> 261 * <tr> 262 * <td>preferences_decode_pdf417</td> 263 * <td>support PDF417 format decoding</td> 264 * </tr> 265 * <tr> 266 * <td>preferences_decode_micropdf417</td> 267 * <td>support MicroPDF417 format decoding</td> 268 * </tr> 269 * <tr> 270 * <td>preferences_decode_data_matrix</td> 271 * <td>support "Data Matrix" format decoding</td> 272 * </tr> 273 * <tr> 274 * <td>preferences_decode_maxicode</td> 275 * <td>support Maxicode format decoding</td> 276 * </tr> 277 * <tr> 278 * <td>preferences_decode_qr_code</td> 279 * <td>support QR_CODE format decoding</td> 280 * </tr> 281 * <tr> 282 * <td>preferences_decode_aztec</td> 283 * <td>support Aztec format decoding</td> 284 * </tr> 285 * <tr> 286 * <td>preferences_play_beep</td> 287 * <td>Play beep when decode succeeds</td> 288 * </tr> 289 * <tr> 290 * <td>preferences_open_illumination</td> 291 * <td>Open illumination when decoding</td> 292 * </tr> 293 * <tr> 294 * <td>preferences_open_aiming_pattern</td> 295 * <td>Open aiming pattern when decoding</td> 296 * </tr> 297 * </table><br/><br/> 298 * 其他设备条形码参数的键值对.Map的键如下: 299 * <table border="1"> 300 * <tr> 301 * <th>Key</th> 302 * <th>Meaning</th> 303 * </tr> 304 * <tr> 305 * <td>UPC-A</td> 306 * <td>support UPC-A format decoding</td> 307 * </tr> 308 * <tr> 309 * <td>C39</td> 310 * <td>support C39 format decoding</td> 311 * </tr> 312 * <tr> 313 * <td>C128</td> 314 * <td>support C128 format decoding</td> 315 * </tr> 316 * <tr> 317 * <td>I25</td> 318 * <td>support I25 format decoding</td> 319 * </tr> 320 * <tr> 321 * <td>C93</td> 322 * <td>support C93 format decoding</td> 323 * </tr> 324 * <tr> 325 * <td>GS1 DATABAR</td> 326 * <td>support GS1 DATABAR format decoding</td> 327 * </tr> 328 * <tr> 329 * <td>MSI</td> 330 * <td>support MSI DATABAR format decoding</td> 331 * </tr> 332 * <tr> 333 * <td>CODEBLOCK F</td> 334 * <td>support CODEBLOCK F format decoding</td> 335 * </tr> 336 * <tr> 337 * <td>PDF417</td> 338 * <td>support PDF417 format decoding</td> 339 * </tr> 340 * <tr> 341 * <td>MICROPDF</td> 342 * <td>support MICROPDF format decoding</td> 343 * </tr> 344 * <tr> 345 * <td>MAXICODE</td> 346 * <td>support MAXICODE format decoding</td> 347 * </tr> 348 * <tr> 349 * <td>QR CODE</td> 350 * <td>support QR CODE format decoding</td> 351 * </tr> 352 * <tr> 353 * <td>DATA MATRIX</td> 354 * <td>support DATA MATRIX format decoding</td> 355 * </tr> 356 * <tr> 357 * <td>AZTEC</td> 358 * <td>support AZTEC format decoding</td> 359 * </tr> 360 * <tr> 361 * <td>HAXIN</td> 362 * <td>support HAXIN format decoding</td> 363 * </tr> 364 * <tr> 365 * <td>MATRIX 25</td> 366 * <td>support MATRIX 25 format decoding</td> 367 * </tr> 368 * <tr> 369 * <td>TRIOPTIC</td> 370 * <td>support TRIOPTIC format decoding</td> 371 * </tr> 372 * <tr> 373 * <td>STRAIGHT 25</td> 374 * <td>support STRAIGHT 25 format decoding</td> 375 * </tr> 376 * <tr> 377 * <td>TELEPEN</td> 378 * <td>support TELEPEN format decoding</td> 379 * </tr> 380 * <tr> 381 * <td>C11</td> 382 * <td>support C11 format decoding</td> 383 * </tr> 384 * <tr> 385 * <td>NEC25</td> 386 * <td>support NEC25 format decoding</td> 387 * </tr> 388 * <tr> 389 * <td>CodaBar</td> 390 * <td>support CodaBar format decoding</td> 391 * </tr> 392 * <tr> 393 * <td>HK25</td> 394 * <td>support HK25 format decoding</td> 395 * </tr> 396 * <tr> 397 * <td>Postal</td> 398 * <td>support Postal format decoding</td> 399 * </tr> 400 * <tr> 401 * <td>UPC-E</td> 402 * <td>support UPC-E format decoding</td> 403 * </tr> 404 * <tr> 405 * <td>EAN-13</td> 406 * <td>support EAN-13 format decoding</td> 407 * </tr> 408 * <tr> 409 * <td>EAN-8</td> 410 * <td>support EAN-8 format decoding</td> 411 * </tr> 412 * </table> 413 * </div> 414 * 415 * 416 * <div class="en">D800 Key value pairs of bar code parameters. 417 * The keys for Map are as follows: 418 * <table border="1"> 419 * <tr> 420 * <th>Key</th> 421 * <th>Meaning</th> 422 * </tr> 423 * <tr> 424 * <td>preferences_decode_upc_a</td> 425 * <td>support UPC-A format decoding</td> 426 * </tr> 427 * <tr> 428 * <td>preferences_decode_upc_e</td> 429 * <td>support UPC-E format decoding</td> 430 * </tr> 431 * 432 * <tr> 433 * <td>preferences_decode_ean_8_jan8</td> 434 * <td>support EAN-8/JAN8 format decoding</td> 435 * </tr> 436 * <tr> 437 * <td>preferences_decode_ean_13_jan13</td> 438 * <td>support EAN-13/JAN13 format decoding</td> 439 * </tr> 440 * <tr> 441 * <td>preferences_decode_code128</td> 442 * <td>support CODE128 format decoding</td> 443 * </tr> 444 * <tr> 445 * <td>preferences_decode_code39</td> 446 * <td>support CODE39 format decoding</td> 447 * </tr> 448 * <tr> 449 * <td>preferences_decode_code93</td> 450 * <td>support CODE93 format decoding</td> 451 * </tr> 452 * <tr> 453 * <td>preferences_decode_code11</td> 454 * <td>support CODE11 format decoding</td> 455 * </tr> 456 * <tr> 457 * <td>preferences_decode_i25</td> 458 * <td>support I25 format decoding</td> 459 * </tr> 460 * <tr> 461 * <td>preferences_decode_d25</td> 462 * <td>support D25 format decoding</td> 463 * </tr> 464 * <tr> 465 * <td>preferences_decode_codabar</td> 466 * <td>support Codabar format decoding</td> 467 * </tr> 468 * <tr> 469 * <td>preferences_decode_msi</td> 470 * <td>support MSI format decoding</td> 471 * </tr> 472 * <tr> 473 * <td>preferences_decode_chinese2of5</td> 474 * <td>support "Chinese 2 of 5" format decoding</td> 475 * </tr> 476 * <tr> 477 * <td>preferences_decode_korean3of5</td> 478 * <td>support "Korean 3 of 5" format decoding</td> 479 * </tr> 480 * <tr> 481 * <td>preferences_decode_matrix2of5</td> 482 * <td>support "Matrix 2 of 5" format decoding</td> 483 * </tr> 484 * <tr> 485 * <td>preferences_decode_pdf417</td> 486 * <td>support PDF417 format decoding</td> 487 * </tr> 488 * <tr> 489 * <td>preferences_decode_micropdf417</td> 490 * <td>support MicroPDF417 format decoding</td> 491 * </tr> 492 * <tr> 493 * <td>preferences_decode_data_matrix</td> 494 * <td>support "Data Matrix" format decoding</td> 495 * </tr> 496 * <tr> 497 * <td>preferences_decode_maxicode</td> 498 * <td>support Maxicode format decoding</td> 499 * </tr> 500 * <tr> 501 * <td>preferences_decode_qr_code</td> 502 * <td>support QR_CODE format decoding</td> 503 * </tr> 504 * <tr> 505 * <td>preferences_decode_aztec</td> 506 * <td>support Aztec format decoding</td> 507 * </tr> 508 * <tr> 509 * <td>preferences_play_beep</td> 510 * <td>Play beep when decode succeeds</td> 511 * </tr> 512 * <tr> 513 * <td>preferences_open_illumination</td> 514 * <td>Open illumination when decoding</td> 515 * </tr> 516 * <tr> 517 * <td>preferences_open_aiming_pattern</td> 518 * <td>Open aiming pattern when decoding</td> 519 * </tr> 520 * </table><br/><br/> 521 * Key value pairs for bar code parameters of other devices. The keys for Map are as follows: 522 * <table border="1"> 523 * <tr> 524 * <th>Key</th> 525 * <th>Meaning</th> 526 * </tr> 527 * <tr> 528 * <td>UPC-A</td> 529 * <td>support UPC-A format decoding</td> 530 * </tr> 531 * <tr> 532 * <td>C39</td> 533 * <td>support C39 format decoding</td> 534 * </tr> 535 * <tr> 536 * <td>C128</td> 537 * <td>support C128 format decoding</td> 538 * </tr> 539 * <tr> 540 * <td>I25</td> 541 * <td>support I25 format decoding</td> 542 * </tr> 543 * <tr> 544 * <td>C93</td> 545 * <td>support C93 format decoding</td> 546 * </tr> 547 * <tr> 548 * <td>GS1 DATABAR</td> 549 * <td>support GS1 DATABAR format decoding</td> 550 * </tr> 551 * <tr> 552 * <td>MSI</td> 553 * <td>support MSI DATABAR format decoding</td> 554 * </tr> 555 * <tr> 556 * <td>CODEBLOCK F</td> 557 * <td>support CODEBLOCK F format decoding</td> 558 * </tr> 559 * <tr> 560 * <td>PDF417</td> 561 * <td>support PDF417 format decoding</td> 562 * </tr> 563 * <tr> 564 * <td>MICROPDF</td> 565 * <td>support MICROPDF format decoding</td> 566 * </tr> 567 * <tr> 568 * <td>MAXICODE</td> 569 * <td>support MAXICODE format decoding</td> 570 * </tr> 571 * <tr> 572 * <td>QR CODE</td> 573 * <td>support QR CODE format decoding</td> 574 * </tr> 575 * <tr> 576 * <td>DATA MATRIX</td> 577 * <td>support DATA MATRIX format decoding</td> 578 * </tr> 579 * <tr> 580 * <td>AZTEC</td> 581 * <td>support AZTEC format decoding</td> 582 * </tr> 583 * <tr> 584 * <td>HAXIN</td> 585 * <td>support HAXIN format decoding</td> 586 * </tr> 587 * <tr> 588 * <td>MATRIX 25</td> 589 * <td>support MATRIX 25 format decoding</td> 590 * </tr> 591 * <tr> 592 * <td>TRIOPTIC</td> 593 * <td>support TRIOPTIC format decoding</td> 594 * </tr> 595 * <tr> 596 * <td>STRAIGHT 25</td> 597 * <td>support STRAIGHT 25 format decoding</td> 598 * </tr> 599 * <tr> 600 * <td>TELEPEN</td> 601 * <td>support TELEPEN format decoding</td> 602 * </tr> 603 * <tr> 604 * <td>C11</td> 605 * <td>support C11 format decoding</td> 606 * </tr> 607 * <tr> 608 * <td>NEC25</td> 609 * <td>support NEC25 format decoding</td> 610 * </tr> 611 * <tr> 612 * <td>CodaBar</td> 613 * <td>support CodaBar format decoding</td> 614 * </tr> 615 * <tr> 616 * <td>HK25</td> 617 * <td>support HK25 format decoding</td> 618 * </tr> 619 * <tr> 620 * <td>Postal</td> 621 * <td>support Postal format decoding</td> 622 * </tr> 623 * <tr> 624 * <td>UPC-E</td> 625 * <td>support UPC-E format decoding</td> 626 * </tr> 627 * <tr> 628 * <td>EAN-13</td> 629 * <td>support EAN-13 format decoding</td> 630 * </tr> 631 * <tr> 632 * <td>EAN-8</td> 633 * <td>support EAN-8 format decoding</td> 634 * </tr> 635 * </table> 636 * </div> 637 * 638 * <div class="zh">Map.value: 639 * <ul> 640 * <li>true:打开。</li> 641 * <li>false:关闭。</li> 642 * </ul> 643 * </div> 644 * 645 * <div class="en">Map.value: 646 * <ul> 647 * <li>true:open </li> 648 * <li>false:close </li> 649 * </ul> 650 * </div> 651 * 652 * @return <div class="zh">结果。 653 * <ul> 654 * <li>true:成功。</li> 655 * <li>false:失败。</li> 656 * </ul> 657 * </div> 658 * <div class="en">The result. 659 * <ul> 660 * <li>true:success.</li> 661 * <li>false:failure.</li> 662 * </ul> 663 * </div> 664 * @since V4.08.00 665 */ 666 boolean setBarcodeParam(Map<String,Object> paramMap); 667}