TLazSerial icon indicating copy to clipboard operation
TLazSerial copied to clipboard

modification parse messages

Open LaurentDelaon opened this issue 3 years ago • 0 comments

bonjour ,

si le message recu contient plusieur message+chr(10) la procedure de base ne fonctionne plus correctement (chaque interruption traite un seul message si le buffer en contient plus on les perds...) j'ai modifié la procedure pour parser les messages ainsi:

`procedure TFMain.LazSerial1RxData(Sender: TObject); var str, un_msg: String; begin // Str := LazSerial1.ReadData; CurPos := Pos( Char(10) ,Str); if CurPos = 0 then begin FTempStr := FTempStr + Str; end else begin

    FTempStr := FTempStr + Str;
    //Memo.Lines.BeginUpdate;
    //Memo.Lines.Add('le msg:'+FTempStr+'<');
    //Memo.Lines.EndUpdate; 
repeat
  un_msg:=  Copy(FTempStr,1, CurPos-1);
  AnalyseTrames(un_msg);
    Memo.Lines.BeginUpdate;
    Memo.Lines.Add('un msg:'+un_msg+'<');
    Memo.Lines.EndUpdate;
    //
    delete(FTempStr,1,CurPos);
    CurPos := Pos( Char(10) ,FTempStr);
    //
until (CurPos=0) ;
//
//
//Memo.Lines.BeginUpdate;
//Memo.Lines.Add('msg apres:'+FtempStr+'<');
//Memo.Lines.Add('--------------------');
//Memo.Lines.EndUpdate; 
end;

end; `

LaurentDelaon avatar Oct 14 '22 15:10 LaurentDelaon