🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #334589

Re: Port szeregowy, drukarka fiskalna znak NULL

#334589
From: Arivald
Date: Fri, 06 Jan 2012 14:12
76 lines
3375 bytes
W dniu 2012-01-06 15:02, Przemyslaw Rokicki pisze:
> On 6 Sty, 14:55, PaSkol<DearthNOSPAMpas...@op.pl>  wrote:
>> W dniu 2012-01-06 14:36, Przemyslaw Rokicki pisze:
>>
>>>>>        until (writeSerialPort(hCommDev, Strlen(bufferOut))<>      FALSE);
>>
>>> nic to nie dało, do drukarki nie idzie cały string bo nie ma zadnego
>>> komunikatu.
>>
>> Co to jest writeSerialPort? Skoro korzystasz z API, to czy ta funkcja
>> uruchamia WriteFile? Skąd writeSerialPort ma wiedzieć gdzie są dane do
>> wysłania? Poza tym StrLen operujące na bufferOut automatycznie skraca
>> bufferOut do pierwszego zera w treści. Więc i tak reszta nie pójdzie na
>> port.
>>
>
> function writeSerialPort(hCommDev: THANDLE; numberOfBytesToWrite:
> DWORD): BOOL;
> var
>    numberOfBytesWritten: DWORD;
> begin
>    WriteFile(hCommDev, bufferOut, numberOfBytesToWrite,
> numberOfBytesWritten, nil);
>    Result := WaitCommEvent(hCommDev, fdwEvtMask, nil);
> end;


Napisz to tak

function writeSerialPort(
   hCommDev: THANDLE;
   buffer: pointer;
   numberOfBytesToWrite: DWORD
): BOOL; overload;

function writeSerialPort(
   hCommDev: THANDLE;
   const data: string;
): BOOL; overload;


implementation

function writeSerialPort(
   hCommDev: THANDLE;
   buffer: pointer;
   numberOfBytesToWrite: DWORD
): BOOL;
var
   numberOfBytesWritten: DWORD;
begin
   WriteFile(hCommDev, buffer, numberOfBytesToWrite, 
numberOfBytesWritten, nil);
   Result := WaitCommEvent(hCommDev, fdwEvtMask, nil);
end;

function writeSerialPort(
   hCommDev: THANDLE;
   const data: string;
): BOOL;
begin
   Result := writeSerialPort(hCommDev, pchar(data), length(data));
end;


i potem Twój kod z poprzedniego postu

   if (hCommDev <> INVALID_HANDLE_VALUE) and (hCommDev > 0) then
   begin
     repeat
       FlushFileBuffers(hCommDev);
     until (writeSerialPort(hCommDev, s) <> FALSE);
   end;

-- 
Arivald
Technical Details
Message-ID: <je6vij$6gr$1@news.dialog.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <f0fe9b14-3716-4ff0-a8b9-46d680215996@q11g2000vbq.googlegroups.com> <628157f7-940a-46dc-9570-eb77d6b8edba@m4g2000vbc.googlegroups.com> <je4rcp$4j5$1@news.dialog.net.pl> <db4d62e5-5b51-483a-be8a-1528682b9e51@q11g2000vbq.googlegroups.com> <je6rb4$4tr$1@inews.gazeta.pl> <18537ecf-ae37-4437-b084-e89a12840b0b@o14g2000vbo.googlegroups.com> <je6uhe$fq6$1@inews.gazeta.pl> <a2ae5627-99b1-414d-b8ef-3163d7450fab@k5g2000vba.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: Arivald <NOSPAMarivald@interia.pl>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Port szeregowy, drukarka fiskalna znak NULL
Date: Fri, 06 Jan 2012 15:12:14 +0100
Organization: Dialog Net
Lines: 76
Message-ID: <je6vij$6gr$1@news.dialog.net.pl>
References: <f0fe9b14-3716-4ff0-a8b9-46d680215996@q11g2000vbq.googlegroups.com> <628157f7-940a-46dc-9570-eb77d6b8edba@m4g2000vbc.googlegroups.com> <je4rcp$4j5$1@news.dialog.net.pl> <db4d62e5-5b51-483a-be8a-1528682b9e51@q11g2000vbq.googlegroups.com> <je6rb4$4tr$1@inews.gazeta.pl> <18537ecf-ae37-4437-b084-e89a12840b0b@o14g2000vbo.googlegroups.com> <je6uhe$fq6$1@inews.gazeta.pl> <a2ae5627-99b1-414d-b8ef-3163d7450fab@k5g2000vba.googlegroups.com>
NNTP-Posting-Host: dynamic-78-8-152-25.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1325859219 6683 78.8.152.25 (6 Jan 2012 14:13:39 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Fri, 6 Jan 2012 14:13:39 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20111222 Thunderbird/10.0
In-Reply-To: <a2ae5627-99b1-414d-b8ef-3163d7450fab@k5g2000vba.googlegroups.com>
X-Stationery: 0.7.7
X-Antivirus: avast! (VPS 120106-0, 2012-01-06), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit