L
LusoDelect
Neues Mitglied
- 0
Hallo Leute,
habe mich ewig nicht mehr mit Programmierung beschäftigt und mit Android Apps bin ich schon damals gescheitert.
Trotzdem habe ich es hinbekommen mit dem Mikrocontroller ESP32 jede Sekunde über UDP einen String zu verschicken. Mit einem Programm auf meinem PC konnte ich diesen auch empfangen, mit meiner App schaffe ich es aber leider nicht. Vielleicht ist auch der ganze Code/die Verbindung grundlegend falsch, kompilieren und starten lässt sich die App jedenfalls. Könntet ihr einen Blick drauf werden und mit sagen was falsch sein könnte? In der App wird nur der im Loyout festgelegte String angezeigt aber nicht der über den Code aktualisierter.
habe mich ewig nicht mehr mit Programmierung beschäftigt und mit Android Apps bin ich schon damals gescheitert.
Trotzdem habe ich es hinbekommen mit dem Mikrocontroller ESP32 jede Sekunde über UDP einen String zu verschicken. Mit einem Programm auf meinem PC konnte ich diesen auch empfangen, mit meiner App schaffe ich es aber leider nicht. Vielleicht ist auch der ganze Code/die Verbindung grundlegend falsch, kompilieren und starten lässt sich die App jedenfalls. Könntet ihr einen Blick drauf werden und mit sagen was falsch sein könnte? In der App wird nur der im Loyout festgelegte String angezeigt aber nicht der über den Code aktualisierter.
Code:
package com.lusodelect.mtc;
import android.app.*;
import android.os.*;
import android.widget.*;
import java.io.IOException;
import java.net.*;
public class MainActivity extends Activity
{
//String server_Adress;
//float get_Temperatur = 27;
TextView max_Temperatur;
TextView min_Temperatur;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.layout2);
// set a change listener on the SeekBar_max
SeekBar seekBar_Max = findViewById(R.id.seekBar_max);
seekBar_Max.setOnSeekBarChangeListener(seekBarChangeListener_Max);
// set a change listener on the SeekBar_min
SeekBar seekBar_Min = findViewById(R.id.seekBar_min);
seekBar_Min.setOnSeekBarChangeListener(seekBarChangeListener_Min);
max_Temperatur = findViewById(R.id.textView_max);
int progress_max = seekBar_Max.getProgress();
max_Temperatur.setText(String.valueOf(progress_max) + "°C");
int progress_min = seekBar_Min.getProgress();
min_Temperatur = findViewById(R.id.textView_min);
min_Temperatur.setText(String.valueOf(progress_min) + "°C");
Thread UpdateTemp = new Thread() {
@Override
public void run()
{
try
{
while (!isInterrupted())
{
Thread.sleep(1000);
runOnUiThread(new Runnable()
{
@Override
public void run()
{
TextView current_Temperatur = findViewById(R.id.textView_current);
String cTemp;
try
{
cTemp = client();
current_Temperatur.setText(cTemp + "°C");
}
catch(IOException e)
{
e.printStackTrace();
}
}
});
}
}
catch (InterruptedException e)
{
}
}
};
UpdateTemp.start();
}
SeekBar.OnSeekBarChangeListener seekBarChangeListener_Max = new SeekBar.OnSeekBarChangeListener()
{
@Override
public void onProgressChanged(SeekBar seekBar_Max, int progress_max, boolean fromUser)
{
// updated continuously as the user slides the thumb
max_Temperatur.setText(String.valueOf(progress_max) + "°C");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar_Max)
{
}
@Override
public void onStopTrackingTouch(SeekBar seekBar_Max)
{
// called after the user finishes moving the SeekBar
SeekBar seekBar_Min = findViewById(R.id.seekBar_min);
if(seekBar_Max.getProgress() < seekBar_Min.getProgress())
{
seekBar_Min.setProgress(seekBar_Max.getProgress()-5);
}
}
};
SeekBar.OnSeekBarChangeListener seekBarChangeListener_Min = new SeekBar.OnSeekBarChangeListener()
{
@Override
public void onProgressChanged(SeekBar seekBar_min, int progress_min, boolean fromUser)
{
// updated continuously as the user slides the thumb
min_Temperatur.setText(String.valueOf(progress_min) + "°C");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar_Min)
{
}
@Override
public void onStopTrackingTouch(SeekBar seekBar_Min)
{
// called after the user finishes moving the SeekBar
SeekBar seekBar_Max = findViewById(R.id.seekBar_max);
if(seekBar_Min.getProgress()> seekBar_Max.getProgress())
{
seekBar_Max.setProgress(seekBar_Min.getProgress()+5);
}
}
};
public String client() throws IOException
{
InetAddress IPAddress = InetAddress.getByName("192.168.0.158");
int Port = 60732;
DatagramSocket client_socket = new DatagramSocket(Port, IPAddress);
byte[] buf = new byte[1024];
DatagramPacket client_packet = new DatagramPacket(buf, 1024);
client_socket.receive(client_packet);
String str = new String(client_packet.getData(), 0, client_packet.getLength());
client_socket.close();
return str;
}
}