3G модем не отвечает на AT комманды
Есть 3G модем Hyawei E153 с родной прошивкой и драйверами. Модем принимает и работает со всеми симкартами. Не заблокирован. Windows 11. Delphi 10.3 Компонент TBComPort ver.2.20 После инициализации выдает свои диагностические данные:
(* Открытие порта *)
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1Change(Self);
BComPort1.Open;
if BComPort1.Connected then
begin
ComboBox2Change(Self);
Button1.Enabled := False;
Button2.Enabled := True;
end;
end;
(* Поступившие в порт данные считываются и отображаются в Memo1 *)
procedure TForm1.BComPort1RxChar(Sender: TObject; Count: Integer);
var
AStr: AnsiString;
begin
SetLength(AStr, Count);
BComPort1.Read(AStr[1], Count);
Memo1.Lines.Add(AStr);
end;
вида:
^BOOT:43765839,0,0,0,66
^RSSI:9
^RSSI:9
^BOOT:43765839,0,0,0,66
^RSSI:9
^RSSI:9
^BOOT:43765839,0,0,0,66
^RSSI:9
^RSSI:9
При попытке передать в модем команду:
(* Передача в порт строки данных *)
procedure TForm1.Button3Click(Sender: TObject);
var
Str: String;
// Str: AnsiString;
begin
Str := 'AT+CREG?';
Memo1.Lines.Add(Str);
BComPort1.WriteStr(Str);
// BComPort1.WriteStr(AnsiString(Str));
end;
Не происходит ничего. Модем никак на нее не отвечает. Не важно что передавать.
Подскажите, что править? В чем ошибка?
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Теперь и передавать будем AnsiString
procedure TForm1.Button3Click(Sender: TObject);
var
AStr: AnsiString;
begin
AStr := 'AT+CREG?';
Memo1.Lines.Add(AStr);
BComPort1.Write(AStr[1], Length(AStr));
end;
Кроме того, команды, вероятно, должны завершаться терминатором: обычно #13 или #13#10 (CR, CRLF)