Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как правильно составить цикл который выполняет каждую команду с разной паузой - Android - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android При переходе между активити возникает ошибка http://www.cyberforum.ru/android-dev/thread1521735.html
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Дело в том, что при вызове активити в моем приложении возникает ошибка и программа вылетает. Возможно дело не в неправильном...
Программирование Android Анимация Fragment Здравствуйте, такой вопрос. как прикрутить эту анимацию: <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="0.0"... http://www.cyberforum.ru/android-dev/thread1521695.html
Объект Context Программирование Android
Проблема такая: Я создаю новый класс в отдельном файле для работыSQLite и в нем мне нужен Объект Context, если я наследую Activity public class DbNumberMessage extends Activity { ... dbHelper...
Программирование Android Алгоритм сравнение двух списков list, для синхронизации таблицы
Добрый день форумчане. Очень нужна ваша помощь, срочно. Необходимо сделать синхронизацию локальной таблицы с таблицей загруженной из сервера. Было принято решение поэтапно сравнивать два...
Программирование Android Изменение хэша файла, и редактирование самого файла http://www.cyberforum.ru/android-dev/thread1521477.html
Здравствуйте, нужна помощь, собственно я написал взлом на игру The Simpsons Tapped Out (может быть кто то слышал о такой), так вот, что бы взлом работал нужно изменить файл 0, но вот в чем беда, я не...
Программирование Android Сложная Анимация Всем привет, возник важный вопрос по Анимация, я изучил стандартные коды Анимация View, мне бы хотелось понять что то по сложнее, Типо частиц или движений картинки, может найдутся нужные ссылочки,... подробнее

Показать сообщение отдельно
Takt!k
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 18

Как правильно составить цикл который выполняет каждую команду с разной паузой - Android - Программирование Android

29.08.2015, 20:02. Просмотров 315. Ответов 4
Метки (Все метки)

Мне нужно при нажатии кнопки, допустим button1 и button2 выполнять следующее:
При нажатии на button1
Отправлять следующие команды:
Java
1
2
3
4
5
6
7
8
9
10
11
addCRC(new byte[]{1, 0x5, 11, 5 ,0, 0});    //10 сек
addCRC(new byte[]{1, 0x5, 11, 1 ,0, 0});    //0 сек
addCRC(new byte[]{1, 0x5, 0, 5 ,0, 0});      //30 сек
addCRC(new byte[]{1, 0x5, 1, 5 ,0, 0});      //5 сек
addCRC(new byte[]{1, 0x5, 2, 5 ,0, 0});      //5 сек
addCRC(new byte[]{1, 0x5, 3, 5 ,0, 0});      //5 сек
addCRC(new byte[]{1, 0x5, 4, 5 ,0, 0});      //5 сек
addCRC(new byte[]{1, 0x5, 5, 5 ,0, 0});      //5 сек
addCRC(new byte[]{1, 0x5, 6, 5 ,0, 0});      //5 сек
addCRC(new byte[]{1, 0x5, 7, 5 ,0, 0});      //5 сек
addCRC(new byte[]{1, 0x5, 8, 5 ,0, 0});      //5 сек
А при нажатии на кнопку button2 должны отправятся вот эти команды только в обратном порядке
Java
1
2
3
4
5
6
7
8
9
addCRC(new byte[]{1, 0x5, 0, 1 ,0, 0});    
addCRC(new byte[]{1, 0x5, 1, 1 ,0, 0});    //5сек
addCRC(new byte[]{1, 0x5, 2, 1 ,0, 0});    //5сек
addCRC(new byte[]{1, 0x5, 3, 1 ,0, 0});    //5сек
addCRC(new byte[]{1, 0x5, 4, 1 ,0, 0});    //5сек
addCRC(new byte[]{1, 0x5, 5, 1 ,0, 0});    //5сек
addCRC(new byte[]{1, 0x5, 6, 1 ,0, 0});    //5сек
addCRC(new byte[]{1, 0x5, 7, 1 ,0, 0});    //5сек
addCRC(new byte[]{1, 0x5, 8, 1 ,0, 0});    //5сек
С 9 по 1 с задержками

Вот рабочий пример при нажатии на кнопку который отправляет одну команду:
Java
1
2
bytesToSend = addCRC(new byte[]{0x1, 0x3, 0x0, 0x0 ,0x0, 0x0});
mPhysicaloid.write(bytesToSend, bytesToSend.length);
Как мне через
Java
1
mPhysicaloid.write
отправлять команды с задержкой после каждой команды (Время задержки указаны в комментариях) ?

И как можно это все красиво переделать чтобы не получался такой громоздкий и тупой код ?

Я думаю что это должно быть как то так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public byte[] MyListComands = new byte[11];
 
public void onClickWrite(View v) { 
    new Thread() {
        @Override
        public void run() {
            int TimeOut = 0;
            try {
                for (int i = 0; i <= 11;  i++, Thread.sleep(TimeOut)) {
                    MyListComands[i] = addCRC(new byte[]{1, 0x5, 1, 5 ,0, 0});
                    // Тут как я догоняю должно быть то - что в зависимости от значение "i"
                    // будет присваивать новое значение таймеру TimeOut
                    mPhysicaloid.write(MyListComands[i], MyListComands[i].length);
                }
            } catch (InterruptedException ex) {
            // тут хз что ;(
            }
        }
 
    }.start();
}
Но эта работать не будет, но как же все таки это сделать ?

Хотя есть чувство что должно быть так:
Java
1
public byte[][] MyListComands = new byte[11][8];
, а не так как сейчас
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru