Upload files to ''

This commit is contained in:
iron 2020-07-09 21:30:31 +01:00
parent 7ed2e56ae9
commit 2fa76596eb
1 changed files with 154 additions and 0 deletions

154
UDPthing.txt Normal file
View File

@ -0,0 +1,154 @@
package com.example.ironi.udp_switches;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Switch;
import android.widget.TextView;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class MainActivity extends Activity {
private TextView switchStatus;
private Switch mySwitch;
private Switch hallSwitch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("main", "logging works");
//new udpServer().execute();
//new udpClient().execute("192.168.0.201", "State");
switchStatus = (TextView) findViewById(R.id.switchStatus);
mySwitch = (Switch) findViewById(R.id.mySwitch);
hallSwitch = (Switch) findViewById(R.id.hallSwitch);
//run a status check when you know how?
//
//set the switch to ON
mySwitch.setChecked(true);
//attach a listener to check for changes in state
hallSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
new udpClient().execute("192.168.0.202", "On");
} else {
new udpClient().execute("192.168.0.202", "Off");
}
}
});
mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
new udpClient().execute("192.168.0.201", "On");
} else {
new udpClient().execute("192.168.0.201", "Off");
}
}
});
//check the current state before we display the screen
if (mySwitch.isChecked()) {
switchStatus.setText("Switch is currently ON");
} else {
switchStatus.setText("Switch is currently OFF");
}
}
public class udpServer extends AsyncTask<String, Integer, Void> {
@Override
protected Void doInBackground(String... params) {
//SOCKET OPEN
//PACKET READY TO MAKE
byte[] rData = new byte[8];
DatagramPacket rPacket = new DatagramPacket(rData, rData.length);
//READY TO RECIEVE
Log.d("udpServer", "Ready to recieve");
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
DatagramSocket rSocket = null;
try {
rSocket = new DatagramSocket(4012);
} catch (SocketException e) {
e.printStackTrace();
}
Log.d("udpServer", "while");
try {
rSocket.setSoTimeout(1000);
rSocket.setReuseAddress(true);
rSocket.receive(rPacket);
String rString;
rString = new String(rPacket.getData());
Log.d("udpServer", "Recieved: "+rString);
publishProgress();
rSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
protected void onProgressUpdate(Integer... values) {
Log.d("udpServer", "onProgressUpdate");
switchStatus.setText("-");
}
}
public class udpClient extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... params) {
String address = params[0];
String command = params[1];
InetAddress client = null;
try {
client = InetAddress.getByName(address);
} catch (UnknownHostException e) {
e.printStackTrace();
}
int port = 4210;
int len = command.length();
byte[] udp_command = command.getBytes();
DatagramSocket socket = null;
try {
socket = new DatagramSocket();
} catch (SocketException e) {
e.printStackTrace();
}
DatagramPacket packet = new DatagramPacket(udp_command, len, client, port);
try {
socket.send(packet);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
}