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

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

Проблема с Модемом [D5, D6, Win95/98, WinME]


Страницы:   1 2

ksa3003 ©   (2003-01-15 10:01:00) 

Народ отправляю сообщение модему,а тот ГАД в ответ молчит как, партизан.Если кто рабатал с модемами,может подскажити???


ksa3003   (2003-01-17 11:31:00) [1]

ВСЁ. Заработала. Сбасибо.


jack128   (2003-01-17 09:07:00) [2]

Да забыл сказать

s:="ati"+"<cr>"; - ЭТО КРУТО!!


jack128   (2003-01-17 09:03:00) [3]

var stat: TCOMSTAT;
errs: DWORD;
begin
// Do nothing if port has not been opened
Result := 65535;
if not Connected then
exit;
// Get count
ClearCommError( Handle, errs, @stat );
Result := stat.cbInQue;
end;
Должен работать...
Вроде :)


ksa3003   (2003-01-17 08:44:00) [4]

Заработала!!!!! Ура!!!!! Всем болбшое спасибо!!!!!
Персанальное сбасибо Digitman
И ещё один вопрос
Как посмотреть сколько в буфере порта данных ,пробовал ч.з
cbInQue/cbOutQue а там только нули ,может подскажити в чём дело


Digitman   (2003-01-16 15:48:00) [5]

1. Ты уверен, что модем "сидит" на COM1 ? Что говорят св-ва модема и успешна ли встроенная диагностика модема ?

2. Если таки fSuccess = True, то почему далее по тексту не анализируешь результат, возвращаемый WriteFile ?


ksa3003   (2003-01-16 15:13:00) [6]

Добавим
if fSuccess then ShowMessage("Работаем!")
else ShowMessage("Error of initiate ComPort...");

перед
WriteFile
Модем молчит


ksa3003   (2003-01-16 15:04:00) [7]


> CmdStr:="ATI"#13#10;
> WriteFile(....CmdStr[1],.....);

Щас попробую


Digitman   (2003-01-16 15:04:00) [8]


> ksa3003


Приношу извинения.
Все же конструкция с разыменованием PChar(s)^ в дан.контексте верна

Неверна она будет в случае типиз.указ.аргумента, передаваемого константой


> Модемчик чист :)


Вот ты выполнил

hCom := CreateFile(PChar("COM1"),GENERIC_READ+GENERIC_write,0,nil,OPEN_EXISTING,0,0);

чему равно значение hCom после выполнения этой строчки ? Где проверка на успешность выполнения ф-ции ?


gsu   (2003-01-16 15:03:00) [9]

>> ksa3003 ©
и питание проверь (-:|~


ksa3003   (2003-01-16 15:02:00) [10]

procedure TForm1.Button1Click(Sender: TObject);
VAR
dcb : TDcb;
fSuccess : boolean;
dwRead : DWORD;
CharArray : array[0..10] of char;
fileOut : file of char;
i : integer;
s:string;
s1:Pchar;
begin
hCom := CreateFile(PChar("COM1"),GENERIC_READ+GENERIC_write,0,nil,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
try
fSuccess:= GetCommState(hCom, dcb);
dcb.BaudRate := CBR_9600;
dcb.ByteSize := 8;
dcb.Parity := NOPARITY;
dcb.StopBits := ONESTOPBIT;
fSuccess := SetCommState(hCom, dcb);

except
ShowMessage("Error");
end;

s:="ati"+"<cr>";
//s1:=s;
dwRead:=0;
WriteFile(hCom, s, Length(s), dwRead, nil);
memo1.text:="";
ShowMessage("Ok!!") ;
for i:=0 to 10 do
CharArray[i]:="0";
begin
end;

AssignFile(FileOut,"c:\COM.txt");
Rewrite(FileOut);
for i:=0 to 10 do
begin
Application.ProcessMessages;
Write(FileOut,CharArray[i]);
end;

CloseFile(FileOut);

end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:=inttostr(ComStat.cbInQue );
edit2.Text:=inttostr(ComStat.cbOutQue );
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
CloseHandle(hCom);
end;
end.

Если я пишу WriteFile(.. Pchar(s)...), тогда ошибка при компиляции, приходится писать WriteFile(.. s...), А модем даже лампочкми не мигает.


Reindeer Moss Eater   (2003-01-16 15:02:00) [11]

CmdStr:="ATI"#13#10;
WriteFile(....CmdStr[1],.....);


ksa3003   (2003-01-16 14:51:00) [12]

Модемчик чист :)


Игорь Шевченко   (2003-01-16 14:50:00) [13]

Digitman © (16.01.03 13:37)


> с какого боку ты разыменование-то делаешь ?
> 2-й параметр в вызове writeFile() объявлен как const Buffer;
> !!!
>
> ф-ция здесь ожидает любой указатель, передаваемый по значению
>
> а ты что передаешь ? не значение указателя, а значение по
> адресу, на который ссылается указатель !


?????

При WriteFile (....Pchar(s),... ) Будет передана ссылка на указатель, а не на то, на что этот указатель указывает


Digitman   (2003-01-16 14:49:00) [14]


> ksa3003


Приведи самый последний вариант того же кода, с учетом внесенных исправлений


> а эта пересылает
> , а буфер пустой

А хрен его знает, о чем ты здесь говоришь) ..
Кто такая "эта" ? Куда и чего пересылает ? Ума не приложу)...
И ты вообще о каком буфере речь-то ведешь ?

p.s. и что, даже индикатор SD не "моргает" на модеме в момент WriteFile() ? Иль не удосужился поинтересоваться лампочками на модеме ?


Anatoly Podgoretsky   (2003-01-16 14:48:00) [15]

ksa3003 © (16.01.03 14:39)
Ну так наверно опять "правильный" код, ты бы уж сразу прямо просил, напиши за меня программу.


Reindeer Moss Eater   (2003-01-16 14:42:00) [16]

Попробуй протереть модем от пыли


ksa3003   (2003-01-16 14:39:00) [17]

Ну не работает даже так.
Как работает WriteFile() я,знаю.
Мне нужен кусок программы которая работает , а эта пересылает
, а буфер пустой, я и хочу разабрать в чём дело.


Digitman   (2003-01-16 14:32:00) [18]


> Нету уменя описания.
> Было бы не полез бы.


Какого описания ? Ф-ции WriteFile() ?
Не выдумывай - оно у тебя перед носом, в "Win32 API Programmers reference help"
Равно как и декларация ф-ции для ее использования в проложении - в модуле Windows.pas


> Я всего то прошу кусочек работающего кода


Ну дал я тебе этот "кусочек" уже !! Чего ж тебе еще надобно, старче ?))))


ksa3003   (2003-01-16 14:29:00) [19]

Нету уменя описания.
Было бы не полез бы.
Я всего то прошу кусочек работающего кода
(что бы скинула и прочитала из порта)


Digitman   (2003-01-16 14:28:00) [20]


> ksa3003 © (16.01.03 14:23)
> Нашёл каяк.
> s:="ati"+"<cr>";
> writeFile(hCom, Pchar(s)^, length(s), dwRead, nil);
> B всеравно тишина



)))))))))))
ему про фому, он все - про ерему гнет )))))

я тебе уже дал верный код ! см. Digitman © (16.01.03 14:13)


Страницы:   1 2

Наверх

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