---
title: "seriel port"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/121566-seriel-port"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "msossna"
published: "2005-02-02T12:12:15.000Z"
updated: "2005-02-03T08:37:22.000Z"
replies: 1
views: 279
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/121566-seriel-port"
---

# seriel port

## #1 — msossna, 2005-02-02T12:12Z

hur kommunicerar man via seriel porten, dvs läser av signaler och skickar signaler till den?

Permalänk: https://www.webforum.nu/p/121566

## #2 — Tigermannen, 2005-02-03T08:37Z

```

// variabler
var ComFile     : THandle;
  DeviceName      : Array[0..80] of Char;

  DCB             : TDCB;
  config          : string;
  CommTimeouts    : TCommTimeouts;

begin

//
// anslut
//

  StrPCopy(DeviceName, 'COM1'+ ':'); // eller annan

  ComFile := CreateFile(DeviceName, GENERIC_READ or GENERIC_WRITE, 0, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

SetupComm(ComFile, RxBufferSize, TxBufferSize);
GetCommState(ComFile, DCB)
Config := 'baud=' + IntToStr(19200) + ' parity=n data=8 stop=1' + #0; // eller annat

BuildCommDCB(@Config[1], DCB);

SetCommState(ComFile, DCB);

 with CommTimeouts do begin

      ReadIntervalTimeout := 0;
      ReadTotalTimeoutMultiplier := 0;
      ReadTotalTimeoutConstant := 1000;
      WriteTotalTimeoutMultiplier := 0;
      WriteTotalTimeoutConstant := 1000;

 end;

SetCommTimeouts(ComFile, CommTimeouts)
....
//
// skicka och ta emot text
//
function SendText(str : string) : boolean;
var
  BytesWritten    : DWORD;
  Buffer          : array[0..100] of char;

begin

  StrPCopy(Buffer, str);

  if not WriteFile(ComFile, Buffer, length(str), BytesWritten, nil) then
      Result := false
  else
      Result := true;

end;

function ReceiveText : string;
var
  Buffer          : array[0..255] of char;
  i               : integer;
  ByteCount       : DWORD;
  s               : string;
begin

  s:='';
  ReadFile(ComFile,buffer,255,ByteCount,nil);
  for i:=0 to ByteCount-1 do
      s:=s+Buffer[i];
  Result := s;

end;
```

 

mvh Tony

Permalänk: https://www.webforum.nu/p/1543590

---

Tråden på webben: https://www.webforum.nu/amne/programmering/121566-seriel-port
