![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GSM модем TCommPortDriver [D7, XP]
Student :) © (2010-02-01 00:52:00)пишу программу для работы с 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-04 18:49:00) [1]Да ладно, бред. Коннект - вполне нормальный, только непонятно вот это приведение:
ComPort:= TComPortNumber(pnCOM01);
Что такое pnCOM01?
И вот здесь:
CommPortDriver1.SendString('AT' + #13#10);
CommPortDriver1 лишний.
> [9]
И что получилось?
12 (2010-02-02 08:25:00) [2]н-да?
опять с прямым углом перепутал :)
Вариант (2010-02-02 05:26:00) [3]
> 12 © (01.02.10 18:50) [10]
> Вопрос. Кому? Ты ж сам отключился только что..
> if not Connect then
Вообще-то TCommPortDriver.Connect -это метод(функция)....
12 (2010-02-01 18:50:00) [4]тебе 3 раза сказали - бред.
with CommPortDriver1 do
begin
ComPort:= TComPortNumber(pnCOM01);
назначил порт
Disconnect;
отключился
if not Connect then
begin
ShowMessage('ERROR');
exit;
end;
проверил, не отключен ли
CommPortDriver1.SendString('AT' + #13#10);
послал команду.
Вопрос. Кому? Ты ж сам отключился только что..
Student :) (2010-02-01 15:58:00) [5]я немного переделал на так
procedure TForm1.CommPortDriver1ReceiveData(Sender: TObject;
DataPtr: Pointer; DataSize: Integer);
var
s:ansistring;
begin
SetString(s,PChar(DataPtr),DataSize);
MEMO1.Lines.Add(s);
end;
Student :) (2010-02-01 15:50:00) [6]Спасибо буду пробывать
Slym (2010-02-01 08:12:00) [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;
KilkennyCat (2010-02-01 01:33:00) [8]читабельность - это очень относительное и субъективное.
Изучай спецификацию.
Не имея данных ни о модеме, ни о каком-то там компоненте ничего однозначного сказать нельзя.
Student :) (2010-02-01 01:26:00) [9]мне главное ответ чтоб пришёл в читабельном виде
Anatoly Podgoretsky (2010-02-01 01:18:00) [10]> Student :) (01.02.2010 01:09:02) [2]
Не переделать, а переписать все нах.
Германн (2010-02-01 01:14:00) [11]
> Student :) © (01.02.10 01:09) [2]
>
> спасибо за прямоту!! но как переделать может подскажите?
> ?
Бред переделать нельзя по определению!
Ну вот как реагировать на такие действия:
> Disconnect;
> if not Connect then begin
> ShowMessage('ERROR');
> exit;
>
?
А это не единственный бредовый код.
К тому же я не знаю зверя по имени TCommPortDriver
Student :) (2010-02-01 01:09:00) [12]спасибо за прямоту!! но как переделать может подскажите??
Германн (2010-02-01 01:07:00) [13]
> Student :) © (01.02.10 00:52)
>
> пишу программу для работы с gsm модемом , с помощью компонента
> TCommPortDriver
Такого бредового кода я уже давно не видел!