Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

КТо нибудь знает как мне попроще вытащить один бит из ком порта [D7, WinXP]


Рафик ©   (2006-03-30 15:07:00) 

Я уже запарился искать варианты ничего не получается!!!


Рафик   (2006-03-30 16:18:00) [1]

Удалено модератором
Примечание: Ваша личная переписка уже надоела


Kolan   (2006-03-30 15:56:00) [2]

Удалено модератором


Сергей М.   (2006-03-30 15:50:00) [3]


> В справке этого нет


Есть.


Рафик   (2006-03-30 15:41:00) [4]

Вот ща прислали мне по почте

function TAnisochronousComm.ReadByte(var B: Byte; TimeOut: Cardinal): Boolean;
var
 IsTimeOut: Boolean;
 ReadBytes: Cardinal;
 Arr: array[1..1] of Byte;
begin
 IsTimeOut := False;
 ReadBytes := Read(Arr, 1, TimeOut, IsTimeOut);
 if (IsTimeOut) or (ReadBytes = 0) then
 begin
   B := 0;
   Result := False;
 end
 else
 begin
   B := Arr[1];
   Result := True;
 end;
end;

Как мне вызвать эту функцию?


Kolan   (2006-03-30 15:40:00) [5]

Не в той справке ищешь. Ищи  в Widows SDK. Или на сайте MSDN


Рафик   (2006-03-30 15:32:00) [6]

В справке этого нет, отладчик не помогает что я там вижу что она циклиться!


Сергей М.   (2006-03-30 15:23:00) [7]


> скажу точно в чем загвоздка


Загвоздка у тебя в одном - в неумении (или нежелании) пользоваться встроенным в Делфи отладчиком и в неумении (или нежелании) читать справку.


Рафик   (2006-03-30 15:20:00) [8]

Да не получается у меня с ним тоже но ща попробую скажу точно в чем загвоздка


Kolan   (2006-03-30 15:17:00) [9]

Почту глянь. Там модуль написаный мной.... Можешь прям его и юзать :).
Те как-то так:

function TAnisochronousComm.Read(var Buffer: array of Byte;
 NumberOfBytesToRead: Cardinal; TimeOut: Cardinal;
 var IsTimeOutExpire: Boolean): Cardinal;
begin
 Result := 0;
 IsTimeOutExpire := False;
 if FPortHandle <> INVALID_HANDLE_VALUE then
 begin
   TimeOut := TimeOut * NumberOfBytesToRead;

   ReadFile(FPortHandle, Buffer, NumberOfBytesToRead, Cardinal(Result),
     @FOverlappedRead);
   if WaitForSingleObject(FOverlappedRead.hEvent, TimeOut) = WAIT_OBJECT_0 then
     GetOverlappedResult(FPortHandle, FOverlappedRead, Cardinal(Result), False)
   else
     IsTimeOutExpire := True;
 end;
end;


Сергей М.   (2006-03-30 15:11:00) [10]


> насчет ReadFile, поподробнее можно узнать?


см. стандартную справку и MSDN.


Рафик   (2006-03-30 15:11:00) [11]

И что во втором, пробовал я все равно не читается!!!


Рафик   (2006-03-30 15:10:00) [12]

А насчет ReadFile, поподробнее можно узнать?


Сергей М.   (2006-03-30 15:10:00) [13]


> извините перепутал байт


см. [2]


Рафик   (2006-03-30 15:09:00) [14]

извините перепутал байт


Kolan   (2006-03-30 15:08:00) [15]

ReadFile . Но вот бит.... Это врядли


Сергей М.   (2006-03-30 15:07:00) [16]

Никак.


Наверх

Титульная страница Поиск, карта сайта Написать письмо