Skip to content

Commit 981a248

Browse files
author
vinay datta
committed
1.0 EMILY mission planner data working
1 parent 1303cf7 commit 981a248

File tree

8 files changed

+206
-65
lines changed

8 files changed

+206
-65
lines changed

EMILY/.idea/gradle.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

EMILY/.idea/modules.xml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

EMILY/app/src/main/java/android/app/com/emilyrobot/FragmentMaps.java

Lines changed: 98 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package android.app.com.emilyrobot;
22

3+
import android.graphics.Color;
34
import android.os.Bundle;
5+
import android.os.Handler;
46
import android.support.annotation.Nullable;
57
import android.support.v4.app.Fragment;
68
import android.view.LayoutInflater;
@@ -11,19 +13,30 @@
1113
import com.google.android.gms.maps.GoogleMap;
1214
import com.google.android.gms.maps.OnMapReadyCallback;
1315
import com.google.android.gms.maps.SupportMapFragment;
16+
import com.google.android.gms.maps.model.CircleOptions;
1417
import com.google.android.gms.maps.model.LatLng;
18+
import com.google.android.gms.maps.model.MarkerOptions;
19+
import com.google.android.gms.maps.model.Polyline;
20+
import com.google.android.gms.maps.model.PolylineOptions;
1521

1622
import java.util.ArrayList;
23+
import java.util.Random;
1724

1825
/**
1926
* Created by vinay on 4/17/17.
2027
*/
2128

