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)

→ Ссылка