Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private String SERVER_ADDR = "192.168.1.106"; // USB connected!
- private int SERVER_PORT = 7777;
- // Variables that are used for UI
- private int systemProtocolVer = 0;
- private String systemTemperature = "--";
- private String systemLightLevel = "--";
- // Internal application state and helper variables
- private String messageFromNetworkThread = "";
- private boolean connectedToServer = false;
- //UI elements
- private Button connectButton;
- private ToggleButton Lamp1, Lamp2;
- // Handler that will receive messages from NetworkTask final Handler uiHandler = new Handler();
- //Network thread
- private NetworkTask nt;
- private String username = "";
- private String password = "";
- private void debug(String message) {
- Log.v("Akera", "main/ " + message);
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Lamp1 = (ToggleButton) findViewById(R.id.toggleButton);
- Lamp1.setText("Lamp A");
- Lamp2 = (ToggleButton) findViewById(R.id.toggleButton2);
- Lamp2.setText("Lamp B");
- connectButton = (Button) findViewById(R.id.button);
- debug("Application loaded");
- }
- public void uiEventHandler(View v) {
- if (v == connectButton && !connectedToServer) {
- AlertDialog a = loginDialog(this, "Please enter your username and password:");
- a.show();
- debug("Connecting to " + SERVER_ADDR + ":" + SERVER_PORT);
- }
- //Connect button pressed,and we're connected -> disconnect
- else if (v == connectButton && connectedToServer) {
- debug("Disconnect button pressed");
- nt.alive = false;
- nt = null;
- connectedToServer = false;
- Lamp1.setEnabled(false);
- Lamp2.setEnabled(false);
- connectButton.setText("Connect");
- } else if (v == Lamp1) {
- Lamp1.setText("Lamp A");
- nt.messageQueued = BeagleProtocol.MT_RELAY_1;
- Toast.makeText(this, "Switching Lamp A",
- Toast.LENGTH_SHORT).show();
- } else if (v == Lamp2) {
- Lamp2.setText("Lamp B");
- nt.messageQueued = BeagleProtocol.MT_RELAY_2;
- Toast.makeText(this, "Switching Lamp B",
- Toast.LENGTH_SHORT).show();
- }
- }
- //Handler
- @SuppressLint("HandlerLeak")
- final Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- Log.v("Akera", "handler/message received");
- Parcel p;
- switch (msg.what) {
- case BeagleProtocol.PROTOCOL_READ:
- p = (Parcel) msg.obj;
- systemProtocolVer = p.protocollevel;
- messageFromNetworkThread = "Server protocol version: " + Integer.toString(p.protocollevel);
- connectedToServer = true;
- break;
- /*case BeagleProtocol.REFRESH_DATA:
- Log.v("Akera", "handler/Temperature read");
- p = (Parcel) msg.obj;
- systemLightLevel = p.lightlevel;
- systemTemperature = p.temperature;
- messageFromNetworkThread = "Data refreshed";
- break;*/
- case BeagleProtocol.ACTION_TOGGLE_RELAY_1:
- debug("Toggle relay 1");
- break;
- case BeagleProtocol.ACTION_TOGGLE_RELAY_2:
- debug("Toggle relay 2");
- break;
- case BeagleProtocol.ACTION_INTERRUPT:
- Lamp1.setVisibility(View.GONE);
- debug("Interrupt occur");
- break;
- default:
- break;
- }
- //Schedule UI update
- uiHandler.post(uiHandlerRunnable);
- }
- };
- final Runnable uiHandlerRunnable = new Runnable() {
- public void run() {
- Log.v("Akera", "Updating the UI");
- if (messageFromNetworkThread != "") {
- debug(messageFromNetworkThread);
- messageFromNetworkThread = "";
- }
- if (connectedToServer) {
- connectButton.setText("Disconnect");
- Lamp1.setEnabled(true);
- Lamp2.setEnabled(true);
- }
- //temperatureState.setText(systemTemperature + "?C");
- //lightState.setText(systemLightLevel);
- }//run()
- };//Internal Runnable
- public AlertDialog loginDialog(Context c, String message) {
- //Inflate the login query window from resources
- LayoutInflater factory = LayoutInflater.from(c);
- final View textEntryView = factory.inflate(R.layout.password_query, null);
- //Set message and title, and button details
- AlertDialog.Builder alert = new AlertDialog.Builder(c);
- alert.setTitle("Login");
- alert.setMessage(message);
- alert.setView(textEntryView);
- alert.setPositiveButton("Login", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- final EditText usernameInput = textEntryView.findViewById(R.id.login_username_edittext);
- final EditText passwordInput = textEntryView.findViewById(R.id.login_password_edittext);
- //Get the text user entered
- username = usernameInput.getText().toString();
- password = passwordInput.getText().toString();
- new Thread(new Runnable() {
- public void run() {
- nt = new NetworkTask(SERVER_ADDR, SERVER_PORT, handler, username + ":" + password);
- uiHandlerRunnable.run();
- }
- }).start();
- }
- });
- }
- private class BeagleProtocol {
- public static final int ACTION_TOGGLE_RELAY_1 = ;
- }
Add Comment
Please, Sign In to add comment