yangys
2024-01-29 3ef1c88e46ba88f46e70377b158062096dd286e0
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
package com.qianwen.mdc.service.focas;
 
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
 
import com.qianwen.mdc.service.focas.types.ODBST;
import com.sun.jna.Platform;
import com.sun.jna.ptr.ShortByReference;
@Disabled
public class FocasJavaClientTest {
    public static String IP = "192.168.1.8";
    public static short port = 8193;
    
    FocasJavaClient client = new FocasJavaClient();
    
    @BeforeEach
    public void setUp() {
        //CLibrary INSTANCE = (CLibrary) Native.load(Platform.isWindows() ? "libtest" : "test", CLibrary.class);
        client.setIp(IP);
        client.setPort(port);
        
        int ret = client.connect();
        System.out.println("connret="+ret);
        
        
    }
    @AfterEach
    public void tearDown() {
        client.disconnect();
    }
    @Test
    public void testConn() {
        ShortByReference flibHndl = new ShortByReference();
        //int r = MyJNAFocas.MathLib.add(9, 20);
        //System.out.println(r);
        
        //MyJNAFocas.HxFocas.connectServer("localhost", (short)8193, 5000, flibHndl);
        try {
            short result = JNAJavaFocas.Fwlib.cnc_allclibhndl3(IP, port, 10, flibHndl);
            System.out.print(result);
            short ret = JNAJavaFocas.Fwlib.cnc_freelibhndl(flibHndl.getValue());
            
            System.out.print("ret="+ret);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
    
    //@Test
    public void testReadCncType1() {
        FocasJavaClient c = new FocasJavaClient();
        c.setIp(IP);
        c.setPort(port);
        c.setTimeout(5);
        c.connect();
        String ty = c.readCncType();
        System.out.println(ty);
        c.disconnect();
    }
    String byteArrToString(byte[] bytes) {
        if(bytes == null) {
            return null;
        }
    
        char[] charArr = new char[bytes.length];
        
        int i = 0;
        while(bytes[i] != 0 && i<bytes.length) {
            charArr[i] = (char)bytes[i];
            i++;
        }
        
        return new String(charArr,0,i);
    }
    /**
     * 自测方法
     */
    /*
    @Test
    public void testReadCncType() {
        ShortByReference flibHndl = new ShortByReference();
        
        
        try {
            short result = JNAJavaFocas.Fwlib.cnc_allclibhndl3(IP, port, 10, flibHndl);
            
            ODBSYS sysInfo = new ODBSYS();
            short val = JNAJavaFocas.Fwlib.cnc_sysinfo(flibHndl.getValue(), sysInfo);
            String se = "d";//new String(getBytes(sysInfo.cnc_type)).trim();
            //32, 48
            String cncTypeNum = this.byteArrToString(sysInfo.cnc_type);//类型编号
            
            String CNCType;
            switch (cncTypeNum)
            {
                case "15":
                    CNCType = "Series 15/15i";
                    break;
                case "16":
                    CNCType = "Series 16/16i";
                    break;
                case "18":
                    CNCType = "Series 18/18i";
                    break;
                case "21":
                    CNCType = "Series 21/21i";
                    break;
                case "30":
                    CNCType = "Series 30i";
                    break;
                case "31":
                    CNCType = "Series 31i";
                    break;
                case "32":
                    CNCType = "Series 32i";
                    break;
                case "35":
                    CNCType = "Series 35i";
                    break;
                case " 0":
                    CNCType = "Series 0i";
                    break;
                case "PD":
                    CNCType = "Power Mate i-D";
                    break;
                case "PH":
                    CNCType = "Power Mate i-H";
                    break;
                case "PM":
                    CNCType = "Power Motion i";
                    break;
                default:
                    CNCType = "其它类型";
                    break;
            }
            
            String seriesStr = this.byteArrToString(sysInfo.series);//类型编号
            System.out.println("val="+val+",data="+CNCType);
            System.out.println("seriesStr="+seriesStr);
            System.out.println("version="+this.byteArrToString(sysInfo.version));
            System.out.println("mttype="+this.byteArrToString(sysInfo.mt_type));
            System.out.println("axes="+this.byteArrToString(sysInfo.axes));
            
            
            short ret = JNAJavaFocas.Fwlib.cnc_freelibhndl(flibHndl.getValue());
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
    */
    
    @Test
    public void testReadState() {
        
        ODBST obj = client.readState();
        System.out.println(obj);
    }
    
    @Test
    public void testReadSpindleOverride() {
        
        int r = client.readSpindleOverride();
        System.out.println(r);
        
    }
    @Test
    public void readActs() {
        int actSpeed = client.readActs();
        System.out.println(actSpeed);
    }
    
    @Test
    public void testReadSpLoad() {
        float spLoad = client.readSpLoad();
        System.out.println(spLoad);
    }
    
    @Test
    public void testReadActf() {
        float actf = client.readActf();
        System.out.println(actf);
    }
    @Test
    public void testReadPrgNo() {
        int prgNo = client.readPrgNo();
        System.out.println(prgNo);
    }
    @Test
    public void testReadRealPrgName() {
        String prg= client.readExePrgName();
        System.out.println("当前执行程序="+prg);
    }
    
    @Test
    public void testReadCurToolNo() {
        Integer tool= client.readCurToolNo();
        System.out.println("tool="+tool);
    }
    
    @Test
    public void testReadAxisName() {
        client.readAxisName();
    }
    @Test
    public void testReadPosition() {
        client.readPosition();
        //System.out.println("tool="+tool);
    }
    @Test
    public void testReadAxisServoload() {
        client.readAxisServoload();
        //System.out.println("tool="+tool);
    }
    @Test
    public void testReadAlarm() {
        client.readAlarm("GBK");
        //System.out.println("tool="+tool);
    }
    
    String byteArrToString2(byte[] bytes) {
        if (bytes == null) {
            return null;
        }
 
        char[] charArr = new char[bytes.length];
 
        int i = 0;
        while (i < bytes.length && bytes[i] != 0) {
            charArr[i] = (char) bytes[i];
            i++;
        }
 
        return new String(charArr, 0, i);
    }
    //@Test
    public void testByteToString() {
        byte[] bs = new byte[] {32,48};
        String a = byteArrToString2(bs);
        //System.out.println("tool="+tool);
    }
}