Цель: получить данные из сокета и отобразить их в приложении для Android.
Что я сделал:
- Установлено сокетное соединение.
- Полученные данные из сокета.
- Полученные данные сокета добавляются в пользовательский интерфейс .// Слушайте, у меня проблема.Поскольку Socket отправляет данные с высокой скоростью (500 мкс). Иногда приложение не может присоединиться к пользовательскому интерфейсу.
Код:
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
socket = new Socket(serverAddr, SERVERPORT);
DataInputStream din = new DataInputStream(socket.getInputStream());
while ((din.read(socketData)) != '\0') {
for (int i = 0; i < 8; i++) {
parsedData[i] = (int) (socketData[i]);
}
clusterData = parsedData[4] | (parsedData[5] << 8);
Log.d("AAA","data0-->"+clusterData+" data1--->"+parsedData[5])
new CustomTask().execute((Void[]) null);
}
private class CustomTask extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... param) {
//Do some work
return null;
}
protected void onPostExecute(Void param) {
switch (dataId) {
case MwDataIDs.CAN_BUS_M2A_CAR_SPEED:
Log.d("AAA","data_speed--->"+clusterData+"id--->"+dataId);
ObjectAnimator.ofFloat(aaa, "rotation", clusterData).start();
break;
case MwDataIDs.CAN_BUS_M2A_CAR_RPM:
ObjectAnimator.ofFloat(bbb, "rotation", clusterData/25).start();
}
Log:
09-19 09:25:43.616 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:43.626 2028 2028 D AAA : data_speed--->105id--->43
09-19 09:25:43.628 2028 2028 D AAA : data_speed--->105id--->43
09-19 09:25:43.639 2028 2054 D AAA : data0-->74 data1--->0
09-19 09:25:43.640 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:43.662 2028 2054 D AAA : data0-->75 data1--->0
09-19 09:25:43.716 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:43.739 2028 2054 D AAA : data0-->76 data1--->0
09-19 09:25:43.739 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:43.764 2028 2054 D AAA : data0-->77 data1--->0
09-19 09:25:43.764 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:43.787 2028 2054 D AAA : data0-->78 data1--->0
09-19 09:25:43.787 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:43.811 2028 2054 D AAA : data0-->79 data1--->0
09-19 09:25:43.812 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:43.835 2028 2054 D AAA : data0-->80 data1--->0
09-19 09:25:43.836 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:43.859 2028 2054 D AAA : data0-->81 data1--->0
09-19 09:25:43.859 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:43.879 2028 2028 D AAA : data_speed--->101id--->43
09-19 09:25:43.879 2028 2028 D AAA : data_speed--->101id--->43
09-19 09:25:43.884 2028 2054 D AAA : data0-->82 data1--->0
09-19 09:25:43.884 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:43.907 2028 2054 D AAA : data0-->83 data1--->0
09-19 09:25:43.907 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:43.919 2028 2028 D AAA : data_speed--->100id--->43
09-19 09:25:43.920 2028 2028 D AAA : data_speed--->100id--->43
09-19 09:25:43.932 2028 2054 D AAA : data0-->84 data1--->0
09-19 09:25:43.932 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:43.955 2028 2054 D AAA : data0-->85 data1--->0
09-19 09:25:43.956 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:43.960 2028 2028 D AAA : data_speed--->99id--->43
09-19 09:25:43.960 2028 2028 D AAA : data_speed--->99id--->43
09-19 09:25:43.979 2028 2054 D AAA : data0-->86 data1--->0
09-19 09:25:43.980 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:44.003 2028 2054 D AAA : data0-->87 data1--->0
09-19 09:25:44.005 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:44.027 2028 2054 D AAA : data0-->88 data1--->0
09-19 09:25:44.027 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:44.051 2028 2054 D AAA : data0-->89 data1--->0
09-19 09:25:44.052 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:44.075 2028 2054 D AAA : data0-->90 data1--->0
09-19 09:25:44.075 2028 2054 D AAA : data0-->64 data1--->0
09-19 09:25:44.099 2028 2054 D AAA : data0-->91 data1--->0
09-19 09:25:44.100 2028 2054 D AAA : data0-->43 data1--->0
09-19 09:25:44.120 2028 2028 D AAA : data_speed--->96id--->43
09-19 09:25:44.120 2028 2028 D AAA : data_speed--->96id--->43
В logcat, если data0 равен 43, он должен вызвать MwDataIDs.CAN_BUS_M2A_CAR_SPEED, переключить case.Randomly, еслиЗначение data0 равно 43, переключать регистр не планируется.Я не мог понять, почему не происходит переключение условий.