From 30b6dbde0ca5844e1cadea7266b49c9c78c6eb0e Mon Sep 17 00:00:00 2001 From: CYZ <2782394648@qq.com> Date: Thu, 22 Jun 2023 10:20:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9udp=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...件系统软件设计规格说明书.doc | Bin 14177327 -> 14177847 bytes .../2ab0711d9aa5839cecbb6cf0ed96f5a3f6470de5 | 0 .../71fd1993763df2214bbdad8cfee650733993fe44 | 133 --------------- .../7c120b7216f76ce98d1573d90803ab36f481640c | 84 ---------- .../8c55c3ccc257e5907959013f99656e4c8ec3903e | 2 - .../f7730cde41931660f06cfc32899edf44acf4d104 | 10 -- .../.idea/sonarlint/issuestore/index.pb | 12 +- .../com/example/sixaunyi/SettingActivity.java | 2 +- .../com/example/sixaunyi/VideoActivity.java | 158 +++++++++++++----- 9 files changed, 115 insertions(+), 286 deletions(-) delete mode 100644 src/sixaunyi/.idea/sonarlint/issuestore/2/a/2ab0711d9aa5839cecbb6cf0ed96f5a3f6470de5 delete mode 100644 src/sixaunyi/.idea/sonarlint/issuestore/7/1/71fd1993763df2214bbdad8cfee650733993fe44 delete mode 100644 src/sixaunyi/.idea/sonarlint/issuestore/7/c/7c120b7216f76ce98d1573d90803ab36f481640c delete mode 100644 src/sixaunyi/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e delete mode 100644 src/sixaunyi/.idea/sonarlint/issuestore/f/7/f7730cde41931660f06cfc32899edf44acf4d104 diff --git a/doc/“哨兵”软件系统软件设计规格说明书.doc b/doc/“哨兵”软件系统软件设计规格说明书.doc index 648bda422af8061d76a8c5a825abd2dbeeef0edd..dd3692b27e8c50f93ecd126e2ddb22962728d2ea 100644 GIT binary patch delta 9131 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 ZP{L5GO$drL5JSJyPw%2ch3Jo){tx0?RZ#!{ delta 8815 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 ZZd4tr7i&kY2kTr^ddbqP!MZaB{|DmIHKPCk diff --git a/src/sixaunyi/.idea/sonarlint/issuestore/2/a/2ab0711d9aa5839cecbb6cf0ed96f5a3f6470de5 b/src/sixaunyi/.idea/sonarlint/issuestore/2/a/2ab0711d9aa5839cecbb6cf0ed96f5a3f6470de5 deleted file mode 100644 index e69de29..0000000 diff --git a/src/sixaunyi/.idea/sonarlint/issuestore/7/1/71fd1993763df2214bbdad8cfee650733993fe44 b/src/sixaunyi/.idea/sonarlint/issuestore/7/1/71fd1993763df2214bbdad8cfee650733993fe44 deleted file mode 100644 index 7233058..0000000 --- a/src/sixaunyi/.idea/sonarlint/issuestore/7/1/71fd1993763df2214bbdad8cfee650733993fe44 +++ /dev/null @@ -1,133 +0,0 @@ - -` java:S112h"FDefine and throw a dedicated exception instead of using a generic one.(҂ -a java:S112"FDefine and throw a dedicated exception instead of using a generic one.(҂ -a java:S112"FDefine and throw a dedicated exception instead of using a generic one.(҂ -a java:S112"FDefine and throw a dedicated exception instead of using a generic one.(҂ -a java:S112"FDefine and throw a dedicated exception instead of using a generic one.(҂ -a java:S112"FDefine and throw a dedicated exception instead of using a generic one.(҂ -a java:S112"FDefine and throw a dedicated exception instead of using a generic one.(҂ -h java:S112"FDefine and throw a dedicated exception instead of using a generic one.(҂8̇1 -h java:S112"FDefine and throw a dedicated exception instead of using a generic one.(҂8̇1 -s java:S117"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ᮾ8̇1 -> -java:S1604b"(Make this anonymous inner class a lambda(Ʒ -> -java:S1604m"(Make this anonymous inner class a lambda( -> -java:S1604z"(Make this anonymous inner class a lambda( -K -java:S1604"(Make this anonymous inner class a lambda(ݳ8̇1 -D -java:S1604"(Make this anonymous inner class a lambda( -D -java:S1604"(Make this anonymous inner class a lambda( -D -java:S1604"(Make this anonymous inner class a lambda( -? -java:S1604"(Make this anonymous inner class a lambda( -? -java:S1604"(Make this anonymous inner class a lambda(ڊ -? -java:S1604"(Make this anonymous inner class a lambda( -F -java:S1604"(Make this anonymous inner class a lambda(8̇1 -] -java:S2184"@Cast one of the operands of this integer division to a "double".([8͇1 -_ -java:S2184"ACast one of the operands of this division operation to a "float".(ϓ8͇1 -d -java:S2184"ACast one of the operands of this division operation to a "float".(8͇1 -b -java:S2184"DCast one of the operands of this subtraction operation to a "float".(8͇1 -d -java:S2184"ACast one of the operands of this division operation to a "float".(8͇1 -b -java:S2184"DCast one of the operands of this subtraction operation to a "float".(8͇1 -b -java:S2184"DCast one of the operands of this subtraction operation to a "float".(8͇1 -d -java:S2184"ACast one of the operands of this addition operation to a "float".(8͇1 -g -java:S2184"DCast one of the operands of this subtraction operation to a "float".(8͇1 -d -java:S2184"ACast one of the operands of this division operation to a "float".(Ҍ8͇1 -c -java:S2184"@Cast one of the operands of this integer division to a "double".(8͇1 -j -java:S2095"LUse try-with-resources or close this "DatagramSocket" in a "finally" clause.(8͇1 -o java:S115/"ZRename this constant name to match the regular expression '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.(ƴư -t java:S1150"ZRename this constant name to match the regular expression '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.(ܶ -k java:S1163"WRename this field "TimeInterval" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(n -t java:S116<"ZRename this field "Trans_to_Detect" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -k java:S116?"VRename this field "Forward_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ѕ -m java:S116@"SRename this field "Back_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -h java:S116A"SRename this field "Left_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -i java:S116B"TRename this field "Right_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ο -m java:S116C"SRename this field "Down_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(缎 -k java:S116D"QRename this field "Up_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ф -q java:S116E"WRename this field "TurnLeft_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ݎ -l java:S116F"XRename this field "TurnRight_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(p -k java:S116G"VRename this field "Setting_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -p java:S116H"VRename this field "TakeOff_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -p java:S116I"VRename this field "Landing_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -u -java:S1450I"ZRemove the "Landing_btn" field and declare it as a local variable in the relevant methods.( -u -java:S1450H"ZRemove the "TakeOff_btn" field and declare it as a local variable in the relevant methods.( -o -java:S1450J"TRemove the "angle" field and declare it as a local variable in the relevant methods.( -r -java:S1450K"WRemove the "distance" field and declare it as a local variable in the relevant methods.(׾ -[ -java:S1124/"EReorder the modifiers to comply with the Java Language Specification.(ƴư -` -java:S11240"EReorder the modifiers to comply with the Java Language Specification.(ܶ -[ -java:S11241"EReorder the modifiers to comply with the Java Language Specification.(ß -[ -java:S11242"EReorder the modifiers to comply with the Java Language Specification.(Ӿ -o java:S100y"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8͇1 -t -java:S3776y"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(8͇1 -K -java:S1185"(Remove this method to simply inherit it.(8·1 -S -java:S2696"6Make the enclosing method "static" or remove this set.(è8·1 -^ java:S125""'Remove this unused "btn" private field.(ȧ -D -java:S1068J")Remove this unused "angle" private field.( -G -java:S1068K",Remove this unused "distance" private field.(׾ -J -java:S1068M"/Remove this unused "mThreadPool" private field.( -G -java:S1068")Remove this unused "mPath" private field.(䓍8·1 -M -java:S1068"/Remove this unused "mIsUnlocked" private field.(8·1 \ No newline at end of file diff --git a/src/sixaunyi/.idea/sonarlint/issuestore/7/c/7c120b7216f76ce98d1573d90803ab36f481640c b/src/sixaunyi/.idea/sonarlint/issuestore/7/c/7c120b7216f76ce98d1573d90803ab36f481640c deleted file mode 100644 index 01d0bae..0000000 --- a/src/sixaunyi/.idea/sonarlint/issuestore/7/c/7c120b7216f76ce98d1573d90803ab36f481640c +++ /dev/null @@ -1,84 +0,0 @@ - -l java:S117"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -p -java:S1104D"[Make mLocationClient a static final constant or non-public and provide accessors if needed.(L -q -java:S1104F"[Make mLocationOption a static final constant or non-public and provide accessors if needed.( -d -java:S2259"MA "NullPointerException" could be thrown; "mLocationClient" is nullable here.(Թ -c -java:S2095"LUse try-with-resources or close this "DatagramSocket" in a "finally" clause.( -o java:S115d"ZRename this constant name to match the regular expression '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.(뿧 -s java:S116I"YRename this field "Current_latlng" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -o java:S116["ZRename this field "ClearMarker_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -r java:S116]"XRename this field "ChangeAct_btn" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( -d java:S116i"PRename this field "Angle" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(D -q java:S116j"WRename this field "MonitorAngle" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ԁ -o java:S116l"ZRename this field "MonitorDistance" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( - -java:S1186"Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.( -i -java:S1450i"TRemove the "Angle" field and declare it as a local variable in the relevant methods.(D -w -java:S1450]"\Remove the "ChangeAct_btn" field and declare it as a local variable in the relevant methods.( -i -java:S1450H"SRemove the "city" field and declare it as a local variable in the relevant methods.( -m -java:S1450W"WRemove the "cityCode" field and declare it as a local variable in the relevant methods.( -r -java:S1450k"WRemove the "distance" field and declare it as a local variable in the relevant methods.(׾ -G -java:S1874S"1Remove this use of "PoiSearch"; it is deprecated.( -L -java:S1874U"1Remove this use of "PoiSearch"; it is deprecated.( -[ -java:S1124d"EReorder the modifiers to comply with the Java Language Specification.(뿧 -` -java:S1124e"EReorder the modifiers to comply with the Java Language Specification.( -Q java:S125h"Use isEmpty() to check whether the collection is empty or not.( -G -java:S1172"+Remove this unused method parameter "view".(ɑ -Q java:S125" -java:S1068H"(Remove this unused "city" private field.( -? -java:S1068S")Remove this unused "query" private field.( -H -java:S1068U"-Remove this unused "poiSearch" private field.( -B -java:S1068W",Remove this unused "cityCode" private field.( -I -java:S1068c".Remove this unused "reveSocket" private field.( -K -java:S1068e"0Remove this unused "RECEIVE_PORT" private field.( -K -java:S1068f"0Remove this unused "listenStatus" private field.(㋸ -I -java:S1068g".Remove this unused "serverAddr" private field.( -E -java:S1068".Remove this unused "mReceiveIp" private field.( \ No newline at end of file diff --git a/src/sixaunyi/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e b/src/sixaunyi/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e deleted file mode 100644 index 48e3a42..0000000 --- a/src/sixaunyi/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e +++ /dev/null @@ -1,2 +0,0 @@ - -R xml:S55943"1Implement permissions on this exported component.(81 \ No newline at end of file diff --git a/src/sixaunyi/.idea/sonarlint/issuestore/f/7/f7730cde41931660f06cfc32899edf44acf4d104 b/src/sixaunyi/.idea/sonarlint/issuestore/f/7/f7730cde41931660f06cfc32899edf44acf4d104 deleted file mode 100644 index 77f57c1..0000000 --- a/src/sixaunyi/.idea/sonarlint/issuestore/f/7/f7730cde41931660f06cfc32899edf44acf4d104 +++ /dev/null @@ -1,10 +0,0 @@ - -k java:S117'"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ߏ -q -java:S1450"[Remove the "mLoginButton" field and declare it as a local variable in the relevant methods.(Ձ -t -java:S1171"YMove the contents of this initializer to a standard constructor or to field initializers.( -G -java:S1602 ",Remove useless curly braces around statement( -V -java:S11263"AReplace this if-then-else statement by a single return statement.(ցz \ No newline at end of file diff --git a/src/sixaunyi/.idea/sonarlint/issuestore/index.pb b/src/sixaunyi/.idea/sonarlint/issuestore/index.pb index a42e3f3..bd69223 100644 --- a/src/sixaunyi/.idea/sonarlint/issuestore/index.pb +++ b/src/sixaunyi/.idea/sonarlint/issuestore/index.pb @@ -22,14 +22,4 @@ j j :app/src/main/java/com/example/sixaunyi/DetectActivity.java,9\6\9668392b13e33166876f2a7d3f10eb5405e757ad k -;app/src/main/java/com/example/sixaunyi/ControlActivity.java,c\9\c99a584c2117ed2df42496451bb97ac1147f5ea0 -P - app/src/main/AndroidManifest.xml,8\c\8c55c3ccc257e5907959013f99656e4c8ec3903e -k -;app/src/main/java/com/example/sixaunyi/SettingActivity.java,2\a\2ab0711d9aa5839cecbb6cf0ed96f5a3f6470de5 -i -9app/src/main/java/com/example/sixaunyi/LoginActivity.java,f\7\f7730cde41931660f06cfc32899edf44acf4d104 -h -8app/src/main/java/com/example/sixaunyi/MainActivity.java,7\c\7c120b7216f76ce98d1573d90803ab36f481640c -i -9app/src/main/java/com/example/sixaunyi/VideoActivity.java,7\1\71fd1993763df2214bbdad8cfee650733993fe44 \ No newline at end of file +;app/src/main/java/com/example/sixaunyi/ControlActivity.java,c\9\c99a584c2117ed2df42496451bb97ac1147f5ea0 \ No newline at end of file diff --git a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/SettingActivity.java b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/SettingActivity.java index 1be7ece..8ec28ba 100644 --- a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/SettingActivity.java +++ b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/SettingActivity.java @@ -5,7 +5,7 @@ import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class SettingActivity extends AppCompatActivity { - + private boolean if_jiankong; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/VideoActivity.java b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/VideoActivity.java index 3edfe37..a10e82f 100644 --- a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/VideoActivity.java +++ b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/VideoActivity.java @@ -20,6 +20,7 @@ import android.graphics.RectF; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.provider.ContactsContract; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; @@ -48,7 +49,6 @@ public class VideoActivity extends AppCompatActivity { private final static String Recieve_IP = "192.168.39.47";//填服务器IP,与send_to_IP为同一个 private final static int SEND_PORT = 8888; //发送端口号 private final static int RECEIVE_PORT = 9999; //接收端口号 - int TimeInterval = 5; private static boolean listenStatus = true; //接收线程的循环标识 private byte[] buf; static Bitmap bp; @@ -71,8 +71,8 @@ public class VideoActivity extends AppCompatActivity { private ImageButton Setting_btn; private ImageButton TakeOff_btn; private ImageButton Landing_btn; - private String angle; - private float distance; + private String mangle; + private float mdistance; // 创建一个可缓存的线程池 private ExecutorService mThreadPool = Executors.newCachedThreadPool(); //ReceiveData()显示到imageView @@ -99,31 +99,40 @@ public class VideoActivity extends AppCompatActivity { @Override public void onClick(View v) { try { - sendOrder("TAKEOFF"); + sendCommand("TAKEOFF"); } catch (UnknownHostException e) { throw new RuntimeException(e); } - Log.i(TAG, "onClick: BBBBBBBBackward"); + Log.i(TAG, "onClick: TTTTTTTTTTTTTTakeoff"); } }); Landing_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - new UdpReceiveThread().start(); + ReceiveHandler receiveHandler = new ReceiveHandler(); + UdpReceiveThread StreamThread = new UdpReceiveThread(Recieve_IP,RECEIVE_PORT,receiveHandler); + + + try { + StreamThread.startListen(); + StreamThread.start(); + } catch (SocketException | UnknownHostException e) { + e.printStackTrace(); + } } }); Setting_btn = findViewById(R.id.setting_button); Button_Init(); Intent i = getIntent(); - distance = i.getFloatExtra("Distance",0); - angle = i.getStringExtra("Angle"); + mdistance = i.getFloatExtra("Distance",0); + mangle = i.getStringExtra("Angle"); } private void Button_Init(){ Forward_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { - sendOrder("FORWARD"); + sendCommand("FORWARD"); } catch (UnknownHostException e) { throw new RuntimeException(e); } @@ -134,7 +143,7 @@ public class VideoActivity extends AppCompatActivity { @Override public void onClick(View v) { try { - sendOrder("BACKWORD"); + sendCommand("BACKWORD"); } catch (UnknownHostException e) { throw new RuntimeException(e); } @@ -145,7 +154,7 @@ public class VideoActivity extends AppCompatActivity { @Override public void onClick(View v) { try { - sendOrder("LEFT"); + sendCommand("LEFT"); } catch (UnknownHostException e) { throw new RuntimeException(e); } @@ -156,7 +165,7 @@ public class VideoActivity extends AppCompatActivity { @Override public void onClick(View v) { try { - sendOrder("RIGHT"); + sendCommand("RIGHT"); } catch (UnknownHostException e) { throw new RuntimeException(e); } @@ -167,7 +176,7 @@ public class VideoActivity extends AppCompatActivity { @Override public void onClick(View v) { try { - sendOrder("DOWN"); + sendCommand("DOWN"); } catch (UnknownHostException e) { throw new RuntimeException(e); } @@ -178,7 +187,7 @@ public class VideoActivity extends AppCompatActivity { @Override public void onClick(View v) { try { - sendOrder("UP"); + sendCommand("UP"); } catch (UnknownHostException e) { throw new RuntimeException(e); } @@ -189,7 +198,7 @@ public class VideoActivity extends AppCompatActivity { @Override public void onClick(View v) { try { - sendOrder("TURN_LEFT"); + sendCommand("TURN_LEFT"); } catch (UnknownHostException e) { throw new RuntimeException(e); } @@ -200,7 +209,7 @@ public class VideoActivity extends AppCompatActivity { @Override public void onClick(View v) { try { - sendOrder("TURN_RIGHT"); + sendCommand("TURN_RIGHT"); } catch (UnknownHostException e) { throw new RuntimeException(e); } @@ -218,8 +227,14 @@ public class VideoActivity extends AppCompatActivity { class ReceiveHandler extends Handler{ @Override public void handleMessage(Message msg) { - super.handleMessage(msg); - imgShow.setImageBitmap(bp); + if (msg.what == 1) { + runOnUiThread(new Runnable() { + @Override + public void run() { + imgShow.setImageBitmap(bp); + } + }); + } } } @@ -233,38 +248,91 @@ public class VideoActivity extends AppCompatActivity { /* * UDP数据接受线程 * */ - public class UdpReceiveThread extends Thread - { + public class UdpReceiveThread extends Thread { + private DatagramSocket reveSocket; + private String Recieve_IP; + private int RECEIVE_PORT; + private Handler receiveHandler; + + public UdpReceiveThread(String ip, int port, Handler handler) { + this.Recieve_IP = ip; + this.RECEIVE_PORT = port; + this.receiveHandler = handler; + } + + public void startListen() throws SocketException, UnknownHostException { + reveSocket = new DatagramSocket(RECEIVE_PORT); + } + + public void stopListen() { + if (reveSocket != null && !reveSocket.isClosed()) { + listenStatus = false; + //reveSocket.close(); + } + } + @Override - public void run() - { - try - { - reveSocket = new DatagramSocket(RECEIVE_PORT); - serverAddr = InetAddress.getByName(Recieve_IP); - //ByteArrayOutputStream out = new ByteArrayOutputStream(); - while(listenStatus) - { - byte[] inBuf= new byte[1024*1024]; - DatagramPacket inPacket=new DatagramPacket(inBuf,inBuf.length); - //out.write(inPacket.getData()); + public void run() { + try { + InetAddress serverAddr = InetAddress.getByName(Recieve_IP); + + while (listenStatus) { + byte[] inBuf = new byte[1024 * 1024]; + DatagramPacket inPacket = new DatagramPacket(inBuf, inBuf.length); reveSocket.receive(inPacket); - if(!inPacket.getAddress().equals(serverAddr)){ + + if (!inPacket.getAddress().equals(serverAddr)) { throw new IOException("未知名的报文"); } + ByteArrayInputStream in = new ByteArrayInputStream(inPacket.getData()); receiveHandler.sendEmptyMessage(1); bp = BitmapFactory.decodeStream(in); } - } catch (Exception e) - { + } catch (IOException e) { e.printStackTrace(); - }finally { - reveSocket.close(); } } } + /* + * UDP数据发送线程,Runnable方法 + * */ + class SendRunnable implements Runnable { + byte[] mData; + InetAddress mAddress; + int mPort; + + public SendRunnable(byte[] data, InetAddress address, int port) { + mData = data; + mAddress = address; + mPort = port; + } + + @Override + public void run() { + try { + // 创建发送数据报文 + DatagramPacket packet = new DatagramPacket(mData, mData.length, mAddress, mPort); + // 创建 DatagramSocket 对象并发送数据报文 + DatagramSocket socket = new DatagramSocket(); + socket.send(packet); + + // 关闭 DatagramSocket 对象 + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /*封装函数*/ + private void sendCommand(String str) throws UnknownHostException { + byte[] sendData = str.getBytes(); + InetAddress address = InetAddress.getByName(SEND_to_IP); + SendRunnable sendRunnable1 = new SendRunnable(sendData, address, SEND_PORT); + mThreadPool.execute(sendRunnable1); + } /* * UDP数据发送线程 * */ @@ -294,13 +362,13 @@ public class VideoActivity extends AppCompatActivity { } //初始化UDP发送线程 - private static void sendOrder(String Sendstr) throws UnknownHostException { - InetAddress sendIP = InetAddress.getByName(SEND_to_IP); // 目标 IP 地址 - int sendPort = 8888; // 目标端口号 - byte[] sendData = Sendstr.getBytes(); // 要发送的数据 - UdpSendThread sendOrderThread = new UdpSendThread(sendIP, sendPort, sendData); // 创建新的线程对象 - sendOrderThread.start(); // 启动线程发送数据 - } +// private static void sendCommand(String Sendstr) throws UnknownHostException { +// InetAddress sendIP = InetAddress.getByName(SEND_to_IP); // 目标 IP 地址 +// int sendPort = 8888; // 目标端口号 +// byte[] sendData = Sendstr.getBytes(); // 要发送的数据 +// UdpSendThread sendCommandThread = new UdpSendThread(sendIP, sendPort, sendData); // 创建新的线程对象 +// sendCommandThread.start(); // 启动线程发送数据 +// } @@ -317,7 +385,7 @@ public class VideoActivity extends AppCompatActivity { // public void onUnlock() { // // 在用户滑动解锁后执行操作 //// try { -//// sendOrder("TAKEOFF"+"___"+angle+"___"+String.valueOf(distance)); +//// sendCommand("TAKEOFF"+"___"+angle+"___"+String.valueOf(distance)); //// } catch (UnknownHostException e) { //// throw new RuntimeException(e); //// }