Serial Communications is a core communication between PC and peripheral devices Such as a programmable instrument or another computer. Do you feel challenged or tired in writing code to communicate with serial devices from your Delphi/C++ FireMonkey Applications? How about Siemens protocols such as 3964 and 3964R? Don’t worry, WINSOFT offers us easy and robust components to do the job with better user control.
Features:
- Communication with devices connected to a serial port or using a virtual serial port.
- Easy way to control your device communication.
- Offers a wide range of communication properties and flow control options.
- Flexible to open, close, read-write events to a log file.
- Uses multithreaded and overlapping for maximum performance.
- On/Off color indication for associated com signal control.
- Can Send and Receive data using 3964/3964R communication protocols.
Versions Supported: Delphi/C++ Builder XE2 – Delphi 10.4.
Platforms: Windows, OS X, Android, and iOS;
Installation Steps:
Prerequisites: Ensure 7.1 MB minimum free space available in the system.
- Download FProtsuite Setup and Right-click Open.
- Read the Information Window about features, installation, and copyright. Click Next.
- Browse for the custom destination folder to install and click Next.
- Browse for the custom Start Menu folder and click Next. You can ignore creating by clicking the checkbox Don’t create a Start Menu folder option.
- Review your folder settings and click Install. You can click Back to change your folder settings.
- Once Installation Progress is done click Finish.
- Ensure the Communication Component suite files are shown in the chosen Start Menu Folder by clicking Windows Start Menu.
Installation Steps Demo: FProtSuite Installation Demo:
Key Serial Communication concepts:
RS232 Serial Communications is a communication of bits that sends and receives data between PC ( Data Terminal Equipment DTE) to remote Device or another PC (Data Communications Equipment DCE).
Request To Send (RTS) Outgoing flow control signal controlled by DTE. Clear To Send (CTS) Incoming flow control signal controlled by DCE. Data Set Ready (DSR) Incoming handshaking signal controlled by DCE. Data Terminal Ready (DTR) Outgoing handshaking signal controlled by DTE.Carrier Detect (CD) Incoming signal from a modem. Ring Indicator (RI) Incoming signal from a modem. More details: Serial Intro.
How to build applications using FProtSuite components:
1. Open Rad Studio 10.4.1 and Create a Blank Multi-Device Application. Navigate to Components bar -> System. Check the FProtSuite Components installed as shown.
2. Drag and Drop the TFComPort,TFDComSignal, and TFProt3964R component or by adding FComport, FComsignal, FProt3964R.pas into your unit and create these components by code.
TFComPort: Enables to communicate with devices connected to serial port.
- BaudRate: At which communication device operates.
- BufferSizes: Device internal Input/Outbuffer size in bytes:
- Characters: Special Communication characters.
- Databits: Number of bits in bytes transmitted and received.
- DeviceName: Communication Device name.
- FlowControl: Specifies DTS,RTS and XOn/XOff flow control
- LogFile: Open, Close, read, write operations, and communication events are written to a log file.
- ModemStatus: To determine modem status OnCTSChange, OnDSRChange, OnRLSDChange Events.
- Parity: Parity scheme used by communication e.g) even, odd, etc
- ThreadPriority: Priority of communication thread.
- Timeouts: Communication Timeouts in milliseconds.
3. Retrieve comport devices in PC.
1 |
FComPort.EnumComDevicesFromRegistry(ComboBoxDeviceName.Items);// tstrings params lists comport devices. |
4. Shows Comport Config Dialog.
1 |
FComPort.ConfigDialog;// A dialog to preconfigure device settings like baud rate etc. |
5. Shows the Device info by Device Name.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
procedure TFormMain.ButtonInfoClick(Sender: TObject); const NewLine = #13#10; var DeviceInfo: TDeviceInfo; Info: string; begin if FComPort.DeviceInfo(FComPort.DeviceName, DeviceInfo) then with DeviceInfo do Info := 'Description: ' + Description + NewLine + 'Device: ' + Device + NewLine + 'Device name: ' + DeviceName + NewLine + 'Driver: ' + Driver + NewLine + 'Driver provider: ' + DriverProvider + NewLine + 'Driver version: ' + DriverVersion + NewLine + 'Enumerator name: ' + EnumeratorName + NewLine + 'Friendly name: ' + FriendlyName + NewLine + 'Instance: ' + Instance + NewLine + 'Location: ' + Location + NewLine + 'Manufacturer: ' + Manufacturer + NewLine + 'Physical name: ' + PhysicalName + NewLine + 'Reported description: ' + ReportedDescription + NewLine + 'Service: ' + Service else Info := 'No info available'; ShowMessage(Info); end; |
6. Opens or closes the comport.
1 2 3 4 |
procedure TFormMain.ButtonOpenCloseClick(Sender: TObject); begin FComPort.Active := not FComPort.Active; end; |
7.Use comport SetRTS,ClearRTS,SetDTR,ClearDTR routines for respective operations.
1 2 3 4 |
FComPort.SetRTS; // Sets Hardware Flow control. FComPort.ClearRTS;// Clears RTS (Request To Send) line. FComPort.SetDTR; // Set Device is ready connected and turned on. FComPort.ClearDTR;// Clears DTR (Data Terminal Ready) line. |
8.Use Comport events for better handling of the data transmission/receiving which includes OnError.
TFComSignal: To visually indicate, using specified colors, the status of the communicating signal.
- ColorOff/On – Color of control component when selected signal off/on
- Comport: Comport used for serial communication.
- Control: Associated visual control to indicate.
- Delay: Minimal time the signal is indicated as on.
- Signal: Signal to be indicated.
- SignalValue: Value of the selected signal.
9. Use OnSignal to change color of the associated control based on signal value.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
procedure TFormMain.FComSignalCTSSignal(Sender: TObject); begin if FComSignalCTS.SignalValue then begin ColorBoxCTS.Color := FComSignalCTS.ColorOn; LabelCTS.FontColor := claBlack; end else begin ColorBoxCTS.Color := FComSignalCTS.ColorOff; LabelCTS.FontColor := claWhite; end end; |
TProt3964R: Enables to send and receive data using 3964/3964R communictaion protocols.
- AcknowledgementTimeout: Max time permitted to partners’ acknowledgment to arrive during setup or release.
- BlockCheck: Whether Block Check Character is used.
- BlockTimeout: Maximum delay for repeated device data attempt.
- Comport: Comport used for serial communication.
- Priority: Behaviour when simultaneous send request occurs.
- Recieve/SendRetry: Send/Recieve attempts before the error reported.
10. Send data using this protocol.
1 2 3 4 5 |
procedure TFormMain.ButtonSendClick(Sender: TObject); begin if FComPort.Active then FProt3964R.Send(Edit.Text); end; |
11. For receiving data,
1 2 3 4 |
procedure TFormMain.FProt3964RDataReceived(Sender: TObject; const Data: AnsiString); begin Memo.Text := Memo.Text + 'Received: ' + Data + NewLine; end; |
Sample Application Demo:
Conclusion: Just 11 steps, you can communicate with comport devices using 3964R protocol from your FireMonkey Applications. WINSOFT made these components to make developer life easy and you can save your time and effort.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition