소스 검색

收到接收器ack回复同时转发给服务器

weizhengliang 2 년 전
부모
커밋
8bc1834c23
2개의 변경된 파일37개의 추가작업 그리고 2개의 파일을 삭제
  1. 34 1
      app/src/main/java/com/wdkl/ncs/s433/transbox/MainActivity.java
  2. 3 1
      settings.gradle

+ 34 - 1
app/src/main/java/com/wdkl/ncs/s433/transbox/MainActivity.java

@@ -211,7 +211,39 @@ public class MainActivity extends SerialPortActivity  {
 
     @Override
     protected void onDataReceivedString(String data) {
-        Log.e("TAG", "receiveData: " + data);
+        //$8C:FC:A0:F1:01:A7{"action":"ACK","type":"S433"}#
+        Log.e(TAG, "receiveData: " + data);
+
+        if (BuildConfig.DEBUG) {
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    if (mReception != null) {
+                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                        mReception.append(sdf.format(new Date()) + " 收到数据:" + data + "\n");
+                    }
+                }
+            });
+        }
+
+        //收到433回复后转发给服务器
+        if (data.startsWith("$") && data.endsWith("#")) {
+            //只有收到的是ACK才转发服务器
+            String tempData = data.substring(1, data.length()-1);
+            int sepIndex = tempData.indexOf("{");
+            String mac = tempData.substring(0, sepIndex);
+            String tcpData = tempData.substring(sepIndex);
+            //Log.e("Application", "tempData: " + tempData + ", mac: " + mac + ", tcpData: " + tcpData);
+            TcpModel tcpModel = TcpModel.getModelByJson(tcpData);
+            if (tcpModel != null) {
+                if (TcpAction.S433Action.ACK == tcpModel.getAction()) {
+                    JSONObject jsonData = new JSONObject();
+                    jsonData.put("receiverMac", mac);
+                    tcpModel.setData(jsonData);
+                    TcpClient.getInstance().sendMsg(tcpModel.toJson());
+                }
+            }
+        }
     }
 
     private void openNetworkDebug() {
@@ -415,6 +447,7 @@ public class MainActivity extends SerialPortActivity  {
                                 String mac = tcpData.getString("receiverMac");
                                 s433Send.put("data", data);
                                 s433Data.add(mac + s433Send.toJSONString());
+
                                 send433Data();
                             }
                         }

+ 3 - 1
settings.gradle

@@ -1,2 +1,4 @@
-include ':app', 'serialport'
+rootProject.name = "433_transbox"
+include ':app'
+include ':serialport'