Commit 1bc9b844229313bc1361716c0889e6e63d2701dd
1 parent
fd06927d
添加生避字协议
Showing
2 changed files
with
93 additions
and
5 deletions
soft/code.dat
0 → 100644
No preview for this file type
海亮定制.md
| ... | ... | @@ -35,7 +35,7 @@ C200K基站,采用MQTTå议进行开å‘,基站接入MQTTæœåŠ¡å™¨ï¼Œåº”ç”¨ä | 
| 35 | 35 | |
| 36 | 36 | MQTTæœåŠ¡å™¨è¦æ±‚: | 
| 37 | 37 | |
| 38 | -厂家使用<a href="https://www.emqx.io/get-started" >EMQX </a>进行测试 | |
| 38 | +厂家使用<a href="https://www.emqx.io/get-started" target="_blank" >EMQX </a>进行测试 | |
| 39 | 39 | |
| 40 | 40 | 能够æ£å¸¸æ”¶å‘MQTTæ•°æ®ã€‚ | 
| 41 | 41 | |
| ... | ... | @@ -73,7 +73,7 @@ MQTTæœåС噍é…置结果检查 | 
| 73 | 73 |  | 
| 74 | 74 | |
| 75 | 75 | |
| 76 | -æœåС噍IP设置<a href="/Elvis/public/blob/master/soft/SunVote æœåС噍IP设置 1.0.1.2.exe" download>软件下载</a> | |
| 76 | +æœåС噍IP设置<a href="/Elvis/public/blob/master/soft/SunVote æœåС噍IP设置 1.0.1.2.exe" target="_blank" >软件下载</a> | |
| 77 | 77 | |
| 78 | 78 | |
| 79 | 79 | ## 2.3 åº”ç”¨å¼€å‘ | 
| ... | ... | @@ -110,6 +110,7 @@ MQTTæœåС噍é…置结果检查 | 
| 110 | 110 | | 键盘å‡çº§ | 键盘固件å‡çº§ | | 
| 111 | 111 | | æ–‡æœ¬ä¸‹å‘ | æ–‡æœ¬ä¸‹å‘ | | 
| 112 | 112 | | å¦ç”Ÿå¡ä¿¡æ¯ä¸ŠæŠ¥ | å¦ç”Ÿå¡ä¿¡æ¯ä¸ŠæŠ¥ | | 
| 113 | +| 下å‘生é¿å— | 下å‘生é¿å— | | |
| 113 | 114 | |
| 114 | 115 | |
| 115 | 116 | ## 3.2 å议简介 | 
| ... | ... | @@ -596,6 +597,92 @@ ${clinetId} clinetId 是基站编å·ï¼Œä¸ºæ›¿æ¢å—符串。 | 
| 596 | 597 | |
| 597 | 598 | æ¯åŒ…的数æ®è®¡ç®—,少于1kå³å¯ã€‚ | 
| 598 | 599 | |
| 600 | + | |
| 601 | +### 3.2.5 生é¿å—检测方法 | |
| 602 | + | |
| 603 | +䏋呿–‡æœ¬ä¿¡æ¯æ—¶ï¼Œéœ€è¦å…ˆæ£€æµ‹ä¸‹å‘的文本内容<br> | |
| 604 | +下å‘的内容当ä¸ï¼Œå¦‚果有些å—属于生é¿å—,需è¦åœ¨ä¸šåŠ¡è¿›è¡Œå‰ï¼Œå…ˆæŠŠç”Ÿé¿å—çš„å—ç 下å‘给到基站。<br> | |
| 605 | +ç›®å‰åŸºç«™æ”¯æŒæœ€å¤šå˜å‚¨8个生é¿å—<br> 。 | |
| 606 | +生é¿å—å—符<a href="/Elvis/public/blob/master/soft/code.dat" target="_blank" >下载</a> | |
| 607 | + | |
| 608 | +判æ–å—符的GB2312ç¼–ç æ˜¯å¦æ˜¯ç”Ÿé¿å—,方法: | |
| 609 | + | |
| 610 | +å—符的GB2312ç¼–ç : | |
| 611 | +```java | |
| 612 | + | |
| 613 | +byte[] inputs = input.getBytes("GB2312"); // 原文内容 | |
| 614 | + | |
| 615 | +``` | |
| 616 | + | |
| 617 | +byte数组转int型 | |
| 618 | +```java | |
| 619 | + public static int bytes2ToInt(byte[] b, int offset) { | |
| 620 | + int x = 0; | |
| 621 | + if (b.length - offset >= 2) { | |
| 622 | + x = (int) (((b[offset ] & 0xff) << 8) | ((b[offset + 1] & 0xff) << 0)); | |
| 623 | + } | |
| 624 | + | |
| 625 | + return x; | |
| 626 | +} | |
| 627 | +``` | |
| 628 | + | |
| 629 | +判æ–这个å—ç¬¦æ˜¯å¦æ˜¯ç”Ÿé¿å— | |
| 630 | + | |
| 631 | +```java | |
| 632 | + public static boolean isGB2312Font(int code) { | |
| 633 | + int GB_H = (code >> 8) & 0xFF; | |
| 634 | + int GB_L = code & 0xFF; | |
| 635 | + | |
| 636 | + if (GB_H < 0xA1 || GB_H > 0xF7) { | |
| 637 | + return true; | |
| 638 | + } else if (GB_L < 0xA1 || GB_L > 0xFE) { | |
| 639 | + return true; | |
| 640 | + } | |
| 641 | + return false; | |
| 642 | +} | |
| 643 | +``` | |
| 644 | + | |
| 645 | +获å–这个生é¿å—的编ç : | |
| 646 | +``` | |
| 647 | +byte[] inputs = "綩".getBytes("GB2312"); // 原文内容 | |
| 648 | +int code = bytes2ToInt(inputs,0); | |
| 649 | +byte[] result = readFileContent(code,24); | |
| 650 | +String hex = bytesToHexString(inputs) + bytesToHexString(result); | |
| 651 | + | |
| 652 | +public byte[] readFileContent(int start, int len) { | |
| 653 | + byte[] buffer = new byte[len]; | |
| 654 | + try { | |
| 655 | + InputStream inputStream = new FileInputStream(new File("path/code.dat")); | |
| 656 | + inputStream.skip(start*len); | |
| 657 | + inputStream.read(buffer, 0, len); | |
| 658 | + inputStream.close(); | |
| 659 | + } catch (Exception e) { | |
| 660 | + e.printStackTrace(); | |
| 661 | + } | |
| 662 | + return buffer; | |
| 663 | +} | |
| 664 | + | |
| 665 | + | |
| 666 | + public static String bytesToHexString(byte[] src) { | |
| 667 | + StringBuilder stringBuilder = new StringBuilder(""); | |
| 668 | + if (src == null || src.length <= 0) { | |
| 669 | + return stringBuilder.toString(); | |
| 670 | + } | |
| 671 | + for (int i = 0; i < src.length; i++) { | |
| 672 | + int v = src[i] & 0xFF; | |
| 673 | + String hv = Integer.toHexString(v); | |
| 674 | + if (hv.length() < 2) { | |
| 675 | + stringBuilder.append(0); | |
| 676 | + } | |
| 677 | + stringBuilder.append(hv); | |
| 678 | + stringBuilder.append(""); | |
| 679 | + } | |
| 680 | + return stringBuilder.toString(); | |
| 681 | +} | |
| 682 | +``` | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 599 | 686 | |
| 600 | 687 | ## 3.3 功能说明 | 
| 601 | 688 | |
| ... | ... | @@ -1299,7 +1386,7 @@ public static String bytesToHexString(byte[] src) { | 
| 1299 | 1386 | | current |当å‰ç¬¬å‡ 包 ,这里分包原则å‚考指令属性m介ç»è¯´æ˜ŽåŠåˆ†åŒ…示例| | 
| 1300 | 1387 | | total |一共多少包,这里分包原则å‚考指令属性m介ç»è¯´æ˜ŽåŠåˆ†åŒ…示例 | | 
| 1301 | 1388 | | qs |键盘总数 如果是多包,是多包总和 | | 
| 1302 | -| cmd |下å‘的命令 <br> 1: å§“åä¸‹å‘ <br> 10: 第二行文本 <br> 85: è‡ªåˆ¤é¢˜æ ‡é¢˜ <br> 87: 清除 | | |
| 1389 | +| cmd |下å‘的命令 <br> 1: å§“åä¸‹å‘ <br> 10: 第二行文本 <br> 70: 生é¿å—,生é¿å—规则:内容为GB2312çš„hexç¼–ç ,先是生é¿å—çš„hexç¼–ç ï¼Œç´§æŽ¥ç€æ˜¯ç”Ÿé¿å—çš„å—符编ç ,生é¿å—çš„å—符编ç 为24个å—节。一个生é¿å—是26个å—节52个å—符(hexç¼–ç ) <br> 85: è‡ªåˆ¤é¢˜æ ‡é¢˜ <br> 87: 清除 | | |
| 1303 | 1390 | | text |æ ‡é¢˜ä¿¡æ¯ï¼Œä»¥hex:å¼€å¤´æ·»åŠ çš„å†…å®¹ 内容为GB2312çš„hexç¼–ç | | 
| 1304 | 1391 | |
| 1305 | 1392 | |
| ... | ... | @@ -1356,7 +1443,7 @@ public static String bytesToHexString(byte[] src) { | 
| 1356 | 1443 | | --- | --- | | 
| 1357 | 1444 | | i = 61 | 文本下å‘返回 | | 
| 1358 | 1445 | | sn |é”®ç›˜å· | | 
| 1359 | -| cmd |下å‘的命令 <br> 1: å§“åä¸‹å‘ <br> 10: 第二行文本 <br> 85ï¼šè‡ªåˆ¤é¢˜æ ‡é¢˜ <br> 87:清除 | | |
| 1446 | +| cmd |下å‘的命令 <br> 1: å§“åä¸‹å‘ <br> 10: 第二行文本 <br> 70: 生é¿å—,生é¿å—规则(å‚考:生é¿å—检测方法):内容为GB2312çš„hexç¼–ç ,先是生é¿å—çš„hexç¼–ç ï¼Œç´§æŽ¥ç€æ˜¯ç”Ÿé¿å—çš„å—符编ç ,生é¿å—çš„å—符编ç 为24个å—节。一个生é¿å—是26个å—节52个å—符(hexç¼–ç ) <br> 85ï¼šè‡ªåˆ¤é¢˜æ ‡é¢˜ <br> 87:清除 | | |
| 1360 | 1447 | | success | æ˜¯å¦æˆåŠŸã€‚<br> 0 表示æˆåŠŸ <br> -1 失败 <br> -2 基站忙,应用程åºéœ€è¦ç‰å¾…一段时间å†å‘é€ | | 
| 1361 | 1448 | |
| 1362 | 1449 | ### å¦ç”Ÿå¡ä¿¡æ¯ä¸ŠæŠ¥ | 
| ... | ... | @@ -1382,4 +1469,5 @@ public static String bytesToHexString(byte[] src) { | 
| 1382 | 1469 | | c |é”®ç›˜ç¼–å· | | 
| 1383 | 1470 | | cv |å›ºä»¶ç‰ˆæœ¬å· | | 
| 1384 | 1471 | | hw |ç¡¬ä»¶ç‰ˆæœ¬å· | | 
| 1385 | -| t | 时间戳 时间戳å•ä½ç§’ 需è¦å…ˆæ ¡æ—¶| | |
| 1386 | 1472 | \ No newline at end of file | 
| 1473 | +| t | 时间戳 时间戳å•ä½ç§’ 需è¦å…ˆæ ¡æ—¶| | |
| 1474 | + | ... | ... | 
