机械臂控制器中Background task通过UDP向外部程序每隔50ms循环发送当前各轴位置:

 1 package sampleBackgroundTask;
 2 
 3 import javax.inject.Inject;
 4 import java.util.concurrent.TimeUnit;
 5 import com.kuka.roboticsAPI.applicationModel.tasks.CycleBehavior;
 6 import com.kuka.roboticsAPI.applicationModel.tasks.RoboticsAPICyclicBackgroundTask;
 7 import com.kuka.roboticsAPI.deviceModel.JointPosition;
 8 import com.kuka.roboticsAPI.deviceModel.LBR;
 9 import java.net.*;
10 import java.io.IOException; 
11 
12 
13 public class BackgroundTask extends RoboticsAPICyclicBackgroundTask {
14     @Inject
15     private LBR robot; 
16     
17     byte[] posArr;    
18     int port = 30003;
19     InetAddress IP = null; 
20     DatagramSocket datagramSocket = null; 
21     DatagramPacket packet; 
22 
23     @Override
24     public void initialize() {
25         // initialize your task here
26         initializeCyclic(2000, 50, TimeUnit.MILLISECONDS, CycleBehavior.BestEffort);
27         
28         try {
29             datagramSocket = new DatagramSocket();   
30             IP =  InetAddress.getByName("192.168.1.50"); // get PC's address
31         } 
32         catch (SocketException e)         { e.printStackTrace(); } 
33         catch (UnknownHostException e)  { e.printStackTrace(); } 
34     }
35 
36     @Override
37     public void runCyclic() {
38         // your task execution starts here
39          JointPosition jPos = robot.getCurrentJointPosition();  
40         posArr = jPos.toString().getBytes();  
41         packet = new DatagramPacket(posArr, posArr.length, IP, port); 
42         try {
43             datagramSocket.send(packet);
44         } 
45         catch (IOException e)
46         {  e.printStackTrace(); } 
47     }
48 }
View Code

相关文章:

  • 2021-09-03
  • 2021-07-31
  • 2021-11-28
  • 2022-02-16
  • 2022-01-23
  • 2022-01-07
  • 2021-08-28
猜你喜欢
  • 2022-01-30
  • 2021-09-23
  • 2021-12-16
  • 2021-07-12
  • 2021-09-30
  • 2022-01-08
  • 2021-10-25
相关资源
相似解决方案