Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Huawei E160 jak wymusić ciagłe HSDPA

30 Maj 2009 23:15 4112 1
  • Poziom 18  
    Witajcie. Szybko i na temat.
    Mam modem Huawei E160. Z internetem łączy się dobrze i po połączeniu od razu inicjuje połączenie HSDPA ale jak nic nie wysyłam/odbieram to przełącza się na WCDMA po czym jak ponownie zaczynam coś wysyłać znowu wraca do HSDPA.
    Pytanie:
    Czy można w jakiś sposób wymusić żeby modem cały czas korzystał z HSDPA bez przełączania na WCDMA, czy jest to w jakiś sposób odgórnie ustawione przez operatora sieci ?
    Pozdrawiam i z góry dziękuje za odpowiedź.
  • Poziom 18  
    Oki temat zamykam bo mam rozwiązanie.
    Trzeba po prostu wysyłać cały czas pingi na jakiś serwer np na adres www.elektroda.pl :)
    Odstęp miedzy pingami jak i wielkość wysyłanych paczek trzeba dobrać eksperymentalnie. Ja u siebie mam tak:
    Wszystkie pingi wysyłam do sekundę. Najpierw wysyłam 3 pingi o wielkości paczki 2024 bajtów a potem paczki o wielkości 54 bajtów. Dlaczego takie zróżnicowanie. Pierwsze trzy pingi szybko wprowadzają modem w obsługę HSDPA a kolejne podtrzymują ten stan. Całość na szybko machnąłem w Delphi i wykorzystałem do tego komponent IdIcmpClient z paczki komponentów INDY 10. Oprócz tego na formie są dwa przyciski do rozpoczęcia wysyłania pingów i zakończenia wysyłania oraz Timer odmierzający czas 1s.
    Wygląda to mniej więcej tak:
    Code:

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Buttons, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
      IdIcmpClient, ExtCtrls;

    type
      TForm1 = class(TForm)
        SpeedButton1: TSpeedButton;
        SpeedButton2: TSpeedButton;
        IdIcmpClient1: TIdIcmpClient;
        Timer1: TTimer;
        procedure SpeedButton1Click(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure SpeedButton2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;
      licznik: Integer;
    implementation

    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    licznik:=0;
    end;

    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var i:Integer;
    begin
    Timer1.Enabled:=true;
    end;

    procedure TForm1.SpeedButton2Click(Sender: TObject);
    begin
    Timer1.Enabled:=false;
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
     if licznik<3 then
     begin
      IdIcmpClient1.PacketSize:=2024;
      licznik:=licznik+1;
     end else
     begin
      IdIcmpClient1.PacketSize:=54;
     end;
    IdIcmpClient1.Ping;
    end;
    end.