!=====================================================================================
! Класс для работы с COM-портом.
! Вячеслав Черников, г.Рязань, 2013 г.
!=====================================================================================

!=====================================================================================
! Класс: работа с COM-портом.
! Пример вызова.
!
! FsComL    FsCom
!
! FsCom.Kill                             !уничтожаем класс (необязательно)
!
!=====================================================================================

OMIT('_EndOfInclude_',_FsComClassPresent_)
_FsComClassPresent_ EQUATE(1)

!=====================================================================================

FsCom CLASS,TYPE,MODULE('FsCom.clw'),LINK('FsCom.clw') 
Active       BYTE          !флаг активности

Handle       SHORT
NameCString  CSTRING(255)
LastError    ULONG
DCB       GROUP
Length      ULONG
BaudRate    ULONG
Binary      ULONG
wReserved   USHORT
XonLim      USHORT
XoffLim     USHORT
ByteSize    BYTE
Parity      BYTE
StopBits    BYTE
XOnChar     BYTE
XOffChar    BYTE
ErrorChar   BYTE
EvtChar     BYTE
wReserved2  USHORT
   END

FlagLog     BYTE, PRIVATE  !признак вывода лога        

Init           PROCEDURE (STRING PortName),SHORT 
SetUp          PROCEDURE (),SHORT 
SetUpString    PROCEDURE (STRING PortString),SHORT !baud=9600 parity=N data=8 stop=1 and so on
Kill           PROCEDURE ()
ClearIncoming  PROCEDURE (),SHORT
ClearOutgoing  PROCEDURE (),SHORT
Read           PROCEDURE (*CSTRING buffer, ULONG bytes, *ULONG BytesRead),SHORT
Write          PROCEDURE (*CSTRING buffer, ULONG bytes),SHORT
SetTimeouts    PROCEDURE (ULONG ReadInterval, ULONG ReadMultiplier, ULONG ReadConstant, ULONG WriteMultiplier, ULONG WriteConstant),SHORT
NormalTimeouts PROCEDURE (),SHORT
Sleep          PROCEDURE (ULONG Delay)                    !пауза
intToHex       FUNCTION (Byte bVal), STRING               !конвертирование байта в HEX
StrToUnicod    FUNCTION (STRING StrS, LONG Dl), STRING    !конвертирование строки в юникод

LogActive      PROCEDURE                  !включить вывод лога
LogDeActive    PROCEDURE                  !отключить вывод лога
LogAdd         PROCEDURE (STRING Mes)     !вывести сообщение в лог
GetPhoneForSMS FUNCTION (STRING PhoneS), STRING  !преобразовать номер телефона для отправки sms
SendSMS        FUNCTION (STRING PortName, STRING PhoneOut, STRING Mes), BYTE  !отправить смс
 END

_EndOfInclude_
