瀏覽代碼

ADC 값 출력 하도록 어플 수정 / UI 수정 할 수 있는 쓰레드 추가 / 모든 Context 제거 MainActivity 로 변경

june9152 5 年之前
父節點
當前提交
2939a0e879

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -1,5 +1,6 @@
1 1
 <?xml version="1.0" encoding="utf-8"?>
2 2
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+    xmlns:tools="http://schemas.android.com/tools"
3 4
     package="com.example.repeater">
4 5
 
5 6
     <uses-permission android:name="android.permission.INTERNET" />

+ 114 - 14
app/src/main/java/com/example/repeater/ListViewAdapter.java

@@ -1,15 +1,15 @@
1 1
 package com.example.repeater;
2 2
 
3 3
 import android.content.Context;
4
-import android.graphics.drawable.Drawable;
5
-import android.support.annotation.ColorInt;
4
+import android.text.Editable;
5
+import android.text.TextWatcher;
6
+import android.util.Log;
6 7
 import android.view.LayoutInflater;
7 8
 import android.view.View;
8 9
 import android.view.ViewGroup;
9 10
 import android.widget.BaseAdapter;
10 11
 import android.widget.Button;
11 12
 import android.widget.EditText;
12
-import android.widget.ImageView;
13 13
 import android.widget.TextView;
14 14
 
15 15
 import java.util.ArrayList;
@@ -17,6 +17,7 @@ import java.util.ArrayList;
17 17
 public class ListViewAdapter extends BaseAdapter {
18 18
     // Adapter에 추가된 데이터를 저장하기 위한 ArrayList
19 19
     private ArrayList<ListViewItem> listViewItemList = new ArrayList<ListViewItem>() ;
20
+    private ArrayList<ListViewItem> filteredItemList = listViewItemList;
20 21
 
21 22
     // ListViewAdapter의 생성자
22 23
     public ListViewAdapter() {
@@ -26,29 +27,113 @@ public class ListViewAdapter extends BaseAdapter {
26 27
     // Adapter에 사용되는 데이터의 개수를 리턴. : 필수 구현
27 28
     @Override
28 29
     public int getCount() {
29
-        return listViewItemList.size() ;
30
+        return filteredItemList.size() ;
30 31
     }
31 32
 
32 33
     // position에 위치한 데이터를 화면에 출력하는데 사용될 View를 리턴. : 필수 구현
33 34
     @Override
34
-    public View getView(int position, View convertView, ViewGroup parent) {
35
+    public View getView(final int position, View convertView, ViewGroup parent) {
35 36
         final int pos = position;
37
+//        final int pos = filteredItemList.get(position).getNum();
36 38
         final Context context = parent.getContext();
37
-
39
+        final String[] temp_str = new String[1];
38 40
         // "listview_item" Layout을 inflate하여 convertView 참조 획득.
41
+        final ViewHolder holder;
42
+
43
+
39 44
         if (convertView == null) {
45
+            holder = new ViewHolder();
40 46
             LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
41 47
             convertView = inflater.inflate(R.layout.activity_list_view_item, parent, false);
48
+            holder.editText = (EditText)convertView.findViewById(R.id.editText);
49
+            convertView.setTag(holder);
50
+        }else{
51
+            holder = (ViewHolder)convertView.getTag();
42 52
         }
43
-
53
+        holder.ref = position;
54
+//        Log.d("getView", String.valueOf(position));
44 55
         // 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
45 56
         TextView descTextView = (TextView) convertView.findViewById(R.id.textView13) ;
46 57
         TextView valTextView  = (TextView) convertView.findViewById(R.id.textView14) ;
47
-        EditText valeditText  = (EditText) convertView.findViewById(R.id.editText) ;
58
+
59
+        final EditText valeditText  = (EditText) convertView.findViewById(R.id.editText) ;
60
+        valeditText.addTextChangedListener(new TextWatcher() {
61
+            @Override
62
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
63
+                temp_str[0] = s.toString();
64
+//                Log.d("getView",temp_str[0] );
65
+
66
+            }
67
+
68
+            @Override
69
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
70
+            }
71
+
72
+            @Override
73
+            public void afterTextChanged(Editable s) {
74
+                Log.d("getView",s.toString() );
75
+                filteredItemList.get(holder.ref).setVal(s.toString());
76
+
77
+//                valeditText.setText(s.toString());
78
+//                valeditText.setText();
79
+            }
80
+        });
48 81
         EditText valeditText1  = (EditText) convertView.findViewById(R.id.editText1) ;
49
-        EditText valeditText2  = (EditText) convertView.findViewById(R.id.editText2) ;
50
-        Button valbutton      = (Button) convertView.findViewById(R.id.button) ;
82
+        valeditText1.addTextChangedListener(new TextWatcher() {
83
+            @Override
84
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
85
+
86
+            }
87
+
88
+            @Override
89
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
51 90
 
91
+            }
92
+
93
+            @Override
94
+            public void afterTextChanged(Editable s) {
95
+                Log.d("EDIT TEXT POSITION1 : ", String.valueOf(pos));
96
+                filteredItemList.get(holder.ref).setVal(s.toString());
97
+
98
+            }
99
+        });
100
+        EditText valeditText2  = (EditText) convertView.findViewById(R.id.editText2) ;
101
+        valeditText2.addTextChangedListener(new TextWatcher() {
102
+            @Override
103
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
104
+
105
+            }
106
+
107
+            @Override
108
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
109
+
110
+            }
111
+
112
+            @Override
113
+            public void afterTextChanged(Editable s) {
114
+                Log.d("EDIT TEXT POSITION2 :  ", String.valueOf(pos));
115
+
116
+                filteredItemList.get(holder.ref).setVal2(s.toString());
117
+            }
118
+        });
119
+        final Button valbutton      = (Button) convertView.findViewById(R.id.listView_button) ;
120
+        valbutton.setOnClickListener(new Button.OnClickListener() {
121
+            public void onClick(View v) {
122
+                if(valbutton.getText() =="ON") {
123
+                    valbutton.setText("OFF");
124
+                }
125
+                else if(valbutton.getText()  == "OFF") {
126
+                    valbutton.setText("ON");
127
+                }
128
+                else if (valbutton.getText()  == "MANUAL") {
129
+                    valbutton.setText("AUTO");
130
+                }
131
+                else if (valbutton.getText()  == "AUTO") {
132
+                    valbutton.setText("MANUAL");
133
+                }
134
+              //  valbutton.setText("OFF");
135
+            }
136
+        });
52 137
         // Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
