zsh_root
2024-01-02 7b595546af704983dbafcd0d385c8768ddacefc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package anchor;
import java.util.LinkedHashMap;
import java.util.Map;
 
import tbDataModel_Dell.Jiaoyan;
 
 
 
/**д»ùÕ¾ÅäÖÃÐÅÏ¢*/
public class Write_peizhi {
    /**µØÖ·              Ãû³Æ             ¶Á/д                      ËµÃ÷
    0x55AA        °üÍ·
    0x03        Ö¸ÁîÀàÐͲÎÊý¶Áд
    0x55        ¶ÁÈ¡Êý¾Ý¶Î³¤¶È
    0x03        Ó¦´ðģʽ
    0x02        ¶ÁдÆðʼµØÖ·
    0x2                        °æ±¾ºÅ£¨2Byte£©                                            Ö»¶Á     XX.XX
    0x4                        Ä£¿éID£¨2Byte£©    ¶Á/д    
    0x6                        ±êǩͨѶ¼ä¸ô£¨2Byte£©    ¶Á/д    ·¶Î§£º100-65535£¬µ¥Î»ºÁÃë¡£Ö»ÄÜÐ޸ıêǩģ¿é¡£
    0x8                        µ¥´ÎͨѶ»ùÕ¾ÊýÁ¿ÉÏÏÞ£¨2Byte£©    ¶Á/д    Ò»´Î²â¾à×î¶à»ùÕ¾ÊýÁ¿
    0xA                        µ¥´ÎͨѶ»ùÕ¾ÊýÁ¿ÏÂÏÞ£¨2Byte£©    ¶Á/д    Ò»´Î²â¾à×îÉÙ»ùÕ¾ÊýÁ¿
    0xC                        ¾àÀëУ׼ֵ£¨2Byte£©    ¶Á/д    Ð´Ä£Ê½ÏÂΪ²ÎÊýµÄ¾ßÌåÊýÖµ£¬¶ÁģʽÏÂΪ0x00
    0xE                        Ä£¿éÀàÐÍ£¨2Byte£©    ¶Á/д    »ùÕ¾0/±êÇ©1
    0x10              »ùÕ¾Ö÷¶¯²â¾à    ¶Á/д    
    0x12             ±¨¾¯É豸    ¶Á/д    
    0x14             Çл»¾àÀë    ¶Á/д    
    0x16             ±¨¾¯¾àÀë2    ¶Á/д    
    0x18             ±¨¾¯¾àÀë3    ¶Á/д    
    0x1a             Åä¶ÔID    ¶Á/д    
    0x1c             ÐÄÌø°ü    ¶Á/д    
    0x1e        MODBUSģʽ    ¶Á/д    
    0x20             ÁÙ½ü»ùÕ¾ÊýÁ¿    ¶Á/д    
    0x22             ÁÙ½ü»ùÕ¾1 ID    ¶Á/д    
    0x24             ÁÙ½ü»ùÕ¾2 ID    ¶Á/д    
    0x26             ÁÙ½ü»ùÕ¾3 ID    ¶Á/д    
    0x28             ÁÙ½ü»ùÕ¾4 ID    ¶Á/д    
    0x2a             ÁÙ½ü»ùÕ¾5 ID    ¶Á/д    
    0x2c             ÁÙ½ü»ùÕ¾6 ID    ¶Á/д    
    0x2e             ÁÙ½ü»ùÕ¾7 ID    ¶Á/д    
    0x30             ÁÙ½ü»ùÕ¾8 ID    ¶Á/д    
    0x32             ÁÙ½ü»ùÕ¾9 ID    ¶Á/д    
    0x34             ÁÙ½ü»ùÕ¾10 ID    ¶Á/д    
    0x36             ¹¦ÂÊ    ¶Á/д    
    0x38             ¼ÓËÙ¼ÆãÐÖµ    ¶Á/д    
    0x3a             ÎÞ¾²Ö¹ÐÝÃßʱ¼ä    ¶Á/д    
    0x3c             Õð¶¯Ê¹ÄÜ    ¶Á/д    
    0x3e             ¼ÓËÙ¼ÆÊ¹ÄÜ    ¶Á/д    
    0x40             ±êǩϷ¢ÅäÖÃ״̬    ¶Á/д    
    0x42             ±êǩϷ¢ÅäÖÃID    ¶Á/д    
    0x44            
    0x60             Ä£¿éÖØÆô£¨2Byte£©    Ð´    Ð´Èë1Ö´ÐÐ
    0x62             »Ö¸´³ö³§ÉèÖã¨2Byte£©    Ð´    Ð´Èë1Ö´ÐÐ
    0x64             ¿ªÊ¼Éý¼¶£¨2Byte£©    Ð´    Ð´Èë1Ö´ÐÐ***/
 
 
 
 
    /**@param start ÆðʼµØÖ·
     * @param lenthÊý¾Ý³¤¶È
     * @param value[]¾ßÌåµÄÖµ*/
    public static byte[] write(byte start ,byte lenth,int[] value) {
        byte[] buf =new byte[9+lenth];
        byte[] buf1 =new byte[5+lenth];
        //°üÍ·
        buf[0]=(byte) 0x55;
        //°üÍ·
        buf[1]=(byte) 0xAA;
        //Ö¸ÁîÀàÐÍ
        buf1[0]=(byte) 0x03;
        //Êý¾Ý³¤¶È
        buf1[1]=(byte) ((byte) 5+lenth);
        //¶Áģʽ
        buf1[2]=(byte) 0x02;
        //ÆðʼµØÖ·
        buf1[3]=(byte) start; 
 
        //¶Áд³¤¶È
        buf1[4]=(byte) lenth;
 
        for(int i=0;i<value.length;i++) {
            buf1[5+2*i]=intToRegisters(value[i])[3];  
            buf1[6+2*i]=intToRegisters(value[i])[2];
        }
 
        for(int i=0;i<buf1.length;i++) {
            buf[i+2]=buf1[i];
        }
        //УÑéÂë
        buf[buf.length-2]=Jiaoyan.check(buf1)[1];
        buf[buf.length-1]=Jiaoyan.check(buf1)[0];
        return buf; 
 
    }
    
