Some Bugs fixed
This commit is contained in:
parent
080ac78b22
commit
183f1e0b13
@ -1,9 +1,6 @@
|
|||||||
package com.example.daniel.moodlightdimmer;
|
package com.example.daniel.moodlightdimmer;
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.net.wifi.WifiInfo;
|
|
||||||
import android.net.wifi.WifiManager;
|
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@ -37,11 +34,12 @@ public class DimmMainActivity extends AppCompatActivity {
|
|||||||
private Button buttonSet, buttonReconnect;
|
private Button buttonSet, buttonReconnect;
|
||||||
private Integer color;
|
private Integer color;
|
||||||
private MqttAndroidClient client;
|
private MqttAndroidClient client;
|
||||||
private String device = "sender";
|
private String device = "receiver";
|
||||||
private String publisher_topic;
|
private String publisher_topic;
|
||||||
private String broker = "tcp://raspi2:1883";
|
private String broker = "tcp://raspi2:1883";
|
||||||
private Spinner spinnerlights;
|
private Spinner spinnerlights;
|
||||||
private CheckBox checkBoxInstantSet;
|
private CheckBox checkBoxInstantSet;
|
||||||
|
private String[] adapter;
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -55,12 +53,12 @@ public class DimmMainActivity extends AppCompatActivity {
|
|||||||
checkBoxInstantSet = (CheckBox) findViewById(R.id.checkBoxInstantSet);
|
checkBoxInstantSet = (CheckBox) findViewById(R.id.checkBoxInstantSet);
|
||||||
|
|
||||||
color = 0xFF000000;
|
color = 0xFF000000;
|
||||||
|
|
||||||
|
adapter = new String[] {"All", "Kitchen", "Automat", "South East","South West","North East","North West"};
|
||||||
spinnerlights = (Spinner) findViewById(R.id.spinnerLights);
|
spinnerlights = (Spinner) findViewById(R.id.spinnerLights);
|
||||||
spinnerlights.setAdapter(new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, new String[] {"All", "Kitchen", "Automat", "South East","South West","North East","North West"} ));
|
spinnerlights.setAdapter(new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, adapter));
|
||||||
|
|
||||||
String macaddress = getWifiMacAddress();
|
publisher_topic = "kitchen/switch/android/" + device == "sender"?getWifiMacAddress():"#";
|
||||||
|
|
||||||
publisher_topic = "kitchen/switch/android/" + macaddress;
|
|
||||||
|
|
||||||
red.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
red.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -220,13 +218,7 @@ public class DimmMainActivity extends AppCompatActivity {
|
|||||||
public void messageArrived(String topic, MqttMessage message) throws Exception {
|
public void messageArrived(String topic, MqttMessage message) throws Exception {
|
||||||
try {
|
try {
|
||||||
if(device == "receiver") {
|
if(device == "receiver") {
|
||||||
String msg = new String(message.getPayload());
|
EvaluatePayload(new String(message.getPayload()));
|
||||||
msg = msg.substring(2);
|
|
||||||
color = 0xFF000000 | Integer.parseInt(msg, 16);
|
|
||||||
red.setProgress(((color & 0xFF0000) >> 16) * 100 / 255);
|
|
||||||
green.setProgress(((color & 0xFF00) >> 8) * 100 / 255);
|
|
||||||
blue.setProgress(((color & 0xFF)) * 100 / 255);
|
|
||||||
SetButtonColor(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@ -246,7 +238,6 @@ public class DimmMainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
private void SendCommand(String payload, String topic)
|
private void SendCommand(String payload, String topic)
|
||||||
{
|
{
|
||||||
//TODO Send which lights should be set
|
|
||||||
try {
|
try {
|
||||||
byte[] encodedPayload = payload.getBytes();
|
byte[] encodedPayload = payload.getBytes();
|
||||||
MqttMessage msg = new MqttMessage(encodedPayload);
|
MqttMessage msg = new MqttMessage(encodedPayload);
|
||||||
@ -258,7 +249,7 @@ public class DimmMainActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getWifiMacAddress() {
|
private String getWifiMacAddress() {
|
||||||
try {
|
try {
|
||||||
String interfaceName = "wlan0";
|
String interfaceName = "wlan0";
|
||||||
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
|
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
|
||||||
@ -285,4 +276,21 @@ public class DimmMainActivity extends AppCompatActivity {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void EvaluatePayload(String msg)
|
||||||
|
{
|
||||||
|
String temp[] = msg.split(";");
|
||||||
|
color = 0xFF000000 | Integer.parseInt(temp[1], 16);
|
||||||
|
red.setProgress(((color & 0xFF0000) >> 16) * 100 / 255);
|
||||||
|
green.setProgress(((color & 0xFF00) >> 8) * 100 / 255);
|
||||||
|
blue.setProgress(((color & 0xFF)) * 100 / 255);
|
||||||
|
|
||||||
|
for(int i=0; i<adapter.length; i++) {
|
||||||
|
if(adapter[i].equals(temp[0])) {
|
||||||
|
spinnerlights.setSelection(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
SetButtonColor(false);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user