Просмотр сообщений
Страниц: [1] 2 3
1  Разработка / Программирование под QNX / генерирование пользовательских сигналов : Января 20, 2014, 11:15:44 am
Доброго времени суток!
Имеется два независимо работающих приложения. Необходимо чтобы одно при выходе высылало второму код своего завершения. Использую kill и signal, но проблема в том что под пользовательские сигналы зарезервировано только 2 сигнала - SIGUSR1 и SIGUSR2, а кодов завершения чуть больше. Использовать служебные как-то не хочется. Как можно это реализовать по другому?
Заранее спасибо!
2  Разработка / Разработка графических приложений / обработка события скрола колеса мыши : Августа 14, 2013, 05:16:11 pm
Доброго времени суток!
Необходимо изменять масштабирование битмапа, загруженного в PtRaw. Планировал сделать это при помощи прокрутки колеса мыши, но не нашел в AppBuilder соответствующего Callback'a. Возможно ли как это все таки реализовать?
3  Разработка / Разработка графических приложений / Re: изменение размеров виджета : Июля 19, 2013, 01:19:17 pm
Решил проблему с помощью:
Код:
PtSetResource(ABW_PtRaw1, Pt_ARG_WIDTH, extent.lr.x - 160, 0);
PtSetResource(ABW_PtRaw1, Pt_ARG_HEIGHT, extent.lr.y - 130, 0);
4  Разработка / Разработка графических приложений / изменение размеров виджета : Июля 18, 2013, 02:38:10 pm
Здравствуйте! Набросил в Appbuilder'е виджет PtRaw. Столкнулся с задачей подстройки его размеров под текущее разрешение экрана. Получаю разрешению с помощью:
Код:
PhWindowQueryVisible( Ph_QUERY_GRAPHICS, 0, 0, &extent )
Теперь пытаюсь изменить размер PtRaw с помощью:
Код:
PtResizeCanvas( ABW_PtRaw1, &size)

метод возвращает 0. В чем может быть проблема?
5  Установка и настройка / Установка и настройка / Несколько экземпляров nfsd : Мая 16, 2013, 02:38:37 pm
Доброго времени суток!
Необходимо на машине под QNX 6.5 создать 2 NFS сервера, каждый из которых будет контролировать свой участок файловой системы. Для этого редактирую файл exports и вызываю 2 демона nfsd с разными портами:
Код:
nfsd -p 2000
nfsd -p 2001
Но после этого не очень понимаю как подмонтироваться с клиента использую определенный экземпляр nfsd. По идеи:
Код:
mount -t -o tcp,ver3 192.168.0.61:/mnt/hd0 /mnt/hd0
Но где при этом указать номер порта?
6  Разработка / Разработка графических приложений / Удаленный запуск Qt : Марта 21, 2013, 10:53:23 am
Доброго времени суток!
Есть некий комплекс программ, расположенных на разных компах с QNX 6.5 обеденных в ЛВС. Нужно написать интерфейс с возможностью запуска каждой из программ комплекса. Для этого использую QNet и утилиту ON. Все было чудесно, пока не дошел до запуска Qt программы на удаленной машине:
Код:
on -fHost2 /root/startQt
где startQt - скрипт запуска приложения. Он прекрасно запускается если вызывать его непосредственно на Host2. Но при удаленном запуске экран на миг моргает, а потом вылетает ошибка на компе с которого запускаю:
Код:
could not load library libQtGui.so.4
Причем Qt либы установлены на всех компах. В чем проблема?
7  Установка и настройка / Установка и настройка / Re: проверка usb мыши/клавиатуры : Января 25, 2013, 04:44:59 pm
Смысл в удаленной диагностике целостности промышленного компа. То есть в проверки наличия всего его железа, в том числе внешних устройств(клава, мыша, монитор).   

Ну там ведь, наверное, не дураки. Догадаются свою старую мышку, вместо вашей новой подключить. ;-}


