Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> perl и com-порт 
:(
    Опции темы
study
Дата 5.7.2005, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



Привет всем! Народ, мне поставили такую задачу:
На удалённом компьютере с ОС Linux к com-порту подключили датчик открытия (закрытия) двери. Мне надо как-нибудь с сервера подключиться к удаленному компу и получить значение с датчика. Как это сделать?

Мой вариант:
Надо написать прогу на С/С++, которая бы работала на удаленном компе и считывала параметры датчика, а потом, может с помощью CGI скрипта подключаться и забирать инфу...

Подскажите свои варианты, может более правильные???

а ещё примерчики, если есть...

Заранее спасибо!
PM MAIL   Вверх
korob2001
Дата 5.7.2005, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



study - а ты уверен, что этот CGI должен быть написан на Perl, если ты пишешь программу, которая будет считывать значения счётчика на C/C++, то может быть и CGI программа должна быть написана на C/C++? А если всё же нужен Perl, попробуй воспользоваться модулем LWP, Socket, IO::Socket.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
chaos
Дата 6.7.2005, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



я бы сделал следующим образом и все на перле тк быстрее бы наверное smile

вот тебе самый наипростейший пример сревера(без всяких форков и тп)
Код

#!/usr/bin/perl -w
use strict;

use IO::Socket;

my $sock = new IO::Socket::INET (PeerAddr => 'localhost',
                                PeerPort => 666,
                                Proto    => 'tcp',
                                Listen   => 5);
die "$!" unless $sock;

while (my $sock = $sock->accept()) {
  print $sock ReadComPort();
}

sub ReadComPort {
  open (COM, "</dev/cua0");
  #ченить читаешь из ком порта
  close(COM);
}


ну а цепляться чем угодно можешь: телнетом или также написать ченить можно

PS пример не проверял, так что может быть есть ошибки smile главное идея что бы была понятна

Это сообщение отредактировал(а) chaos - 6.7.2005, 07:00
PM WWW   Вверх
study
Дата 8.7.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



Спасибо, начальство пока не определилось, что хочет, так что пака подожду.
PM MAIL   Вверх
Secandr
Дата 8.7.2005, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 1
Всего: 39



там надо вешать демона и писать логи открытия закрытия иначе нет смысла вообще в таком софте. А демон на перле - изврат.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
sharq
Дата 8.7.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



Цитата(Secandr @ 8.7.2005, 10:09)
А демон на перле - изврат.

Но можно ведь smile



--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
chaos
Дата 8.7.2005, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(Secandr @ 8.7.2005, 10:09)
А демон на перле - изврат.

смотря какие демоны, если как ты говоришь писать логи то ни чего нет извращенного скрипт в ~20 строчек

PM WWW   Вверх
chaos
Дата 8.7.2005, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



вот пример(без всяких фишек)
Код

#!/usr/bin/perl -w
use strict;

exit if (fork);

#что то делаем


Это сообщение отредактировал(а) chaos - 8.7.2005, 11:22
PM WWW   Вверх
study
Дата 2.8.2005, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



а можно этот код под виндой запустить smile
Код

#!/usr/bin/perl -w
use strict;

use IO::Socket;

my $sock = new IO::Socket::INET (PeerAddr => 'localhost',
                                PeerPort => 666,
                                Proto    => 'tcp',
                                Listen   => 5);
die "$!" unless $sock;

while (my $sock = $sock->accept()) {
  print $sock ReadComPort();
}

sub ReadComPort {
  open (COM, "</dev/cua0");
  #ченить читаешь из ком порта
  close(COM);
}

PM MAIL   Вверх
chaos
Дата 3.8.2005, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(study @ 2.8.2005, 15:55)
а можно этот код под виндой запустить smile
Код

#!/usr/bin/perl -w
use strict;

use IO::Socket;

my $sock = new IO::Socket::INET (PeerAddr => 'localhost',
                                PeerPort => 666,
                                Proto    => 'tcp',
                                Listen   => 5);
die "$!" unless $sock;

while (my $sock = $sock->accept()) {
  print $sock ReadComPort();
}

sub ReadComPort {
  open (COM, "</dev/cua0");
  #ченить читаешь из ком порта
  close(COM);
}

а че нет можно, только если винда выполнит это
open (COM, "</dev/cua0");
PM WWW   Вверх
study
Дата 3.8.2005, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



chaos, не, винда это не хочет выполнять. Не знаешь, как в винде Com порт обозначаеться?
PM MAIL   Вверх
chaos
Дата 3.8.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(study @ 3.8.2005, 09:17)
chaos, не, винда это не хочет выполнять. Не знаешь, как в винде Com порт обозначаеться?

\.\\COM1
PM WWW   Вверх
study
Дата 4.8.2005, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



Привет chaos, что-то у меня не получается с COM1 портом. Можешь простенький пример на С/С++ написать под винду... Чтобы послать что-то в порт и считать ответ...
Заранее спасибо!
PM MAIL   Вверх
sharq
Дата 16.8.2005, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



study
Цитата(study @ 2.8.2005, 15:55)
а можно этот код под виндой запустить


Цитата(Secandr @ 8.7.2005, 10:09)
там надо вешать демона


Для работы выше указанного скрипта, необходимо чтобы был запущен демон на порте 666, который бы обрабатывал запросы клиентов.

smile



--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
chaos
Дата 16.8.2005, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



да забыл сказать что если ты не админ в линухе порт с номером 666 не получится открыть вплоть до 1024, такчто лутше пользовать > 1024

Цитата
Привет chaos, что-то у меня не получается с COM1 портом. Можешь простенький пример на С/С++ написать под винду... Чтобы послать что-то в порт и считать ответ...
в этом разделе нет, тк нам модератор по рукам надает smile
PM WWW   Вверх
study
Дата 16.8.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



хорошо, тогда в другом разделе напишу, все спасибо... smile
PM MAIL   Вверх
sharq
Дата 16.8.2005, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



study интересно, чем тебя perl отпугнул?


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
study
Дата 17.8.2005, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



Perl - супер, вчера вроде разобрался, мне надо было использовать stty, и в ней указывать нужную скорость smile
man stty
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0583 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.