Всем спасибо за советы, но они не принесли результата, поэтому пришлось использовать костыли. Опишу свои изыскания здесь, может кому пригодится:
Итак, у меня имелась готовая функция на питоне, реализующая аналог getch() в С и с ее помощью необходимо было отслеживать нажатия на навигационный джойстик N800. С буквенными кнопками виртуальной (да и обычной клавы на настольном компе) данная функция работает на ура:
class _Getch:
\"\"\"Gets a single character from standard input. Does not echo to the
screen.\"\"\"
def __init__(self):
try:
self.impl = _GetchWindows()
except ImportError:
self.impl = _GetchUnix()
def __call__(self): return self.impl()
class _GetchUnix:
def __init__(self):
import tty, sys
def __call__(self):
import sys, tty, termios
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
return ch
class _GetchWindows:
def __init__(self):
import msvcrt
def __call__(self):
import msvcrt
return msvcrt.getch()
getch = _Getch()
#кусок кода для теста
while True:
inp = getch()
if inp == \"s\":
print \"You pressed s\"
elif inp == \"w\":
print \"You pressed w\"
После запуска на таблетке жмем \"s\" или \"w\" - появляется соответствующая надпись, все работает как надо, а вот с навигационными кнопками вышел затык, все те идентификаторы(символьные и цифровые) не давали результата. Была написана небольшая программка на С, выдававшая коды нажатых кнопок:
#include <stdio.h>
main()
{
int c;
while ((c = getchar()) != EOF)
printf(\"%#x\
\", c);
return 0;
}
То, что она выдала тоже не помогло. Но тут на глаза попалась статейка про PyGame, библиотеку для создания игр на питоне, для таблеток она тоже имеется. Поставил, написал пробный скрипт и все заработало, жмем кнопку джойстика в консоли появляется соответствующая строка:
#!/usr/bin/python
import pygame, sys
from pygame.locals import *
pygame.init()
window = pygame.display.set_mode((320,240))
pygame.display.set_caption('Test')
pygame.display.flip()
while 1:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
sys.exit()
elif event.key == K_UP:
print \"You pressed UP key\"
elif event.key == K_DOWN:
print \"You pressed DOWN key\"
elif event.key == K_LEFT:
print \"You pressed LEFT key\"
elif event.key == K_RIGHT:
print \"You pressed RIGHT key\"
elif event.key == K_RETURN:
print \"You pressed RETURN key\"
Сильно ногами не пинайте, я только начал изучать Python:)