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

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

?? umain.pas

?? 利用ymodem協議通過串口傳輸數據或文件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
    tmpByte[index] := ord(s[i]);
    inc(index);
  end; //文件大小

  for i := index to 127 do //0-127之間除有效的字節(文件名及大小)其他空字節補上$00
  begin
    tmpByte[index] := $00;
    inc(index);
  end;
  ByteID := $00;
  ctcBuf := UFunction.CRC16(tmpByte, 128, backHexValue); //只對128位數據位進行校驗,前三位不作校驗
  UFunction.RecordLogToMemo('CRC16[' + inttostr(ByteID) + ']:backHexValue<' + backHexValue + '>', memo1);
  tmpByte[index] := ctcBuf.Highbyte; inc(index);
  tmpByte[index] := ctcBuf.Lowbyte; inc(index);

  buf[0] := SOH;
  buf[1] := ByteID;
  buf[2] := $FF - ByteID;
  inc(ByteID);
  CopyMemory(@buf[3], @tmpByte, index);
  inc(index, 3);

  UFunction.ProcIntToHexs(@buf, index, tmpbuf, true);
  Comm1.WriteCommData(@buf, index);
  UFunction.RecordLogToMemo('Has Send Header[' + inttostr(ByteID - 1) + ']<' + inttostr(index) + '>:' + tmpBuf, Memo1);
  memo1.Lines.Add('************************************************');
end;

function TFmain.SendData_128: integer;
var buf: array[0..1023] of byte;
  tmpByte: array[0..1023] of byte;
  tmpBuf: array[0..1023] of char;
  i, Len: integer;
  ctcBuf: TMyCTC16;
  backHexValue: string;
begin
  try
    ZeroMemory(@buf, sizeof(buf));
    ZeroMemory(@tmpByte, sizeof(tmpByte));
    ZeroMemory(@tmpbuf, sizeof(tmpbuf));
    MyFile.ReadBuffer(tmpByte, LastSize);
    Len := 128;
    for i := LastSize to Len - 1 do
    //空字符以$1A填充
      tmpByte[i] := $1A;
    ctcBuf := UFunction.CRC16(tmpByte, 128, backHexValue);
    UFunction.RecordLogToMemo('CRC16[' + inttostr(ByteID) + ']:backHexValue<' + backHexValue + '>', memo1);
    tmpByte[Len] := ctcBuf.Highbyte; len := len + 1; //len=129
    tmpByte[Len] := ctcBuf.Lowbyte; len := len + 1; //len=130
    buf[0] := SOH;
    buf[1] := ByteID;
    buf[2] := $FF - ByteID;
    inc(ByteID);
    CopyMemory(@buf[3], @tmpByte, len);
    len := len + 3;
    UFunction.ProcIntToHexs(@buf, len, tmpbuf, true);
    Comm1.WriteCommData(@buf, Len);
    UFunction.RecordLogToMemo('Has Send Data[' + inttostr(ByteID - 1) + ']<' + inttostr(Len) + '>:' + tmpBuf, Memo1);
    memo1.Lines.Add('************************************************');
    LastSize := LastSize - 128;
    Result := 0;
  except
    Result := -1;
  end;
end;

function TFmain.SendData_1K: integer;
var buf: array[0..2048] of byte;
  tmpByte: array[0..2048] of byte;
  tmpBuf: array[0..4096] of char; //4096>1029*3
  i, Len: Integer;
  ctcBuf: TMyCTC16;
  backHexValue: string;
