Помогите с работой COM порта, компонет BCPort

Помогите с работой COM порта, не могу правильно написать отправку одновременно нескольких команд на com порт (?54&0; ?54&1; ?54&2; ?54&3 и т.д.) , когда отправляю команды то терминал все ответы сбивает в одну строку, а мне надо чтобы каждый ответ в терминале начинался с новой строки.Еще один вопрос, как сделать что бы ответ на команду вносился в отдельную форму, к примеру я отсылаю одновреммено 10 команд (?54&0; ?54&1; ?54&2; ?54&3 и т.д.) и ответ на каждую команду вносился в Memo1,Memo2,Memo3 и т.д..implementation{$R *.DFM} {$R Led.res}procedure AddHexString(S : String; Lines : TStrings ); var AddS, HexS, CopyS : String; i : Integer; const SLen = 8; begin while Length(S) > 0 do begin AddS := Copy(S,1,SLen); HexS := ''; Delete(S,1,SLen); for i := 1 to SLen do begin CopyS := Copy(AddS,i,1); if CopyS <> '' then HexS := HexS + ' ' + Format('%2.2x',[Byte(CopyS[1])]) // else HexS := HexS + ' '; end; while Length(AddS) < SLen do AddS :=AddS + ' ' ; for i :=1 to SLen do case AddS[i] of #0..#31 : AddS[i] :='.' ; #127 : AddS[i] :='.' ; end; Lines.Add(HexS+' : '+AddS); end; end;procedure TMainForm.FormCreate(Sender: TObject); begin EnumComPorts(cbPort.Items); cbPort.ItemIndex := 0; cbBaudRate.ItemIndex := 6; SetLedCTS(False); SetLedDSR(False); SetLedRLSD(False); end;procedure TMainForm.btnConnectClick(Sender: TObject); begin BComPort1.Port := cbPort.Text; BComPort1.BaudRate := TBaudRate(cbBaudRate.ItemIndex); if BComPort1.Open then begin Edit1.Enabled := True; Edit1.Color := clWindow; btnConnect.Enabled := False; cbPort.Enabled := False; btnDisconnect.Enabled := True; cbSetDTR.Enabled := True; cbSetDTR.Checked := True; cbSetRTS.Enabled := True; cbSetRTS.Checked := True; btnSend.Enabled := True; btnSend1.Enabled := True; cbCRLF.Enabled := True; btnClear.Enabled := True; Memo1.Enabled := True; Memo1.Color := clWindow; SetLedCTS(csCTS in BComPort1.Signals); SetLedDSR(csDSR in BComPort1.Signals); SetLedRLSD(csRLSD in BComPort1.Signals); Edit1.SetFocus; end; end;procedure TMainForm.btnDisconnectClick(Sender : TObject); begin if BComPort1.Close then begin btnConnect.Enabled := True; cbPort.Enabled := True; btnDisconnect.Enabled := False; cbSetDTR.Enabled := False; cbSetRTS.Enabled := False; btnSend.Enabled := False; btnSend1.Enabled := False; cbCRLF.Enabled := False; btnClear.Enabled := False; Memo1.Enabled := False; Memo1.Color := clBtnFace; Edit1.Enabled := False; Edit1.Color := clBtnFace; SetLedCTS(False); SetLedDSR(False); SetLedRLSD(False); end; end;procedure TMainForm.btnSendClick(Sender: TObject); //Отпрвка одной комнды var SendStr : String; begin if Length(Edit1.Text) > 0 then begin SendStr := Edit1.Text; if cbCRLF.Checked then SendStr := SendStr+#$0d#$0a; BComPort1.WriteStr(SendStr); Edit1.Text := ''; Edit1.SetFocus; end; end;procedure TMainForm.btnSend1Click(Sender: TObject); // Отправка нескольких команд var SendStr : String; begin if Length (' ?54&10')> 0 then begin SendStr := '?54&10'#$0d#$0a'?54&11'#$0d#$0a'?5 4&12'#$0d#$0a'?54&13'#$0d#$0a'?54&1 4'; if cbCRLF.Checked then SendStr := SendStr+#$0d#$0a; BComPort1.WriteStr(SendStr);end; end;procedure TMainForm.BComPort1RxChar(Sender: TObject; Count: Integer); var SendStr: String; begin BComPort1.ReadStr(SendStr, Count); if cbCRLF.Checked then // Добавление перевода строки SendStr := SendStr+#$0d#$0a; Memo1.Text := Memo1.Text+SendStr; end;procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char); begin if BComPort1.Connected and (Key = #13) then begin BComPort1.WriteStr(Edit1.Text + Key); Edit1.Text := ''; end; end;procedure TMainForm.cbBaudRateChange(Sender: TObject); begin BComPort1.BaudRate := TBaudRate(cbBaudRate.ItemIndex); end;procedure TMainForm.btnClearClick(Sender: TObject); begin Memo1.Clear; Edit1.SetFocus; end;
1 ответ

We offer you Brand Handbags related with products,the Wholesale Brand Handbags picture-related products,poor prices and other information,wholesale or retail,and the Brand Handbags related products introduced, related products, please contact with [removed_email]