wuhb 2 years ago
parent
commit
2973017df2

+ 92 - 3
app/src/main/java/com/qy/agv/activity/ControlActivity.java

@@ -5,19 +5,44 @@ import android.content.Context;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.AdapterView;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.reflect.TypeToken;
 import com.qy.agv.activity.adapter.DirViewAdapter;
+import com.qy.agv.activity.model.RobotModel;
+import com.qy.agv.activity.model.TaskModel;
 import com.qy.agv.comm.BaseActivity;
 import com.qy.agv.comm.CacheService;
 import com.qy.agv.databinding.QyRobotBinding;
+import com.qy.agv.util.Constant;
 import com.qy.agv.util.DataUtil;
+import com.qy.agv.util.DateUtil;
+import com.qy.agv.util.MyProgress;
 import com.qy.agv.util.StringUtils;
 import com.qy.agv.util.ToastUtils;
+
+import org.apache.log4j.Logger;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.xutils.common.Callback;
+import org.xutils.http.RequestParams;
 import org.xutils.x;
 
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 public class ControlActivity extends BaseActivity {
+    public static Logger mylog =Logger.getLogger(ControlActivity.class);
+
     private Context context;
     private DirViewAdapter dirViewAdapter;
     private QyRobotBinding binding;
+    private RobotModel robotModel;
+    private final Map<Integer, String> statusMap = new HashMap<Integer, String>();
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -29,10 +54,18 @@ public class ControlActivity extends BaseActivity {
         initCommonTop2();
         init();
         bindRobot();
+        initStatus();
     }
 
     @SuppressLint("ClickableViewAccessibility")
     public void init(){
+        binding.btnResetLm.setOnClickListener(view->{
+
+        });
+        binding.btnConfirmLm.setOnClickListener(view->{
+
+        });
+
         dirViewAdapter = new DirViewAdapter(DataUtil.getDir(""),this);
         binding.gridView.setAdapter(dirViewAdapter);
         binding.gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@@ -64,7 +97,7 @@ public class ControlActivity extends BaseActivity {
 
     @Override
     public void receiverTask(String barcode) {
-        searchRobot(barcode);
+        parserRobot(barcode);
     }
 
     public void bindRobot() {
@@ -74,16 +107,72 @@ public class ControlActivity extends BaseActivity {
        }
     }
 
-    public void searchRobot(String bindRobotID){
+    public void parserRobot(String bindRobotID){
         if(StringUtils.isEmpty(bindRobotID)){
-            ToastUtils.showToast(context, "没有绑定机器人");
+            ToastUtils.showToast(context, "机器人编号不能为空");
             return;
         }
         if(bindRobotID.startsWith("02-")){
             bindRobotID = bindRobotID.replace("02-", "");
+            searchRobot(bindRobotID);
         }
     }
 
+    private void searchRobot(String bindRobotID) {
+        MyProgress myProgress = MyProgress.getInstance();
+        myProgress.show(context, "提示", "正在加载");
+        RequestParams params = httParams(Constant.ROBOT_DETAIL);
+        params.addBodyParameter("robotId", bindRobotID);
+        x.http().get(params, new Callback.CommonCallback<JSONObject>() {
+            @Override
+            public void onSuccess(JSONObject rs) {
+                mylog.info(rs.toString());
+                try {
+                    if (rs.getInt("code") != 200) {
+                        ToastUtils.showToast(context, "请求失败");
+                    } else {
+                        if (rs.getBoolean("success")) {
+                            Object data_o = rs.get("data");
+                            robotModel = new Gson().fromJson(data_o.toString(), RobotModel.class);
+                            binding.robotNo.setText(robotModel.getRobotId());
+                            Integer robot_status = robotModel.getRobotStatus();
+                            binding.robotState.setText(statusMap.get(robot_status));
+                            CacheService.getInstance(context).saveCache("BIND_CONTROL", "ROBOT_ID", robotModel.getRobotId());
+                            ToastUtils.showToast(context, "绑定成功");
+                        }
+                    }
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onError(Throwable ex, boolean isOnCallback) {
+                ex.printStackTrace();
+                mylog.error("请求异常:", ex);
+                ToastUtils.showToast(context, "请求异常:" + ex.getMessage());
+            }
+
+            @Override
+            public void onFinished() {myProgress.close();
+            }
+
+            @Override
+            public void onCancelled(CancelledException arg0) {
+                mylog.error("onRead:", arg0);
+            }
+        });
+    }
+
+    private void initStatus(){
+        statusMap.put(0, "空闲");
+        statusMap.put(1, "已分配");
+        statusMap.put(2, "执行中");
+        statusMap.put(3, "锁定中");
+        statusMap.put(4, "充电中");
+        statusMap.put(5, "等待中");
+    }
+
     @Override
     protected String getCommonTopTitle() {
         return "单机控制";

+ 3 - 10
app/src/main/java/com/qy/agv/activity/MainActivity.java

@@ -2,15 +2,10 @@ package com.qy.agv.activity;
 
 import static com.qy.agv.comm.BaseApplication.mScanManager;
 
-import android.app.AlertDialog;
-import android.app.TaskInfo;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.IntentFilter;
-import android.graphics.Color;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
-import android.os.Debug;
 import android.util.DisplayMetrics;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -25,7 +20,6 @@ import android.widget.ListView;
 import android.widget.PopupWindow;
 import android.widget.SimpleAdapter;
 import android.widget.TextView;
-import android.widget.Toast;
 
 import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
@@ -35,7 +29,7 @@ import com.google.gson.reflect.TypeToken;
 import com.qy.agv.R;
 import com.qy.agv.activity.adapter.MainListViewAdapter;
 import com.qy.agv.activity.model.TaskModel;
-import com.qy.agv.activity.model.User;
+import com.qy.agv.activity.model.UserModel;
 import com.qy.agv.comm.BaseActivity;
 import com.qy.agv.comm.CacheService;
 import com.qy.agv.comm.Res;
@@ -53,7 +47,6 @@ import org.json.JSONException;
 import org.json.JSONObject;
 import org.xutils.common.Callback;
 import org.xutils.http.RequestParams;
-import org.xutils.view.annotation.ViewInject;
 import org.xutils.x;
 
 import java.lang.reflect.Type;
@@ -69,7 +62,7 @@ public class MainActivity extends BaseActivity {
     private Context context;
     private MainListViewAdapter listViewAdapter;
     private ArrayList<TaskModel> mList;
-    private User user;
+    private UserModel user;
     private Button submit;
     private PopupWindow popupWindow;
     private PopupWindow popupWindow1;
@@ -157,7 +150,7 @@ public class MainActivity extends BaseActivity {
                         JSONObject object = new JSONObject(arg0);
                         ToastUtils.showToast(context, object.getString("error_description"));
                     } else {
-                        user = new Gson().fromJson(arg0, User.class);
+                        user = new Gson().fromJson(arg0, UserModel.class);
                         Constant.ACCESS_TOKEN = user.getAccess_token();
                         Constant.REFRESH_TOKEN = user.getAccess_token();
                         CacheService.getInstance(context).saveCache(Constant.CACHE_LOGIN_KEY, "user", arg0);

+ 121 - 0
app/src/main/java/com/qy/agv/activity/model/RobotModel.java

@@ -0,0 +1,121 @@
+package com.qy.agv.activity.model;
+
+public class RobotModel {
+    private String robotId;
+    private String robotName;
+    private String robotType;
+    private String robotModel;
+    private String electricQuantity;
+    private String locationId;
+    private String homeLocation;
+    private String robotIp;
+    private String robotDirection;
+    private String robotMac;
+    private Integer robotStatus;
+    private String robotVersion;
+    private String remark;
+
+    public String getRobotId() {
+        return robotId;
+    }
+
+    public void setRobotId(String robotId) {
+        this.robotId = robotId;
+    }
+
+    public String getRobotName() {
+        return robotName;
+    }
+
+    public void setRobotName(String robotName) {
+        this.robotName = robotName;
+    }
+
+    public String getRobotType() {
+        return robotType;
+    }
+
+    public void setRobotType(String robotType) {
+        this.robotType = robotType;
+    }
+
+    public String getRobotModel() {
+        return robotModel;
+    }
+
+    public void setRobotModel(String robotModel) {
+        this.robotModel = robotModel;
+    }
+
+    public String getElectricQuantity() {
+        return electricQuantity;
+    }
+
+    public void setElectricQuantity(String electricQuantity) {
+        this.electricQuantity = electricQuantity;
+    }
+
+    public String getLocationId() {
+        return locationId;
+    }
+
+    public void setLocationId(String locationId) {
+        this.locationId = locationId;
+    }
+
+    public String getHomeLocation() {
+        return homeLocation;
+    }
+
+    public void setHomeLocation(String homeLocation) {
+        this.homeLocation = homeLocation;
+    }
+
+    public String getRobotIp() {
+        return robotIp;
+    }
+
+    public void setRobotIp(String robotIp) {
+        this.robotIp = robotIp;
+    }
+
+    public String getRobotDirection() {
+        return robotDirection;
+    }
+
+    public void setRobotDirection(String robotDirection) {
+        this.robotDirection = robotDirection;
+    }
+
+    public String getRobotMac() {
+        return robotMac;
+    }
+
+    public void setRobotMac(String robotMac) {
+        this.robotMac = robotMac;
+    }
+
+    public Integer getRobotStatus() {
+        return robotStatus;
+    }
+
+    public void setRobotStatus(Integer robotStatus) {
+        this.robotStatus = robotStatus;
+    }
+
+    public String getRobotVersion() {
+        return robotVersion;
+    }
+
+    public void setRobotVersion(String robotVersion) {
+        this.robotVersion = robotVersion;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 2 - 2
app/src/main/java/com/qy/agv/activity/model/User.java → app/src/main/java/com/qy/agv/activity/model/UserModel.java

@@ -2,7 +2,7 @@ package com.qy.agv.activity.model;
 
 import com.google.gson.internal.LinkedTreeMap;
 
-public class User {
+public class UserModel {
     private String access_token;
     private String refresh_token;
     private Long user_id;
@@ -13,7 +13,7 @@ public class User {
     private String token_type;
     private LinkedTreeMap<String, Object> detail;
 
-    public User(String user_name){
+    public UserModel(String user_name){
         this.user_name= user_name;
     }
 

+ 4 - 3
app/src/main/java/com/qy/agv/util/Constant.java

@@ -1,6 +1,6 @@
 package com.qy.agv.util;
 
-import com.qy.agv.activity.model.User;
+import com.qy.agv.activity.model.UserModel;
 
 public class Constant {
 
@@ -17,17 +17,18 @@ public class Constant {
     public final static String DATETIME_CONTINUOUS_MILLI_FORMATE = "yyyyMMddHHmmssSSS";
     public final static String TIME_FORMATE = "HHmmss";
 
-    public static String HTTP_URL = "http://192.168.1.103:8081";
+    public static String HTTP_URL = "http://192.168.1.106:8081";
     public static String ACCESS_TOKEN = "";
     public static String REFRESH_TOKEN = "";
     public static String TENANT_ID = "000000";
 
     public static final String CACHE_LOGIN_KEY = "LOGIN";
-    public static User user;
+    public static UserModel user;
 
     public final static String LOG_IN = "blade-auth/oauth/token";
     public final static String PUSH_TASK = "blade-dispatchpool/scan/request";
     public final static String TASK_LIST = "blade-requestpool/requestpool/list";
+    public final static String ROBOT_DETAIL = "blade-robotInfo/robotInfo/detail";
 
     public final static String RECEIVER_MSG = "com.qy.msg.RECEIVER";
 }

+ 1 - 4
app/src/main/java/com/qy/agv/util/DataUtil.java

@@ -11,11 +11,8 @@ public class DataUtil {
     public static ArrayList<MainModel> getDir(String author){
         ArrayList<MainModel> shops = new ArrayList<MainModel>();
         addMenu(shops,getMenu(ControlActivity.class,"up2","升高","",0),author);
-        addMenu(shops,getMenu(ControlActivity.class, "empty", "", "up",0), author);
-        addMenu(shops,getMenu(ControlActivity.class,"down2","降低","",0),author);
-        addMenu(shops,getMenu(ControlActivity.class,"empty","","",0),author);
         addMenu(shops,getMenu(ControlActivity.class,"up","前进","up",0),author);
-        addMenu(shops,getMenu(ControlActivity.class,"empty","","",0),author);
+        addMenu(shops,getMenu(ControlActivity.class,"down2","降低","",0),author);
         addMenu(shops,getMenu(ControlActivity.class,"left","左转","left",0),author);
         addMenu(shops,getMenu(ControlActivity.class,"stop","停止","",0),author);
         addMenu(shops,getMenu(ControlActivity.class,"right","右转","right",0),author);

+ 28 - 11
app/src/main/res/layout/qy_robot.xml

@@ -13,7 +13,8 @@
         android:orientation="horizontal"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="20dp">
+        android:background="@color/white"
+        android:padding="15dp">
         <TextView
             android:text="机器人:"
             android:layout_width="wrap_content"
@@ -27,28 +28,44 @@
         <TextView
             android:layout_width="match_parent"
             android:layout_weight="1"
-            android:text=""
+            android:text="空闲"
             android:gravity="end"
             android:id="@+id/robotState"
             android:textColor="@color/darkblue"
             android:layout_height="wrap_content"/>
-
     </LinearLayout>
-    <TextView
+    <LinearLayout
+        android:layout_marginTop="5dp"
+        android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:layout_marginRight="10dp"
-        android:layout_marginLeft="10dp"
-        android:background="@color/dc_line"
-        />
+        android:layout_height="wrap_content">
+        <Button
+            android:id="@+id/btn_reset_lm"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@color/white"
+            android:layout_margin="3dp"
+            android:layout_weight="1"
+            android:text="重新定位"/>
+        <Button
+            android:id="@+id/btn_confirm_lm"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@color/white"
+            android:layout_margin="3dp"
+            android:layout_weight="1"
+            android:text="确认定位"/>
+
+    </LinearLayout>
     <LinearLayout
+        android:paddingTop="5dp"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
         <GridView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
             android:id="@+id/gridView"
             android:layout_gravity="left|top"
             android:listSelector="#20000000"