- improved MACOS compatibility
- workaround for some broken virtual serial ports - Added Lazarus package git-svn-id: https://svn.code.sf.net/p/synalist/code/trunk@129 7c85be65-684b-0410-a082-b2ed4fbef004
This commit is contained in:
parent
2015fd1aef
commit
492b48fa05
170
laz_synapse.lpk
Normal file
170
laz_synapse.lpk
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<Package Version="3">
|
||||||
|
<Name Value="laz_synapse"/>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="8"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)/"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Parsing>
|
||||||
|
<SyntaxOptions>
|
||||||
|
<UseAnsiStrings Value="True"/>
|
||||||
|
</SyntaxOptions>
|
||||||
|
</Parsing>
|
||||||
|
<Other>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Files Count="33">
|
||||||
|
<Item1>
|
||||||
|
<Filename Value="asn1util.pas"/>
|
||||||
|
<UnitName Value="asn1util"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Filename Value="blcksock.pas"/>
|
||||||
|
<UnitName Value="blcksock"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Filename Value="clamsend.pas"/>
|
||||||
|
<UnitName Value="clamsend"/>
|
||||||
|
</Item3>
|
||||||
|
<Item4>
|
||||||
|
<Filename Value="dnssend.pas"/>
|
||||||
|
<UnitName Value="dnssend"/>
|
||||||
|
</Item4>
|
||||||
|
<Item5>
|
||||||
|
<Filename Value="ftpsend.pas"/>
|
||||||
|
<UnitName Value="ftpsend"/>
|
||||||
|
</Item5>
|
||||||
|
<Item6>
|
||||||
|
<Filename Value="ftptsend.pas"/>
|
||||||
|
<UnitName Value="ftptsend"/>
|
||||||
|
</Item6>
|
||||||
|
<Item7>
|
||||||
|
<Filename Value="httpsend.pas"/>
|
||||||
|
<UnitName Value="httpsend"/>
|
||||||
|
</Item7>
|
||||||
|
<Item8>
|
||||||
|
<Filename Value="imapsend.pas"/>
|
||||||
|
<UnitName Value="imapsend"/>
|
||||||
|
</Item8>
|
||||||
|
<Item9>
|
||||||
|
<Filename Value="ldapsend.pas"/>
|
||||||
|
<UnitName Value="ldapsend"/>
|
||||||
|
</Item9>
|
||||||
|
<Item10>
|
||||||
|
<Filename Value="mimeinln.pas"/>
|
||||||
|
<UnitName Value="mimeinln"/>
|
||||||
|
</Item10>
|
||||||
|
<Item11>
|
||||||
|
<Filename Value="mimemess.pas"/>
|
||||||
|
<UnitName Value="mimemess"/>
|
||||||
|
</Item11>
|
||||||
|
<Item12>
|
||||||
|
<Filename Value="mimepart.pas"/>
|
||||||
|
<UnitName Value="mimepart"/>
|
||||||
|
</Item12>
|
||||||
|
<Item13>
|
||||||
|
<Filename Value="nntpsend.pas"/>
|
||||||
|
<UnitName Value="nntpsend"/>
|
||||||
|
</Item13>
|
||||||
|
<Item14>
|
||||||
|
<Filename Value="pingsend.pas"/>
|
||||||
|
<UnitName Value="pingsend"/>
|
||||||
|
</Item14>
|
||||||
|
<Item15>
|
||||||
|
<Filename Value="pop3send.pas"/>
|
||||||
|
<UnitName Value="pop3send"/>
|
||||||
|
</Item15>
|
||||||
|
<Item16>
|
||||||
|
<Filename Value="slogsend.pas"/>
|
||||||
|
<UnitName Value="slogsend"/>
|
||||||
|
</Item16>
|
||||||
|
<Item17>
|
||||||
|
<Filename Value="smtpsend.pas"/>
|
||||||
|
<UnitName Value="smtpsend"/>
|
||||||
|
</Item17>
|
||||||
|
<Item18>
|
||||||
|
<Filename Value="snmpsend.pas"/>
|
||||||
|
<UnitName Value="snmpsend"/>
|
||||||
|
</Item18>
|
||||||
|
<Item19>
|
||||||
|
<Filename Value="sntpsend.pas"/>
|
||||||
|
<UnitName Value="sntpsend"/>
|
||||||
|
</Item19>
|
||||||
|
<Item20>
|
||||||
|
<Filename Value="ssfpc.pas"/>
|
||||||
|
<AddToUsesPkgSection Value="False"/>
|
||||||
|
<UnitName Value="ssfpc"/>
|
||||||
|
</Item20>
|
||||||
|
<Item21>
|
||||||
|
<Filename Value="sswin32.pas"/>
|
||||||
|
<AddToUsesPkgSection Value="False"/>
|
||||||
|
<UnitName Value="sswin32"/>
|
||||||
|
</Item21>
|
||||||
|
<Item22>
|
||||||
|
<Filename Value="synachar.pas"/>
|
||||||
|
<UnitName Value="synachar"/>
|
||||||
|
</Item22>
|
||||||
|
<Item23>
|
||||||
|
<Filename Value="synacode.pas"/>
|
||||||
|
<UnitName Value="synacode"/>
|
||||||
|
</Item23>
|
||||||
|
<Item24>
|
||||||
|
<Filename Value="synacrypt.pas"/>
|
||||||
|
<UnitName Value="synacrypt"/>
|
||||||
|
</Item24>
|
||||||
|
<Item25>
|
||||||
|
<Filename Value="synadbg.pas"/>
|
||||||
|
<UnitName Value="synadbg"/>
|
||||||
|
</Item25>
|
||||||
|
<Item26>
|
||||||
|
<Filename Value="synafpc.pas"/>
|
||||||
|
<UnitName Value="synafpc"/>
|
||||||
|
</Item26>
|
||||||
|
<Item27>
|
||||||
|
<Filename Value="synaicnv.pas"/>
|
||||||
|
<UnitName Value="synaicnv"/>
|
||||||
|
</Item27>
|
||||||
|
<Item28>
|
||||||
|
<Filename Value="synaip.pas"/>
|
||||||
|
<UnitName Value="synaip"/>
|
||||||
|
</Item28>
|
||||||
|
<Item29>
|
||||||
|
<Filename Value="synamisc.pas"/>
|
||||||
|
<UnitName Value="synamisc"/>
|
||||||
|
</Item29>
|
||||||
|
<Item30>
|
||||||
|
<Filename Value="synaser.pas"/>
|
||||||
|
<UnitName Value="synaser"/>
|
||||||
|
</Item30>
|
||||||
|
<Item31>
|
||||||
|
<Filename Value="synautil.pas"/>
|
||||||
|
<UnitName Value="synautil"/>
|
||||||
|
</Item31>
|
||||||
|
<Item32>
|
||||||
|
<Filename Value="synsock.pas"/>
|
||||||
|
<UnitName Value="synsock"/>
|
||||||
|
</Item32>
|
||||||
|
<Item33>
|
||||||
|
<Filename Value="tlntsend.pas"/>
|
||||||
|
<UnitName Value="tlntsend"/>
|
||||||
|
</Item33>
|
||||||
|
</Files>
|
||||||
|
<Type Value="RunAndDesignTime"/>
|
||||||
|
<RequiredPkgs Count="1">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="FCL"/>
|
||||||
|
<MinVersion Major="1" Valid="True"/>
|
||||||
|
</Item1>
|
||||||
|
</RequiredPkgs>
|
||||||
|
<UsageOptions>
|
||||||
|
<UnitPath Value="$(PkgOutDir)"/>
|
||||||
|
</UsageOptions>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<IgnoreBinaries Value="False"/>
|
||||||
|
</PublishOptions>
|
||||||
|
</Package>
|
||||||
|
</CONFIG>
|
24
laz_synapse.pas
Normal file
24
laz_synapse.pas
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ This file was automatically created by Lazarus. Do not edit!
|
||||||
|
This source is only used to compile and install the package.
|
||||||
|
}
|
||||||
|
|
||||||
|
unit laz_synapse;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
asn1util, blcksock, clamsend, dnssend, ftpsend, ftptsend, httpsend,
|
||||||
|
imapsend, ldapsend, mimeinln, mimemess, mimepart, nntpsend, pingsend,
|
||||||
|
pop3send, slogsend, smtpsend, snmpsend, sntpsend, synachar, synacode,
|
||||||
|
synacrypt, synadbg, synafpc, synaicnv, synaip, synamisc, synaser, synautil,
|
||||||
|
synsock, tlntsend, LazarusPackageIntf;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
procedure Register;
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
initialization
|
||||||
|
RegisterPackage('laz_synapse', @Register);
|
||||||
|
end.
|
10
ssfpc.pas
10
ssfpc.pas
@ -1,5 +1,5 @@
|
|||||||
{==============================================================================|
|
{==============================================================================|
|
||||||
| Project : Ararat Synapse | 001.001.002 |
|
| Project : Ararat Synapse | 001.001.003 |
|
||||||
|==============================================================================|
|
|==============================================================================|
|
||||||
| Content: Socket Independent Platform Layer - FreePascal definition include |
|
| Content: Socket Independent Platform Layer - FreePascal definition include |
|
||||||
|==============================================================================|
|
|==============================================================================|
|
||||||
@ -250,7 +250,13 @@ const
|
|||||||
|
|
||||||
MSG_OOB = sockets.MSG_OOB; // Process out-of-band data.
|
MSG_OOB = sockets.MSG_OOB; // Process out-of-band data.
|
||||||
MSG_PEEK = sockets.MSG_PEEK; // Peek at incoming messages.
|
MSG_PEEK = sockets.MSG_PEEK; // Peek at incoming messages.
|
||||||
MSG_NOSIGNAL = sockets.MSG_NOSIGNAL; // Do not generate SIGPIPE.
|
{$ifdef DARWIN}
|
||||||
|
MSG_NOSIGNAL = $20000; // Do not generate SIGPIPE.
|
||||||
|
// Works under MAC OS X, but is undocumented,
|
||||||
|
// So FPC doesn't include it
|
||||||
|
{$else}
|
||||||
|
MSG_NOSIGNAL = sockets.MSG_NOSIGNAL; // Do not generate SIGPIPE.
|
||||||
|
{$endif}
|
||||||
|
|
||||||
const
|
const
|
||||||
WSAEINTR = ESysEINTR;
|
WSAEINTR = ESysEINTR;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{==============================================================================|
|
{==============================================================================|
|
||||||
| Project : Ararat Synapse | 003.006.001 |
|
| Project : Ararat Synapse | 003.006.002 |
|
||||||
|==============================================================================|
|
|==============================================================================|
|
||||||
| Content: SSL support by OpenSSL |
|
| Content: SSL support by OpenSSL |
|
||||||
|==============================================================================|
|
|==============================================================================|
|
||||||
@ -85,7 +85,11 @@ uses
|
|||||||
Classes,
|
Classes,
|
||||||
synafpc,
|
synafpc,
|
||||||
{$IFNDEF MSWINDOWS}
|
{$IFNDEF MSWINDOWS}
|
||||||
Libc, SysUtils;
|
{$IFDEF FPC}
|
||||||
|
BaseUnix, SysUtils;
|
||||||
|
{$ELSE}
|
||||||
|
Libc, SysUtils;
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
Windows;
|
Windows;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -1727,7 +1731,7 @@ begin
|
|||||||
{$ELSE}
|
{$ELSE}
|
||||||
SSLLibHandle := LoadLib(DLLSSLName);
|
SSLLibHandle := LoadLib(DLLSSLName);
|
||||||
SSLUtilHandle := LoadLib(DLLUtilName);
|
SSLUtilHandle := LoadLib(DLLUtilName);
|
||||||
{$IFNDEF LINUX}
|
{$IFDEF MSWINDOWS}
|
||||||
if (SSLLibHandle = 0) then
|
if (SSLLibHandle = 0) then
|
||||||
SSLLibHandle := LoadLib(DLLSSLName2);
|
SSLLibHandle := LoadLib(DLLSSLName2);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
17
synamisc.pas
17
synamisc.pas
@ -1,5 +1,5 @@
|
|||||||
{==============================================================================|
|
{==============================================================================|
|
||||||
| Project : Ararat Synapse | 001.003.000 |
|
| Project : Ararat Synapse | 001.003.001 |
|
||||||
|==============================================================================|
|
|==============================================================================|
|
||||||
| Content: misc. procedures and functions |
|
| Content: misc. procedures and functions |
|
||||||
|==============================================================================|
|
|==============================================================================|
|
||||||
@ -50,6 +50,13 @@
|
|||||||
{$Q-}
|
{$Q-}
|
||||||
{$H+}
|
{$H+}
|
||||||
|
|
||||||
|
//Kylix does not known UNIX define
|
||||||
|
{$IFDEF LINUX}
|
||||||
|
{$IFNDEF UNIX}
|
||||||
|
{$DEFINE UNIX}
|
||||||
|
{$ENDIF}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF UNICODE}
|
{$IFDEF UNICODE}
|
||||||
{$WARN IMPLICIT_STRING_CAST OFF}
|
{$WARN IMPLICIT_STRING_CAST OFF}
|
||||||
{$WARN IMPLICIT_STRING_CAST_LOSS OFF}
|
{$WARN IMPLICIT_STRING_CAST_LOSS OFF}
|
||||||
@ -69,7 +76,7 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
synautil, blcksock, SysUtils, Classes
|
synautil, blcksock, SysUtils, Classes
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
{$IFNDEF FPC}
|
{$IFNDEF FPC}
|
||||||
, Libc
|
, Libc
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -148,7 +155,7 @@ end;
|
|||||||
|
|
||||||
{==============================================================================}
|
{==============================================================================}
|
||||||
|
|
||||||
{$IFNDEF LINUX}
|
{$IFNDEF UNIX}
|
||||||
function GetDNSbyIpHlp: string;
|
function GetDNSbyIpHlp: string;
|
||||||
type
|
type
|
||||||
PTIP_ADDRESS_STRING = ^TIP_ADDRESS_STRING;
|
PTIP_ADDRESS_STRING = ^TIP_ADDRESS_STRING;
|
||||||
@ -240,7 +247,7 @@ end ;
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
function GetDNS: string;
|
function GetDNS: string;
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
var
|
var
|
||||||
l: TStringList;
|
l: TStringList;
|
||||||
n: integer;
|
n: integer;
|
||||||
@ -287,7 +294,7 @@ end;
|
|||||||
{==============================================================================}
|
{==============================================================================}
|
||||||
|
|
||||||
function GetIEProxy(protocol: string): TProxySetting;
|
function GetIEProxy(protocol: string): TProxySetting;
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
begin
|
begin
|
||||||
Result.Host := '';
|
Result.Host := '';
|
||||||
Result.Port := '';
|
Result.Port := '';
|
||||||
|
65
synaser.pas
65
synaser.pas
@ -1,5 +1,5 @@
|
|||||||
{==============================================================================|
|
{==============================================================================|
|
||||||
| Project : Ararat Synapse | 007.004.000 |
|
| Project : Ararat Synapse | 007.005.000 |
|
||||||
|==============================================================================|
|
|==============================================================================|
|
||||||
| Content: Serial port support |
|
| Content: Serial port support |
|
||||||
|==============================================================================|
|
|==============================================================================|
|
||||||
@ -44,9 +44,9 @@
|
|||||||
|==============================================================================}
|
|==============================================================================}
|
||||||
|
|
||||||
{: @abstract(Serial port communication library)
|
{: @abstract(Serial port communication library)
|
||||||
This unit contains a class that implements serial port communication for Windows
|
This unit contains a class that implements serial port communication
|
||||||
or Linux. This class provides numerous methods with same name and functionality
|
for Windows, Linux, Unix or MacOSx. This class provides numerous methods with
|
||||||
as methods of the Ararat Synapse TCP/IP library.
|
same name and functionality as methods of the Ararat Synapse TCP/IP library.
|
||||||
|
|
||||||
The following is a small example how establish a connection by modem (in this
|
The following is a small example how establish a connection by modem (in this
|
||||||
case with my USB modem):
|
case with my USB modem):
|
||||||
@ -76,6 +76,13 @@ case with my USB modem):
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
//Kylix does not known UNIX define
|
||||||
|
{$IFDEF LINUX}
|
||||||
|
{$IFNDEF UNIX}
|
||||||
|
{$DEFINE UNIX}
|
||||||
|
{$ENDIF}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
{$MODE DELPHI}
|
{$MODE DELPHI}
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
@ -189,10 +196,14 @@ type
|
|||||||
PDCB = ^TDCB;
|
PDCB = ^TDCB;
|
||||||
|
|
||||||
const
|
const
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
MaxRates = 30;
|
{$IFDEF DARWIN}
|
||||||
|
MaxRates = 18; //MAC
|
||||||
|
{$ELSE}
|
||||||
|
MaxRates = 30; //UNIX
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
MaxRates = 19; //FPC on some platforms not know high speeds?
|
MaxRates = 19; //WIN
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
Rates: array[0..MaxRates, 0..1] of cardinal =
|
Rates: array[0..MaxRates, 0..1] of cardinal =
|
||||||
(
|
(
|
||||||
@ -214,9 +225,10 @@ const
|
|||||||
(38400, B38400),
|
(38400, B38400),
|
||||||
(57600, B57600),
|
(57600, B57600),
|
||||||
(115200, B115200),
|
(115200, B115200),
|
||||||
(230400, B230400),
|
(230400, B230400)
|
||||||
(460800, B460800)
|
{$IFNDEF DARWIN}
|
||||||
{$IFDEF LINUX}
|
,(460800, B460800)
|
||||||
|
{$IFDEF UNIX}
|
||||||
,(500000, B500000),
|
,(500000, B500000),
|
||||||
(576000, B576000),
|
(576000, B576000),
|
||||||
(921600, B921600),
|
(921600, B921600),
|
||||||
@ -228,10 +240,16 @@ const
|
|||||||
(3000000, B3000000),
|
(3000000, B3000000),
|
||||||
(3500000, B3500000),
|
(3500000, B3500000),
|
||||||
(4000000, B4000000)
|
(4000000, B4000000)
|
||||||
|
{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
);
|
);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF DARWIN}
|
||||||
|
const // From fcntl.h
|
||||||
|
O_SYNC = $0080; { synchronous writes }
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
const
|
const
|
||||||
sOK = 0;
|
sOK = 0;
|
||||||
sErr = integer(-1);
|
sErr = integer(-1);
|
||||||
@ -310,11 +328,9 @@ type
|
|||||||
procedure GetComNr(Value: string); virtual;
|
procedure GetComNr(Value: string); virtual;
|
||||||
function PreTestFailing: boolean; virtual;{HGJ}
|
function PreTestFailing: boolean; virtual;{HGJ}
|
||||||
function TestCtrlLine: Boolean; virtual;
|
function TestCtrlLine: Boolean; virtual;
|
||||||
{$IFNDEF MSWINDOWS}
|
{$IFDEF UNIX}
|
||||||
procedure DcbToTermios(const dcb: TDCB; var term: termios); virtual;
|
procedure DcbToTermios(const dcb: TDCB; var term: termios); virtual;
|
||||||
procedure TermiosToDcb(const term: termios; var dcb: TDCB); virtual;
|
procedure TermiosToDcb(const term: termios; var dcb: TDCB); virtual;
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF LINUX}
|
|
||||||
function ReadLockfile: integer; virtual;
|
function ReadLockfile: integer; virtual;
|
||||||
function LockfileName: String; virtual;
|
function LockfileName: String; virtual;
|
||||||
procedure CreateLockfile(PidNr: integer); virtual;
|
procedure CreateLockfile(PidNr: integer); virtual;
|
||||||
@ -325,7 +341,7 @@ type
|
|||||||
{: data Control Block with communication parameters. Usable only when you
|
{: data Control Block with communication parameters. Usable only when you
|
||||||
need to call API directly.}
|
need to call API directly.}
|
||||||
DCB: Tdcb;
|
DCB: Tdcb;
|
||||||
{$IFNDEF MSWINDOWS}
|
{$IFDEF UNIX}
|
||||||
TermiosStruc: termios;
|
TermiosStruc: termios;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{:Object constructor.}
|
{:Object constructor.}
|
||||||
@ -603,7 +619,7 @@ type
|
|||||||
|
|
||||||
{:Raise Synaser error with ErrNumber code. Usually used by internal routines.}
|
{:Raise Synaser error with ErrNumber code. Usually used by internal routines.}
|
||||||
procedure RaiseSynaError(ErrNumber: integer); virtual;
|
procedure RaiseSynaError(ErrNumber: integer); virtual;
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
function cpomComportAccessible: boolean; virtual;{HGJ}
|
function cpomComportAccessible: boolean; virtual;{HGJ}
|
||||||
procedure cpomReleaseComport; virtual; {HGJ}
|
procedure cpomReleaseComport; virtual; {HGJ}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -764,7 +780,7 @@ end;
|
|||||||
|
|
||||||
class function TBlockSerial.GetVersion: string;
|
class function TBlockSerial.GetVersion: string;
|
||||||
begin
|
begin
|
||||||
Result := 'SynaSer 7.4.0';
|
Result := 'SynaSer 7.5.0';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBlockSerial.CloseSocket;
|
procedure TBlockSerial.CloseSocket;
|
||||||
@ -778,7 +794,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if InstanceActive then
|
if InstanceActive then
|
||||||
begin
|
begin
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
if FLinuxLock then
|
if FLinuxLock then
|
||||||
cpomReleaseComport;
|
cpomReleaseComport;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -933,7 +949,7 @@ begin
|
|||||||
SerialCheck(-1)
|
SerialCheck(-1)
|
||||||
else
|
else
|
||||||
SerialCheck(0);
|
SerialCheck(0);
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
if FLastError <> sOK then
|
if FLastError <> sOK then
|
||||||
if FLinuxLock then
|
if FLinuxLock then
|
||||||
cpomReleaseComport;
|
cpomReleaseComport;
|
||||||
@ -968,7 +984,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
SetSynaError(ErrNoDeviceAnswer);
|
SetSynaError(ErrNoDeviceAnswer);
|
||||||
FileClose(FHandle); {HGJ}
|
FileClose(FHandle); {HGJ}
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
if FLinuxLock then
|
if FLinuxLock then
|
||||||
cpomReleaseComport; {HGJ}
|
cpomReleaseComport; {HGJ}
|
||||||
{$ENDIF} {HGJ}
|
{$ENDIF} {HGJ}
|
||||||
@ -1807,7 +1823,8 @@ function TBlockSerial.CanRead(Timeout: integer): boolean;
|
|||||||
begin
|
begin
|
||||||
Result := WaitingData > 0;
|
Result := WaitingData > 0;
|
||||||
if not Result then
|
if not Result then
|
||||||
Result := CanEvent(EV_RXCHAR, Timeout);
|
Result := CanEvent(EV_RXCHAR, Timeout) or (WaitingData > 0);
|
||||||
|
//check WaitingData again due some broken virtual ports
|
||||||
if Result then
|
if Result then
|
||||||
DoStatus(HR_CanRead, '');
|
DoStatus(HR_CanRead, '');
|
||||||
end;
|
end;
|
||||||
@ -1918,7 +1935,11 @@ begin
|
|||||||
{$IFNDEF FPC}
|
{$IFNDEF FPC}
|
||||||
SerialCheck(ioctl(FHandle, TCFLSH, TCIOFLUSH));
|
SerialCheck(ioctl(FHandle, TCFLSH, TCIOFLUSH));
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
SerialCheck(fpioctl(FHandle, TCFLSH, TCIOFLUSH));
|
{$IFDEF DARWIN}
|
||||||
|
SerialCheck(fpioctl(FHandle, TCIOflush, TCIOFLUSH));
|
||||||
|
{$ELSE}
|
||||||
|
SerialCheck(fpioctl(FHandle, TCFLSH, TCIOFLUSH));
|
||||||
|
{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
FBuffer := '';
|
FBuffer := '';
|
||||||
ExceptCheck;
|
ExceptCheck;
|
||||||
@ -2154,7 +2175,7 @@ end;
|
|||||||
Ownership Manager.
|
Ownership Manager.
|
||||||
}
|
}
|
||||||
|
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
|
|
||||||
function TBlockSerial.LockfileName: String;
|
function TBlockSerial.LockfileName: String;
|
||||||
var
|
var
|
||||||
|
Loading…
x
Reference in New Issue
Block a user