From eaf73d067e9ccef01d432ee4660ee209e036a1d4 Mon Sep 17 00:00:00 2001 From: misty Date: Wed, 20 Jun 2018 00:16:57 +0200 Subject: [PATCH] added h1 --- .../com/example/user/myapp/GlobalState.java | 22 +++- .../user/myapp/ManualDriveActivity.java | 114 ++++++++++++++++-- .../example/user/myapp/MyIntentService.java | 28 +++-- documentation/doku.ods | Bin 24441 -> 21515 bytes 4 files changed, 143 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/example/user/myapp/GlobalState.java b/app/src/main/java/com/example/user/myapp/GlobalState.java index 0232b82..1b1de97 100644 --- a/app/src/main/java/com/example/user/myapp/GlobalState.java +++ b/app/src/main/java/com/example/user/myapp/GlobalState.java @@ -7,17 +7,18 @@ import com.ghgande.j2mod.modbus.net.TCPMasterConnection; import java.net.InetAddress; import java.net.UnknownHostException; +import java.util.HashMap; public class GlobalState extends Application { - // coil private String ipAddress = "192.168.157.16"; private int port = 503; + private HashMap mapMappingValue = new HashMap(); // public enum InputConfig { Q_COIL(8192, 8), VM_COIL2 (1, 8), - VM_COIL3 (65, 8), + VM_COIL3 (64, 8), AI_IR(0, 2), I_DI(0, 12); @@ -40,6 +41,11 @@ public class GlobalState extends Application { } } + public HashMap getMapMappingValue() { + initMappingValue(); + return mapMappingValue; + } + // getter/setter public String getIpAddress() { return ipAddress; @@ -56,4 +62,16 @@ public class GlobalState extends Application { public void setPort(int port) { this.port = port; } + + private void initMappingValue () { + mapMappingValue.clear(); + mapMappingValue.put(InputConfig.VM_COIL3.getStartReference(), InputConfig.Q_COIL.getStartReference()); // 64/8192 + mapMappingValue.put(InputConfig.VM_COIL3.getStartReference() + 6, InputConfig.Q_COIL.getStartReference() + 1); // 70/8193 + mapMappingValue.put(InputConfig.VM_COIL3.getStartReference() + 1, InputConfig.Q_COIL.getStartReference() + 4); // 65/8196 + mapMappingValue.put(InputConfig.VM_COIL3.getStartReference() + 7, InputConfig.Q_COIL.getStartReference() + 5); // 71/8197 + mapMappingValue.put(InputConfig.VM_COIL3.getStartReference() + 4, InputConfig.Q_COIL.getStartReference() + 6); // 68/8198 + mapMappingValue.put(InputConfig.VM_COIL3.getStartReference() + 5, InputConfig.Q_COIL.getStartReference() + 7); // 69/8199 + mapMappingValue.put(InputConfig.VM_COIL3.getStartReference() + 2, InputConfig.Q_COIL.getStartReference() + 2); // 66/8194 + mapMappingValue.put(InputConfig.VM_COIL3.getStartReference() + 3, InputConfig.Q_COIL.getStartReference() + 3); // 67/8195 + } } diff --git a/app/src/main/java/com/example/user/myapp/ManualDriveActivity.java b/app/src/main/java/com/example/user/myapp/ManualDriveActivity.java index d4aeb13..24c9d43 100644 --- a/app/src/main/java/com/example/user/myapp/ManualDriveActivity.java +++ b/app/src/main/java/com/example/user/myapp/ManualDriveActivity.java @@ -5,36 +5,62 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Handler; +import android.support.annotation.Nullable; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.view.MotionEvent; import android.view.View; +import android.widget.Button; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.ToggleButton; +import java.util.HashMap; +import java.util.Map; + public class ManualDriveActivity extends AppCompatActivity { private GlobalState state; private Handler coilHandler; + private HashMap mapCoilCheckStatus = new HashMap <> (); + private boolean manualMode = false; + + private void initMap () { + mapCoilCheckStatus.put(65, false); + mapCoilCheckStatus.put(71, false); + mapCoilCheckStatus.put(66, false); + mapCoilCheckStatus.put(72, false); + mapCoilCheckStatus.put(69, false); + mapCoilCheckStatus.put(70, false); + mapCoilCheckStatus.put(67, false); + mapCoilCheckStatus.put(68, false); + } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - LocalBroadcastManager.getInstance(this).registerReceiver(coilWriterMessageReceiver, new IntentFilter("readVmCoil2")); - LocalBroadcastManager.getInstance(this).registerReceiver(coilWriterMessageReceiver, new IntentFilter("checkCoilValue")); - state = (GlobalState) getApplicationContext(); - - coilHandler = new Handler(); - // coilHandler.post(refreshCoil); - + initMap(); // initialise the value of the coil toggle state setContentView(R.layout.activity_manual_drive); - ToggleButton button = (ToggleButton) findViewById(R.id.manual_override_button); - button.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + ToggleButton h1ControlButton = (ToggleButton) findViewById(R.id.h1_control_button); + ToggleButton h2ControlButton = (ToggleButton) findViewById(R.id.h2_control_button); + Button pu1ControlButton = (Button) findViewById(R.id.pu1_control_button); + Button pu2ControlButton = (Button) findViewById(R.id.pu2_control_button); + Button sp1ControlButton = (Button) findViewById(R.id.sp1_control_button); + Button b1ControlButton = (Button) findViewById(R.id.b1_control_button); + ToggleButton m1ControlButton = (ToggleButton) findViewById(R.id.m1_control_button); + ToggleButton m2ControlButton = (ToggleButton) findViewById(R.id.m2_control_button); + + LocalBroadcastManager.getInstance(this).registerReceiver(coilWriterMessageReceiver, new IntentFilter("readVmCoil2")); + // LocalBroadcastManager.getInstance(this).registerReceiver(coilWriterMessageReceiver, new IntentFilter("checkCoilValue")); + + // manual drive button + ToggleButton manualDriveOverrideButton = (ToggleButton) findViewById(R.id.manual_override_button); + manualDriveOverrideButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { @@ -46,6 +72,7 @@ public class ManualDriveActivity extends AppCompatActivity { serviceIntent.putExtra("extra.ref", GlobalState.InputConfig.VM_COIL2.getStartReference()); serviceIntent.putExtra("extra.bit", true); serviceIntent.putExtra("extra.intent.name", "readVmCoil2"); + serviceIntent.putExtra("extra.is.basic.coil", false); getApplicationContext().startService(serviceIntent); } else { // writing the value false @@ -56,10 +83,51 @@ public class ManualDriveActivity extends AppCompatActivity { serviceIntent.putExtra("extra.ref", GlobalState.InputConfig.VM_COIL2.getStartReference()); serviceIntent.putExtra("extra.bit", false); serviceIntent.putExtra("extra.intent.name", "readVmCoil2"); + serviceIntent.putExtra("extra.is.basic.coil", false); getApplicationContext().startService(serviceIntent); } } }); + + //TODO refactoring starting from here !! + // button h1 + h1ControlButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + // writing the value true + Intent serviceIntent = new Intent(getApplicationContext(), MyIntentService.class); + serviceIntent.setAction("write.coil"); + serviceIntent.putExtra("extra.ip.address", state.getIpAddress()); + serviceIntent.putExtra("extra.ip.port", state.getPort()); + serviceIntent.putExtra("extra.ref", 64); + serviceIntent.putExtra("extra.bit", true); + serviceIntent.putExtra("extra.intent.name", "writeBit65"); + serviceIntent.putExtra("extra.is.basic.coil", true); + getApplicationContext().startService(serviceIntent); + mapCoilCheckStatus.put(64, true); + } else { + // writing the value false + Intent serviceIntent = new Intent(getApplicationContext(), MyIntentService.class); + serviceIntent.setAction("write.coil"); + serviceIntent.putExtra("extra.ip.address", state.getIpAddress()); + serviceIntent.putExtra("extra.ip.port", state.getPort()); + serviceIntent.putExtra("extra.ref", 64); + serviceIntent.putExtra("extra.bit", false); + serviceIntent.putExtra("extra.intent.name", "writeBit65"); + serviceIntent.putExtra("extra.is.basic.coil", true); + getApplicationContext().startService(serviceIntent); + mapCoilCheckStatus.put(64, false); + } + } + }); + } + + @Override + protected void onStart () { + super.onStart(); + coilHandler = new Handler(); + coilHandler.post(refreshCoil); } private BroadcastReceiver coilWriterMessageReceiver = new BroadcastReceiver() { @@ -71,13 +139,41 @@ public class ManualDriveActivity extends AppCompatActivity { ImageView lightOn = (ImageView) findViewById(R.id.manual_override_status_light_on); ImageView lightOff = (ImageView) findViewById(R.id.manual_override_status_light_on); + System.out.print("value "+supposedToBeValue); if (supposedToBeValue) { + manualMode = true; lightOn.setVisibility(View.VISIBLE); lightOff.setVisibility(View.INVISIBLE); } else { + manualMode = false; lightOn.setVisibility(View.INVISIBLE); lightOff.setVisibility(View.VISIBLE); } } }; + + Runnable refreshCoil = new Runnable() { + @Override + public void run() { + System.out.println("pass "+manualMode); + if (manualMode) { + for (Map.Entry entry : mapCoilCheckStatus.entrySet()) { + System.out.println("entry : " + entry.getKey() + " value :" + entry.getValue()); + if (entry.getValue() == true) { // if the thing is toggle + Intent serviceIntent = new Intent(getApplicationContext(), MyIntentService.class); + serviceIntent.setAction("read.coil"); + serviceIntent.putExtra("extra.ip.address", state.getIpAddress()); + serviceIntent.putExtra("extra.ip.port", state.getPort()); + serviceIntent.putExtra("extra.ref", state.getMapMappingValue().get(entry.getKey())); + serviceIntent.putExtra("extra.count", 1); + serviceIntent.putExtra("extra.intent.name", "readOnlyCoil"); + getApplicationContext().startService(serviceIntent); + + } + } + } + coilHandler.postDelayed(this, 2000); + } + }; + } diff --git a/app/src/main/java/com/example/user/myapp/MyIntentService.java b/app/src/main/java/com/example/user/myapp/MyIntentService.java index 60ece08..235cfce 100644 --- a/app/src/main/java/com/example/user/myapp/MyIntentService.java +++ b/app/src/main/java/com/example/user/myapp/MyIntentService.java @@ -127,28 +127,36 @@ public class MyIntentService extends IntentService { } } - public void writeCoilAction (String ipAddress, int port, int ref, boolean value, String intentReceiveName) { + public void writeCoilAction (String ipAddress, int port, int ref, boolean value, String intentReceiveName, boolean withCheck) { try { master = new ModbusTCPMaster(ipAddress, port); master.connect(); - // writing the value - boolean expectedValue = master.writeCoil(ref, value); - System.out.println("I wrote "+expectedValue+" to coil "+ref); - Thread.sleep(CAP_WAIT_TIME); + boolean writtenValue = master.writeCoil(ref, value); + if (withCheck) { + System.out.println("I wrote " + writtenValue + " to coil " + ref); + Thread.sleep(CAP_WAIT_TIME); - boolean currentValue = master.readCoils(8192, 1).getBit(0); - sendNewBitValueToActivity (currentValue, intentReceiveName); + GlobalState state = (GlobalState) getApplicationContext(); + int coilToRead = state.getMapMappingValue().get(ref); + System.out.println("Checking the value of coil "+coilToRead); + boolean currentValue = master.readCoils(coilToRead, 1).getBit(0); + sendNewBitValueToActivity(currentValue, intentReceiveName); + } else { + System.out.println("I switched the manual mode to " + writtenValue); + sendNewBitValueToActivity(writtenValue, intentReceiveName); + } Thread.sleep(CAP_WAIT_TIME); master.disconnect(); } catch (Exception e) { - System.out.println("Exception in reading coil " + e); + System.out.println("Exception in writing coil " + e); } } private void sendNewBitValueToActivity (boolean newValue, String intentReceive) { Intent intent = new Intent(intentReceive); + System.out.println("here "+newValue); intent.putExtra("coil", newValue); sendLocationBroadcast(intent); } @@ -166,7 +174,7 @@ public class MyIntentService extends IntentService { // for write final Boolean value = intent.getBooleanExtra(EXTRA_BIT_TO_SET, false); - final Boolean expectedValue = intent.getBooleanExtra("extra.coil.status", false); + final Boolean withCheck = intent.getBooleanExtra("extra.is.basic.coil", false); switch(action) { case ACTION_READ_DISCRETE_INPUT: @@ -179,7 +187,7 @@ public class MyIntentService extends IntentService { readInputRegisterAction (ipAddress, port,ref, count, intentName); break; case ACTION_WRITE_COIL: - writeCoilAction(ipAddress, port, ref, value, intentName); + writeCoilAction(ipAddress, port, ref, value, intentName, withCheck); break; } } diff --git a/documentation/doku.ods b/documentation/doku.ods index e0e73cac07c22e478a071bab9b0da402df54e9ef..b8cc98e86dc42c87fbe9257dfb987d29bb907b0f 100644 GIT binary patch delta 19932 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 delta 22798 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