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

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

?? fmain.pas

?? This source code. simple tools for huawei CDMA platform function : read code write code read sp
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
      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
  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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色吧成人激情小说| 亚洲最新视频在线播放| 一卡二卡欧美日韩| 不卡av在线免费观看| 国产拍揄自揄精品视频麻豆| 久草这里只有精品视频| 在线播放91灌醉迷j高跟美女| 亚洲精品写真福利| 91视频com| 综合久久国产九一剧情麻豆| 成人手机电影网| 中文字幕精品一区二区三区精品| 国产精品99久| 国产精品国产a| 日本道色综合久久| 亚洲资源中文字幕| 欧美卡1卡2卡| 老司机一区二区| 久久久国产一区二区三区四区小说| 视频一区二区三区中文字幕| 91精品免费观看| 狠狠色综合播放一区二区| 日韩精品综合一本久道在线视频| 蜜桃视频在线一区| 精品理论电影在线观看 | 国产精品久久久久久久久果冻传媒 | 视频一区二区三区入口| 日本电影亚洲天堂一区| 亚洲18影院在线观看| 69久久99精品久久久久婷婷| 日本中文一区二区三区| 精品国产一区二区在线观看| 国产成人免费视频一区| 亚洲欧美一区二区视频| 在线免费精品视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 色婷婷综合五月| 亚洲福利电影网| 欧美一二三区精品| 成人免费毛片高清视频| 亚洲国产精品久久久久婷婷884| 欧美一区二区三区免费视频 | 日本一区二区免费在线 | 国产精品久久久久影院| 欧美图区在线视频| 国产一区日韩二区欧美三区| 亚洲三级在线免费| 日韩欧美视频在线| 色婷婷av一区| 精品无码三级在线观看视频| ...xxx性欧美| 日韩精品一区二区三区视频| 成人午夜精品一区二区三区| 亚洲一区二区三区四区在线 | 国产亲近乱来精品视频| 在线视频欧美精品| 久久99精品一区二区三区三区| 亚洲欧洲成人av每日更新| 欧美一级艳片视频免费观看| 国产一区二区免费在线| 亚洲高清不卡在线观看| 国产日韩亚洲欧美综合| 欧美一区二区三区四区高清| 97精品国产97久久久久久久久久久久| 丝袜美腿亚洲一区二区图片| 国产精品福利在线播放| 精品播放一区二区| 欧美日韩成人一区| 91婷婷韩国欧美一区二区| 免费人成网站在线观看欧美高清| 亚洲欧美自拍偷拍| 精品久久国产字幕高潮| 欧美日韩国产首页在线观看| 日韩1区2区3区| 亚洲动漫第一页| 亚洲欧洲国产日韩| 国产精品国产三级国产aⅴ无密码| 精品少妇一区二区三区视频免付费| 色八戒一区二区三区| 成人精品免费看| 国产一区二区调教| 欧美bbbbb| 视频一区二区国产| 午夜视黄欧洲亚洲| 一区二区三区欧美视频| 国产精品对白交换视频| 久久久久99精品一区| 精品1区2区在线观看| 日韩欧美中文字幕精品| 欧美精选午夜久久久乱码6080| 日本乱码高清不卡字幕| 国产大陆a不卡| 国内精品免费**视频| 久久精工是国产品牌吗| 日本伊人精品一区二区三区观看方式| 亚洲r级在线视频| 亚洲成人免费在线| 久久精品国产色蜜蜜麻豆| 粉嫩13p一区二区三区| 日本精品裸体写真集在线观看| 欧美美女一区二区三区| 欧美成人一区二区三区| 国产精品不卡一区| 亚洲二区在线观看| 国产一区二区三区四区在线观看| 成人午夜激情在线| 欧美日韩国产高清一区二区三区 | 色综合天天视频在线观看| 欧美三区在线视频| 久久婷婷一区二区三区| 国产精品成人午夜| 奇米888四色在线精品| av一二三不卡影片| 3d动漫精品啪啪1区2区免费| 国产日韩欧美一区二区三区乱码| 亚洲精品成人天堂一二三| 久久99国产精品尤物| 91视频免费观看| 精品国产三级电影在线观看| 亚洲精选免费视频| 黄色资源网久久资源365| 色婷婷国产精品综合在线观看| 精品国产一区二区三区四区四| 亚洲欧美偷拍三级| 国产综合久久久久影院| 欧美亚洲国产一区二区三区 | 美女高潮久久久| 色综合天天综合| 精品999久久久| 天堂久久久久va久久久久| a在线播放不卡| www激情久久| 天天av天天翘天天综合网色鬼国产| 国产suv精品一区二区三区| 欧美伦理影视网| 亚洲精品高清在线| 成人在线视频一区二区| 日韩欧美一区在线观看| 一级特黄大欧美久久久| 成人免费电影视频| 久久久综合激的五月天| 午夜精品久久久久久久| 日本精品一区二区三区高清| 国产精品嫩草久久久久| 精品亚洲欧美一区| 制服丝袜激情欧洲亚洲| 亚洲综合一区在线| 91一区一区三区| 亚洲国产精品99久久久久久久久| 另类小说综合欧美亚洲| 欧美一区中文字幕| 亚洲1区2区3区4区| 欧美人妇做爰xxxⅹ性高电影| 伊人夜夜躁av伊人久久| 成人黄色777网| 国产精品传媒在线| bt欧美亚洲午夜电影天堂| 国产精品久久久久影院色老大| 国产成人超碰人人澡人人澡| 久久久午夜精品理论片中文字幕| 精品亚洲porn| 久久九九影视网| 国产一区二区三区在线观看免费| 精品久久一区二区三区| 精品一二线国产| 久久久99精品久久| 成人午夜视频免费看| 国产精品久久久久一区二区三区共| 懂色av中文一区二区三区| 国产欧美日韩在线观看| 国产91在线看| 最新不卡av在线| 色综合久久综合| 亚洲mv在线观看| 日韩一区二区三区三四区视频在线观看| 天天色综合成人网| 日韩精品专区在线| 国精产品一区一区三区mba桃花| 久久久亚洲国产美女国产盗摄 | 亚洲免费观看高清完整版在线观看熊 | 日韩视频免费观看高清完整版 | 亚洲成人自拍网| 日韩天堂在线观看| 激情久久久久久久久久久久久久久久| 亚洲精品在线免费播放| 国产一区二区三区蝌蚪| 国产精品蜜臀在线观看| 在线观看成人免费视频| 日韩av中文在线观看| 久久久国际精品| 91网站最新地址| 免费在线观看不卡| 国产精品三级久久久久三级| 色999日韩国产欧美一区二区| 五月婷婷色综合| 国产欧美一区二区三区鸳鸯浴 | 夫妻av一区二区| 亚洲综合网站在线观看| 欧美一区二区播放| av一二三不卡影片|