|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Tzirulnicov. 2:5020/400 04 Apr 2006 16:10:05 To : All Subject : Программирование портов ввода-вывода в FreeBSD -------------------------------------------------------------------------------- Решил такую вещь сделать - управление бытовыми электроприборами в своей комнате из Интернет. Hо в этом деле, как обычно водится, я полный чайник :) Решил реализовать это на пёрле с подключением модулей на Си, нагрузку подключать к LPT-порту. Hаписал APM.xs: #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "machine/cpufunc.h" #include "machine/sysarch.h" MODULE = APM PACKAGE = APM void hello(int val) CODE: printf("Write to LPT: %d!\n",val); if (i386_set_ioperm(0x378,2,1)==-1) printf("Error set permissions for port 0x378 !\n"); else outb(0x378,val); Компилирую, подключаю в *.pl-файле: #!/usr/bin/perl use ExtUtils::testlib; use APM; APM::hello(123); - выскакивает Write to LPT: 123! Ошибка адресации на шине (Core dumped) (запускаю разумеется из-под рута) Как побороть ? Также, просьба просвятить в отношении методики работы с COM-портами - в частности, перечисление регистров и их битов. И такой вопрос - в итоге я хочу на сайт поместить форму, с которой при помощи perlxstut можно было бы напрямую управлять нагрузкой на lpt-порте. Hасколько я понимаю, сделать это напрямую не удастся, т.к. апач крутится под своим юзером, не под root. Какой оптимальный вариант решения проблемы ? Hаписать на perl скрипт сервера, который будет слушать заданный порт, и скрипт клиента, который будет получать данные с формы сайта и подключаться к серверу ? --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/657780c24c6f.html, оценка из 5, голосов 10
|