Browse Source

Connect 에 MainActivity 상속받을 수 있도록 수정 /ListViewAdapter Log 제거 / Run Class Thread 생성 /

june9152 5 years ago
parent
commit
af5f8f4252

+ 116 - 0
.idea/codeStyles/Project.xml

@@ -0,0 +1,116 @@
1
+<component name="ProjectCodeStyleConfiguration">
2
+  <code_scheme name="Project" version="173">
3
+    <codeStyleSettings language="XML">
4
+      <indentOptions>
5
+        <option name="CONTINUATION_INDENT_SIZE" value="4" />
6
+      </indentOptions>
7
+      <arrangement>
8
+        <rules>
9
+          <section>
10
+            <rule>
11
+              <match>
12
+                <AND>
13
+                  <NAME>xmlns:android</NAME>
14
+                  <XML_ATTRIBUTE />
15
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
16
+                </AND>
17
+              </match>
18
+            </rule>
19
+          </section>
20
+          <section>
21
+            <rule>
22
+              <match>
23
+                <AND>
24
+                  <NAME>xmlns:.*</NAME>
25
+                  <XML_ATTRIBUTE />
26
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
27
+                </AND>
28
+              </match>
29
+              <order>BY_NAME</order>
30
+            </rule>
31
+          </section>
32
+          <section>
33
+            <rule>
34
+              <match>
35
+                <AND>
36
+                  <NAME>.*:id</NAME>
37
+                  <XML_ATTRIBUTE />
38
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
39
+                </AND>
40
+              </match>
41
+            </rule>
42
+          </section>
43
+          <section>
44
+            <rule>
45
+              <match>
46
+                <AND>
47
+                  <NAME>.*:name</NAME>
48
+                  <XML_ATTRIBUTE />
49
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
50
+                </AND>
51
+              </match>
52
+            </rule>
53
+          </section>
54
+          <section>
55
+            <rule>
56
+              <match>
57
+                <AND>
58
+                  <NAME>name</NAME>
59
+                  <XML_ATTRIBUTE />
60
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
61
+                </AND>
62
+              </match>
63
+            </rule>
64
+          </section>
65
+          <section>
66
+            <rule>
67
+              <match>
68
+                <AND>
69
+                  <NAME>style</NAME>
70
+                  <XML_ATTRIBUTE />
71
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
72
+                </AND>
73
+              </match>
74
+            </rule>
75
+          </section>
76
+          <section>
77
+            <rule>
78
+              <match>
79
+                <AND>
80
+                  <NAME>.*</NAME>
81
+                  <XML_ATTRIBUTE />
82
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
83
+                </AND>
84
+              </match>
85
+              <order>BY_NAME</order>
86
+            </rule>
87
+          </section>
88
+          <section>
89
+            <rule>
90
+              <match>
91
+                <AND>
92
+                  <NAME>.*</NAME>
93
+                  <XML_ATTRIBUTE />
94
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
95
+                </AND>
96
+              </match>
97
+              <order>ANDROID_ATTRIBUTE_ORDER</order>
98
+            </rule>
99
+          </section>
100
+          <section>
101
+            <rule>
102
+              <match>
103
+                <AND>
104
+                  <NAME>.*</NAME>
105
+                  <XML_ATTRIBUTE />
106
+                  <XML_NAMESPACE>.*</XML_NAMESPACE>
107
+                </AND>
108
+              </match>
109
+              <order>BY_NAME</order>
110
+            </rule>
111
+          </section>
112
+        </rules>
113
+      </arrangement>
114
+    </codeStyleSettings>
115
+  </code_scheme>
116
+</component>

+ 2 - 3
app/src/main/java/com/example/repeater/ListViewAdapter.java