Дело в том что на этих компьютерах(он не один) вообще может никого не быть. А сведения о целостности всех компов идут на один, на котором как раз есть оператор.

Попробовал посмотреть, что там с программным нажатием клавиш и нашел в доках вот такой пример:
Код:
int main(void)
{
    int data, fd, toggle = 1, error;

    /* Open the device we wish to manipulate. */
    if((fd = open ("/dev/kbd", O_RDONLY)) == -1)
    {
     fprintf(stderr, "Error with open() on /dev/kbd.  Make sure exists.\n");
     perror (NULL);
     exit(EXIT_FAILURE);
    }

    while(1)
    {
    switch(toggle)
    {
        case 1:
        {
          /*
           Turn on Num Lock and make sure that
           Caps and Scroll lock are turned off.
          */
          data = (_CONCTL_NUM_CHG | _CONCTL_NUM) | _CONCTL_CAPS_CHG |
                 _CONCTL_SCROLL_CHG;
          break;
        }
        case 2:
        {
          /*
           Turn off Num Lock and now turn on Caps Lock
           (Scroll lock is already off).
          */
          data = _CONCTL_NUM_CHG | (_CONCTL_CAPS_CHG | _CONCTL_CAPS);
          break;
        }
        case 3:
        {
          /*
           Turn off Caps lock and turn on Scroll lock
           (Num lock is already off).
          */
          data = _CONCTL_CAPS_CHG | (_CONCTL_SCROLL_CHG | _CONCTL_SCROLL);
          toggle = 0;
          break;
        }
    }

    /* Explanation below. */
    if (error = devctl (fd, DCMD_CHR_SERCTL, &data,
                        sizeof(data), NULL))
    {
        fprintf(stderr, "Error setting KBD: %s\n",
            strerror ( error ));
        exit(EXIT_FAILURE);
    }

    sleep(1);
    toggle++;
    }

    return (1);

Но я как понимаю это не совсем нажатие, а скорее включение режимов NUM,SCROLL и CAPS. Можно ли его как-то изменить на именно нажатия? Просто не очень понимаю откуда брать параметры для devctl.

что-то мне думается что такое врядли возможно
а в чём изначальный смысл задачи?

Если так не получится, то может быть можно как-то опрашивать свободные/занятые порты самого KVM? Встроенных средств диагностики судя по руководству не имеется.
8  Установка и настройка / Установка и настройка / Re: проверка usb мыши/клавиатуры : Января 23, 2013, 01:37:37 pm
Смысл в удаленной диагностике целостности промышленного компа. То есть в проверки наличия всего его железа, в том числе внешних устройств(клава, мыша, монитор).   
9  Установка и настройка / Установка и настройка / Re: проверка usb мыши/клавиатуры : Января 23, 2013, 12:26:58 pm
По вашему совету спросил у производителя. Ответили, что мол квм поддерживает эмуляцию мыши и клавиатуры и что для мыши ее можно даже снять, через комбинации клавиш(Num Lock + '-' и 'M'). Сделал действительно в разделе hidview появилось новая мышь, которая исчезает оттуда по выключению usb кабеля. То что нужно. А вот с клавой проблема - ее эмуляцию не выключить, т.к. "вернуть устройство назад с полностью независимой клавы уже не удастся." Поэтому встает вопрос можно ли как-то программно проверить клавиатуру, т.е. отправить на нее событие нажатия, а затем попробовать его принять? Если да, то не могли бы вы подсказать какими функциями для отправки события пользоваться?
Заранее спасибо!
10  Установка и настройка / Установка и настройка / Re: проверка usb мыши/клавиатуры : Января 22, 2013, 03:58:04 pm
Я как понимаю нужно получить инфу от драйвера ATEN. Он как я понимаю подключается здесь:
Код:
8199 io-usb -duhci -dohci -dehci
8200 io-hid -d ps2ser kbd:kbddev:ps2mouse:mousedev -d usb /dev/io-usb/io-usb
получается надо обращаться к io-hid? А как это можно сделать?
11  Установка и настройка / Установка и настройка / проверка usb мыши/клавиатуры : Января 21, 2013, 05:14:21 pm
Доброго времени суток.
Нужно программно проверить работоспособность устройств ввода(usb mouse/kbd), подключенных к компу( c QNX 6.5) через KVM-переключатель(тоже USB). Когда все устройства подсоединены, то hidvew выдает следующее:
Код:
Device Address       : 0
Vendor               : 0xffffffff (Legacy PS2 Keyboard)
Product              : 0xffffffff (Keyboard)
Version              : r1.00
Usage                : Keyboard

Device Address       : 1
Vendor               : 0xffffffff (Legacy PS2/Serial Mouse)
Product              : 0xffffffff (Mouse)
Version              : r1.00
Usage                : Mouse

Device Address       : 2
Vendor               : 0x0557 (ATEN)
Product              : 0x2212 (CS1642 V1.0.07╪▒)
Version              : r1.10
Usage                : Keyboard

Device Address       : 3
Vendor               : 0x0557 (ATEN)
Product              : 0x2212 (CS1642 V1.0.07╪▒)
Version              : r1.10
Usage                : Mouse

Device Address       : 4
Vendor               : 0x0eef (eGalax Inc.)
Product              : 0x0001
Version              : r1.10
Usage                : Pointer
а утилита usb выводит подключенным KVM переключатель(ATEN). Но вот если вытащить к примеру из переключателя мышь, то ничего собственно не изменится. Hidview будет выдавать наличие ATEN-мыши как ни в чем бывало. Но конечно мышь ползать перестанет. BIOS тоже показывает в этоv случае наличие 1 usb клавы, 1 usb мышки и 1 usb-Hub.
Поэтому хотелось бы узнать можно ли как-нибудь еще проверить фактическое наличие устройства. Буду рад любым советам)
12  Установка и настройка / Установка и настройка / Re: Установка драйвера для плат ICP DAS PISO 64 : Января 18, 2013, 10:24:10 am
Спасибо всем за советы. Но к сожалению у нас нету людей, когда либо писавших драйвера, а для того чтобы с этим разобраться потребуется время, которго нет. Не могли бы подсказать аналогичные устройства(PCI DIO 64) с готовыми дравами под QNX.   
13  Установка и настройка / Установка и настройка / Установка драйвера для плат ICP DAS PISO 64 : Января 17, 2013, 12:12:55 pm
Доброго времени суток!
Имеются платы PISO P64 и PISO A64. На них имеются драйвера под Windows и Linux. На целевой машине установлена QNX 6.5. Вопрос заключается в следующем можно ли адаптировать эти драйвера под данную ОС. Если нельзя, то можно ли где-то найти их аналоги под QNX. При попытке установки Линусковских драйверов на qnx вылезает сообщение о необходимости установки Kernel source.
14  Разработка / Программирование под QNX / Re: MsgReceivePulse : Декабря 25, 2012, 03:54:33 pm
спасибо вам большое! все заработало Cheesy
15  Разработка / Программирование под QNX / Re: MsgReceivePulse : Декабря 25, 2012, 09:57:50 am
сделал вроде, как вы сказали, все равно не работает
Код:
struct sigevent event;
event.sigev_notify   = SIGEV_UNBLOCK;

SIGEV_UNBLOCK_INIT( &event);

_Uint64t timeout = 1000;

if ( TimerTimeout( CLOCK_MONOTONIC,_NTO_TIMEOUT_RECEIVE | _NTO_TIMEOUT_NANOSLEEP,
              &event, &timeout, NULL ) < 0 ) break;

printf("111\n");
int ret = MsgReceivePulse( chid, &pulse, sizeof( pulse ), 0 ); // Ожидание pulse от драйвера, данные регистра статуса в pulse.value
printf("222\n");
Страниц: [1] 2 3