Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.04.04;
Скачать: CL | DM;

Вниз

GSM модем TCommPortDriver   Найти похожие ветки 

 
Student :) ©   (2010-02-01 00:52) [0]

пишу программу для работы с gsm модемом , с помощью компонента TCommPortDriver , Возникла проблема при приёме ответа модема(вместо текста приходит что то не понятное)
вот мой код

procedure TForm1.Button1Click(Sender: TObject);
begin

with CommPortDriver1 do begin
ComPort:= TComPortNumber(pnCOM01);
Disconnect;
if not Connect then begin
ShowMessage("ERROR");
exit;
end;
CommPortDriver1.SendString("AT" + #13#10);
end;
end;


через снифер com порта приходит что ок
а программа выдаёт (.Â…jÕRÿ)

вот приём

procedure TForm1.CommPortDriver1ReceiveData(Sender: TObject;
 DataPtr: Pointer; DataSize: Integer);

var
s : string;
begin

s:= StringOfChar(" ", DataSize);
Move(DataPtr^, PChar(s)^, DataSize);
MEMO1.Lines.Add(s);
end;



как переделать чтоб в Memo был результат OK


 
Германн ©   (2010-02-01 01:07) [1]


> Student :) ©   (01.02.10 00:52)
>
> пишу программу для работы с gsm модемом , с помощью компонента
> TCommPortDriver

Такого бредового кода я уже давно не видел!


 
Student :) ©   (2010-02-01 01:09) [2]

спасибо за прямоту!! но как переделать может подскажите??


 
Германн ©   (2010-02-01 01:14) [3]


> Student :) ©   (01.02.10 01:09) [2]
>
> спасибо за прямоту!! но как переделать может подскажите?
> ?

Бред переделать нельзя по определению!
Ну вот как реагировать на такие действия:

> Disconnect;
> if not Connect then begin
> ShowMessage("ERROR");
> exit;
>
?
А это не единственный бредовый код.

К тому же я не знаю зверя по имени TCommPortDriver


 
Anatoly Podgoretsky ©   (2010-02-01 01:18) [4]

> Student :)  (01.02.2010 01:09:02)  [2]

Не переделать, а переписать все нах.


 
Student :) ©   (2010-02-01 01:26) [5]

мне главное ответ чтоб пришёл в читабельном виде


 
KilkennyCat ©   (2010-02-01 01:33) [6]

читабельность - это очень относительное и субъективное.

Изучай спецификацию.
Не имея данных ни о модеме, ни о каком-то там компоненте ничего однозначного сказать нельзя.


 
Slym ©   (2010-02-01 08:12) [7]

Student :) ©   (01.02.10 0:52)
s:= StringOfChar(" ", DataSize);
Move(DataPtr^, PChar(s)^, DataSize);
MEMO1.Lines.Add(s);


var
 s:ansistring;
begin
 SetString(s,DataPtr,DataSize);
 MEMO1.Lines.Add(s);
end;


 
Student :) ©   (2010-02-01 15:50) [8]

Спасибо буду пробывать


 
Student :) ©   (2010-02-01 15:58) [9]

я немного переделал на так


procedure TForm1.CommPortDriver1ReceiveData(Sender: TObject;
 DataPtr: Pointer; DataSize: Integer);

var
s:ansistring;

begin
SetString(s,PChar(DataPtr),DataSize);
MEMO1.Lines.Add(s);
end;


 
12 ©   (2010-02-01 18:50) [10]

тебе 3 раза сказали - бред.

with CommPortDriver1 do
begin
 ComPort:= TComPortNumber(pnCOM01);
назначил порт

 Disconnect;
отключился

if not Connect then
begin
ShowMessage("ERROR");
exit;
end;
проверил, не отключен ли

CommPortDriver1.SendString("AT" + #13#10);
послал команду.

Вопрос. Кому? Ты ж сам отключился только что..


 
Вариант   (2010-02-02 05:26) [11]


> 12 ©   (01.02.10 18:50) [10]


> Вопрос. Кому? Ты ж сам отключился только что..


> if not Connect then


Вообще-то TCommPortDriver.Connect -это метод(функция)....


 
12 ©   (2010-02-02 08:25) [12]

н-да?
опять с прямым углом перепутал :)


 
Дмитрий Белькевич   (2010-02-04 18:49) [13]

Да ладно, бред. Коннект - вполне нормальный, только непонятно вот это приведение:


ComPort:= TComPortNumber(pnCOM01);


Что такое pnCOM01?

И вот здесь:

CommPortDriver1.SendString("AT" + #13#10);


CommPortDriver1 лишний.


> [9]


И что получилось?



Страницы: 1 вся ветка

Текущий архив: 2010.04.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
15-1263494897
fford
2010-01-14 21:48
2010.04.04
firebird виснет под Linux


2-1264873860
antid
2010-01-30 20:51
2010.04.04
изменить звук Windows


15-1261859690
Kerk
2009-12-26 23:34
2010.04.04
Тема про Delphi, наконец-то


6-1215631058
Квэнди
2008-07-09 23:17
2010.04.04
Версия удаленного файла


1-1248087362
Amid
2009-07-20 14:56
2010.04.04
Помогите перевести код из Си в Делфи