PageInt.Dll - Универсальный интерфейс к СПРВ

                        PageInt.Dll V. 2.16
                        Все права собственности
                        принадлежат:            Igor Vaskov
                        Идея и алгоритм:        Igor Vaskov
Описание

Эта библиотека разработана для обеспечения взаимодействия с пейджинговыми системами NUCLON и CRUSO (PageLink Technology), OpenPage (Комплексные Системы Связи) и GRANIT (Igor Vaskov). Интерфейс обращения стандартизирован. Программисту не нужно изучать особенности каждой системы, достаточно вызвать функции библиотеки с набором параметров и настроить файл конфигурации под используемую СПРВ.

Библиотека обеспечивает:

Конфигурационный файл PageInt.Dll:

SWAPDIR X:\NUCLON\GATE\         - Полученные сообщения по номеру пейжера
CAPSWAPDIR X:\NUCLON\TNPP\OUT\  - Полученные сообщения по Cap-Code (TNPP)
INPUTDIR X:\NUCLON\TNPP\IN\     - Сообщения от пейджинговой системы (TNPP)
13FLG YES                       - Сервисный параметр
TYPEID 0                        - Тип пейджинговой системы для обмена сообщениями
                                      0 - Nuclon 8.3+
                                      1 - OpenPage
                                      2 - GRANIT
                                      3 - Nuclon (ранние версии)   
PARAMETRS M                     - Используется для системы GRANIT
TYPEREQ 0                       - Тип пейджинговой системы для запроса валидности
                                      номера пейджера   
                                      0 - Nuclon 8.3+
                                      1 - OpenPage
                                      2 - GRANIT
                                      3 - Nuclon (ранние версии)   

Интерфейс PageInt.Dll:

Type
  TMessageRec = Packed Record
                  ID           : String[12];
                  HoldTime     : String[40];
                  Msg          : PChar;
                  Cove         : Word;
                  Passw        : String[12];
                  Rep,Del,CP   : Byte;
                  RemIP        : String[40];
                  RemHst       : String;
                End;

  TMessageAllRec = Packed Record
                     CapCode      : String[21];
                     TPage        : Char;
                     FCode        : Char;
                     RFChannel    : Char;
                     RFZone       : Char;
                     Msg          : array[0..2049] of Char;
                     Cove         : Word;
                     Passw        : String[21];
                     ID           : String[21];
                     HoldTime     : String[39];
                     CPage        : Char;
                     Rep,Del,CP   : Byte;
                     RemIP        : String[79];
                     RemHst       : String;
                     Source       : String[79];
                     SourceTemp   : String[79];
                   End;
  PMessageAllRec = ^TMessageAllRec;

//Отправляет сообщение по Cap-code и технической информации
Function SendCAPPage(Resource : PChar; Msg : TMessageAllRec) : LongInt;

//Недокументировано
Function AfterSent(Msg : TMessageAllRec) : LongInt;

//Отправляет сообщение по номеру пейджера
// Возвращает 0 - пейджер найден
//            1 - не найден
//            2 - некорректный номер пейджера
Function SendPage(Msg : TMessageRec; CurLogin, CurPassw : PChar; R,N : LongInt) : LongInt;

//Проверяет валидность номера пейджера
// Возвращает 0 - пейджер найден
//            1 - не найден
//            2 - некорректный номер пейджера
//            100 - демоверсия библиотеки
//            отрецательный код ошибки             
Function SearchIDRequest(PagerID, xpassword : PChar; R,N : LongInt) : LongInt;

//Читает PageInt.Cfg
// Возвращает 0, если все нормально
//           -1, если не удалось открыть файл конфигурации
Function ReadIni(ETC : PChar) : LongInt;

//Закрывает сесиию
//Возвращает 0, если все нормально.
Function CloseInputMessage : LongInt;

//Читает следующее сообщение в открытой сесии
// Возвращает код возврата -2018 - нет сообщений в очереди
//                         -2019 - сообщение обработано
// Возвращает сообщение в структуре на которую был
// передан указатель Msg
Function NextInputMessage(Msg : PMessageAllRec) : LongInt;

//Открытие сессии чтения сообщений от пейджинговой системы
// Может быть открыта только ОДНА сесиия!
// Возвращает код возврата -2018 - нет сообщений в очереди
//                         -2019 - сообщение обработано
// Возвращает сообщение в структуре на которую был
// передан указатель Msg
Function FirstInputMessage(Msg : PMessageAllRec) : LongInt;

//Перекодировка русского языка
// k = 1 - Win to Dos (Invers = false)
// k = 2 - Win to Koi (Invers = false)
// k = 3 - Dos to Koi (Invers = false)
// k = 1 - Dos to Win (Invers = true)
// k = 2 - Koi to Win (Invers = true)
// k = 3 - Koi to Dos (Invers = trye)
// Win - 1251
// Koi - 878
// Dos - 866
// Возвращает указатель на перекодированную строку
Function DecodeRus(k : Byte; pstS : PChar; Invers : boolean) : PChar;

Для интеграции с Си поставляется библиотека PgIntWrp.dll. Это транслятор вызовов выполненый по модели Cdecl. Также в нескольких местах отличается способ передачи пераметров. Типы параметров, структур и назначение фукций аналогично PageInt.Dll. Интерфейс PgIntWrp.dll:

Function SendCAPPage(Resource : PChar; Msg : Pointer) : LongInt;cdecl;
Function AfterSent(Msg : Pointer) : LongInt;cdecl;
Function SendPage(Msg : Pointer; CurLogin, CurPassw : PChar; R,N : LongInt) : LongInt;cdecl;
Function SearchIDRequest(x, xpassword : PChar; R,N : LongInt) : LongInt;cdecl;
Function ReadIni(ETC : PChar) : LongInt;cdecl;
Function CloseInputMessage : LongInt;cdecl;
Function NextInputMessage(Msg : PMessageAllRec) : LongInt;cdecl;
Function FirstInputMessage(Msg : PMessageAllRec) : LongInt;cdecl;
Function DecodeRus(k : Byte; pstS : PChar; Invers : boolean) : PChar;cdecl;

Библиотека выпускается в 2-х исполнениях: OS/2 и WIN32 (Windows 95/98/NT/2000/XP). WIN32 версия имеет ограничения: не поддерживается запуск программы после приема сообщения; стоит 250$. Версия OS/2 распространяется бесплатно в составе DTMFD и SNPPD. Подробная документация и примеры использования стоит 50$.

Скачать библиотеку для операционной системы OS/2 можно здесь


Домой