Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IrDA пульт, IrDA пульт 
:(
    Опции темы
Gigabyte
Дата 24.9.2005, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Студент-халявщик
**


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

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



Как сделать программу которая будет принемать сигнал с пульта и выводить его в форму
и наоборот


--------------------

user posted image
user posted image
PM MAIL ICQ   Вверх
mntek
Дата 24.9.2005, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


freakin_brain
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.8.2004
Где: saint-petersburg

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



работа с портомами(обычно для irda - com). уже разбиралось на форуме.
PM MAIL WWW ICQ   Вверх
Fir
Дата 4.10.2005, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 8.2.2005
Где: г.Берёзовский,Све рдл.обл

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



не подскажите где!!!
PM MAIL ICQ   Вверх
_hunter
Дата 5.10.2005, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



поиск по форуму послову "com" ( можно com порт )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bes
Дата 24.1.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да не фига. С пультами там заморочек гораздо больше
PM MAIL   Вверх
_hunter
Дата 24.1.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



очень актуальный пост smile

P.S.
и какие же заморочки там есть?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 24.1.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Класс работы с COM портом:
Код

unit comport;

interface

uses Windows;

type
  TComPort=class
    private
      h: THandle;
      b: ^char;
    public
      Port: byte;
      constructor Create;
      destructor Destroy; override;
      function  Connect: Boolean;
      procedure Disconnect;
      function  Connected: Boolean;
      procedure SendString(str:string);
      function  GetString:string;
  end;

implementation

constructor TComPort.Create;
begin
  inherited;
  Port:=1; h:=0;
end;

destructor TComPort.Destroy;
begin
  Disconnect;
  inherited;
end;

function TComPort.Connected: Boolean;
begin
  Result:=h>0;
end;

procedure TComPort.Disconnect;
begin
  if Connected then
    CloseHandle(h);
  h:=0;
end;

function TComPort.Connect: Boolean;
var
  ComName: string;
begin
  Result:=Connected;
  if Connected then Exit;
  ComName:='COM'+chr(48+Port);
  try
    h:=CreateFile(PChar(ComName),GENERIC_READ OR GENERIC_WRITE,0,nil,
                  OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  except h:=0 end;
  if h=INVALID_HANDLE_VALUE then h:=0;
  PurgeComm(h, PURGE_RXCLEAR);
  Result:=Connected;
end;

procedure TComPort.SendString(str:string);
var
  buf: PChar;
  btw,bwt : DWORD;
begin
  if not Connected then exit;
  btw:=Length(str); buf:=PChar(str);
  WriteFile(h, buf, btw, bwt,nil);
end;

function TComPort.GetString:string;
var
  r:  dword;
  ch: char;
  k:  word;
begin
  result:=''; k:=0;
  if not Connected then exit;
  while k<2 do
    if not ReadFile(h,ch,1,r,nil) then k:=2
    else if r>0 then begin
      if ch=#255 then inc(k)
      else begin
        k:=0; result:=result+ch;
      end;
    end;
end;

end.


Пример работы с IrDa. Консольное приложение - выводит кодовые сиквенсы нажимаемых на пульте кнопок:
Код
program Project2;

{$APPTYPE CONSOLE}

uses
  Windows,
  comport in 'comport.pas';

Var
  com: TComPort;
  i:   integer;
  s:   string;

function StrToHex(s:string):string;
const hex='0123456789ABCDEF';
var
  h: string;
  i: integer;
  b: byte;
begin
  h:='';
  for i:=1 to Length(s) do begin
    b:=ord(s[i]);
    h:=hex[b div 16+1]+hex[b mod 16+1];
  end;
  result:=h;
end;

begin
  com:=TComPort.Create;
  com.Port:=4;
  if com.Connect then
    WriteLn('Connected')
  else
    WriteLn('Can''t connect');
  if com.Connected then
    while true do begin
      s:=com.GetString;
      for i:=1 to Length(s) do Write(StrToHex(s[i]));
      WriteLn;
      Sleep(100);
    end;
  com.Disconnect;
  com.Free;
  readln;
end.

Добавлено @ 17:06
P.S. Писалось под конкретную модель. Пульт завершал каждую комманду #255#255, поэтому возможно придется поправить функцию чтения с компорта.
PM MAIL   Вверх
Shuricksoft
Дата 3.2.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 27.3.2002
Где: Odessa, Ukraine

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



Тоже интересовался этой темой...
Может, я что-то не понимаю, но до поднесения какого-либо устройства с ирдой (например, мобилы), порт не создаётся, так что передавать функции createfile, вроде как, и нечего. У меня порт подсоединяется к материнке к соответствующему разъёму - в этом дело, что ли?
Подскажите, пожалуйста... Тоже хочу работать с пультом =)
PM MAIL ICQ   Вверх
Snowy
Дата 3.2.2006, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Цитата(Shuricksoft @ 3.2.2006, 00:13 Найти цитируемый пост)

поднесения какого-либо устройства с ирдой (например, мобилы), порт не создаётся,

Речь идет о инфракасном пульте управления.
У него свой IR порт и он всегда активен и имеет привязку к COM.
Это не IrDA порт, а просто инфракрасный порт.
Он не совместим с соединением по IrDA протоколу.
PM MAIL   Вверх
iddqd
Дата 5.2.2006, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Тоже интересна стала эта тема.
Я так понимаю, что возможно принимать команды от обычного пульта, скажем, от телевизора.
У меня подключен ИК порт и когда я, направив пульт на него, нажимаю кнопку - ИК порт реагирует.
Реально ли таким пультом управлять компьютером, написав софтину?

Цитата

P.S. Писалось под конкретную модель. Пульт завершал каждую комманду #255#255, поэтому возможно придется поправить функцию чтения с компорта.


А как узнать как завершает команды мой пульт?


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


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Цитата(iddqd @ 5.2.2006, 18:44 Найти цитируемый пост)
А как узнать как завершает команды мой пульт?

Их завершает не пульт, а драйвер. Независимо от пульта.
Убери вот эти строчки:
if ch=#255 then inc(k)
else begin
и получишь все, что посылает драйвер.
У меня они вставлены, чтобы разделять одну комманду от другой, т.к. они идут в порт сплошным потоком и, если держать кнопку пульта, то функция ничего не вернет, пока ее не отпустишь - читает пока данные идут.
Для этого и вставлено условие на два $FF - чтобы возвращала данные с нарезкой покоммандно.
Не думаю, что нарезка будет другая, но всякое бывает.

Цитата(iddqd @ 5.2.2006, 18:44 Найти цитируемый пост)
Реально ли таким пультом управлять компьютером, написав софтину?
Для этого и пишется.
PM MAIL   Вверх
iddqd
Дата 6.2.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Подключается к моему COM порту и пишет Connected. Но при нажатии пультом на ИК порт или поднесении телефона с включеным ИК портом - ничего не происходит :\


--------------------
PM MAIL   Вверх
Snowy
Дата 6.2.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Стандартный IrDA порт обслуживается другим драйвером и предназначен для соединения устройств по своему протоколу.
Данный код здесь неприемлем.
Этот код для портов, драйвер которых создан для принятия сигналов, а не обеспечения сеансов.
Пульт ДУ никогда не станет устанавливать сеанс.
PM MAIL   Вверх
iddqd
Дата 6.2.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как быть тогда?
И реально ли вобще пультом ДУ управлять компьютером через ИК порт?


--------------------
PM MAIL   Вверх
Snowy
Дата 6.2.2006, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Нужно купить ИК порт для пульта.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

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


 




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


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

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