Помогите с прогой

Тут можно хорошенько так по.. флудить...
Аватара пользователя
Nikomo
Сообщения: 261

Сообщение Nikomo » 09 сен 2015, 23:08

Решил я познать кунг-фу ООП. Чтобы было не так скучно парить теорию решил запилить бесполезную фигульку - машинку, управляемую по блютусу с телефона. Если с самой машинкой, вроде ничего солжно не должно быть, то с приложением на мобилу трохи беда. Пишу под свою нокиу на симбиан ОС, ибо ничего другого нету, пишу на джаве, юзаю Wireless Toolkit 2.5.1. Вроде как по-малу получается, но на обработке клавишных событий застопорился.
Код:
1.Этот класс отвечает за прослушиваниe клавишных событий.
Я так понимаю, экземпляр этого класса должен ожидать нажатия кнопки, после чего устанавливать значение переменной икс, в соответсвии с тем, что нажали.
 Программа 1
public class My extends Canvas
{
public int x;
public void paint(Graphics g)
{
}
public void keyPressed (int keyCode)
{
switch (keyCode)
{
case KEY_NUM2 :
x=2;
break;

case KEY_NUM6 :
x=6;
break;

case KEY_NUM8 :
x=8;
break;

case KEY_NUM4 :
x=4;
break;
}
}
}

2.Потом собственно код приложения.
Пока оно ничего не делает, просто выводит значение переменной Х, в строке WTK. И оно-то его выводит, но Х не хочет изменяться от нажатий кнопки на мобилочке-эмуляторе, предоставляемой этим же WKT для проверки работы программ.
 Программа 2
public class MyFirstMidlet extends MIDlet
{
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
notifyDestroyed();
}
public void startApp ()
{
My obj= new My();
String name = getAppProperty ("MIDlet-Name");
// вывести сообщение в системную область
System.out.println ("MIDlet "+ name + "says: X="+ obj.x);
}
}

Шо не так?
P.S. Мог ошибиться в терминах, простите.

Аватара пользователя
BSVi
Адепт
Сообщения: 3383
Откуда: Киев

Сообщение BSVi » 10 сен 2015, 13:10

Все потому, что startApp () вызывается только раз. А выводить нужно по событию нажатия кнопки. Тоесть, дописать println в конец вашего keyPressed.

Аватара пользователя
Nikomo
Сообщения: 261

Сообщение Nikomo » 10 окт 2015, 13:20

С этим разобрался, спасибо. Теперь не могу понять логику происходящего при работе с боютусом. Я так понял блют. может выступать в роли клиента или сервера - это описывается программно. Если он клиент - то ищет серверы и коннектится к ним, а если сервер - ждёт пока приконнектятся к нему. Так вот что выходит - если я реализую свой телефон как сервер, то блют. модуль сам к нему законнектится что ли (если модуль как клиента обозначить)? Или надо модуль как сервер выставить, а мобилой как клиентом его искать?

Qic
Сообщения: 980
Откуда: Орёл(РФ)

Сообщение Qic » 10 окт 2015, 13:43

Всякие бт модулю, всмысле в внешних устройствах - принимающая сторона, тобишь сервер. Как правило бт на мобиле в клиентском состоянии инициирует подключение. Можно и наоборот, но для этого после готовности телефона на внешнем бт модуле нужно через АТ комманды сказать к кому подключаться.
Вполне вероятно эту процедуру можно провести один раз и забить в память адрес устройства. Но смысла в этом нет, так почти никогда не делают.

Аватара пользователя
Nikomo
Сообщения: 261

Сообщение Nikomo » 10 окт 2015, 14:10

Отлично, благодарю, буду пробовать.

Вернуться в «Изба-флудильня»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя