Главный модуль программы (часть 11) - SwitchToP2K

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 131
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
procedure TForm1.SwitchToP2K;
var
  x: word;
label lbl_03;  
begin
Screen.Cursor:= crHourGlass;
Application.ProcessMessages;
try
  Logger('Процедура переключения в P2K режим');
  if IsATConnected then begin

                           Logger('АТ режим активен. Выключаю его.');
                           DisconnectingAT;
                         end;
//если открыт OBEX, то закрыть
  if IsOBEXConnected then begin
                            try
                              Logger('OBEX режим активен. Выключаю его.');
                              frmOBEXFM.OBEX_Disconnect;
                              frmOBEXFM.VaComm1.Close;
                              IsOBEXConnected:= false;
                              Logger('OBEX режим отключен');
                            except
                              IsOBEXConnected:= true;
                              Logger('*** OBEX режим не отключился');
                            end;    
                          end;
//запустить P2K
lbl_03:
  try
    if P2K <> nil then begin
                         P2K.Destroy;
                         p2k:= nil;
                       end;
    p2k:=TP2KAPI.create(nil);
    p2k.RegisterNotifyer(@Status_Notifyer);
    //p2k.RegisterLogger(@Logger);
    P2K.Init(true);
    Logger('P2K режим включен');
  except
    IsP2KConnected:= false;
    Logger('P2K режим не включился');
  end;
  if not IsP2KConnected then
    begin
        // проверяем режим MMC
          x:= FindUSBDiskInterface('MOTOROLA', $105);
          if x > 0 then
            begin
              sleep(SwitchModeTimeOut);
              goto lbl_03;
            end;
        // проверяем режим Flash
        x:= 0;
        x:=FindUSBInterface(MotFlashInt, $0002);
          if x > 0 then
            begin
              // интерфейс нашли, надо вывести из флеш мод
              //IsFlashConnected:= P2K.Switch2Flash;
              //CurrentP2KMode:= FlashMode;
              x:= spSkinMessage1.MessageDlg('Телефон находится во Flash режиме.' +
                                            'Вывести телефон из этого режима?', mtInformation, [mbYes, mbNo], 0);
              if x = mrYes then
              begin
                P2K.FlashReset;
                IsFlashConnected:= false;
                IsP2KConnected:= false;
                TelStatus:= false;                
              end;
              //'
              //IsFlashConnected:= not(P2K.FlashReset);
              //sleep(SwitchModeTimeOut);
              //CurrentP2KMode:= TCIMode;
              //x:= spSkinMessage1.MessageDlg('Включите телефон вручную, удерживая крансую кнопку.', mtInformation, [mbOk], 0);
              //goto lbl_03;
              //end;
              //IsP2KConnected:=
            end;
        (*
          IsFlashConnected:= P2K.Switch2Flash;
          if IsFlashConnected then
            begin
              if P2K.FlashReset then begin
                                       sleep(SwitchModeTimeOut);
                                       goto lbl_03;
                                     end;
            end;
         *)
    end;
finally
Screen.Cursor:= crDefault;
end;
end;
Rambler's Top100