Пользовательский интерфейс приложения не получает все данные из высокоскоростного сокета - PullRequest
0 голосов
/ 05 декабря 2018

Цель: получить данные из сокета и отобразить их в приложении для Android.

Что я сделал:

  1. Установлено сокетное соединение.
  2. Полученные данные из сокета.
  3. Полученные данные сокета добавляются в пользовательский интерфейс .// Слушайте, у меня проблема.Поскольку 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, переключать регистр не планируется.Я не мог понять, почему не происходит переключение условий.

...