2229
public class FragmentMaps extends Fragment implements OnMapReadyCallback {
2330

24-
private GoogleMap mMap;
25-
public static ArrayList<LatLng> publicCor;
26-
31+
static GoogleMap mMap;
32+
static ArrayList<LatLng> coordinations;
33+
static ArrayList<LatLng> waypoints;
34+
static Random rand=new Random();
35+
public static Handler mHandler;
36+
static PolylineOptions poption;
37+
static ArrayList<Polyline> polylines;
38+
CircleOptions circle;
39+
public static long started,ended;
2740
public FragmentMaps()
2841
{
2942

@@ -39,11 +52,46 @@ public static FragmentMaps newInstance() {
3952

4053

4154
@Override
42-
public void onCreate(Bundle savedInstanceState) {
55+
public void onCreate(@Nullable Bundle savedInstanceState) {
4356
super.onCreate(savedInstanceState);
44-
publicCor=new ArrayList<>();
57+
coordinations=new ArrayList<>();
58+
waypoints=new ArrayList<>();
59+
//coordinations.add(new LatLng(27.710527, -97.318175));
60+
//coordinations.add(new LatLng(27.708407, -97.319783));
61+
waypoints.add(new LatLng(27.710527, -97.318175));
62+
waypoints.add(new LatLng(27.708407, -97.319783));
63+
mHandler=new Handler();
64+
polylines=new ArrayList<>();
65+
poption= new PolylineOptions();
66+
circle=new CircleOptions();
67+
68+
4569
}
70+
public static Runnable mTask =new Runnable() {
71+
@Override
72+
73+
public void run() {
74+
try{
75+
randomCreateArraylist(coordinations);
76+
trackingCor(coordinations,poption,mMap);
77+
}finally {
78+
if(System.currentTimeMillis()<ended) {
79+
mHandler.postDelayed(mTask, 2000);
80+
}else{
81+
mHandler.removeCallbacks(mTask);
82+
lineRemove();
83+
}
84+
85+
}
86+
}
87+
};
88+
4689

90+
@Override
91+
public void onDestroy() {
92+
super.onDestroy();
93+
mHandler.removeCallbacks(mTask);
94+
}
4795

4896
@Override
4997
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -69,8 +117,51 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
69117
@Override
70118
public void onMapReady(GoogleMap googleMap) {
71119
mMap = googleMap;
72-
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
73-
//mMap.addMarker(new MarkerOptions().position(publicCor.get(0)).title("Marker"));
120+
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
121+
//mMap.addMarker(new MarkerOptions().position(Mydata.getEmilyLocation()).title("Marker"));
74122
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(Mydata.getEmilyLocation(),17));
123+
//drawCircle(waypoints);
124+
mTask.run();
125+
//Log.i("Latitude",Double.toString(coordinations.get(coordinations.size()-1).latitude));
126+
//Log.i("Longitude",Double.toString(coordinations.get(coordinations.size()-1).longitude));
127+
128+
}
129+
public void drawCircle(ArrayList<LatLng> cor){
130+
for(int i=0;i<cor.size();i++){
131+
mMap.addCircle(circle.center(cor.get(i)).radius(5).strokeColor(Color.RED).fillColor(Color.RED));
132+
}
75133
}
134+
static void trackingCor(ArrayList<LatLng> cor, PolylineOptions line, GoogleMap map){
135+
if(cor.size()>2) {
136+
line.add(cor.get(cor.size() - 1));
137+
line.add(cor.get(cor.size() - 2));
138+
line.width(5).color(Color.WHITE).geodesic(true);
139+
//polylines.add(map.addPolyline(line));
140+
141+
Polyline l=map.addPolyline(line);
142+
polylines.add(l);
143+
144+
}
145+
}
146+
public static void lineRemove(){
147+
for(Polyline line:polylines){
148+
line.remove();
149+
}
150+
polylines.clear();
151+
}
152+
static void randomCreateArraylist(ArrayList<LatLng> a){
153+
154+
int size=a.size();
155+
if(size==0) a.add(new LatLng(27.710527, -97.318175));
156+
LatLng c;
157+
double randomNum= 0.001*rand.nextDouble();
158+
double c1=a.get(a.size()-1).latitude+randomNum;
159+
double c2=a.get(a.size()-1).longitude+randomNum;
160+
c=new LatLng(c1,c2);
161+
a.add(c);
162+
//Log.i("Lat",Double.toString(a.get(a.size()-1).latitude));
163+
//Log.i("Longitude",Double.toString(a.get(a.size()-1).longitude));
164+
165+
}
166+
76167
}

EMILY/app/src/main/java/android/app/com/emilyrobot/HomeActivity.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,13 @@
22

33
import android.content.DialogInterface;
44
import android.content.Intent;
5-
import android.graphics.Typeface;
6-
import android.os.Handler;
5+
import android.os.Bundle;
76
import android.support.v7.app.AlertDialog;
87
import android.support.v7.app.AppCompatActivity;
9-
import android.os.Bundle;
108
import android.support.v7.widget.Toolbar;
119
import android.text.InputType;
1210
import android.view.Menu;
13-
import android.view.MenuInflater;
14-
import android.view.MenuItem;
1511
import android.view.View;
16-
import android.widget.Button;
1712
import android.widget.EditText;
1813
import android.widget.ImageButton;
1914
import android.widget.ImageView;
@@ -27,7 +22,7 @@ public class HomeActivity extends AppCompatActivity {
2722
//Handler h;
2823
//int delay;
2924
//Integer tmp = 0;
30-
25+
NetworkConnection client;
3126
//class Evil implements Runnable {
3227
// public void run() {
3328
// tmp++;
@@ -45,6 +40,8 @@ protected void onCreate(Bundle savedInstanceState) {
4540

4641
//getSupportActionBar().setTitle("EMILY");
4742

43+
44+
4845
statusMessage = (TextView) findViewById(R.id.statusMessage);
4946
ImageButton connectButton = (ImageButton) findViewById(R.id.connectButton);
5047
connectButton.setOnClickListener(new View.OnClickListener() {
@@ -154,6 +151,8 @@ private void setupConnection(String ip) {
154151
is_connected = true;
155152
ImageButton connectButton = (ImageButton) findViewById(R.id.connectButton);
156153
connectButton.setBackgroundResource(R.drawable.connected_48);
154+
client = new NetworkConnection(ip_address,8005);
155+
client.execute();
157156
}
158157

159158
private void stopConnection() {

EMILY/app/src/main/java/android/app/com/emilyrobot/Mydata.java

Lines changed: 69 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
package android.app.com.emilyrobot;
22

3+
import android.util.Log;
4+
35
import com.google.android.gms.maps.model.LatLng;
46

7+
import org.json.JSONException;
8+
import org.json.JSONObject;
9+
510
import java.util.ArrayList;
611

712
/**
813
* Created by vinay on 4/17/17.
914
*/
1015

1116
public class Mydata {
12-
static String[] nameArray = {"99%", "100%", "100%", "0.00m/s", "0.00m", "0.00m", "0:00"};
17+
static String[] nameArray = {"100%", "100%", "100%", "0.00m/s", "0.00m", "0.00m", "0:00"};
1318

1419

1520

@@ -21,57 +26,28 @@ public class Mydata {
2126

2227
static ArrayList<Model> dataModals;
2328

24-
private boolean armed;
25-
26-
private int wirelessStrength;
27-
private int gpsStatus;
28-
private float speed;
29-
private float distToHome;
30-
private float distToWaypoint;
31-
29+
private static boolean armed;
3230
private static LatLng EmilyLocation = new LatLng(27.709767,-97.320152);
3331
private static LatLng HomeLocation = new LatLng(27.709767,-97.320152);
3432

3533

36-
public void setArmedStatus(boolean armed){
37-
this.armed = armed;
38-
}
39-
//public static void setBatteryStatus(int batteryStatus){
40-
// nameArray[0] = Integer.toString(batteryStatus)+ "%";
41-
//
42-
//}
43-
44-
public void setWirelessStrength(int wirelessStrength){
45-
this.wirelessStrength = wirelessStrength;
46-
}
47-
48-
public void setGpsStatus(int gpsStatus){
49-
this.gpsStatus = gpsStatus;
50-
}
51-
52-
public void setEmilySpeed(float speed){
53-
this.speed = speed;
54-
}
55-
56-
public void setDistToHome(float distToHome){
57-
this.distToHome = distToHome;
58-
}
59-
60-
public void setDistToWaypoint(float distToWaypoint){
61-
this.distToWaypoint = distToWaypoint;
34+
private static void setArmedStatus(boolean value){
35+
armed = value;
6236
}
6337

6438

65-
66-
public void setEmilyLocation(float Lat, float Lng){
39+
public static void setEmilyLocation(float Lat, float Lng){
6740
EmilyLocation = new LatLng(Lat,Lng);
6841

6942
}
7043

71-
public void setEmilyHomeLocation(float Lat, float Lng){
44+
public static void setEmilyHomeLocation(float Lat, float Lng){
7245
HomeLocation = new LatLng(Lat,Lng);
7346
}
7447

48+
public static boolean getArmedStatus(){
49+
return armed;
50+
}
7551

7652
public static LatLng getEmilyLocation(){
7753
return EmilyLocation;
@@ -83,33 +59,81 @@ public static LatLng getEmilyHomeLocation(){
8359

8460
public static void setCurrentStatus(String key, Object value){
8561

62+
if(key.equals("armed"))
63+
setArmedStatus(Boolean.valueOf((boolean)value));
64+
if(key.equals("battary"))
65+
setBatteryStatus(Double.valueOf((double)value).intValue());
66+
if(key.equals("wireless")){
67+
//Log.i("Wireless", value.toString());
68+
setWifiStrength(Double.valueOf((double)value).intValue());
69+
}
70+
if(key.equals("gps_status")){
71+
//Log.i("gps_status", value.toString());
72+
setGPSStrength(Double.valueOf((double)value).intValue());
73+
}
74+
if(key.equals("emily_speed")){
75+
//Log.i("emily_speed", value.toString());
76+
setSpeed(Double.valueOf((double)value).floatValue());
77+
}if(key.equals("dist2home")){
78+
//Log.i("dist2home", value.toString());
79+
setDistanceFromHome(Double.valueOf((double)value).floatValue());
80+
}
81+
if(key.equals("dist2waypoint")){
82+
//Log.i("dist2waypoint", value.toString());
83+
setDistanceToNextWaypoint(Double.valueOf((double)value).floatValue());
84+
}
85+
if(key.equals("emily_location")){
86+
//Log.i("dist2waypoint", value.toString());
87+
try {
88+
JSONObject location = (JSONObject) value;
89+
float Lat = Double.valueOf((double)location.get("lat")).floatValue();
90+
float Lng = Double.valueOf((double)location.get("lng")).floatValue();
91+
setEmilyLocation(Lat,Lng);
92+
}catch (JSONException e) {
93+
e.printStackTrace();
94+
}
95+
96+
}
97+
if(key.equals("emily_home_location")){
98+
//Log.i("dist2waypoint", value.toString());
99+
try {
100+
JSONObject location = (JSONObject) value;
101+
float Lat = Double.valueOf((double)location.get("lat")).floatValue();
102+
float Lng = Double.valueOf((double)location.get("lng")).floatValue();
103+
Log.i("dist2waypoint", Lat+" ,"+Lng);
104+
//setEmilyHomeLocation(Lat,Lng);
105+
}catch (JSONException e) {
106+
e.printStackTrace();
107+
}
108+
}
109+
86110
}
87111

88-
public static void setBatteryStatus(int value) {
112+
private static void setBatteryStatus(int value) {
89113
dataModals.get(0).name = Integer.toString(value) + "%";
90114
}
91115

92-
public static void setWifiStrength(int value) {
116+
private static void setWifiStrength(int value) {
93117
dataModals.get(1).name = Integer.toString(value) + "%";
94118
}
95119

96-
public static void setGPSStrength(int value) {
120+
private static void setGPSStrength(int value) {
97121
dataModals.get(2).name = Integer.toString(value) + "%";
98122
}
99123

100-
public static void setSpeed(float value) {
124+
private static void setSpeed(float value) {
101125
dataModals.get(3).name = String.format(java.util.Locale.US,"%.2f m/s", value);
102126
}
103127

104-
public static void setDistanceFromHome(float value) {
128+
private static void setDistanceFromHome(float value) {
105129
dataModals.get(4).name = String.format(java.util.Locale.US,"%.2f m", value);
106130
}
107131

108-
public static void setDistanceToNextWaypoint(float value) {
132+
private static void setDistanceToNextWaypoint(float value) {
109133
dataModals.get(5).name = String.format(java.util.Locale.US,"%.2f m", value);
110134
}
111135

112-
public static void setElapsedTime(String s) {
136+
private static void setElapsedTime(String s) {
113137
dataModals.get(6).name = s;
114138
}
115139

0 commit comments

Comments
 (0)