    public static  byte[] intToRegisters(int v) {
        byte[] registers = new byte[4];
        registers[0] = (byte) (0xff & (>> 24));
        registers[1] = (byte) (0xff & (>> 16));
        registers[2] = (byte) (0xff & (>> 8));
        registers[3] = (byte) (0xff & v);
        return registers;
    }
    
    /**
     * @param: [content]
     * @return: int
     * @description: Ê®Áù½øÖÆ×ªÊ®½øÖÆ
     */
    public static int covert(String content){
        int number=0;
        String [] HighLetter = {"A","B","C","D","E","F"};
        Map<String,Integer> map = new LinkedHashMap<>();
        for(int i = 0;<= 9;i++){
            map.put(i+"",i);
        }
        for(int j= 10;j<HighLetter.length+10;j++){
            map.put(HighLetter[j-10],j);
        }
        String[]str = new String[content.length()];
        for(int i = 0; i < str.length; i++){
            str[i] = content.substring(i,i+1);
        }
        for(int i = 0; i < str.length; i++){
            number += map.get(str[i])*Math.pow(16,str.length-1-i);
        }
        return number;
    }
    
    /**½«10½øÖÆÊý×éתΪ2×Ö½ÚµÄ16½øÖÆÔÚתΪbytÊý×éÊä³ö*/
    public static byte[] int_to_Byt(int b) {
        String a=String.format("%04x", b);
        final byte[] byteArray = new byte[a.length() / 2];
        int k = 0;
        for (int i = 0; i < byteArray.length; i++) {//ÒòΪÊÇ16½øÖÆ£¬×î¶àÖ»»áÕ¼ÓÃ4λ£¬×ª»»³É×Ö½ÚÐèÒªÁ½¸ö16½øÖƵÄ×Ö·û£¬¸ßλÔÚÏÈ
            byte high = (byte) (Character.digit(a.charAt(k), 16) & 0xff);
            byte low = (byte) (Character.digit(a.charAt(+ 1), 16) & 0xff);
            byteArray[i] = (byte) (high << 4 | low);
            k += 2;
        }
        return byteArray;
    }
}