Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. package com.nesbang.rtltesting;
  2.  
  3. import android.content.Intent;
  4. import android.net.Uri;
  5. import android.support.v7.app.AlertDialog;
  6. import android.support.v7.app.AppCompatActivity;
  7. import android.os.Bundle;
  8. import android.util.Log;
  9. import android.view.MenuItem;
  10. import android.view.Menu;
  11. import android.widget.Toast;
  12.  
  13. public class MainActivity extends AppCompatActivity {
  14.  
  15. private boolean isConnected = false;
  16. private int rtlSamp = 2100000;
  17. private int rtlPort = 1234;
  18. private MenuItem menuConnect;
  19.  
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24. }
  25.  
  26. /**
  27. * Add menu items
  28. */
  29. @Override
  30. public boolean onCreateOptionsMenu(Menu menu) {
  31. // Group 0, ID 0
  32. menuConnect = menu.add(0, 0, Menu.FIRST, "");
  33. menuConnect.setIcon(R.drawable.ic_play_arrow_white_48dp);
  34. menuConnect.setShowAsAction(Menu.FLAG_ALWAYS_PERFORM_CLOSE);
  35.  
  36. return super.onCreateOptionsMenu(menu);
  37. }
  38.  
  39. /**
  40. * Handle menu item events
  41. */
  42. @Override
  43. public boolean onOptionsItemSelected(MenuItem item) {
  44. switch (item.getItemId()) {
  45. case 0: // Start/Stop
  46. startStop();
  47.  
  48. default:
  49. return super.onOptionsItemSelected(item);
  50. }
  51. }
  52.  
  53. /**
  54. * Connect to RTL_TCP driver
  55. */
  56. private void startStop() {
  57. if (!isConnected) { // Connect
  58. out("connect", "Connecting to RTL_TCP");
  59. toast("Connecting...", Toast.LENGTH_SHORT);
  60.  
  61. Intent rtlIntent = new Intent(Intent.ACTION_VIEW).setData(Uri.parse("iqsrc://-a 127.0.0.1 -p " + String.valueOf(rtlPort) + " -s " + String.valueOf(rtlSamp)));
  62. startActivityForResult(rtlIntent, 1234);
  63. }
  64. else { // Disconnect
  65. out("connect", "Disconnecting from RTL_TCP");
  66. toast("Disconnecting...", Toast.LENGTH_SHORT);
  67.  
  68. //TODO: Disconnect from RTL_TCP through TCP Client
  69. }
  70. }
  71.  
  72. private void connected() {
  73. out("onActivityResult", "Driver returned OK");
  74. toast("Connected!", Toast.LENGTH_SHORT);
  75. isConnected = true;
  76. menuConnect.setIcon(R.drawable.ic_stop_white_48dp);
  77.  
  78. //TODO: TCP Client setup
  79. }
  80.  
  81. /**
  82. * Result from rtlIntent
  83. *
  84. * @param requestCode Intent request code (1234 for rtlIntent)
  85. * @param resultCode Intent result (i.e. RESULT_OK)
  86. * @param data Intent data
  87. */
  88. @Override
  89. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  90. if (requestCode != 1234) {
  91. // Result is not from rtlIntent
  92. out("onActivityResult", "Wrong request code: " + String.valueOf(requestCode));
  93. return;
  94. }
  95.  
  96. if (resultCode == RESULT_OK) {
  97. // Driver has connected to RTL device and rtl_tcp is running
  98. connected();
  99. } else {
  100. // Driver failed to start
  101. String err = data.getStringExtra("detailed_exception_message");
  102. out("onActivityResult", "Driver returned error: " + err);
  103. alert("RTLSDR Driver Error", err);
  104. }
  105. }
  106.  
  107.  
  108. /**
  109. * Console write utility
  110. *
  111. * @param src Message source (method usually)
  112. * @param msg Message content
  113. */
  114. private void out(String src, String msg) {
  115. Log.i(src, msg);
  116. }
  117.  
  118. /**
  119. * Alert dialog utility
  120. *
  121. * @param title Alert title
  122. * @param msg Alert message
  123. * @return AlertDialog object
  124. */
  125. private AlertDialog alert(String title, String msg) {
  126. AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this);
  127.  
  128. alertBuilder.setMessage(msg);
  129. alertBuilder.setTitle(title);
  130. alertBuilder.setPositiveButton(R.string.dismiss, null);
  131.  
  132. AlertDialog alert = alertBuilder.create();
  133. alert.show();
  134.  
  135. return alert;
  136. }
  137.  
  138. /**
  139. * Toast message utility
  140. *
  141. * @param msg Toast content
  142. * @param len Toast duration (i.e. Toast.LENGTH_SHORT / Toast.LENGTH_LONG)
  143. */
  144. private void toast(String msg, int len) {
  145. Toast.makeText(this, msg, len).show();
  146. }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement