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

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

?? fmain.~pas

?? This source code. simple tools for huawei CDMA platform function : read code write code read sp
?? ~PAS
?? 第 1 頁 / 共 3 頁
字號:
  if portnum > MaxEnumComNum
    then
      begin
        if GetComStat
          then
            begin
              result := 0;
              exit;
            end;
        result := OpenCom(True);
      end;

end;

Procedure Z_INTERFACE_CLOSE;

begin
  if (ComNum<>0)
    then    // COM
      begin
      if GetComStat
        then
          begin
            CloseCom;
            main.AddLinesLog('<COM'+IntToStr(ComNum)+' interface closed>');
          end;
      end
end;


Function TMain.InitializeINTERFACE: boolean;
begin
  result := False;
  if PortNum = 0
    then
      begin
        main.AddLinesLog('- Select First Interface');
        exit;
      end;

      begin
        if ComBaud =0
          then
            begin
              Main.AddLinesLog('- Interface Speed auto-set : 115200 b/s');
              ComBaud := 115200;
            end;
        ChangeComSpeed(ComBaud);
        if ZComOpen <> 0
          then
            begin
              Main.AddLinesLog('- Cant get the interface');
              Z_INTERFACE_CLOSE;
              exit;
            end;
        result := True;
      end;
end;
function IntArray2ASCIIStr(Arr: Array of byte): String;
var len,i: integer;
    txt: string;
    a: string;
begin
  len := length(Arr);
  txt := '';
  for i:=0 to len-1 do
    begin
      case Arr[i] of
        $00 : txt := txt + NUL_CHAR;     // Nul
        else
          begin
            a := Chr(Arr[i]);
            txt := txt + A;
          end;
      end;
    end;
//  SetLength(txt,Length(txt)-1);
  RESULT := txt;
end;


Procedure Debugga(typ: shortint;arr: array of byte);
var len: integer;
  str : String;
begin
  with Main do
    begin
    len := length(arr);
    if (len > 0)  then
      begin
        str := IntToStr(len)+'> ';
        while length(str)< 5 do
              str := '0'+str;
        case typ of
          0 : begin
                str := '<len:'+str;
                main.AddLinesLog(str+IntArray2HexSTR(arr)+'   ');
              end;
          2 :
            begin
              str := '<TX:'+str;
           end;
          3 :
            begin
              str := '<RX:'+str;
           end;
          4 :
            begin
              str := '<len:'+str;
            end;
          else AddLinesLog(IntArray2HexSTR(arr));
        end
      end
    else AddLinesLog('- Phone Not Connected');

  end;
end;


Function Send_CMD(CMD: Array of byte): boolean;

begin
  result := False;

  if not(Main.InitializeINTERFACE) then exit;
  if (length(CMD) = 0)
    then
      begin
        Main.AddLinesLOG('- Not Connected'+IntArray2HexSTR(CMD));
        exit;
      end;

Debugga(2,CMD);

  if COMnum>0
    then      //COM
      begin
        result := WriteCom(@CMD, length(CMD));
        exit;
      end
end;

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

function  Z_PurgeCom(mode:Dword): boolean;
begin
  result := False;
  if portnum = 0 then exit;
  if portnum > MaxEnumComNum
    then      //COM
      begin
        result := PurgeCom(mode);
        exit;
      end
end;



Function ReadCMD: T_IntVect;
var
  buffy: Array [0..4] of byte;
  reply : T_IntVect;
  i, count : integer;
begin
  i:= 1;
  count:=0;
  if ComNum>0
    then        //COM
      while ReadCom(@buffy, 4) do
        begin
          i := 0;
          while i<length(buffy)-1 do
            begin
              count := count+1;
              setlength(reply,count);
              reply[count-1] := buffy[i];
              Inc(i);
            end;
        end;
  result := QUN_Serialize(reply);
if count=0
    then Z_PurgeCom(PURGE_RXCLEAR) ;
 if not Z_PurgeCom(PURGE_RXCLEAR)
    then Main.AddLinesLog('- Error after read');
  Debugga(3,reply);
END;


Function DO_CMD(CMD_in: array of byte;ADD_CRC,ADD_EOq:boolean;READ_REPLY:Boolean): Boolean;
var
  i,j,len : integer;
  txt: String;
  CHKsum : word;
  CMD,reply : T_IntVect;
  str:string;
  DataPtr : pointer;
  DataLen: Integer;
begin
  str:='';
  DO_CMD := False;
  len := length(CMD_in);
  if len = 0 then exit;
  SetLength(CMD,len);
  for i:=0 to len-1 do
    CMD[i] := CMD_in[i];

  DataPtr :=  CMD;
  DataLen := Len;
  while ((PByte(DataPtr)^)=$7e)
    do
      begin
        Inc(PByte(DataPtr));
        Dec(DataLen);
      end;
  if ADD_CRC then
    begin
      CHKsum := CRC16_Calc0(DataPtr, DataLen);
      len := length(CMD);
    end;
  len:=  Length(CMD);
  if ADD_CRC then QAPPEND_CRC(CMD,CHKsum);
  CMD := QSerialize(CMD);
  len:=  Length(CMD);
    if ADD_EOq then
    begin
      if (CMD[len-1] <> EOq)
        then
          begin
            len := Len+1;
            SetLength(CMD,len);
            CMD[len-1] := EOq;
          end;
      end;
  if str<>'' then main.AddLinesLog(str);
  if Send_CMD(CMD)
    then DO_CMD := True
    else exit;
  if READ_REPLY
    then
      begin
        DO_CMD := False;
        reply := ReadCMD;
        i:=0;
        j:=0;
        if (length(reply)=0) then
          begin
            Send_CMD(Q0_Refresh);
            reply := ReadCMD;
            if (length(reply)=0) then
              begin
                Main.AddLinesLOG('- Phone Delay Err..');
                Main.AddLinesLOG('- Please Try again');

                exit;
              end;
          end;
        while reply[i] = $7e do Inc(i);
        while CMD[j] = $7e do Inc(j);
        if reply[0]=$13
          then
            begin
              Main.AddLinesLog('- Phone State NOT Supported.');
              DO_CMD := False;
              exit;
            end;
        if CMD[j]=reply[i]
          then
            begin
              DO_CMD := True;
              exit;
            end
          else
            if (length(reply)=4)
              then
                case reply[i] of
                  $02 : begin
                          DO_CMD := True;
                          exit;
                        end;
                  $03 : Main.AddLinesLog('- ERR_ILLEGAL_MODE');
                  $13 : Main.AddLinesLog('- ERR_CMD_NOT_ALLOWED');
                  $14 : Main.AddLinesLog('- ERR_SYNTAX_ERR');
                  $15 : Main.AddLinesLog('- ERR_illegal_DATA');
                  else  Main.AddLinesLog('- ERR_ACK NO Reply: ? ? ? !');
                end
              else
                if reply[i] =  $03
                  then Main.AddLinesLog('- ERR_ILLEGAL_MODE');
      end;
end;


procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Z_INTERFACE_CLOSE

end;



procedure TMain.Terminate;
begin
closecom;

end;




procedure TMain.Stop;
begin
Z_INTERFACE_CLOSE;
terminate;
end;


procedure TMain.AddLinesLog(s: string);
begin
  Memo.Lines.Add(s);
end;



procedure TMain.error;
begin
AddLinesLog('- Select Com Interface');
AddLinesLog('- Make Sure Your Cable Connection is good');
AddLinesLog('- Check Phone Power');
exit;
end;

function GetQPCKType20(start,lung:dword): T_IntVect;
var qpck: T_IntVect;
begin
  SetLength(qpck, 9);
  qpck[0] := $01;
  qpck[4] := start and $00000000;
  qpck[3] := (start shr 8)  and $00000000;
  qpck[2] := (start shr 16) and $00000000;
  qpck[1] := (start shr 24) and $00000000;
  qpck[8] := lung and $0000FEAF;
  qpck[7] := (lung shr 8)  and $0000FFFF;
  qpck[6] := (lung shr 16) and $0000FFFF;
  qpck[5] := (lung shr 24) and $0000FFFF;
  GetQPCKType20 := qpck;
end;

function rev_byte(arr: byte): byte;
var bar1,bar2 : byte;
begin
  bar2 := arr and $F0;
  bar2 := bar2 shr 4;
  bar1 := arr and $0F;
  bar1 := bar1 shl 4;
  rev_byte := bar2+bar1;
end;

function GetQPCKType01(n: byte;lung:word;buf: array of byte): T_IntVect;
var pck: T_IntVect;
  i,j, offset: integer;
  CHKsum : word;
  crc1,crc2 : byte;
begin
  setlength (pck,lung+7);
  pck[0] := EOQ;
  pck[1] := 01;
  pck[2] := SEPQ;
  pck[3] := rev_byte(n);
  pck[4] := SEPQ;
  pck[5] := lung shr 8;
  pck[6] := lung and $FFFF;
  offset := 7;
  for i:=0 to (lung-1) do
    pck[i+offset] := buf[i];
  CHKsum := CRC16_Calc0(@pck[0], length(pck)) ;
  QAPPEND_CRC(pck,CHKsum);
  Inc(n);
  GetQPCKType01 := pck;
end;

function GetQPCKType21(start,lung:dword): T_IntVect; //DATAGRAM chk)
var qpck: T_IntVect;
begin
  SetLength(qpck, 10);
  qpck[0] := EOQ;
  qpck[1] := $01;
  qpck[5] := start and $00000000;
  qpck[4] := (start shr 8)  and $00000000;
  qpck[3] := (start shr 16) and $00000000;
  qpck[2] := (start shr 24) and $00000000;
  qpck[9] := lung and $0000FEAF;
  qpck[8] := (lung shr 8)  and $0000FFFF;
  qpck[7] := (lung shr 16) and $0000FFFF;
  qpck[6] := (lung shr 24) and $0000FFFF;
  GetQPCKType21 := qpck;
end;


Procedure TMain.StatusBar_UPDATE( phone: T_Handset_INFO);
begin
  with StatusBar.Panels do
          BEGIN
            Items[0].Text := 'Phone Connected : ' + Phone.Model;
          end;
end;

function GET_CMD(CMD: array of byte): T_IntVect;
var i,len: integer;
   arr: T_IntVect;
   CHKsum : word;
begin
    len := length(CMD);
    setlength(arr,len+3);
    for i:=0 to len-1 do
      arr[i] := CMD[i];
   CHKsum := CRC16_Calc0(arr, len);
   arr[len] := (CHKsum ) ;
   arr[len+1] := (CHKsum Shr 8) and $00FF ;
   arr[len+2] := EOq;
   result := arr;
end;



Function GetPhoneInfo(arr: array of byte): T_Handset_INFO;
var phone : T_Handset_INFO;
  arr2: array of byte;
  i,j,len: integer;
  txt : string;
begin
  len := length(arr);
  if (len<12) then exit;
  SetLength(arr2,len-12);
  for i:=12 to len-1 do
    begin
      arr2[i-12] := arr[i];
    end;
  txt := IntArray2ASCIIStr(arr2);
  Phone.Model := LeftStr(txt,5);
  Phone.Boot_Ver := MidStr(txt, 37, 5);
  Phone.SW_Ver := LeftStr(txt,13);
  phone.HW_boot := MidStr(txt, 60, 6);
  GetPhoneInfo :=phone;
end;

Function TMain.Info_dm:boolean;
var pck : t_intvect;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲综合久久| 日韩一区日韩二区| 日韩视频一区二区三区| 91官网在线免费观看| 91浏览器在线视频| 91啪亚洲精品| 欧美性生活大片视频| 欧美日韩免费在线视频| 欧美乱妇15p| 日韩一区二区麻豆国产| 日韩一区二区精品在线观看| 日韩欧美一区中文| 久久品道一品道久久精品| 久久久久久久久免费| 中文字幕第一区第二区| 国产精品午夜在线| 亚洲天堂精品在线观看| 亚洲制服丝袜一区| 日韩高清一区在线| 激情综合网天天干| 成人黄页毛片网站| 一本一本大道香蕉久在线精品| 在线国产电影不卡| 91精品国产综合久久久久久久| 日韩三级.com| 亚洲国产高清aⅴ视频| 亚洲三级电影网站| 三级欧美韩日大片在线看| 久久精品国内一区二区三区| 国产麻豆精品在线| 色婷婷av一区| 日韩区在线观看| 国产精品蜜臀在线观看| 亚洲午夜久久久久久久久电影院 | 亚洲成人av免费| 婷婷中文字幕一区三区| 国产最新精品免费| 91色乱码一区二区三区| 欧美一级高清大全免费观看| 国产日韩欧美制服另类| 亚洲精品免费电影| 精品在线亚洲视频| 91国偷自产一区二区三区成为亚洲经典| 91麻豆精品国产自产在线观看一区 | 国产午夜精品一区二区| 一卡二卡三卡日韩欧美| 精品一区二区三区免费视频| av亚洲精华国产精华精| 日韩一区二区三区免费看| 国产精品久久影院| 免费看精品久久片| 91在线免费看| 久久综合av免费| 夜夜夜精品看看| 国产成人免费视频| 在线播放/欧美激情| 中文在线一区二区| 奇米在线7777在线精品| 99在线精品视频| 精品国产伦一区二区三区观看方式 | 青青青爽久久午夜综合久久午夜| 成人综合在线网站| 日韩欧美一区在线| 国产精品久久久久毛片软件| 久久激五月天综合精品| 国产91清纯白嫩初高中在线观看| 91极品视觉盛宴| 精品视频1区2区3区| 日韩美女视频在线| 国产精品一区二区无线| 日本中文一区二区三区| 久久久国际精品| 欧美午夜不卡在线观看免费| 精品一区二区影视| 亚洲精品午夜久久久| 日韩三级伦理片妻子的秘密按摩| 丰满岳乱妇一区二区三区| 亚洲精品国产无天堂网2021| 久久久精品tv| 欧美高清视频一二三区| 精品国产免费一区二区三区香蕉 | 久久久国产午夜精品| 国产福利91精品一区| 国产麻豆视频精品| 国产91高潮流白浆在线麻豆| 国产精品正在播放| 高清在线观看日韩| 成人高清视频免费观看| 91免费看片在线观看| 在线观看日韩毛片| 欧美精三区欧美精三区| 欧美一区二区三区免费在线看 | 欧美一级久久久| 欧美一级片在线观看| 日韩精品自拍偷拍| 久久久青草青青国产亚洲免观| 国产欧美一区二区精品性色 | 国产风韵犹存在线视精品| 风间由美性色一区二区三区| 97久久精品人人爽人人爽蜜臀| 91福利社在线观看| 欧美一级艳片视频免费观看| 亚洲精品一区二区三区四区高清| 国产农村妇女毛片精品久久麻豆 | 蜜桃91丨九色丨蝌蚪91桃色| 国产一区二区毛片| 色婷婷av久久久久久久| 欧美日韩精品是欧美日韩精品| 欧美v亚洲v综合ⅴ国产v| 国产精品福利影院| 日韩av一区二区三区| 国产成人啪午夜精品网站男同| 色综合咪咪久久| 日韩欧美国产综合| 中文字幕一区二区三区精华液 | 国产一区福利在线| av日韩在线网站| 777亚洲妇女| 欧美国产禁国产网站cc| 亚洲午夜久久久久中文字幕久| 久久精品国产99| 在线一区二区三区四区五区| 精品国产伦一区二区三区观看体验| 中文字幕色av一区二区三区| 日本伊人午夜精品| av在线不卡免费看| 26uuu精品一区二区| 亚洲精品日韩专区silk| 国产精品一二二区| 在线不卡一区二区| 亚洲视频每日更新| 韩国三级中文字幕hd久久精品| 在线观看一区日韩| 国产精品入口麻豆九色| 奇米色777欧美一区二区| 99久久99久久免费精品蜜臀| 欧美一区二区人人喊爽| 综合色中文字幕| 国产真实乱子伦精品视频| 欧美日韩一级视频| 成人免费一区二区三区在线观看| 裸体健美xxxx欧美裸体表演| 色久综合一二码| 国产精品精品国产色婷婷| 激情五月播播久久久精品| 欧美男女性生活在线直播观看| 亚洲欧洲日韩在线| 国产传媒一区在线| www激情久久| 久久97超碰国产精品超碰| 91精品国产综合久久香蕉的特点| 亚洲欧美另类久久久精品2019| 成人午夜在线免费| 欧美激情一区在线观看| 精品一区二区影视| 日韩视频免费观看高清完整版在线观看| 亚洲精品国产一区二区三区四区在线 | 国产喂奶挤奶一区二区三区| 免费在线观看一区二区三区| 欧美丝袜丝交足nylons| 一区二区在线免费| 91在线观看下载| 成人免费一区二区三区视频 | 欧美中文字幕一二三区视频| 国产精品三级av在线播放| 国产成人激情av| 国产欧美日韩精品在线| 国产suv精品一区二区883| 国产日产精品一区| 高清不卡一区二区| 国产精品美女久久久久久久久| 成人av动漫网站| 中文欧美字幕免费| av亚洲精华国产精华精| 亚洲色图欧美激情| 色8久久人人97超碰香蕉987| 亚洲五码中文字幕| 91精品国产91久久久久久最新毛片| 日韩二区三区在线观看| 欧美一级片免费看| 国产美女久久久久| 亚洲欧洲日韩女同| 色成人在线视频| 日韩成人午夜电影| 久久久精品日韩欧美| 99精品黄色片免费大全| 亚洲综合精品自拍| 51精品国自产在线| 国产精品一区二区三区四区| 国产精品青草久久| 欧美视频在线播放| 激情六月婷婷久久| 国产不卡在线视频| 欧美老肥妇做.爰bbww| 蜜桃视频在线观看一区| 久久精品亚洲乱码伦伦中文| 91猫先生在线| 美女视频黄免费的久久| 国产亚洲污的网站| 日本高清不卡视频|