@@ -62,7 +62,6 @@ public class ListViewAdapter extends BaseAdapter {
62
             public void beforeTextChanged(CharSequence s, int start, int count, int after) {
62
             public void beforeTextChanged(CharSequence s, int start, int count, int after) {
63
                 temp_str[0] = s.toString();
63
                 temp_str[0] = s.toString();
64
 //                Log.d("getView",temp_str[0] );
64
 //                Log.d("getView",temp_str[0] );
65
-
66
             }
65
             }
67
 
66
 
68
             @Override
67
             @Override
@@ -92,7 +91,7 @@ public class ListViewAdapter extends BaseAdapter {
92
 
91
 
93
             @Override
92
             @Override
94
             public void afterTextChanged(Editable s) {
93
             public void afterTextChanged(Editable s) {
95
-                Log.d("EDIT TEXT POSITION1 : ", String.valueOf(pos));
94
+//                Log.d("EDIT TEXT POSITION1 : ", String.valueOf(pos));
96
                 filteredItemList.get(holder.ref).setVal(s.toString());
95
                 filteredItemList.get(holder.ref).setVal(s.toString());
97
 
96
 
98
             }
97
             }
@@ -111,7 +110,7 @@ public class ListViewAdapter extends BaseAdapter {
111
 
110
 
112
             @Override
111
             @Override
113
             public void afterTextChanged(Editable s) {
112
             public void afterTextChanged(Editable s) {
114
-                Log.d("EDIT TEXT POSITION2 :  ", String.valueOf(pos));
113
+//                Log.d("EDIT TEXT POSITION2 :  ", String.valueOf(pos));
115
 
114
 
116
                 filteredItemList.get(holder.ref).setVal2(s.toString());
115
                 filteredItemList.get(holder.ref).setVal2(s.toString());
117
             }
116
             }

+ 52 - 18
app/src/main/java/com/example/repeater/MainActivity.java

@@ -3,6 +3,7 @@ package com.example.repeater;
3
 import android.content.Context;
3
 import android.content.Context;
4
 import android.content.Intent;
4
 import android.content.Intent;
5
 import android.graphics.Color;
5
 import android.graphics.Color;
6
+import android.os.Handler;
6
 import android.support.v7.app.AppCompatActivity;
7
 import android.support.v7.app.AppCompatActivity;
7
 import android.os.Bundle;
8
 import android.os.Bundle;
8
 import android.util.Log;
9
 import android.util.Log;
@@ -40,27 +41,27 @@ public class MainActivity extends AppCompatActivity implements Runnable,OnClickL
40
     PrintWriter out;        //서버에 데이터를 전송한다.
41
     PrintWriter out;        //서버에 데이터를 전송한다.
41
     TextView textView_status;
42
     TextView textView_status;
42
     String data;
43
     String data;
43
-    Button button_port,button_control,listView_button;
44
+    public Button button_port,button_control,listView_button;
44
     public Context mContext;
45
     public Context mContext;
45
     private Socket socket;  //소켓생성
46
     private Socket socket;  //소켓생성
46
-
47
+    public boolean Connection_Status = false;
47
     public boolean isConnection_Status() {
48
     public boolean isConnection_Status() {
48
         return Connection_Status;
49
         return Connection_Status;
49
     }
50
     }
50
     public static int DATA_TEST = 0;
51
     public static int DATA_TEST = 0;
51
     public void setConnection_Status(boolean connection_Status) {
52
     public void setConnection_Status(boolean connection_Status) {
52
         Connection_Status = connection_Status;
53
         Connection_Status = connection_Status;
53
-        if(connection_Status){
54
-            Log.d("Port Close", "성공");
54
+        if(Connection_Status){
55
+            Log.d("setConnection_Status", String.valueOf(Connection_Status));
55
             button_port.setText("Port Close");
56
             button_port.setText("Port Close");
56
         }else{
57
         }else{
57
-            Log.d("Port Open", "성공");
58
+            Log.d("setConnection_Status", String.valueOf(Connection_Status));
58
             button_port.setText("Port Open");
59
             button_port.setText("Port Open");
59
         }
60
         }
60
     }
61
     }
61
 
62
 
62
     /*** WIFI END***/
63
     /*** WIFI END***/
63
-    private boolean Connection_Status = false;
64
+
64
 
65
 
65
     ImageButton imageButton01;
66
     ImageButton imageButton01;
66
     ImageButton imageButton02;
67
     ImageButton imageButton02;
@@ -76,7 +77,6 @@ public class MainActivity extends AppCompatActivity implements Runnable,OnClickL
76
         super.onCreate(savedInstanceState);
77
         super.onCreate(savedInstanceState);
77
         setContentView(R.layout.activity_main);
78
         setContentView(R.layout.activity_main);
78
         Log.d("MainActivity / Oncreate 실행","성공");
79
         Log.d("MainActivity / Oncreate 실행","성공");
79
-        DATA_TEST = 33;
80
         //        listview_info_set.setOnItemClickListener(this);
80
         //        listview_info_set.setOnItemClickListener(this);
81
 //        listview_rf_set.setOnItemClickListener(this);
81
 //        listview_rf_set.setOnItemClickListener(this);
82
         listView_button = findViewById(R.id.listView_button);
82
         listView_button = findViewById(R.id.listView_button);
@@ -227,23 +227,28 @@ public class MainActivity extends AppCompatActivity implements Runnable,OnClickL
227
     {
227
     {
228
         Log.d("Click Success : " + adapter_info_set.getItemId(0), "성공");
228
         Log.d("Click Success : " + adapter_info_set.getItemId(0), "성공");
229
     }
229
     }
230
-
231
-
230
+    Runnable start = new RunnableImplements(this);
231
+    Thread T = new Thread(start);
232
     public void onClick(View view) {
232
     public void onClick(View view) {
233
         switch(view.getId()) {
233
         switch(view.getId()) {
234
             case R.id.button_port:
234
             case R.id.button_port:
235
+
235
                 if(button_port.getText() == "Port Close") {
236
                 if(button_port.getText() == "Port Close") {
236
                     setConnection_Status(false);
237
                     setConnection_Status(false);
238
+                    T.interrupt();
237
                 }
239
                 }
238
                 else {
240
                 else {
239
                     // 버튼을 누르는 이벤트 발생, 이벤트 제어문이기 때문에 이벤트 발생 때마다 발동된다. 시스템이 처리하는 부분이 무한루프문에
241
                     // 버튼을 누르는 이벤트 발생, 이벤트 제어문이기 때문에 이벤트 발생 때마다 발동된다. 시스템이 처리하는 부분이 무한루프문에
240
                     //있더라도 이벤트가 발생하면 자동으로 실행된다.
242
                     //있더라도 이벤트가 발생하면 자동으로 실행된다.
241
                     try{
243
                     try{
242
-                        Runnable start = new MainActivity();
243
-                        Thread T = new Thread(start);
244
+                        setConnection_Status(true);
245
+
246
+                        Log.d("Mainactivity.class / run", "isConnection_Status : " + isConnection_Status());
247
+
248
+
244
                         T.start();
249
                         T.start();
250
+                        Log.d("Mainactivity.class / run", "button_port : " + isConnection_Status());
245
                         Log.d("MainActivity / 쓰레드 실행","성공");
251
                         Log.d("MainActivity / 쓰레드 실행","성공");
246
-                        setConnection_Status(true);
247
                     }catch (Exception e){
252
                     }catch (Exception e){
248
                         Log.e("MainActivity / 쓰레드 실행","실패");
253
                         Log.e("MainActivity / 쓰레드 실행","실패");
249
                     }
254
                     }
@@ -319,6 +324,11 @@ public class MainActivity extends AppCompatActivity implements Runnable,OnClickL
319
         this.Recv_Context =context;
324
         this.Recv_Context =context;
320
     }
325
     }
321
     String Prev_RecvStr;
326
     String Prev_RecvStr;
327
+
328
+    int sendtest = 0;
329
+    public int Send_Test(){
330
+        return ++sendtest;
331
+    }
322
     public void ListViewDataSet(int position, final String str){
332
     public void ListViewDataSet(int position, final String str){
323
         new Thread(new Runnable() {
333
         new Thread(new Runnable() {
324
             @Override
334
             @Override
@@ -331,8 +341,11 @@ public class MainActivity extends AppCompatActivity implements Runnable,OnClickL
331
 //            adapter_rf.removeItem(11);
341
 //            adapter_rf.removeItem(11);
332
                             if(str != Prev_RecvStr) {
342
                             if(str != Prev_RecvStr) {
333
                                 adapter_rf.setItem("Temperature", str, "", "READ", 11);
343
                                 adapter_rf.setItem("Temperature", str, "", "READ", 11);
344
+                                adapter_rf_set.setItem("Temperature", str, "", "READ", 11);
334
                                 Prev_RecvStr = str;
345
                                 Prev_RecvStr = str;
335
                                 adapter_rf.notifyDataSetChanged();
346
                                 adapter_rf.notifyDataSetChanged();
347
+                                adapter_rf_set.notifyDataSetChanged();
348
+                                Log.d("Mainactivity.class / runOnUiThread", "isConnection_Status : " + isConnection_Status());
336
                             }
349
                             }
337
 //
350
 //
338
                         }catch (Exception e){
351
                         }catch (Exception e){
@@ -345,17 +358,38 @@ public class MainActivity extends AppCompatActivity implements Runnable,OnClickL
345
         }).start();
358
         }).start();
346
 
359
 
347
     }
360
     }
361
+
348
     @Override
362
     @Override
349
     public void run() {
363
     public void run() {
350
-        connect con = new connect(this);
351
-        con.run();
364
+//        connect con = new connect(this);
365
+//        try {
366
+//            Log.d("YJ TEST ", String.valueOf(DATA_TEST));
367
+//            Log.d("MainActivity / Run 함수 실행", "성공");
368
+//        } catch (Exception e) {
369
+//            Log.e("MainActivity / Run 함수 실행", "실패");
370
+//            //  setConnection_Status(false);
371
+//        }
372
+//        con.run();
373
+    }
374
+
375
+}
376
+class RunnableImplements implements Runnable {
377
+    MainActivity mActivity = null;
378
+
379
+    public RunnableImplements(MainActivity Activity) {
380
+        this.mActivity = Activity;
381
+    }
382
+
383
+    public void run(){
384
+        connect con = new connect(this.mActivity);
352
         try {
385
         try {
353
-            Log.d("YJ TEST ", String.valueOf(DATA_TEST));
386
+//            Log.d("YJ TEST ", String.valueOf(DATA_TEST));
354
             Log.d("MainActivity / Run 함수 실행", "성공");
387
             Log.d("MainActivity / Run 함수 실행", "성공");
355
         } catch (Exception e) {
388
         } catch (Exception e) {
356
             Log.e("MainActivity / Run 함수 실행", "실패");
389
             Log.e("MainActivity / Run 함수 실행", "실패");
357
-            setConnection_Status(false);
390
+            //  setConnection_Status(false);
358
         }
391
         }
392
+        con.run();
393
+        // 작업
359
     }
394
     }
360
-
361
-}
395
+}

+ 7 - 6
app/src/main/java/com/example/repeater/connect.java

@@ -13,28 +13,29 @@ public class connect implements Runnable  {
13
     private Socket socket;
13
     private Socket socket;
14
     private Timer timer = null;
14
     private Timer timer = null;
15
     private MainActivity mAcitivity = null;
15
     private MainActivity mAcitivity = null;
16
-    public connect(MainActivity Acitivity) {
16
+    private Context mContext = null;
17
+    public connect(MainActivity Activity) {
17
         try {
18
         try {
18
             socket = new Socket(ip, port);    //서버에 연결
19
             socket = new Socket(ip, port);    //서버에 연결
19
             timer = new Timer();
20
             timer = new Timer();
20
-            this.mAcitivity=Acitivity;
21
+            this.mAcitivity=Activity;
21
             Log.d("connect.class / 소켓 연결", "성공");
22
             Log.d("connect.class / 소켓 연결", "성공");
23
+//            MainActivity t = (MainActivity)context.getApplicationContext();
24
+            Log.d("connect.class / run", "isConnection_Status " + String.valueOf(this.mAcitivity.isConnection_Status()));
22
         }
25
         }
23
         catch(Exception e) {
26
         catch(Exception e) {
24
             Log.e("connect.class / 소켓 연결", "실패");
27
             Log.e("connect.class / 소켓 연결", "실패");
25
-            ((MainActivity)Acitivity).setConnection_Status(false);
28
+            //    ((MainActivity)Acitivity).setConnection_Status(false);
26
         }
29
         }
27
-        Log.e("run", String.valueOf((Acitivity).DATA_TEST));
28
     }
30
     }
29
     @Override
31
     @Override
30
     public void run() {
32
     public void run() {
31
     // TODO Auto-generated method stub
33
     // TODO Auto-generated method stub
32
-
33
         send s = new send(socket,this.mAcitivity);    //서버에 연결된 socket을 생성자를 통해 넘긴다
34
         send s = new send(socket,this.mAcitivity);    //서버에 연결된 socket을 생성자를 통해 넘긴다
34
         receive r = new receive(socket,this.mAcitivity);  //서버에 연결된 socket을 생성자를 통해 넘긴다
35
         receive r = new receive(socket,this.mAcitivity);  //서버에 연결된 socket을 생성자를 통해 넘긴다
35
-//        ((MainActivity)this.activity).RecvContext_set(r);
36
         timer.scheduleAtFixedRate(s, 1000, 7000);
36
         timer.scheduleAtFixedRate(s, 1000, 7000);
37
         r.run();        //스레드 실행
37
         r.run();        //스레드 실행
38
+        timer.cancel();
38
     }
39
     }
39
 }
40
 }
40
 
41
 

+ 2 - 10
app/src/main/java/com/example/repeater/receive.java

@@ -37,24 +37,16 @@ public class receive implements Runnable{
37
         // TODO Auto-generated method stub
37
         // TODO Auto-generated method stub
38
 
38
 
39
         try {
39
         try {
40
+
40
             while(true) {
41
             while(true) {
41
                 myCompleteMessage = new StringBuilder();    //StringBuilder 객체 초기화
42
                 myCompleteMessage = new StringBuilder();    //StringBuilder 객체 초기화
42
                 buffRead = new BufferedReader(new InputStreamReader(m_socket.getInputStream()));
43
                 buffRead = new BufferedReader(new InputStreamReader(m_socket.getInputStream()));
43
                 numberOfBytesRead = buffRead.read(buff, 0, buff.length);//char 배열 buff에 받아들이고
44
                 numberOfBytesRead = buffRead.read(buff, 0, buff.length);//char 배열 buff에 받아들이고
44
                 myCompleteMessage.append(buff, 0, numberOfBytesRead); //buff의 데이터를 StringBuilder객체로 이동
45
                 myCompleteMessage.append(buff, 0, numberOfBytesRead); //buff의 데이터를 StringBuilder객체로 이동
45
                 temp = Integer.parseInt(myCompleteMessage.toString()) * ADC_Calc;
46
                 temp = Integer.parseInt(myCompleteMessage.toString()) * ADC_Calc;
46
-                temp = ((temp  * 1000) -500) / 10;
47
+                temp = ((temp  * 1000) -500) / 10;/*ADC값 계산 식 */
47
                 this.mAcitivity.ListViewDataSet(11, String.valueOf(temp));
48
                 this.mAcitivity.ListViewDataSet(11, String.valueOf(temp));
48
                 Log.d("receive.class / 데이터 수신", "성공 : DATA : " + temp +">>> LENGTH : " +numberOfBytesRead);//toString메소드를 통해
49
                 Log.d("receive.class / 데이터 수신", "성공 : DATA : " + temp +">>> LENGTH : " +numberOfBytesRead);//toString메소드를 통해
49
-                /*
50
-                myCompleteMessage = new StringBuilder();    //StringBuilder 객체 초기화
51
-                Log.d("receive1.class / 데이터 수신", "성공 : " + myCompleteMessage.toString());//toString메소드를 통해
52
-                numberOfBytesRead = buffRead.read(buff, 0, buff.length);//char 배열 buff에 받아들이고
53
-                Log.d("receive2.class / 데이터 수신", "성공 : " + myCompleteMessage.toString());//toString메소드를 통해
54
-                //받아들인 byte수를 반환
55
-                myCompleteMessage.append(buff, 2, numberOfBytesRead-2); //buff의 데이터를 StringBuilder객체로 이동
56
-                Log.d("receive.class / 데이터 수신", "성공 : " + myCompleteMessage.toString());//toString메소드를 통해
57
-                //String으로 변환*/
58
             }
50
             }
59
         } catch(Exception e) {
51
         } catch(Exception e) {
60
             Log.e("receive.class / 데이터 수신", "실패" + numberOfBytesRead);
52
             Log.e("receive.class / 데이터 수신", "실패" + numberOfBytesRead);

+ 6 - 4
app/src/main/java/com/example/repeater/send.java

@@ -15,10 +15,10 @@ public class send extends TimerTask {
15
     private Socket m_socket = null;
15
     private Socket m_socket = null;
16
     private String message = "hello!";
16
     private String message = "hello!";
17
     private byte[] b = {'d','a','t','a','1','2','\r','\n'};
17
     private byte[] b = {'d','a','t','a','1','2','\r','\n'};
18
-    private Context mContext = null;
19
-    public send(Socket socket, Context context){
18
+    private MainActivity mAcitivity = null;
19
+    public send(Socket socket,MainActivity Acitivity){
20
         try{
20
         try{
21
-            this.mContext = context;
21
+            this.mAcitivity = Acitivity;
22
             m_socket = socket;
22
             m_socket = socket;
23
             out = socket.getOutputStream();
23
             out = socket.getOutputStream();
24
             dos = new DataOutputStream(out);
24
             dos = new DataOutputStream(out);
@@ -30,7 +30,9 @@ public class send extends TimerTask {
30
     @Override
30
     @Override
31
     public void run() {
31
     public void run() {
32
         try {
32
         try {
33
-            dos.writeBytes(" data12\r\n");
33
+            String testdata = String.valueOf((this.mAcitivity).Send_Test());
34
+            Log.d("send.class / run", testdata);
35
+            dos.writeBytes(testdata);
34
             //dos.write(b, 0, b.length);
36
             //dos.write(b, 0, b.length);
35
             Log.d("send.class / 메시지 전송", "성공");
37
             Log.d("send.class / 메시지 전송", "성공");
36
         }catch(Exception e){
38
         }catch(Exception e){

+ 1 - 1
app/src/main/res/layout/activity_main.xml

@@ -25,7 +25,7 @@
25
             android:layout_width="match_parent"
25
             android:layout_width="match_parent"
26
             android:layout_height="wrap_content"
26
             android:layout_height="wrap_content"
27
             android:text="Port Open"
27
             android:text="Port Open"
28
-            android:onClick="onClick" />
28
+            android:onClick="onClick"  />
29
     </LinearLayout>
29
     </LinearLayout>
30
 
30
 
31
     <LinearLayout
31
     <LinearLayout

+ 1 - 1
build.gradle

@@ -7,7 +7,7 @@ buildscript {
7
         
7
         
8
     }
8
     }
9
     dependencies {
9
     dependencies {
10
-        classpath 'com.android.tools.build:gradle:3.4.2'
10
+        classpath 'com.android.tools.build:gradle:3.5.0'
11
         
11
         
12
         // NOTE: Do not place your application dependencies here; they belong
12
         // NOTE: Do not place your application dependencies here; they belong
13
         // in the individual module build.gradle files
13
         // in the individual module build.gradle files

+ 2 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
1
-#Mon Jun 24 17:30:00 KST 2019
1
+#Thu Aug 22 21:32:04 KST 2019
2
 distributionBase=GRADLE_USER_HOME
2
 distributionBase=GRADLE_USER_HOME
3
 distributionPath=wrapper/dists
3
 distributionPath=wrapper/dists
4
 zipStoreBase=GRADLE_USER_HOME
4
 zipStoreBase=GRADLE_USER_HOME
5
 zipStorePath=wrapper/dists
5
 zipStorePath=wrapper/dists
6
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
6
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip