亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fmain.~pas

?? This source code. simple tools for huawei CDMA platform function : read code write code read sp
?? ~PAS
?? 第 1 頁 / 共 3 頁
字號:
unit FMain;

interface

uses
  Windows, Messages, SysUtils,IniFiles, Variants, Classes, Graphics, Controls, Forms,
  Dialogs , StdCtrls, ComCtrls, ExtCtrls, Buttons,comport,DeviceChange, DB,
  Grids;

const
    MaxEnumComNum = 25;
    Z_OK = 0;
    Z_IO_ERROR = 4;

	HexArr: array[0..$0F]of string=
   	(	'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
  NUL_CHAR = '.';

    CRC16_arr : array[Byte] of Word =
    ($0000, $1189, $2312, $329b, $4624, $57ad, $6536, $74bf,
     $8c48, $9dc1, $af5a, $bed3, $ca6c, $dbe5, $e97e, $f8f7,
     $1081, $0108, $3393, $221a, $56a5, $472c, $75b7, $643e,
     $9cc9, $8d40, $bfdb, $ae52, $daed, $cb64, $f9ff, $e876,
     $2102, $308b, $0210, $1399, $6726, $76af, $4434, $55bd,
     $ad4a, $bcc3, $8e58, $9fd1, $eb6e, $fae7, $c87c, $d9f5,
     $3183, $200a, $1291, $0318, $77a7, $662e, $54b5, $453c,
     $bdcb, $ac42, $9ed9, $8f50, $fbef, $ea66, $d8fd, $c974,
     $4204, $538d, $6116, $709f, $0420, $15a9, $2732, $36bb,
     $ce4c, $dfc5, $ed5e, $fcd7, $8868, $99e1, $ab7a, $baf3,
     $5285, $430c, $7197, $601e, $14a1, $0528, $37b3, $263a,
     $decd, $cf44, $fddf, $ec56, $98e9, $8960, $bbfb, $aa72,
     $6306, $728f, $4014, $519d, $2522, $34ab, $0630, $17b9,
     $ef4e, $fec7, $cc5c, $ddd5, $a96a, $b8e3, $8a78, $9bf1,
     $7387, $620e, $5095, $411c, $35a3, $242a, $16b1, $0738,
     $ffcf, $ee46, $dcdd, $cd54, $b9eb, $a862, $9af9, $8b70,
     $8408, $9581, $a71a, $b693, $c22c, $d3a5, $e13e, $f0b7,
     $0840, $19c9, $2b52, $3adb, $4e64, $5fed, $6d76, $7cff,
     $9489, $8500, $b79b, $a612, $d2ad, $c324, $f1bf, $e036,
     $18c1, $0948, $3bd3, $2a5a, $5ee5, $4f6c, $7df7, $6c7e,
     $a50a, $b483, $8618, $9791, $e32e, $f2a7, $c03c, $d1b5,
     $2942, $38cb, $0a50, $1bd9, $6f66, $7eef, $4c74, $5dfd,
     $b58b, $a402, $9699, $8710, $f3af, $e226, $d0bd, $c134,
     $39c3, $284a, $1ad1, $0b58, $7fe7, $6e6e, $5cf5, $4d7c,
     $c60c, $d785, $e51e, $f497, $8028, $91a1, $a33a, $b2b3,
     $4a44, $5bcd, $6956, $78df, $0c60, $1de9, $2f72, $3efb,
     $d68d, $c704, $f59f, $e416, $90a9, $8120, $b3bb, $a232,
     $5ac5, $4b4c, $79d7, $685e, $1ce1, $0d68, $3ff3, $2e7a,
     $e70e, $f687, $c41c, $d595, $a12a, $b0a3, $8238, $93b1,
     $6b46, $7acf, $4854, $59dd, $2d62, $3ceb, $0e70, $1ff9,
     $f78f, $e606, $d49d, $c514, $b1ab, $a022, $92b9, $8330,
     $7bc7, $6a4e, $58d5, $495c, $3de3, $2c6a, $1ef1, $0f78);


  Q0_OK_inc_CRC:
      ARRAY[1..5] OF BYTE= ($7E,$02,$6A, $D3, $7E);
  Q0_Refresh:
      ARRAY[1..3] OF BYTE= ($7E,$7E,$7E);
  Q0_GET_SW_INFO:
      ARRAY[1..1] OF BYTE=($00);
  Q0_GET_HW_INFO:
      ARRAY[1..5] OF BYTE=($C0, $03, $06, $00, $10);
  Q0_MODE_OFFLINE_A:
      ARRAY[1..3] OF BYTE= ($29,$00,$00);
  Q0_MODE_OFFLINE_D:
      ARRAY[1..3] OF BYTE= ($29,$01,$00);
  Q0_RESET:
      ARRAY[1..3] OF BYTE= ($29,$02,$00);
  Q0_DOWNLOAD:
      ARRAY[1..1] OF BYTE= ($3A);
  Q0_boot_1:
      ARRAY[1..1] OF BYTE= ($0c);
  Q0_boot_2:
      ARRAY[1..20] OF BYTE= ($29, $00, $00, $00, $F9, $D1, $D2, $0B, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00);
  Q0_boot_3:
      ARRAY[1..3] OF BYTE= ($C1, $00, $00);
  Q0_boot_4:
      ARRAY[1..9] OF BYTE= ($25, $A2, $3E, $FF, $0F, $58, $72, $7D, $5D);
  Q0_EXIT_DM:
      ARRAY[1..8] OF BYTE= ($D0, $D1, $D2, $0B, $00, $00, $00, $00);
  Q0_WD:
      ARRAY[1..10] OF BYTE= ($7E, $99, $E6, $F9, $CD, $2A, $C7, $3F, $BA, $B5);



  EOQ = $7E;  STX = $02; SEPQ = $00;  EOT = $04;

type
T_IntVect = Array of byte;
  T_Handset_INFO = object

        Model : String;
   	    CPU: String;
        SW_Ver : String;
        HW_boot : String;
        Boot_Ver : String;
    end;
  T_MODELz = object
    name : String;
    FLASH_ADDR : dword;
    FLASH_LEN : dword;
    BUFFER : dword;
    FLASH_SUPPORTED : boolean;
    ULNOCK_SUPPORTED : boolean;
    USR_CODE_EDIT : boolean;
  end;

  T_QTAC = ARRAY of T_MODELz;

  TMain = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    cmb_com: TComboBox;
    Label1: TLabel;
    grp_services: TGroupBox;
    ProgressBar: TProgressBar;
    StatusBar: TStatusBar;
    btn_info: TButton;
    btn_DM: TButton;
    btn_offline_d: TButton;
    btn_restart: TButton;
    btn_wd: TButton;
    Timer: TTimer;
    OpenDialog: TOpenDialog;
    Lock: TGroupBox;
    User_code: TEdit;
    btn_lock: TButton;
    btn_wr_lock: TButton;
    GroupBox7: TGroupBox;
    btn_rd_spc: TButton;
    btn_wr_spc: TButton;
    SPC: TEdit;
    Tab_Info: TPageControl;
    TabSheet1: TTabSheet;
    Memo: TMemo;

    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Terminate;
    procedure stop;
    procedure AddLinesLog(s: string);
    procedure error;
    Function  Info_dm: boolean;
    Function dm:boolean;
    Function EXIT_DM:boolean;
    procedure btn_infoClick(Sender: TObject);
    procedure btn_rd_spcClick(Sender: TObject);
    procedure btn_restartClick(Sender: TObject);
    procedure btn_lockClick(Sender: TObject);
    procedure btn_offline_aClick(Sender: TObject);
    procedure btn_DMClick(Sender: TObject);
    procedure btn_exit_dmClick(Sender: TObject);
    procedure btn_offline_dClick(Sender: TObject);
    Function  InitializeINTERFACE: boolean;
    procedure ComBo_INTERFACESelect(Sender: TObject);
    procedure REFR_INTERFACE_LIST;
    procedure FormShow(Sender: TObject);
    procedure COM_Change(Sender: TObject);
    Procedure StatusBar_UPDATE( phone: T_Handset_INFO);
    procedure Get_INFO(echo:boolean);
    procedure btn_wdClick(Sender: TObject);
    procedure btn_wr_lockClick(Sender: TObject);
    procedure idletime(Sender: TObject; var Done: Boolean);
    procedure FormDestroy(Sender: TObject);
    procedure DevChangeArrival(Sender: TObject; ADeviceType: TDeviceType; APtr: Pointer);
    procedure DevChangeRemoveComplete(Sender: TObject; ADeviceType: TDeviceType; APtr: Pointer);
    procedure btn_wr_spcClick(Sender: TObject);

  private
    { Private declarations }
  DeviceChange1 : TDeviceChange;
  public
    { Public declarations }
  end;

var
  Main: TMain;
  iniFile : TIniFile = nil;
  iniFileX : TIniFile = nil;
//  iniFileName : string = '.\huawei_tools.ini';
  REFRESH_REQUESTED : Boolean;
  PortNum : integer;
  QTAC : T_QTAC;
  OK_ALLOWED : Boolean;

implementation

{$R *.dfm}

function RightStr
    (Const Str: String; Size: Word): String;
begin
  if Size > Length(Str) then Size := Length(Str) ;
  RightStr := Copy(Str, Length(Str)-Size+1, Size)
end;

function MidStr
    (Const Str: String; From, Size: Word): String;
begin
  MidStr := Copy(Str, From, Size)
end;

function LeftStr
    (Const Str: String; Size: Word): String;
begin
  LeftStr := Copy(Str, 1, Size)
end;




function CRC16_Calc0(DataPtr: Pointer; DataLen: Integer): Word;
var
  i: Integer;
begin
  Result := $ffff;
  while ((PByte(DataPtr)^)=$7e)
    do
      begin
        Inc(PByte(DataPtr));
        Dec(DataLen);
      end;
  for i := 0 to DataLen - 1 do
  begin
    Result := CRC16_arr[Byte(Result xor PByte(DataPtr)^)] xor
              ((Result shr 8) and $0ff);
    Inc(PByte(DataPtr));
  end;
  Result := Result Xor $ffff;
end;

Procedure QAPPEND_CRC(var CMD: T_IntVect; CHKsum: word);
var
  crc1,crc2: byte;
  len, num : integer;
begin
  num:= 0;
  crc1 := (CHKsum ) ;
  crc2 := (CHKsum Shr 8) and $00FF ;
  len := Length(CMD);
  num := num+1;
  len := Len+1;
  SetLength(CMD,Len);
  CMD[Len-1] :=  crc1;
  num := num+1;
  len := Len+1;
  SetLength(CMD,Len);
  CMD[Len-1] :=  crc2;
end;

Function QSerialize(DataPtr:T_IntVect): T_IntVect;
var buf1: T_IntVect;
  i, offset, DataLEn : integer;
begin
  offset := 0;
  DataLEn := Length(DataPtr);
  SetLength(buf1,DataLEn);
  for i:=0 to DataLEn-1 do
      begin
        case (DataPTR[i]) of
          $7e : if i=0 then buf1[i+offset] := DataPtr[i]
                  else
                begin
                  setlength (buf1,length(buf1)+1);
                  buf1[i+offset] := $7d;
                  Inc(offset);
                  buf1[i+offset] := $5e;
                end;
          $7d : begin
                  setlength (buf1,length (buf1)+1);
                  buf1[i+offset] := $7d;
                  Inc(offset);
                  buf1[i+offset] := $5d;
                end;
          else buf1[i+offset] := DataPtr[i];
        end;
    end;
  result := buf1;
end;



function StrToHexSTR(txt: string): string;
var i: integer;
  ret: string;
begin
  i:=1;
  ret := '';
  while i<length(txt)
    do
      begin
        if copy(txt,i,length(NUL_CHAR)) = NUL_CHAR
          then
            begin
              ret := ret + ' $00';
              i := i+5;
            end
          else
        if copy(txt,i,5) = '<STX>'
          then
            begin
              ret := ret + ' $02';
              i := i+5;
            end
          else
        if copy(txt,i,5) = '<EOq>'
          then
            begin
              ret := ret + ' $7E';
              i := i+5;
            end
      else
        if copy(txt,i,5) = '<EOT>'
          then
            begin
              ret := ret + ' $04';
              i := i+5;
            end
          else
            begin
              ret := ret + ' $'+IntToHex(Integer(txt[i]),2);
              Inc(i);
            end;
    end;
  StrToHexSTR := ret;
end;



Procedure auto_crc;
var
len : integer;
CHKsum : word;
CMD : T_IntVect;
begin
      CHKsum := CRC16_Calc0(CMD, len);
      len := Len+2;
      SetLength(CMD,len);
      CMD[len-2] := (CHKsum ) ;
      CMD[len-1] := (CHKsum Shr 8) and $00FF ;
end;

procedure Chk_ADD_EOq;
var
len : integer;
CMD : T_IntVect;
begin
      if (CMD[len-1] <> EOq)
        then
          begin
            len := Len+1;
            SetLength(CMD,len);
            CMD[len-1] := EOq;
          end;
end;


function Hex2_Int(Value: char;pos:shortint): integer;
var val,i: integer;
begin
  val := 1;
  for i := 1 to pos do
    val := val * 16;
  case Value of
    'A', 'a' :  result := 10 * val;
    'B', 'b':   result := 11 * val;
    'C', 'c':   result := 12 * val;
    'D', 'd':   result := 13 * val;
    'E', 'e':   result := 14 * val;
    'F', 'f':   result := 15 * val;
    '1'..'9':   result := StrToInt(Value) * val;
    '0'     :   result := 0;
  end;
end;

function Hex2Int(Value: String): dword;
var
  len,val,i : integer;

begin
  len := Length(Value);
  val := 0;
  for i:=len downto 1 do
    val  := val+Hex2_Int(Value[i],len-i);
    Hex2Int := val;
end;


function IntArray2HexSTR(Arr: Array of byte): String;
var len,i: integer;
    txt: string;
begin
  len := length(Arr);
  txt := '';
  txt := IntToHex(Arr[0],2);
  for i:=1 to len-1 do
    txt := txt + ' '+IntToHex(Arr[i],2);
  txt := txt;
  IntArray2HexSTR := txt;
end;

Procedure Del_CHAR(var src: string;pos:word);
begin
  src := copy(src,1,pos-1)+ copy(src,pos+1,length(src));
end;

Procedure Add_CHAR(var src: string;pos:word;chr:char);
begin
  src := copy(src,1,pos-1)+chr+copy(src,pos,length(src));
end;


function HexSTR2IntArray(src: String): T_IntVect;
var 	lungth, i, j : byte;
  output: T_IntVect;
  deb : string;
  deb1 : integer;
begin
while (length(src)>1) and (src[1]=' ')
  do Del_CHAR(src,1);
while (length(src)>0) and (src[length(src)]=' ') do Del_CHAR(src,length(src));
for i := 1 to length(src) do
  if src[i] = ' ' then
    begin
      while (i<length(src)) and (src[i+1]=' ')
        do Del_CHAR(src,i);
      if src[i+2] = ' ' then Add_CHAR(src,i+1,'0');
        Del_CHAR(src,i);
    end;
  lungth := Length(src);
  SetLength(output,lungth  Div 2);
  if Length(output)=0 then SetLength(output,1);
  i := 1;
  j := 0;
  while i<=lungth do
    begin
      deb:= copy(src,i,2);
      deb1 := Hex2Int(deb);
      output[j] := deb1;
      i := i+2;
      j := j+1;
    end;
  HexSTR2IntArray := output;
end;

procedure TMain.DevChangeArrival(Sender: TObject; ADeviceType: TDeviceType; APtr: Pointer);

begin
  main.AddLinesLOG('- New COM port found .');
  if ADeviceType <> dtPORT then exit;
  REFRESH_REQUESTED := True;
end;

procedure TMain.DevChangeRemoveComplete(Sender: TObject; ADeviceType: TDeviceType; APtr: Pointer);

begin
  if ADeviceType <> dtPORT then exit;
  Main.AddLinesLOG('- COM port removed.');
  REFRESH_REQUESTED := True;
end;

Function IntefaceInfo: STRING;
var
  res : string;
begin
  res := '';
  if PortNum< MaxEnumComNum
    then
      begin
      res := res + 'COM'+IntToStr(ComNum);
  res := res +'@'+IntToStr(ComBaud)+' b/s ';
  result :=  res;
  main.AddLinesLog(result);
end;
end;


function ZComOpen : integer;
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产主播一区二区三区| 亚洲免费在线观看视频| 在线视频国内一区二区| 99视频精品全部免费在线| 国产盗摄女厕一区二区三区| 精品无人码麻豆乱码1区2区 | 欧美日韩一区不卡| 色呦呦一区二区三区| 在线国产亚洲欧美| 日本高清视频一区二区| 欧美亚洲国产一区在线观看网站| 一本到不卡免费一区二区| 日本久久一区二区三区| 欧美色偷偷大香| 欧美成人精精品一区二区频| 337p日本欧洲亚洲大胆精品| 久久综合九色综合欧美就去吻| 久久婷婷国产综合国色天香 | a级精品国产片在线观看| 成人午夜视频网站| 在线视频国内一区二区| 7777精品伊人久久久大香线蕉经典版下载| 91精品国产综合久久久久久漫画 | 欧美日韩中字一区| 日韩一级精品视频在线观看| 2024国产精品视频| 亚洲女与黑人做爰| 久久电影网电视剧免费观看| 国产成人一级电影| 91福利在线看| 久久影院视频免费| 亚洲理论在线观看| 另类小说色综合网站| 成人在线综合网| 欧美精品第1页| 国产欧美综合色| 亚洲第四色夜色| 国产精品小仙女| 欧美日韩激情一区二区三区| 欧美精品一区二区三区蜜桃| 国产精品乱码一区二三区小蝌蚪| 亚洲一区二区三区四区五区黄| 久久99久国产精品黄毛片色诱| 99视频有精品| 国产日韩v精品一区二区| 亚洲图片一区二区| 国产成人精品aa毛片| 欧美一区二区国产| 亚洲欧美二区三区| 国产一区二区三区免费观看| 欧美精品一卡二卡| 一二三四社区欧美黄| 国产精品一区二区三区乱码| 欧美一区二区在线看| 中文字幕在线免费不卡| 国内不卡的二区三区中文字幕| 在线免费观看日本一区| 国产精品无人区| 久久99久国产精品黄毛片色诱| 欧美性受xxxx黑人xyx性爽| 日本一区二区不卡视频| 久久99久久精品| 日韩一区二区电影在线| 亚洲不卡一区二区三区| 一本色道久久综合精品竹菊| 亚洲国产精品ⅴa在线观看| 国产在线国偷精品免费看| 日韩欧美美女一区二区三区| 亚洲国产综合在线| 欧美性一区二区| 亚洲精品成人精品456| 波多野结衣中文一区| 国产女人18水真多18精品一级做| 看电影不卡的网站| 欧美不卡一区二区三区四区| 日韩av成人高清| 欧美二区三区91| 日韩二区三区四区| 在线电影院国产精品| 日韩国产精品久久久久久亚洲| 欧美福利视频导航| 久久精品国产澳门| 久久综合九色综合欧美98| 国产精品正在播放| 中文字幕日韩一区二区| 99re8在线精品视频免费播放| 国产精品超碰97尤物18| 91香蕉视频在线| 夜夜嗨av一区二区三区网页| 欧美三级视频在线| 乱中年女人伦av一区二区| 日韩精品专区在线影院重磅| 久久99国产乱子伦精品免费| 久久久无码精品亚洲日韩按摩| 丁香婷婷综合五月| 亚洲伦理在线精品| 欧美精品 国产精品| 激情综合亚洲精品| 中文字幕在线一区二区三区| av一本久道久久综合久久鬼色| 亚洲精品成人天堂一二三| 这里只有精品99re| 高清国产一区二区三区| 一片黄亚洲嫩模| 精品国产免费一区二区三区香蕉| 成人性生交大片免费| 午夜私人影院久久久久| 欧美精品一区二区三区很污很色的| 成人手机电影网| 丝袜国产日韩另类美女| 国产拍揄自揄精品视频麻豆| 欧美三级中文字幕在线观看| 精品影视av免费| 亚洲黄一区二区三区| 久久先锋影音av鲁色资源网| 色呦呦国产精品| 国内精品国产三级国产a久久| 亚洲日本在线视频观看| 日韩精品一区国产麻豆| 色综合久久88色综合天天免费| 美国三级日本三级久久99| 中文字幕在线不卡视频| 日韩美女视频在线| 91福利视频在线| 高清成人在线观看| 精品亚洲porn| 日本少妇一区二区| 亚洲精品五月天| 欧美激情一区二区三区蜜桃视频| 欧美日韩精品专区| 91丨porny丨国产入口| 国产一区在线观看麻豆| 天堂蜜桃91精品| 一区二区三区av电影| 亚洲国产高清aⅴ视频| 久久亚区不卡日本| 精品久久久久久无| 538在线一区二区精品国产| 91丨porny丨户外露出| 成人av午夜影院| 国产精品18久久久久久久久久久久| 香蕉乱码成人久久天堂爱免费| 国产精品色哟哟| 国产婷婷色一区二区三区 | 国产精品久久影院| 久久久九九九九| 久久久久久久电影| 久久精品亚洲一区二区三区浴池| 欧美一区二区三区成人| 欧美日韩精品专区| 欧美日本不卡视频| 91精品国产美女浴室洗澡无遮挡| 色乱码一区二区三区88| 色综合久久久久综合| 色综合色狠狠天天综合色| 97se亚洲国产综合自在线| 97se亚洲国产综合自在线| 一本久久精品一区二区| 91精品1区2区| 欧美日韩一区二区在线视频| 欧美日韩一二三区| 欧美一区二区女人| 91精品国产高清一区二区三区 | 一区二区三区欧美| 亚洲一区二区三区四区在线| 五月婷婷久久综合| 男男成人高潮片免费网站| 日本一区中文字幕| 极品少妇xxxx精品少妇| 成人三级伦理片| 91福利区一区二区三区| 911国产精品| 久久九九99视频| 亚洲天堂福利av| 亚洲成人免费视频| 精品一区二区三区视频在线观看| 国产精品系列在线播放| 成人av资源下载| 欧美日韩一级片在线观看| 精品国产乱码久久久久久免费| 国产亚洲一本大道中文在线| 亚洲婷婷国产精品电影人久久| 一区二区三区中文字幕在线观看| 午夜精品久久久久久久| 久久99精品国产.久久久久久| 北条麻妃国产九九精品视频| 欧美喷潮久久久xxxxx| 精品国产凹凸成av人导航| 18欧美乱大交hd1984| 天天影视涩香欲综合网| 国产91对白在线观看九色| 欧美美女直播网站| 中文字幕av一区二区三区| 亚欧色一区w666天堂| 国产二区国产一区在线观看| 色婷婷久久久综合中文字幕| 精品国产一区二区亚洲人成毛片 | 成人一区二区在线观看| 欧美私人免费视频| 日本一区二区免费在线|