SHARE
TWEET

Untitled

a guest Mar 20th, 2019 93 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. DiagnosticActivity.java
  2. Earlier this week
  3. Sun 4:11 PM
  4. A
  5. You shared an item
  6. Java
  7. DiagnosticActivity.java
  8. H
  9. Can edit
  10. Hugh Adrien
  11. Last week
  12. Mar 13
  13. A
  14. You edited an item
  15. Java
  16. DiagnosticActivity.java
  17. Earlier this month
  18. Mar 5
  19. A
  20. You edited an item
  21. Java
  22. DiagnosticActivity.java
  23. Last month
  24. Feb 18
  25. A
  26. You edited an item
  27. Java
  28. DiagnosticActivity.java
  29. Earlier this year
  30. Jan 29
  31. A
  32. You edited an item
  33. Java
  34. DiagnosticActivity.java
  35. Jan 29
  36. A
  37. You uploaded an item
  38. Java
  39. DiagnosticActivity.java
  40. package com.example.andrew.cartrackerapp;
  41.  
  42. import android.content.Intent;
  43. import android.nfc.Tag;
  44. import android.provider.ContactsContract;
  45. import android.support.v7.app.AppCompatActivity;
  46. import android.os.Bundle;
  47. import android.util.Log;
  48. import android.view.View;
  49. import android.widget.Button;
  50. import android.widget.ImageView;
  51. import android.widget.SeekBar;
  52. import android.widget.TextView;
  53. import android.widget.Toast;
  54.  
  55. import com.jjoe64.graphview.GraphView;
  56. import com.jjoe64.graphview.series.BarGraphSeries;
  57. import com.jjoe64.graphview.series.DataPoint;
  58. import com.jjoe64.graphview.series.LineGraphSeries;
  59.  
  60. import org.eclipse.paho.android.service.MqttAndroidClient;
  61. import org.eclipse.paho.client.mqttv3.IMqttActionListener;
  62. import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
  63. import org.eclipse.paho.client.mqttv3.IMqttToken;
  64. import org.eclipse.paho.client.mqttv3.MqttCallback;
  65. import org.eclipse.paho.client.mqttv3.MqttClient;
  66. import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
  67. import org.eclipse.paho.client.mqttv3.MqttException;
  68. import org.eclipse.paho.client.mqttv3.MqttMessage;
  69.  
  70. import java.io.UnsupportedEncodingException;
  71.  
  72. public class DiagnosticActivity extends AppCompatActivity {
  73.  
  74.     //******************Variable Declarations*************************
  75.     private static final String TAG = "DiagnosticActivity";
  76.     private static final String USER_VEHICLE_INPUT = "userVehicleInput";
  77.  
  78.     //IP Address of mosquito sever
  79.     private final static String mosquittoIP = "tcp://10.0.0.10:1883";
  80.     private final static String mosquittoUser = "adminUser";
  81.     private final static String mosquittoPassword = "aev2020";
  82.  
  83.     // String declarations for MQTT
  84.     public String connectionHeader = "AEV/CARS/";
  85.     public String carID = "";
  86.     public String carHeader = "";
  87.     public String topicLWTFooter = "LWT";
  88.     public String topicLWT = "";
  89.     public String LWTPayload = "unexpectedDisconnect";
  90.     public String diagnosticsRequestTopic = "DIAGNOSTICSREQUEST";
  91.     public String diagnosticsGraphRequestTopic = "DIAGNOSTICSGRAPHREQUEST";
  92.     public String seekBarSpeedPubTopic = "";
  93.     public String seekBarTurnAnglePubTopic = "";
  94.     public int qos = 1;
  95.  
  96.     int LWTSubscribe = 0;
  97.  
  98.     // MQTT defines
  99.     public MqttAndroidClient client;
  100.     public MqttConnectOptions options;
  101.  
  102.     // Button Defines
  103.     Button batteryButton;
  104.     Button cockpitButton;
  105.     Button IMUGPSButton;
  106.     Button diagnosticsButton;
  107.     Button controlButton;
  108.     public String menuState = "";
  109.     public String lastButtonPressed = "";
  110.  
  111.     // SeekBar defines
  112.     SeekBar seekBarSpeed;
  113.     SeekBar seekBarTurnAngle;
  114.  
  115.     public int controlTurnAngleOffset = 45;
  116.     public int controlSpeedOffset = 40;
  117.  
  118.     // Misc String Defines
  119.     public String controlSpeedTextHeader = "";
  120.     public String controlTurnAngleTextHeader = "";
  121.     public String diagnosticsInfoTextBlank = "";
  122.     public String diagTitleString = "";
  123.  
  124.     // TextView Defines
  125.     TextView diagInfoText;
  126.     TextView diagTitle;
  127.     TextView controlSpeedText;
  128.     TextView controlTurnAngleText;
  129.  
  130.     // GraphView Defines and Data
  131.     GraphView lineGraphView;
  132.     LineGraphSeries<DataPoint> lineGraphSeries;
  133.     String numRequestPoints = "100";
  134.     double x, y;
  135.     int numDataPoints = 500;
  136.  
  137.     GraphView barGraphView;
  138.     BarGraphSeries<DataPoint> barGraphSeries;
  139.  
  140.     public float greyOutAlpha = (float)0.3;
  141.     //***************Variable Declarations END*************************
  142.  
  143.  
  144.     //~~~~~~~~onCreate function, runs when activity is opened~~~~~~~~~
  145.     @Override
  146.     protected void onCreate(Bundle savedInstanceState)
  147.     {
  148.         super.onCreate(savedInstanceState);
  149.         setContentView(R.layout.activity_diagnostic);
  150.         Log.d(TAG, "onCreate: Started");
  151.  
  152.         //*********************AEV LOGO Define*************************
  153.         ImageView aevLogo = findViewById(R.id.imageViewAEVLogo);
  154.         int aevLogoResource = getResources().getIdentifier("@drawable/aev_logo_resource", null, this.getPackageName());
  155.         aevLogo.setImageResource(aevLogoResource);
  156.         //********************AEV LOGO Define END**********************
  157.  
  158.         //******************Button Defines******************************
  159.         batteryButton = findViewById(R.id.buttonBattery);
  160.         cockpitButton = findViewById(R.id.buttonCockpit);
  161.         IMUGPSButton = findViewById(R.id.buttonIMUGPS);
  162.         diagnosticsButton = findViewById(R.id.buttonToDiagnostics);
  163.         controlButton = findViewById(R.id.buttonToControl);
  164.         lastButtonPressed = getString(R.string.diagBatteryButText);
  165.         //**************************************************************
  166.  
  167.         //******************TextView************************************
  168.         diagInfoText = findViewById(R.id.textViewDiagInfo);
  169.         diagTitle = findViewById(R.id.textViewDiagTitle);
  170.         controlSpeedText = findViewById(R.id.textViewSpeed);
  171.         controlTurnAngleText = findViewById(R.id.textViewTurnAngle);
  172.         //**************************************************************
  173.  
  174.         //******************SeekBar*************************************
  175.         seekBarSpeed = findViewById(R.id.seekBarVehicleSpeed);
  176.         seekBarTurnAngle = findViewById(R.id.seekBarTurnAngle);
  177.         //**************************************************************
  178.  
  179.         //*****************StringDefines********************************
  180.         controlSpeedTextHeader = getString(R.string.speedText);
  181.         controlTurnAngleTextHeader = getString(R.string.turnAngleText);
  182.         diagnosticsInfoTextBlank = getString(R.string.diagInfoText);
  183.         //**************************************************************
  184.  
  185.         //*****************Graph Define*********************************
  186.         //  Line
  187.         lineGraphView = findViewById(R.id.lineGraphView);
  188.         x = 0;
  189.         lineGraphSeries = new LineGraphSeries<DataPoint>();
  190.         for (int i = 0; i<numDataPoints; i++)
  191.         {
  192.             x += 0.1;
  193.             y = 5 + Math.sin(x);
  194.             lineGraphSeries.appendData(new DataPoint(x, y), true, numDataPoints);
  195.         }
  196.         lineGraphView.addSeries(lineGraphSeries);
  197.  
  198.         lineGraphView.setOnClickListener(new View.OnClickListener() {
  199.             @Override
  200.             public void onClick(View v) {
  201.                 switchToBarGraph();
  202.             }
  203.         });
  204.  
  205.         // Bar
  206.         barGraphView = findViewById(R.id.barGraphView);
  207.         barGraphSeries = new BarGraphSeries<DataPoint>(new DataPoint[] {
  208.                 new DataPoint(0, -1),
  209.                 new DataPoint(1, 5),
  210.                 new DataPoint(2, 3),
  211.                 new DataPoint(3, 2),
  212.                 new DataPoint(4, 6)
  213.         });
  214.         barGraphView.addSeries(barGraphSeries);
  215.  
  216.         barGraphView.setOnClickListener(new View.OnClickListener() {
  217.             @Override
  218.             public void onClick(View v) {
  219.                 switchToLineGraph();
  220.             }
  221.         });
  222.         //**************************************************************
  223.  
  224.         //****Write text to include numberplate of selected vehicle****
  225.         diagTitleString= getString(R.string.vehicleTitle);
  226.         carID = getIntent().getStringExtra(USER_VEHICLE_INPUT);
  227.         diagTitleString = diagTitleString + " " + carID;
  228.         diagTitle.setText(diagTitleString);
  229.         //*************************************************************
  230.  
  231.         //*******************Grey out buttons**************************
  232.         menuButtonGreyAllOut();
  233.  
  234.         redrawMenuDiag();
  235.  
  236.         diagButtonGreyAllOut();
  237.  
  238.         diagInfoText.setText(getString(R.string.diagInfoNoConnect));
  239.         //************************************************************
  240.  
  241.         //********************MQTT Initialisation**********************
  242.         String clientId = MqttClient.generateClientId();
  243.         carHeader = connectionHeader + carID + "/";
  244.  
  245.         seekBarSpeedPubTopic = carHeader + "CONTROL/SPEED";
  246.         seekBarTurnAnglePubTopic = carHeader + "CONTROL/TURNANGLE";
  247.  
  248.         // Set options and LWT
  249.         options = new MqttConnectOptions();
  250.         byte[] payload = LWTPayload.getBytes();
  251.         topicLWT = carHeader + topicLWTFooter;
  252.         options.setWill(topicLWT, payload, 1, false);
  253.         options.setAutomaticReconnect(true);
  254.         options.setUserName(mosquittoUser);
  255.         options.setPassword(mosquittoPassword.toCharArray());
  256.  
  257.         //~~~~~~~~~~~~~~~~Create client~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  258.         client = new MqttAndroidClient(this.getApplicationContext(), mosquittoIP, clientId);
  259.  
  260.         //~~~~~~~~~~~~~~~~~~~~~~SET MQTT CALLBACKS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  261.         client.setCallback(new MqttCallback()
  262.         {
  263.             @Override
  264.             public void connectionLost(Throwable cause)
  265.             {
  266.                 Log.d(TAG, "connectionLost: Started");
  267.                 Toast.makeText(DiagnosticActivity.this, "Disconnected from MQTT server", Toast.LENGTH_SHORT).show();
  268.                 Intent toDiagnosticMenuIntent = new Intent(DiagnosticActivity.this, DiagnosticMenuActivity.class);
  269.                 startActivity(toDiagnosticMenuIntent);
  270.             }
  271.  
  272.             @Override
  273.             public void messageArrived(String topic, MqttMessage message)
  274.             {
  275.                 String messagePayload = new String(message.getPayload());
  276.                 Log.d(TAG, "MqttCallback: messageArrived: " + messagePayload + ". Topic of " + topic);
  277.  
  278.                 if (topic.equals(carHeader + "DIAGNOSTICSSEND"))
  279.                 {
  280.                     diagInfoText.setText(messagePayload);
  281.                 }
  282.  
  283.                 if (topic.equals(carHeader + "DIAGNOSTICSGRAPHSEND"))
  284.                 {
  285.                     drawLineGraphData(messagePayload);
  286.                 }
  287.             }
  288.  
  289.             @Override
  290.             public void deliveryComplete(IMqttDeliveryToken token)
  291.             {
  292.             }
  293.         });
  294.  
  295.         //~~~~~~~~~~~~~~~~~~~~MQTT CONNECT~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  296.         try
  297.         {
  298.             IMqttToken token = client.connect(options);
  299.             token.setActionCallback(new IMqttActionListener()
  300.             {
  301.                 @Override
  302.                 public void onSuccess(IMqttToken asyncActionToken)
  303.                 {
  304.                     Log.d(TAG, "onSuccess: MQTT connect");
  305.                     //subscribe to required topics and request initial information
  306.  
  307.                     MQTTSubscribe(client, "#"); //////////////////////////////////////////////FIX THIS////////////////////////
  308.                     menuButtonGreyOut(diagnosticsButton);
  309.                     diagButtonGreyOut(batteryButton);
  310.                     requestDiagnosticsBattery(client);
  311.                 }
  312.  
  313.                 @Override
  314.                 public void onFailure(IMqttToken asyncActionToken, Throwable exception)
  315.                 {
  316.                     Toast.makeText(DiagnosticActivity.this, "MQTT connect FAIL", Toast.LENGTH_LONG).show();
  317.                     Log.d(TAG, "onFailure: MQTT could not connect");
  318.                     diagTitle.setText(getString(R.string.vehicleTitle) + " NO CONNECTION TO SERVER");
  319.                 }
  320.             });
  321.         } catch (MqttException e)
  322.         {
  323.             e.printStackTrace();
  324.         }
  325.         //~~~~~~~~~~~~~~~~~~~~~~~~~~Connect Client End~~~~~~~~~~~~~~~~~~~~~~~~~
  326.         //********************MQTT Initialisation END**************************
  327.  
  328.  
  329.         //*****************SET BUTTON LISTENERS***********************
  330.         batteryButton.setOnClickListener(new View.OnClickListener()
  331.         {
  332.             @Override
  333.             public void onClick(View v)
  334.             {
  335.                 diagButtonGreyOut(batteryButton);
  336.                 requestDiagnosticsBattery(client);
  337.             }
  338.         });
  339.  
  340.         cockpitButton.setOnClickListener(new View.OnClickListener()
  341.         {
  342.             @Override
  343.             public void onClick(View v)
  344.             {
  345.                 diagButtonGreyOut(cockpitButton);
  346.                 requestDiagnosticsCockpit(client);
  347.             }
  348.         });
  349.  
  350.         IMUGPSButton.setOnClickListener(new View.OnClickListener()
  351.         {
  352.             @Override
  353.             public void onClick(View v)
  354.             {
  355.                 diagButtonGreyOut(IMUGPSButton);
  356.                 requestDiagnosticsIMUGPS(client);
  357.             }
  358.         });
  359.  
  360.         diagnosticsButton.setOnClickListener(new View.OnClickListener()
  361.         {
  362.             @Override
  363.             public void onClick(View v)
  364.             {
  365.                 menuButtonGreyOut(diagnosticsButton);
  366.                 redrawMenuDiag();
  367.             }
  368.         });
  369.  
  370.         controlButton.setOnClickListener(new View.OnClickListener()
  371.         {
  372.             @Override
  373.             public void onClick(View v)
  374.             {
  375.                 menuButtonGreyOut(controlButton);
  376.                 redrawMenuControl();
  377.             }
  378.         });
  379.         //*****************SET BUTTON LISTENERS END*******************
  380.  
  381.         //*****************SET SeekBar LISTENERS*********************
  382.         seekBarSpeed.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
  383.         {
  384.             @Override
  385.             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
  386.             {
  387.                 String temp = controlSpeedTextHeader + (progress - controlSpeedOffset);
  388.                 controlSpeedText.setText(temp);
  389.                 MQTTPublish(client, seekBarSpeedPubTopic, Integer.toString(progress - controlSpeedOffset));
  390.             }
  391.  
  392.             @Override
  393.             public void onStartTrackingTouch(SeekBar seekBar)
  394.             {
  395.  
  396.             }
  397.  
  398.             @Override
  399.             public void onStopTrackingTouch(SeekBar seekBar)
  400.             {
  401.  
  402.             }
  403.         });
  404.  
  405.  
  406.         seekBarTurnAngle.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
  407.         {
  408.             @Override
  409.             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
  410.             {
  411.                 String temp = controlTurnAngleTextHeader + (progress - controlTurnAngleOffset);
  412.                 controlTurnAngleText.setText(temp);
  413.                 MQTTPublish(client, seekBarTurnAnglePubTopic, Integer.toString(progress - controlTurnAngleOffset));
  414.             }
  415.  
  416.             @Override
  417.             public void onStartTrackingTouch(SeekBar seekBar)
  418.             {
  419.  
  420.             }
  421.  
  422.             @Override
  423.             public void onStopTrackingTouch(SeekBar seekBar)
  424.             {
  425.  
  426.             }
  427.         });
  428.  
  429.  
  430.  
  431.     }
  432.     //~~~~~~~~~~~~~~~~~~~onCreate END~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  433.  
  434.     //-------------------------Functions------------------------------
  435.     public void switchToBarGraph()
  436.     {
  437.         lineGraphView.setEnabled(false);
  438.         lineGraphView.setVisibility(View.INVISIBLE);
  439.  
  440.         barGraphView.setEnabled(true);
  441.         barGraphView.setVisibility(View.VISIBLE);
  442.     }
  443.  
  444.     public void switchToLineGraph()
  445.     {
  446.         barGraphView.setEnabled(false);
  447.         barGraphView.setVisibility(View.INVISIBLE);
  448.  
  449.         lineGraphView.setEnabled(true);
  450.         lineGraphView.setVisibility(View.VISIBLE);
  451.     }
  452.  
  453.     public void drawLineGraphData(String data)
  454.     {
  455.         String[] values = data.split("\\s*,\\s*");
  456.         x = Double.parseDouble(values[0]);
  457.         y = Double.parseDouble(values[1]);
  458.         lineGraphSeries.appendData(new DataPoint(x, y), true, numDataPoints);
  459.         lineGraphView.addSeries(lineGraphSeries);
  460.     }
  461.  
  462.     public void menuButtonGreyAllOut()
  463.     {
  464.         controlButton.setClickable(false);
  465.         controlButton.setEnabled(false);
  466.         controlButton.setAlpha(greyOutAlpha);
  467.  
  468.         diagnosticsButton.setClickable(false);
  469.         diagnosticsButton.setEnabled(false);
  470.         diagnosticsButton.setAlpha(greyOutAlpha);
  471.     }
  472.  
  473.     public void diagButtonGreyAllOut()
  474.     {
  475.         batteryButton.setClickable(false);
  476.         batteryButton.setEnabled(false);
  477.         batteryButton.setAlpha(greyOutAlpha);
  478.  
  479.         cockpitButton.setClickable(false);
  480.         cockpitButton.setEnabled(false);
  481.         cockpitButton.setAlpha(greyOutAlpha);
  482.  
  483.         IMUGPSButton.setClickable(false);
  484.         IMUGPSButton.setEnabled(false);
  485.         IMUGPSButton.setAlpha(greyOutAlpha);
  486.  
  487.     }
  488.  
  489.     public void redrawMenuDiag()
  490.     {
  491.         // Diagnostics Visibilities/enables
  492.         batteryButton.setEnabled(true);
  493.         batteryButton.setVisibility(View.VISIBLE);
  494.  
  495.         cockpitButton.setEnabled(true);
  496.         cockpitButton.setVisibility(View.VISIBLE);
  497.  
  498.         IMUGPSButton.setEnabled(true);
  499.         IMUGPSButton.setVisibility(View.VISIBLE);
  500.  
  501.         diagInfoText.setEnabled(true);
  502.         diagInfoText.setVisibility(View.VISIBLE);
  503.  
  504.         lineGraphView.setEnabled(true);
  505.         lineGraphView.setVisibility(View.VISIBLE);
  506.  
  507.         barGraphView.setEnabled(false);
  508.         barGraphView.setVisibility(View.INVISIBLE);
  509.  
  510.         // Control Hides
  511.         seekBarSpeed.setVisibility(View.INVISIBLE);
  512.         seekBarSpeed.setEnabled(false);
  513.  
  514.         seekBarTurnAngle.setVisibility(View.INVISIBLE);
  515.         seekBarTurnAngle.setEnabled(false);
  516.  
  517.         controlSpeedText.setVisibility(View.INVISIBLE);
  518.         controlSpeedText.setEnabled(false);
  519.  
  520.         controlTurnAngleText.setVisibility(View.INVISIBLE);
  521.         controlTurnAngleText.setEnabled(false);
  522.     }
  523.  
  524.     public void redrawMenuControl()
  525.     {
  526.         // Diagnostics Hides
  527.         batteryButton.setEnabled(false);
  528.         batteryButton.setVisibility(View.INVISIBLE);
  529.  
  530.         cockpitButton.setEnabled(false);
  531.         cockpitButton.setVisibility(View.INVISIBLE);
  532.  
  533.         IMUGPSButton.setEnabled(false);
  534.         IMUGPSButton.setVisibility(View.INVISIBLE);
  535.  
  536.         diagInfoText.setEnabled(false);
  537.         diagInfoText.setVisibility(View.INVISIBLE);
  538.  
  539.         lineGraphView.setEnabled(false);
  540.         lineGraphView.setVisibility(View.INVISIBLE);
  541.  
  542.         barGraphView.setEnabled(false);
  543.         barGraphView.setVisibility(View.INVISIBLE);
  544.  
  545.  
  546.         // Control Enables/Visibilities
  547.         seekBarSpeed.setVisibility(View.VISIBLE);
  548.         seekBarSpeed.setProgress(40);
  549.         seekBarSpeed.setEnabled(true);
  550.  
  551.         seekBarTurnAngle.setVisibility(View.VISIBLE);
  552.         seekBarTurnAngle.setProgress(45);
  553.         seekBarTurnAngle.setEnabled(true);
  554.  
  555.         controlSpeedText.setVisibility(View.VISIBLE);
  556.         String temp = controlSpeedTextHeader + "0";
  557.         controlSpeedText.setText(temp);
  558.         controlSpeedText.setEnabled(true);
  559.  
  560.         controlTurnAngleText.setVisibility(View.VISIBLE);
  561.         temp = controlTurnAngleTextHeader + "0";
  562.         controlTurnAngleText.setText(temp);
  563.         controlTurnAngleText.setEnabled(true);
  564.  
  565.     }
  566.  
  567.     public void menuButtonGreyOut(Button clickedButton)
  568.     {
  569.         controlButton.setClickable(true);
  570.         controlButton.setEnabled(true);
  571.         controlButton.setAlpha(1);
  572.  
  573.         diagnosticsButton.setClickable(true);
  574.         diagnosticsButton.setEnabled(true);
  575.         diagnosticsButton.setAlpha(1);
  576.  
  577.         clickedButton.setClickable(false);
  578.         clickedButton.setEnabled(false);
  579.         clickedButton.setAlpha(greyOutAlpha);
  580.     }
  581.  
  582.     public void diagButtonGreyOut(Button clickedButton)
  583.     {
  584.         batteryButton.setClickable(true);
  585.         batteryButton.setEnabled(true);
  586.         batteryButton.setAlpha(1);
  587.  
  588.         cockpitButton.setClickable(true);
  589.         cockpitButton.setEnabled(true);
  590.         cockpitButton.setAlpha(1);
  591.  
  592.         IMUGPSButton.setClickable(true);
  593.         IMUGPSButton.setEnabled(true);
  594.         IMUGPSButton.setAlpha(1);
  595.  
  596.         clickedButton.setClickable(false);
  597.         clickedButton.setEnabled(false);
  598.         clickedButton.setAlpha(greyOutAlpha);
  599.     }
  600.  
  601.     public void requestDiagnosticsBattery(MqttAndroidClient client)
  602.     {
  603.         String pubTopic = carHeader + diagnosticsRequestTopic + "/Battery";
  604.         String messagePayload = numRequestPoints;
  605.         diagInfoText.setText(diagnosticsInfoTextBlank);
  606.         MQTTPublish(client, pubTopic, messagePayload);
  607.  
  608.     }
  609.  
  610.     public void requestDiagnosticsCockpit(MqttAndroidClient client)
  611.     {
  612.         String pubTopic = carHeader + diagnosticsRequestTopic + "/Cockpit";
  613.         String messagePayload = numRequestPoints;
  614.         diagInfoText.setText(diagnosticsInfoTextBlank);
  615.         MQTTPublish(client, pubTopic, messagePayload);
  616.     }
  617.  
  618.     public void requestDiagnosticsIMUGPS(MqttAndroidClient client) {
  619.         String pubTopic = carHeader + diagnosticsRequestTopic + "/IMUGPS";
  620.         String messagePayload = numRequestPoints;
  621.         diagInfoText.setText(diagnosticsInfoTextBlank);
  622.         MQTTPublish(client, pubTopic, messagePayload);
  623.     }
  624.  
  625.     // MQTT publish
  626.     public void MQTTPublish(MqttAndroidClient client, String pubTopic, String messagePayload)
  627.     {
  628.         Log.d(TAG, "MQTTPublish: attempting to publish " + messagePayload + " to topic " +pubTopic);
  629.         byte [] encodedPayload;
  630.         try {
  631.             encodedPayload = messagePayload.getBytes("UTF-8");
  632.             MqttMessage message = new MqttMessage(encodedPayload);
  633.             client.publish(pubTopic, message);
  634.         } catch (UnsupportedEncodingException | MqttException e) {e.printStackTrace();}
  635.     }
  636.  
  637.     // MQTT subscribe
  638.     public void MQTTSubscribe(MqttAndroidClient client, final String subTopic) {
  639.         int qos = 1;
  640.         try {
  641.             IMqttToken subToken = client.subscribe(subTopic, qos);
  642.             subToken.setActionCallback(new IMqttActionListener() {
  643.                 @Override
  644.                 public void onSuccess(IMqttToken asyncActionToken) {
  645.                     Log.d(TAG, "onSuccess: Subscribe to " + subTopic + " successful");
  646.                 }
  647.  
  648.                 @Override
  649.                 public void onFailure(IMqttToken asyncActionToken,
  650.                                       Throwable exception) {
  651.                     Log.d(TAG, "onFailure: Subscribe to " + subTopic + " failed");
  652.                 }
  653.             });
  654.         } catch (MqttException e) {
  655.             e.printStackTrace();
  656.         }
  657.     }
  658.     //------------------------Functions END---------------------------
  659. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top