begin
  try
    ZeroMemory(@buf, sizeof(buf));
    ZeroMemory(@tmpByte, sizeof(tmpByte));
    ZeroMemory(@tmpbuf, sizeof(tmpbuf));

    Len := 1024;
    if LastSize < 1024 then //小于1024則用用$1A填充
    begin
      MyFile.ReadBuffer(tmpByte, LastSize);
      for i := LastSize to len - 1 do
        tmpByte[i] := $1A;
    end
    else if LastSize >= 1024 then
    begin
      MyFile.ReadBuffer(tmpByte, 1024);
    end;
    ctcBuf := UFunction.CRC16(tmpByte, 1024, backHexValue);
    UFunction.RecordLogToMemo('CRC16[' + inttostr(ByteID) + ']:backHexValue<' + backHexValue + '>', memo1);
    tmpByte[len] := ctcBuf.Highbyte;
    len := len + 1; //len=1025
    tmpByte[len] := ctcBuf.Lowbyte;
    len := len + 1; //len=1026
    buf[0] := STX; //$02
    buf[1] := ByteID;
    buf[2] := $FF - ByteID;
    inc(ByteID);
    CopyMemory(@buf[3], @tmpByte, len);
    len := len + 3; //1029

    UFunction.ProcIntToHexs(@buf, len, tmpbuf, true);
    Comm1.WriteCommData(@buf, Len);
    UFunction.RecordLogToMemo('Has Send Data[' + inttostr(ByteID - 1) + ']<' + inttostr(Len) + '>:' + tmpBuf, Memo1);
    memo1.Lines.Add('************************************************');
    LastSize := LastSize - 1024;
    Result := 0;
  except
    Result := -1;
  end;
end;

function TFmain.SendEnd: integer;
var buf: array[0..1023] of byte;
  i: integer;
  tmpBuf: array[0..1023] of char;
begin
  ZeroMemory(@buf, sizeof(buf));
  ZeroMemory(@tmpbuf, sizeof(tmpbuf));
  buf[0] := EOT; //結束結束$04
  Comm1.WriteCommData(@buf, 1);
  UFunction.RecordLogToMemo('Has Send End of Eot[$04]', Memo1);
  buf[0] := SOH;
  buf[1] := $00;
  buf[2] := $FF; //表明后面沒有續發的文件了,
  for i := 3 to 133 - 1 do
    buf[i] := $00;
  UFunction.ProcIntToHexs(@buf, 133, tmpbuf, true);
  Comm1.WriteCommData(@buf, 133);
  UFunction.RecordLogToMemo('Has Send EndData[$00]<133>:' + tmpBuf, Memo1);
  memo1.Lines.Add('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
end;

procedure TFmain.BitBtn2Click(Sender: TObject);
begin
  Comm1.CommName := ComboBox1.Text;
  Comm1.BaudRate := strtoint(ComboBox2.Text);
  Comm1.ByteSize := TByteSize(ComboBox3.ItemIndex);
  Comm1.StopBits := TStopBits(ComboBox4.ItemIndex);
  Comm1.Parity := (None);
  try
    Comm1.StartComm;
    Shape1.Brush.Color := clLime;
  except
  end;
end;

procedure TFmain.BitBtn3Click(Sender: TObject);
begin
  try
    comm1.StopComm;
    Shape1.Brush.Color := clRed;
    FComOpenFlag := false;
    UFunction.RecordLogToMemo('串口' + comm1.CommName + '關閉', Memo1);
  except
  end;
end;

procedure TFmain.FormCreate(Sender: TObject);
begin
  memo1.Lines.Clear;
  ReSetFlag;
  FComOpenFlag := false;
end;

procedure TFmain.FormShow(Sender: TObject);
begin
  OpenCom;
end;

procedure TFmain.SpeedButton1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    edit1.Text := OpenDialog1.FileName;
end;


procedure TFmain.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var RecBuf: PByteArray;
  s: string;
begin
  RecBuf := Buffer;
  s := '';
  if RecBuf[0] = CAC then //通知發送
  begin
    if not ReceiveQuestOfSendFlag then
    begin
      ReceiveQuestOfSendFlag := true;
      s := '收到CAC[請求發送]';
    end
    else if ReceiveQuestOfSendFlag then
    begin
      ReceiveQuestOfSendNextFlag := true;
      FQuestNextStr := 'Rec[' + inttohex(RecBuf[0], 2) + ']>>收到CAC[請求發送下一個]';
    end;
  end
  else if RecBuf[0] = ACK then //確認收到
  begin
    ReceiveRightFlag := true;
    s := '收到ACK[確認收到]';
    if ReceiveQuestOfSendFlag then
      inc(FRecAckCnt);
    RecACKAfterSendEnd := HasSendEndFlag;
  end
  else if RecBuf[0] = NAK then //重發
  begin
    ReceiveReSendFlag := true;
    s := '收到NAK[請求重發]';
  end
  else if RecBuf[0] = CAN then //取消
  begin
    ReceiveCancelFlag := true;
    s := '收到CAN[取消接收]';
  end;
  if s <> '' then
    UFunction.RecordLogToMemo('Rec[' + inttohex(RecBuf[0], 2) + ']>>' + s, memo1);
end;

procedure TFmain.copy1Click(Sender: TObject);
begin
  memo1.SelectAll;
  memo1.CopyToClipboard;
end;

procedure TFmain.cut1Click(Sender: TObject);
begin
  memo1.SelectAll;
  memo1.CutToClipboard;
end;

procedure TFmain.exit1Click(Sender: TObject);
begin
  close;
end;

procedure TFmain.ReSetFlag;
begin
  FSendCnt := 0;
  FRecAckCnt := 0;
  FQuestNextStr := '';
  FSendTime := 0;
  ReceiveQuestOfSendFlag := false;
  ReceiveReSendFlag := false;
  HasSendHeadFlag := false;
  ReceiveRightFlag := false;
  ReceiveCancelFlag := false;
  HasSendEndFlag := false;
  ReceiveQuestOfSendNextFlag := false;
  RecACKAfterSendEnd := false;
end;

procedure TFmain.OpenCom;
begin
  Comm1.CommName := ComboBox1.Text;
  Comm1.BaudRate := strtoint(ComboBox2.Text);
  Comm1.ByteSize := TByteSize(ComboBox3.ItemIndex);
  Comm1.StopBits := TStopBits(ComboBox4.ItemIndex);
  Comm1.Parity := (None);
  try
    Comm1.StartComm;
    FComOpenFlag := true;
    Shape1.Brush.Color := clLime;
    UFunction.RecordLogToMemo('串口' + comm1.CommName + '打開', Memo1);
  except
    Shape1.Brush.Color := clRed;
    UFunction.RecordLogToMemo('串口' + comm1.CommName + '打開失敗', Memo1);
    FComOpenFlag := false;
  end;
end;




end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩不卡免费视频| 欧美日韩电影一区| 欧美久久久久中文字幕| 国产肉丝袜一区二区| 亚洲高清视频的网址| 国产成人在线视频播放| 欧美日韩激情一区二区| 国产精品久久一卡二卡| 国产在线精品一区二区夜色| 欧美午夜电影网| 国产精品国产a| 国内精品国产三级国产a久久| 91国偷自产一区二区开放时间| 久久久久久久久久久电影| 午夜欧美2019年伦理| 色诱亚洲精品久久久久久| 欧美激情一区不卡| 国产精品一区二区在线观看网站| 欧美一卡在线观看| 亚洲成人av中文| 91国产免费观看| 日韩理论片在线| 不卡在线视频中文字幕| 国产视频911| 国产在线日韩欧美| 久久婷婷国产综合国色天香| 久久精品99国产精品| 欧美一区二区三区在线观看 | 色婷婷国产精品综合在线观看| 欧美精品一区二区三区在线 | 国产精品一二三在| 欧美zozozo| 国内外成人在线| 精品国产1区二区| 国产原创一区二区| 2019国产精品| 国产精品一品视频| 欧美激情一区二区三区四区 | 日本乱人伦aⅴ精品| 亚洲视频图片小说| 色呦呦国产精品| 亚洲午夜在线观看视频在线| 欧美精品亚洲二区| 日本视频中文字幕一区二区三区| 欧美一区二区三区性视频| 蜜桃精品在线观看| 久久久久国色av免费看影院| 成人激情动漫在线观看| 亚洲婷婷国产精品电影人久久| 成人av片在线观看| 一区二区三区在线视频观看| 欧美日韩久久久一区| 日韩av一区二区三区| 亚洲精品在线观看视频| 国产成人精品一区二区三区四区 | 91在线码无精品| 亚洲一二三四区| 日韩欧美国产综合一区| 国产99精品视频| 老鸭窝一区二区久久精品| 欧美精品一区二区久久久| 成人av网站在线观看免费| 亚洲成国产人片在线观看| 精品国产区一区| 91视频91自| 免费观看日韩av| 中文字幕一区二区三区四区| 欧美日韩不卡在线| 国产成人丝袜美腿| 一区二区三区鲁丝不卡| 精品成人一区二区三区| 色系网站成人免费| 久久99精品久久久久婷婷| 亚洲啪啪综合av一区二区三区| 欧美一区二区三级| 99re成人在线| 精品制服美女丁香| 一区二区三区毛片| 欧美国产禁国产网站cc| 91麻豆精品国产91久久久久久久久| 狠狠色狠狠色综合| 性久久久久久久久久久久| 国产精品美女久久久久高潮| 欧美日韩性生活| 成人国产视频在线观看| 奇米色777欧美一区二区| 国产精品第13页| www日韩大片| 欧美日韩国产中文| 色哟哟在线观看一区二区三区| 老司机午夜精品| 午夜精品影院在线观看| 亚洲欧美色一区| 国产精品你懂的| 精品成人一区二区| 日韩精品一区二区三区蜜臀| 日韩精品一区二区三区蜜臀| 在线观看视频91| 国产精品888| 极品少妇一区二区| 日本特黄久久久高潮| 亚洲国产成人va在线观看天堂| 国产精品毛片a∨一区二区三区| 91精品国产福利| 欧美疯狂做受xxxx富婆| 在线免费av一区| 色婷婷av一区二区三区软件 | 色美美综合视频| 不卡一区二区三区四区| 国产不卡免费视频| 国产ts人妖一区二区| 久国产精品韩国三级视频| 麻豆久久久久久久| 日韩成人av影视| 日韩电影在线观看网站| 免费在线一区观看| 日本91福利区| 久久99精品国产| 国产美女娇喘av呻吟久久| 国产一区二区久久| 风间由美中文字幕在线看视频国产欧美| 麻豆精品国产91久久久久久| 麻豆精品视频在线观看视频| 秋霞电影网一区二区| 久久精品国产精品亚洲精品| 国精产品一区一区三区mba视频| 精品影院一区二区久久久| 国产精品影音先锋| 成人午夜在线播放| 色婷婷激情一区二区三区| 欧美日韩视频一区二区| 91精品国产欧美日韩| 日韩三级伦理片妻子的秘密按摩| 日韩一区二区在线观看| 久久这里都是精品| 中文字幕日韩精品一区| 亚洲激情成人在线| 水蜜桃久久夜色精品一区的特点 | 懂色一区二区三区免费观看| 北条麻妃国产九九精品视频| 91国内精品野花午夜精品 | 久久99精品国产.久久久久久| 国产一区 二区| 色狠狠一区二区三区香蕉| 91精品综合久久久久久| 2014亚洲片线观看视频免费| 国产精品免费观看视频| 亚欧色一区w666天堂| 国产在线精品一区二区不卡了| 99精品在线免费| 欧美精品久久一区| 欧美国产日韩在线观看| 一卡二卡欧美日韩| 国产一区二区0| 欧美日韩精品福利| 国产精品久久国产精麻豆99网站| 亚洲va欧美va人人爽| 国产成人精品免费视频网站| 欧美日韩中文国产| 久久九九影视网| 午夜视频一区二区三区| av高清不卡在线| 欧美www视频| 亚洲精选视频免费看| 韩国女主播成人在线观看| 色婷婷综合激情| 欧美国产成人精品| 久久99久久久欧美国产| 欧美羞羞免费网站| 欧美极品xxx| 国内外成人在线视频| 精品视频在线免费观看| 国产精品久久久久一区二区三区 | 成人精品免费网站| 日韩欧美国产成人一区二区| 亚洲影院免费观看| 成人免费av在线| 久久欧美中文字幕| 美洲天堂一区二卡三卡四卡视频 | 99久久综合国产精品| 久久久综合视频| 蜜桃视频免费观看一区| 欧美男男青年gay1069videost| 综合久久一区二区三区| 国产黄色精品网站| 精品国产免费久久| 麻豆免费看一区二区三区| 欧美精选在线播放| 午夜不卡av免费| 精品视频在线免费观看| 亚洲图片自拍偷拍| 色久综合一二码| 亚洲激情图片qvod| 在线一区二区三区做爰视频网站| 国产精品久久毛片a| bt7086福利一区国产| 中文字幕综合网| 色综合一区二区| 亚洲精品乱码久久久久久黑人| 成人蜜臀av电影|