麻烦帮忙注释下

a298028549 2011-12-31 10:49:19
**************************************************
GPS上位机接收部分代码
**************************************************

procedure TGPSForm.MSComm2Comm(Sender: TObject);
var
dta,dta1,tmp:string;
i,j:integer;
begin
dta:= MSComm2.Input;
Timer2.Enabled:=False;
Timer2.Enabled:=True;
if dta='$' then begin
b:=dta;
exit;
end;
if dta=chr(10) then begin
b:=b+dta;
if pos('$GPRMC',b)<>0 then
if pos('A',b)<>0 then begin
try
Image1.Visible:=True;
Image2.Visible:=False;
a:=copy(b,pos(',',b)+1,6);
a:=copy(a,1,2)+':'+copy(a,3,2)+':'+copy(a,5,6);
j:=pos(',',b);
dta1:=copy(b,J+1,length(b));
for i:=1 to 8 do begin
j:=pos(',',dta1);
dta1:=copy(dta1,j+1,length(b));
end;
c:=copy(dta1,1,6);
c:=copy(c,5,2)+'-'+copy(c,3,2)+'-'+copy(c,1,2);
tmp:=timetostr(strtotime(a)+strtotime('08:00:00'));
if (strtotime(a)>strtotime('00:00:00') ) and (strtotime(a)<strtotime('16:00:00'))then
Panel2.Caption:=DateToStr(strtodate(c))+' '+tmp
else
Panel2.Caption:=DateToStr(strtodate(c)+1)+' '+tmp;
if SpeedButton1.Down then begin//调整PC时间
SetPCSystemTime(StrToDateTime(Panel2.Caption));
end;
except
end;
//经纬度
try
j:=pos('A,',b);
dta1:=copy(b,j+2,length(b));
j:=pos(',',dta1);
tmp:=copy(dta1,1,J-1);
dta1:=copy(dta1,j+1,length(dta1));
tmp:=dta1[1]+':'+FormatFloat('0.000',StrToFloat(tmp)/100);
delete(dta1,1,2);
j:=pos(',',dta1);
dta1:=copy(dta1,1,J+1);
tmp:=tmp+' '+rightstr(dta1,1)+':'+FormatFloat('0.000',StrToFloat(copy(dta1,1,J-1))/100);
Panel3.Caption:=tmp;
except
Panel3.Caption:='E:--- N:---';
end;
exit;
end else begin
Image2.Visible:=True;
Image1.Visible:=False;
b:=' ';
exit;
end;
b:='';
exit;
end;
b:=b+dta;
end;


麻烦大牛们帮忙注释下,或者写下程序运行步骤,本人只会C和汇编,DELPHI不会啊,想把这个接收程序写成C的,谢谢了!
...全文
67 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