53 138
         ListViewItem listViewItem = listViewItemList.get(position);
54 139
         valTextView.setVisibility(View.VISIBLE);
@@ -101,7 +186,6 @@ public class ListViewAdapter extends BaseAdapter {
101 186
 //        descTextView.setBackgroundColor();
102 187
         return convertView;
103 188
     }
104
-
105 189
     // 지정한 위치(position)에 있는 데이터와 관계된 아이템(row)의 ID를 리턴. : 필수 구현
106 190
     @Override
107 191
     public long getItemId(int position) {
@@ -111,9 +195,19 @@ public class ListViewAdapter extends BaseAdapter {
111 195
     // 지정한 위치(position)에 있는 데이터 리턴 : 필수 구현
112 196
     @Override
113 197
     public Object getItem(int position) {
114
-        return listViewItemList.get(position) ;
198
+        return filteredItemList.get(position) ;
199
+    }
200
+    public void setItem(String desc,String val,String val2,String mode,int position) {
201
+        ListViewItem item = new ListViewItem();
202
+        item.setDesc(desc);
203
+        item.setMode(mode);
204
+        item.setVal(val);
205
+        item.setVal2(val2);
206
+        filteredItemList.set(position,item) ;
207
+    }
208
+    public void removeItem(int position) {
209
+        filteredItemList.remove(position);
115 210
     }
116
-
117 211
     // 아이템 데이터 추가를 위한 함수. 개발자가 원하는대로 작성 가능.
118 212
     public void addItem(String desc,String val,String val2,String mode) {
119 213
         ListViewItem item = new ListViewItem();
@@ -123,6 +217,12 @@ public class ListViewAdapter extends BaseAdapter {
123 217
         item.setVal(val);
124 218
         item.setVal2(val2);
125 219
 
126
-        listViewItemList.add(item);
220
+        filteredItemList.add(item);
127 221
     }
222
+}
223
+class ViewHolder {
224
+    EditText editText;
225
+    EditText editText1;
226
+    EditText editText2;
227
+    int ref;
128 228
 }

+ 175 - 72
app/src/main/java/com/example/repeater/MainActivity.java

@@ -1,15 +1,20 @@
1 1
 package com.example.repeater;
2 2
 
3
+import android.content.Context;
4
+import android.content.Intent;
5
+import android.graphics.Color;
3 6
 import android.support.v7.app.AppCompatActivity;
4 7
 import android.os.Bundle;
5 8
 import android.util.Log;
6 9
 import android.view.View;
7 10
 import android.view.ViewGroup;
11
+import android.widget.AdapterView;
8 12
 import android.widget.BaseAdapter;
9 13
 import android.widget.Button;
10 14
 import android.widget.ImageButton;
11 15
 import android.widget.ListView;
12 16
 import android.widget.TextView;
17
+import android.widget.Toast;
13 18
 import android.widget.ToggleButton;
14 19
 
15 20
 import java.io.BufferedReader;
@@ -23,8 +28,9 @@ import java.net.Socket;
23 28
 import java.net.SocketAddress;
24 29
 import java.util.ArrayList;
25 30
 import java.util.HashMap;
31
+import android.view.View.OnClickListener;
26 32
 
27
-public class MainActivity extends AppCompatActivity implements Runnable {
33
+public class MainActivity extends AppCompatActivity implements Runnable,OnClickListener {
28 34
     private ListView listview_info;
29 35
     private ListView listview_rf;
30 36
     private ListView listview_info_set;
@@ -34,14 +40,14 @@ public class MainActivity extends AppCompatActivity implements Runnable {
34 40
     PrintWriter out;        //서버에 데이터를 전송한다.
35 41
     TextView textView_status;
36 42
     String data;
37
-    Button button_port,button_control;
43
+    Button button_port,button_control,listView_button;
44
+    public Context mContext;
38 45
     private Socket socket;  //소켓생성
39 46
 
40
-
41 47
     public boolean isConnection_Status() {
42 48
         return Connection_Status;
43 49
     }
44
-
50
+    public static int DATA_TEST = 0;
45 51
     public void setConnection_Status(boolean connection_Status) {
46 52
         Connection_Status = connection_Status;
47 53
         if(connection_Status){
@@ -58,16 +64,29 @@ public class MainActivity extends AppCompatActivity implements Runnable {
58 64
 
59 65
     ImageButton imageButton01;
60 66
     ImageButton imageButton02;
67
+    public static ListViewAdapter adapter_infor;
68
+    public static ListViewAdapter adapter_rf;
69
+    public static ListViewAdapter adapter_info_set;
70
+    public static ListViewAdapter adapter_rf_set;
71
+
72
+
61 73
     @Override
62 74
     protected void onCreate(Bundle savedInstanceState) {
63 75
 
64 76
         super.onCreate(savedInstanceState);
65 77
         setContentView(R.layout.activity_main);
66
-
67
-
78
+        Log.d("MainActivity / Oncreate 실행","성공");
79
+        DATA_TEST = 33;
80
+        //        listview_info_set.setOnItemClickListener(this);
81
+//        listview_rf_set.setOnItemClickListener(this);
82
+        listView_button = findViewById(R.id.listView_button);
68 83
         imageButton01 = findViewById(R.id.imageButton01);
69 84
         imageButton02 = findViewById(R.id.imageButton02);
70
-
85
+        // Adapter 생성
86
+        adapter_infor = new ListViewAdapter();
87
+        adapter_rf = new ListViewAdapter();
88
+        adapter_info_set = new ListViewAdapter();
89
+        adapter_rf_set = new ListViewAdapter();
71 90
         listview_info = findViewById(R.id.listview_info);
72 91
         listview_rf = findViewById(R.id.listview_rf);
73 92
         listview_info_set = findViewById(R.id.listview_info_set);
@@ -79,85 +98,137 @@ public class MainActivity extends AppCompatActivity implements Runnable {
79 98
         button_port = findViewById(R.id.button_port);
80 99
         button_control = findViewById(R.id.button_control);
81 100
         textView_status = findViewById(R.id.textView_status);
82
-        ListView listview ;
83
-        ListViewAdapter adapter_infor;
84
-        ListViewAdapter adapter_rf;
85
-        ListViewAdapter adapter_info_set;
86
-        ListViewAdapter adapter_rf_set;
101
+        new Thread(new Runnable() {
102
+            @Override
103
+            public void run() {
104
+                // runOnUiThread를 추가하고 그 안에 UI작업을 한다.
105
+                runOnUiThread(new Runnable() {
106
+                    @Override
107
+                    public void run() {
87 108
 
88
-        // Adapter 생성
89
-        adapter_infor = new ListViewAdapter() ;
90
-        adapter_rf = new ListViewAdapter();
91
-        adapter_info_set = new ListViewAdapter() ;
92
-        adapter_rf_set = new ListViewAdapter();
109
+                    }
110
+                });
111
+            }
112
+        }).start();
93 113
 
114
+        ListView listview;
94 115
         // 리스트뷰 참조 및 Adapter달기
95 116
         listview = (ListView) findViewById(R.id.listview_info);
96 117
         listview.setAdapter(adapter_infor);
97 118
 
98 119
 
99
-        adapter_infor.addItem("firm info.","0.1Ver","","READ");
100
-        adapter_infor.addItem("FPGA Ver.","0.2Ver","","READ");
101
-        adapter_infor.addItem("F/W Ver.","0.3Ver","","READ");
102
-        adapter_infor.addItem("Config No.","0.4Ver","","READ");
103
-        adapter_infor.addItem("Sub Frame No.","0.5Ver","","READ");
104
-        adapter_infor.addItem("CH1 TTG","0.6Ver","","READ");
105
-        adapter_infor.addItem("CH1 RTG","0.7Ver","","READ");
106
-        adapter_infor.addItem("CH2 TTG","0.8Ver","","READ");
107
-        adapter_infor.addItem("CH2 RTG","0.9Ver","","READ");
108
-        adapter_infor.addItem("CH1 Polarity","1.1Ver","","READ");
109
-        adapter_infor.addItem("CH1 Default","1.2Ver","","READ");
110
-        adapter_infor.addItem("CH2 Polarity","1.1Ver","","READ");
111
-        adapter_infor.addItem("CH2 Default","1.2Ver","","READ");
112
-        adapter_infor.addItem("Auto Config","1.3Ver","","READ");
120
+        adapter_infor.addItem("firm info.", "0.1Ver", "", "READ");
121
+        adapter_infor.addItem("FPGA Ver.", "0.2Ver", "", "READ");
122
+        adapter_infor.addItem("F/W Ver.", "0.3Ver", "", "READ");
123
+        adapter_infor.addItem("Config No.", "0.4Ver", "", "READ");
124
+        adapter_infor.addItem("Sub Frame No.", "0.5Ver", "", "READ");
125
+        adapter_infor.addItem("CH1 TTG", "0.6Ver", "", "READ");
126
+        adapter_infor.addItem("CH1 RTG", "0.7Ver", "", "READ");
127
+        adapter_infor.addItem("CH2 TTG", "0.8Ver", "", "READ");
128
+        adapter_infor.addItem("CH2 RTG", "0.9Ver", "", "READ");
129
+        adapter_infor.addItem("CH1 Polarity", "1.1Ver", "", "READ");
130
+        adapter_infor.addItem("CH1 Default", "1.2Ver", "", "READ");
131
+        adapter_infor.addItem("CH2 Polarity", "1.1Ver", "", "READ");
132
+        adapter_infor.addItem("CH2 Default", "1.2Ver", "", "READ");
133
+        adapter_infor.addItem("Auto Config", "1.3Ver", "", "READ");
113 134
 
114 135
         listview = (ListView) findViewById(R.id.listview_info_set);
115 136
         listview.setAdapter(adapter_info_set);
116
-        adapter_info_set.addItem("firm info.","0.1Ver","","READ");
117
-        adapter_info_set.addItem("FPGA Ver.","0.2Ver","","READ");
118
-        adapter_info_set.addItem("F/W Ver.","0.3Ver","","READ");
119
-        adapter_info_set.addItem("Config No.","0.4Ver","","EDIT");
120
-        adapter_info_set.addItem("Sub Frame No.","0.5Ver","","EDIT");
121
-        adapter_info_set.addItem("CH1 TTG","0.6Ver","","EDIT");
122
-        adapter_info_set.addItem("CH1 RTG","0.7Ver","","EDIT");
123
-        adapter_info_set.addItem("CH2 TTG","0.8Ver","","EDIT");
124
-        adapter_info_set.addItem("CH2 RTG","0.9Ver","","EDIT");
125
-        adapter_info_set.addItem("CH1 Polarity","1.1Ver","","BUTTON");
126
-        adapter_info_set.addItem("CH1 Default","1.2Ver","","BUTTON");
127
-        adapter_info_set.addItem("CH2 Polarity","1.1Ver","","BUTTON");
128
-        adapter_info_set.addItem("CH2 Default","1.2Ver","","BUTTON");
129
-        adapter_info_set.addItem("Auto Config","1.3Ver","","BUTTON");
137
+        adapter_info_set.addItem("firm info.", "0.1Ver", "", "READ");
138
+        adapter_info_set.addItem("FPGA Ver.", "0.2Ver", "", "READ");
139
+        adapter_info_set.addItem("F/W Ver.", "0.3Ver", "", "READ");
140
+        adapter_info_set.addItem("Config No.", "", "", "EDIT");
141
+        adapter_info_set.addItem("Sub Frame No.", "", "", "EDIT");
142
+        adapter_info_set.addItem("CH1 TTG", "", "", "EDIT");
143
+        adapter_info_set.addItem("CH1 RTG", "", "", "EDIT");
144
+        adapter_info_set.addItem("CH2 TTG", "", "", "EDIT");
145
+        adapter_info_set.addItem("CH2 RTG", "", "", "EDIT");
146
+        adapter_info_set.addItem("CH1 Polarity", "ON", "", "BUTTON");
147
+        adapter_info_set.addItem("CH1 Default", "ON", "", "BUTTON");
148
+        adapter_info_set.addItem("CH2 Polarity", "ON", "", "BUTTON");
149
+        adapter_info_set.addItem("CH2 Default", "ON", "", "BUTTON");
150
+        adapter_info_set.addItem("Auto Config", "MANUAL", "", "BUTTON");
151
+        // 아이템을 [클릭]시의 이벤트 리스너를 등록
152
+/*        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
153
+            @Override
154
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
155
+                ListView listView = (ListView) parent;
130 156
 
157
+                //Log.d("data"+position+"  OK","성공");
158
+                // TODO 아이템 클릭시에 구현할 내용은 여기에.
159
+                // String item = (String) listView.getItemAtPosition(position);
160
+                String item = Integer.toString(position);
161
+                Toast.makeText(MainActivity.this, item, Toast.LENGTH_LONG).show();
162
+            }
163
+        });*/
131 164
         listview = (ListView) findViewById(R.id.listview_rf);
132 165
         listview.setAdapter(adapter_rf);
133
-        adapter_rf.addItem("input ATT","0.1Ver","","READ");
134
-        adapter_rf.addItem("Output ATT","0.2Ver","","READ");
135
-        adapter_rf.addItem("Input Offset ATT","0.3Ver","","READ");
136
-        adapter_rf.addItem("Output Offset ATT","0.4Ver","","READ");
137
-        adapter_rf.addItem("Gain(dB)","0.5Ver","","READ");
138
-        adapter_rf.addItem("ALC Level","0.6Ver","","READ");
139
-        adapter_rf.addItem("PA Enable","0.7Ver","","READ");
140
-        adapter_rf.addItem("EX PA Enable","0.8Ver","","READ");
141
-        adapter_rf.addItem("RF PLL Freq","0.9Ver","","READ");
142
-        adapter_rf.addItem("AGD Level","1.1Ver","","READ");
143
-        adapter_rf.addItem("ISO Level","1.2Ver","","READ");
144
-        adapter_rf.addItem("Temperature","1.3Ver","","READ");
166
+        adapter_rf.addItem("input ATT", "0 Dbm", "", "READ");
167
+        adapter_rf.addItem("Output ATT", "0 Dbm", "", "READ");
168
+        adapter_rf.addItem("Input Offset ATT", "0 Dbm", "", "READ");
169
+        adapter_rf.addItem("Output Offset ATT", "0 Dbm", "", "READ");
170
+        adapter_rf.addItem("Gain(dB)", "0 dB", "", "READ");
171
+        adapter_rf.addItem("ALC Level", "0.6Ver", "", "READ");
172
+        adapter_rf.addItem("PA Enable", "0.7Ver", "", "READ");
173
+        adapter_rf.addItem("EX PA Enable", "0.8Ver", "", "READ");
174
+        adapter_rf.addItem("RF PLL Freq", "0.9Ver", "", "READ");
175
+        adapter_rf.addItem("AGD Level", "1.1Ver", "", "READ");
176
+        adapter_rf.addItem("ISO Level", "1.2Ver", "", "READ");
177
+        adapter_rf.addItem("Temperature", "1.3Ver", "", "READ");
145 178
 
146 179
         listview = (ListView) findViewById(R.id.listview_rf_set);
147 180
         listview.setAdapter(adapter_rf_set);
148
-        adapter_rf_set.addItem("input ATT","","","EDIT2");
149
-        adapter_rf_set.addItem("Output ATT","","","EDIT2");
150
-        adapter_rf_set.addItem("Input Offset ATT","","","EDIT2");
151
-        adapter_rf_set.addItem("Output Offset ATT","","","EDIT2");
152
-        adapter_rf_set.addItem("Gain(dB)","","","EDIT2");
153
-        adapter_rf_set.addItem("ALC Level","","","EDIT2");
154
-        adapter_rf_set.addItem("PA Enable","0.7Ver","","BUTTON");
155
-        adapter_rf_set.addItem("EX PA Enable","0.8Ver","","BUTTON");
156
-        adapter_rf_set.addItem("RF PLL Freq","","","EDIT");
157
-        adapter_rf_set.addItem("AGD Level","","","EDIT");
158
-        adapter_rf_set.addItem("ISO Level","1.2Ver","","READ");
159
-        adapter_rf_set.addItem("Temperature","1.3Ver","","READ");
181
+        adapter_rf_set.addItem("input ATT", " ", " 1", "EDIT2");
182
+        adapter_rf_set.addItem("Output ATT", " ", " ", "EDIT2");
183
+        adapter_rf_set.addItem("Input Offset ATT", "", " ", "EDIT2");
184
+        adapter_rf_set.addItem("Output Offset ATT", "", " ", "EDIT2");
185
+        adapter_rf_set.addItem("Gain(dB)", " ", " ", "EDIT2");
186
+        adapter_rf_set.addItem("ALC Level", " ", " ", "EDIT2");
187
+        adapter_rf_set.addItem("PA Enable", "ON", "", "BUTTON");
188
+        adapter_rf_set.addItem("EX PA Enable", "ON", "", "BUTTON");
189
+        adapter_rf_set.addItem("RF PLL Freq", "", "", "EDIT");
190
+        adapter_rf_set.addItem("AGD Level", "", "", "EDIT");
191
+        adapter_rf_set.addItem("ISO Level", "1.2Ver", "", "READ");
192
+        adapter_rf_set.addItem("Temperature", "1.3Ver", "", "READ");
193
+        // 아이템을 [클릭]시의 이벤트 리스너를 등록
194
+      /*  listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
195
+                @Override
196
+                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
197
+                ListView listView = (ListView) parent;
198
+
199
+                //Log.d("data"+position+"  OK","성공");
200
+                // TODO 아이템 클릭시에 구현할 내용은 여기에.
201
+               // String item = (String) listView.getItemAtPosition(position);
202
+                String item = Integer.toString(position);
203
+                Toast.makeText(MainActivity.this, item, Toast.LENGTH_LONG).show();
204
+            }
205
+        });
206
+
207
+        // 아이템을 [선택]시의 이벤트 리스너를 등록
208
+        listview.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
209
+            @Override
210
+            public void onItemSelected(AdapterView<?> parent, View view,
211
+                                       int position, long id) {
212
+                ListView listView = (ListView) parent;
213
+                // TODO 아이템 선택시에 구현할 내용은 여기에.
214
+                String item = (String) listView.getSelectedItem();
215
+                Toast.makeText(MainActivity.this, item, Toast.LENGTH_LONG).show();
216
+            }
217
+            @Override
218
+            public void onNothingSelected(AdapterView<?> parent) {
219
+            }
220
+        });*/
221
+
222
+    }
223
+    /* (non-Javadoc)
224
+     * @see android.widget.AdapterView.OnItemClickListener#onItemClick(android.widget.AdapterView, android.view.View, int, long)
225
+     */
226
+    public void onItemClick (AdapterView < ? > parent, View v,int position, long id)
227
+    {
228
+        Log.d("Click Success : " + adapter_info_set.getItemId(0), "성공");
160 229
     }
230
+
231
+
161 232
     public void onClick(View view) {
162 233
         switch(view.getId()) {
163 234
             case R.id.button_port:
@@ -226,6 +297,7 @@ public class MainActivity extends AppCompatActivity implements Runnable {
226 297
                 }
227 298
                 break;
228 299
             case R.id.imageButton02:
300
+
229 301
                 if(textView_status.getText() != "Control") {
230 302
                     listview_info.setVisibility(view.INVISIBLE);
231 303
                     listview_info_set.setVisibility(view.INVISIBLE);
@@ -236,23 +308,54 @@ public class MainActivity extends AppCompatActivity implements Runnable {
236 308
                     listview_info.setVisibility(view.INVISIBLE);
237 309
                     listview_info_set.setVisibility(view.INVISIBLE);
238 310
                     listview_rf_set.setVisibility(view.VISIBLE);
239
-
240 311
                     listview_rf.setVisibility(view.INVISIBLE);
241 312
                 }
242 313
                 break;
243 314
         }
244 315
     }
245 316
 
317
+    receive Recv_Context = null;
318
+    public void RecvContext_set(receive context){
319
+        this.Recv_Context =context;
320
+    }
321
+    String Prev_RecvStr;
322
+    public void ListViewDataSet(int position, final String str){
323
+        new Thread(new Runnable() {
324
+            @Override
325
+            public void run() {
326
+                // runOnUiThread를 추가하고 그 안에 UI작업을 한다.
327
+                runOnUiThread(new Runnable() {
328
+                    @Override
329
+                    public void run() {
330
+                        try {
331
+//            adapter_rf.removeItem(11);
332
+                            if(str != Prev_RecvStr) {
333
+                                adapter_rf.setItem("Temperature", str, "", "READ", 11);
334
+                                Prev_RecvStr = str;
335
+                                adapter_rf.notifyDataSetChanged();
336
+                            }
337
+//
338
+                        }catch (Exception e){
339
+                            Log.e("fail to process file", String.valueOf(e));
340
+                            Log.d("ListViewDataSet :  ", "I FAILED PUT DATA TRY 4");
341
+                        }
342
+                    }
343
+                });
344
+            }
345
+        }).start();
346
+
347
+    }
246 348
     @Override
247 349
     public void run() {
248 350
         connect con = new connect(this);
249 351
         con.run();
250 352
         try {
353
+            Log.d("YJ TEST ", String.valueOf(DATA_TEST));
251 354
             Log.d("MainActivity / Run 함수 실행", "성공");
252
-        }catch(Exception e){
355
+        } catch (Exception e) {
253 356
             Log.e("MainActivity / Run 함수 실행", "실패");
254 357
             setConnection_Status(false);
255 358
         }
256
-
257 359
     }
360
+
258 361
 }

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

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

+ 18 - 9
app/src/main/java/com/example/repeater/receive.java

@@ -1,15 +1,11 @@
1 1
 package com.example.repeater;
2 2
 
3
+import android.app.Activity;
3 4
 import android.content.Context;
4 5
 import android.util.Log;
5 6
 
6 7
 import java.io.BufferedReader;
7
-import java.io.DataOutputStream;
8
-import java.io.InputStream;
9 8
 import java.io.InputStreamReader;
10
-import java.io.ObjectInputStream;
11
-import java.io.OutputStream;
12
-import java.io.PrintWriter;
13 9
 import java.net.Socket;
14 10
 
15 11
 public class receive implements Runnable{
@@ -21,28 +17,35 @@ public class receive implements Runnable{
21 17
     private char buff[] = new char[1024];
22 18
     private Socket m_socket = null;
23 19
     private Context mContext = null;
24
-    public receive(Socket socket, Context context) {         //생성자를 통하여 소켓을 받아온다
20
+    private double temp;
21
+    private double ADC_Calc = 3.3/4095;
22
+    private MainActivity mAcitivity = null;
23
+    public receive(Socket socket,MainActivity Acitivity) {         //생성자를 통하여 소켓을 받아온다
25 24
         try {
26 25
             m_socket = socket;          //서버에 접속된 소켓 파일 디스크립터 저장
27 26
             in = new InputStreamReader(m_socket.getInputStream());  //전송 객체 초기화
28 27
             buffRead = new BufferedReader(in);
29
-
28
+            this.mAcitivity = Acitivity;
30 29
             Log.d("receive.class / 데이터 수신 객체 초기화", "성공");
31 30
         } catch(Exception e) {
32 31
             Log.e("receive.class / 데이터 수신 객체 초기화", "실패");
33 32
         }
34 33
     }
35
-
34
+    boolean set = false;
36 35
     @Override
37 36
     public void run() {
38 37
         // TODO Auto-generated method stub
38
+
39 39
         try {
40 40
             while(true) {
41 41
                 myCompleteMessage = new StringBuilder();    //StringBuilder 객체 초기화
42 42
                 buffRead = new BufferedReader(new InputStreamReader(m_socket.getInputStream()));
43 43
                 numberOfBytesRead = buffRead.read(buff, 0, buff.length);//char 배열 buff에 받아들이고
44 44
                 myCompleteMessage.append(buff, 0, numberOfBytesRead); //buff의 데이터를 StringBuilder객체로 이동
45
-                Log.d("receive.class / 데이터 수신", "성공 : " + myCompleteMessage.toString() +"byte : " +numberOfBytesRead);//toString메소드를 통해
45
+                temp = Integer.parseInt(myCompleteMessage.toString()) * ADC_Calc;
46
+                temp = ((temp  * 1000) -500) / 10;
47
+                this.mAcitivity.ListViewDataSet(11, String.valueOf(temp));
48
+                Log.d("receive.class / 데이터 수신", "성공 : DATA : " + temp +">>> LENGTH : " +numberOfBytesRead);//toString메소드를 통해
46 49
                 /*
47 50
                 myCompleteMessage = new StringBuilder();    //StringBuilder 객체 초기화
48 51
                 Log.d("receive1.class / 데이터 수신", "성공 : " + myCompleteMessage.toString());//toString메소드를 통해
@@ -57,4 +60,10 @@ public class receive implements Runnable{
57 60
             Log.e("receive.class / 데이터 수신", "실패" + numberOfBytesRead);
58 61
         }
59 62
     }
63
+    public  void Context_set(Context context){
64
+        this.mContext = context;
65
+    }
66
+    public String Recv_DataFunc(){
67
+        return String.valueOf(temp);
68
+    }
60 69
 }

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

@@ -1,5 +1,6 @@
1 1
 package com.example.repeater;
2 2
 
3
+        import android.content.Context;
3 4
         import android.util.Log;
4 5
 
5 6
         import java.io.DataOutputStream;
@@ -14,8 +15,10 @@ public class send extends TimerTask {
14 15
     private Socket m_socket = null;
15 16
     private String message = "hello!";
16 17
     private byte[] b = {'d','a','t','a','1','2','\r','\n'};
17
-    public send(Socket socket){
18
+    private Context mContext = null;
19
+    public send(Socket socket, Context context){
18 20
         try{
21
+            this.mContext = context;
19 22
             m_socket = socket;
20 23
             out = socket.getOutputStream();
21 24
             dos = new DataOutputStream(out);

+ 10 - 7
app/src/main/res/layout/activity_list_view_item.xml

@@ -37,14 +37,17 @@
37 37
                                     android:layout_height="match_parent"
38 38
                                     android:layout_weight="2"
39 39
                                     android:ems="10"
40
-                                    android:inputType="textPersonName"
41
-                                    android:text="Name" />
40
+                                    android:inputType="number"
41
+                                    android:text="Name"
42
+                                    />
42 43
                                 <Button
43
-                                    android:id="@+id/button"
44
+                                    android:id="@+id/listView_button"
44 45
                                     android:layout_width="match_parent"
45 46
                                     android:layout_height="match_parent"
46 47
                                     android:layout_weight="2"
47
-                                    android:text="Button" />
48
+                                    android:text="Button"
49
+                                    android:onClick="onClick"
50
+                                    />
48 51
                                 <LinearLayout
49 52
                                     android:layout_width="wrap_content"
50 53
                                     android:layout_height="match_parent"
@@ -54,10 +57,10 @@
54 57
                                         <EditText
55 58
                                             android:id="@+id/editText1"
56 59
                                             android:layout_width="111dp"
57
-                                            android:layout_height="match_parent"
60
+                                           android:layout_height="match_parent"
58 61
                                             android:layout_weight="1"
59 62
                                             android:ems="10"
60
-                                            android:inputType="textPersonName"
63
+                                            android:inputType="number"
61 64
                                             android:text="Name" />
62 65
 
63 66
                                         <EditText
@@ -66,7 +69,7 @@
66 69
                                             android:layout_height="match_parent"
67 70
                                             android:layout_weight="1"
68 71
                                             android:ems="10"
69
-                                            android:inputType="textPersonName"
72
+                                            android:inputType="number"
70 73
                                             android:text="Name" />
71 74
                                 </LinearLayout>
72 75