I'm new to Delphi and ComPort so I don't know much about anything.
I'm currently using Delphi 2010 and I just installed the latest version of ComPort (I think).
I know I can drag and drop a ComPort Component because I've already tried that but after that I have no idea what to do next.
I have an application at the moment connected to an Access database and I want to get numbers from the database, compact everything to a define data packet and send that to an external hardware.
I'll also need to recieve a specific data packet of already defined structure and extract information from that packet.
Is there and specific functions or informations that I can read to help me better understand what I need to do. I know you want provide code because I haven't provided anything so I'm not expecting much.
I just want to know where to look for what I need to do to complete my task.
Thanks in advance
If the data packets are of a defined length, then I would use a packet reciver (on the com port pallet) to grab the incomming messages. If the incoming messages have a fixed first character (delimiter) then yoiu can tell tyhe pack Receiver about this and the expected length, link the packet receiver to the comport component.
The packet receiver has a method OnPacket the recieves the incoming packet in Str: string; uise tis to perform the required manipulation on the data (finding commas that sort of thing)
Writing I use a line like this:-
Cport.Write(Txbuff, L + 2);
TxBuff is an array (of byte in this case), I load it with the data to be sent, L is the number of bytes to send
e.g part of my GPS message simulator application..
1,2: begin // GPS
L := length(TxString);
if not (L in ) then
L := 93;
SizeBox.Text := inttostr(L);
for a:= 1 to L do
c := TxString;
TxBuff := ord(C);
TxBuff := $0D; // CR
TxBuff := $0A; // LF
however there are lots of other ways to use the CPort system, and some example code in the package!
Hope this helps
Sorry it took so long to reply back but I need to do other parts of the project before trying the Comport section. Now that I'm almost there; I started looking at the example code in the package and I saw that when I press send -> nothing comes up on the memo.
Is that because the send button doesn't link with COM 1 so it doesn't count as a recieved? If so; how do I test recieving something?
I was just wondering what 'c' was in your context?
Also, would you be able to tell me how to adjust your code to send not a string but instead -> 173 bits?
I tried making a string and added 173 single characters of '1' but it only sent something like 45 characters.
Is that because I can't do it this way or is there a special setting for comport that I have to do to allow more data to be sent in a single buffer. Maybe I'm doing it wrong?
My code at the moment is on send button click:
if DataModule1.ComPortTx.Connected then
byteCount := Length(TxString);
if byteCount < 173 then
byteCount := 173;
for I := 0 to 173 do
TxBuff_ := ord(TxString);
ShowMessage('Must Open Port');
Can you please help me again?
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.