Package ru.nilsoft.tm

Class TMLib


  • public class TMLib
    extends java.lang.Object

    Класс для работы с сервисом KKT (реализует API работы с ККТ).

    Внимание: Объявлен как singleton.
    Внимание: Инициализировать только в классе приложения (Application).
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  TMLib.call_mode
      Режимы вызова ККТ.
      static class  TMLib.messages
      Сообщения для передачи ответов в активность.
      static class  TMLib.states
      Флаги состояния интерфейса.
      class  TMLib.TMWaitMessage
      Класс контролирующий время ожидания ответа.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) TMCommand lastCmd
      Последняя отправленная команда.
      (package private) byte lastDLE
      Последняя отправленая DLE команда.
      (package private) TMCommand lastResponse
      Последний полученный ответ на команду.
      (package private) ru.nilsoft.tm.TMLib.Sender sender
      Указатель на текущий ожидающий ответа на команду поток.
      (package private) ru.nilsoft.tm.TMLib.SenderDLE senderDLE
      Указатель на текущий ожидающий ответа на DLE поток.
      static java.lang.String ServiceFullName
      Полное название класса сервиса для работы с контроллером ФН.
      static java.lang.String ServiceName
      Название класса сервиса для работы с контроллером ФН.
      static java.lang.String ServicePkg
      Название package к которому относится сервис для работы с контроллером ФН.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int Activate​(android.content.Context context, long timeOut)
      Инициализация контроллера ФН.
      int Activate​(android.content.Context context, long timeOut, boolean viewDialog)
      Инициализация контроллера ФН.
      int DoCmd​(android.content.Context context, TMCommand cmd, long timeOut)
      Выполнение команды контроллером ФН (с обязательным выводом прогресс-диалога).
      int DoCmd​(android.content.Context context, TMCommand cmd, long timeOut, boolean viewDialog)
      Выполнение команды контроллером ФН.
      int DoDLE​(android.content.Context context, byte code, long timeOut)
      Выполнение команды в контроллер ФН (с обязательным выводом прогресс-диалога).
      int DoDLE​(android.content.Context context, byte code, long timeOut, boolean viewDialog)
      Выполнение DLE команды контроллером ФН.
      int getDynamicStatus()
      Получение динамического статуса из последнего ответа контроллера ФН.
      int getHardStatus()
      Получение постоянного статуса из последнего ответа контроллера ФН.
      static TMLib getInstance()
      Получение реализации класса.
      TMCommand getLastCmd()
      Получение последней, отправленной на выполнение, команды.
      TMCommand getLastResponse()
      Получение последнего ответа из контроллера ФН на команду.
      android.os.Handler getRegisteredHandler()
      Получение текущего хендлера.
      int getState​(int mask)
      Получение состояния библиотеки (смотри TMLib.states.
      boolean init​(android.content.Context context)
      Инициализация библиотеки (должна проводится один раз в классе Application).
      boolean IsStartedOFD()
      Проверка, что теневой поток отправки данных в ОФД запущен.
      boolean IsStartedOISM()
      Проверка, что теневой поток отправки данных в ОИСМ запущен.
      void registerHandler​(android.os.Handler h)
      Регистрация хендлера (активность при создании должна регистрировать хэндлер, чтобы получать ответы).
      int ResetByPass()
      Сброс режима прямой отправки данных в контроллер ФН.
      int SendByPass​(byte[] data)
      Режим прямой отправки данных в контроллер ФН.
      int SendCmd​(TMCommand cmd)
      Отправка команды в контроллер ФН (без ожидания ответа).
      int SendDLE​(byte code)
      Отправка DLE в контроллер ФН.
      void SendLogData_CMD​(byte[] data)
      Запись в лог длинной команды.
      void SendLogData_DLE​(byte[] data)
      Запись в лог короткой команды.
      void SendLogData_HEX​(byte[] data)
      Запись в лог хекс дампа.
      void SendLogData_PRINTER​(byte[] data)
      Запись в лог данных для принтера.
      void SendLogData_TEXT​(byte[] data)
      Запись в лог текста.
      int SendNAK()
      Отправка NAK в контроллер ФН.
      void SendPrintCut()
      Отрезать печатаемые данные (для принтеров с гильотиной).
      void SendPrintData​(byte[] data)
      Отправить данные на печать (данные должны быть в кодировке CP866).
      void SendPrintParam​(int lineFeed, int grayLevel)
      Установить параметры принтера.
      void SendPrintParam​(int lineFeed, int grayLevel, int scrollAfter)
      Установить параметры принтера.
      void SendRespVer()
      Отправить запрос на получение версии.
      void start()
      Отправить запрос на старт сервиса (после получения permissions).
      void StartOFD()
      Запуск теневого потока отправки данных в ОФД (если поток работает, то он перезапускается).
      void StartOISM()
      Запуск теневого потока отправки данных в ОИСМ (если поток работает, то он перезапускается).
      android.content.Intent startService​(android.content.Context context)
      Запуск сервиса.
      void StopOFD()
      Останов теневого потока отправки данных в ОФД.
      void StopOISM()
      Останов теневого потока отправки данных в ОИСМ.
      void unbind​(android.content.Context context)
      Освобождение привязки к сервису (при завершении приложения).
      void unregisterHandler​(android.os.Handler h)
      Освобождение текущего хэндлера (активность при завершении работы должна освободить хэндл).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ServiceName

        public static final java.lang.String ServiceName
        Название класса сервиса для работы с контроллером ФН.
        See Also:
        Constant Field Values
      • ServicePkg

        public static final java.lang.String ServicePkg
        Название package к которому относится сервис для работы с контроллером ФН.
        See Also:
        Constant Field Values
      • ServiceFullName

        public static final java.lang.String ServiceFullName
        Полное название класса сервиса для работы с контроллером ФН.
        See Also:
        Constant Field Values
      • lastCmd

        TMCommand lastCmd
        Последняя отправленная команда.
      • lastDLE

        byte lastDLE
        Последняя отправленая DLE команда.
      • lastResponse

        TMCommand lastResponse
        Последний полученный ответ на команду.
      • sender

        ru.nilsoft.tm.TMLib.Sender sender
        Указатель на текущий ожидающий ответа на команду поток.
      • senderDLE

        ru.nilsoft.tm.TMLib.SenderDLE senderDLE
        Указатель на текущий ожидающий ответа на DLE поток.
    • Method Detail

      • getInstance

        @NonNull
        public static TMLib getInstance()
        Получение реализации класса.
        Returns:
        реализация класса.
      • startService

        public android.content.Intent startService​(android.content.Context context)
        Запуск сервиса.
        Parameters:
        context - контекст приложения.
        Returns:
        интент сервиса.
      • init

        public boolean init​(android.content.Context context)
        Инициализация библиотеки (должна проводится один раз в классе Application).
        Parameters:
        context - контекст приложения.
        Returns:
        true: привязка к серверу произошла, false: привязки к сервер нет.
      • unbind

        public void unbind​(android.content.Context context)
        Освобождение привязки к сервису (при завершении приложения).
        Parameters:
        context - контекст приложения.
      • getState

        public int getState​(int mask)
        Получение состояния библиотеки (смотри TMLib.states.
        Parameters:
        mask - маска состояния (если 0, то вернуть все флаги состояния).
        Returns:
        состояние с учетом флагов.
      • getLastCmd

        public TMCommand getLastCmd()
        Получение последней, отправленной на выполнение, команды.
        Returns:
        последняя, отправленная на выполнение, команда (null если нет).
      • getLastResponse

        public TMCommand getLastResponse()
        Получение последнего ответа из контроллера ФН на команду.
        Returns:
        последний ответ на команду.
      • getDynamicStatus

        public int getDynamicStatus()
        Получение динамического статуса из последнего ответа контроллера ФН.
        Returns:
        динамический статус (-1: ошибка, ответ недоступен).
      • getHardStatus

        public int getHardStatus()
        Получение постоянного статуса из последнего ответа контроллера ФН.
        Returns:
        постоянный статус (-1: ошибка, ответ недоступен).
      • StartOFD

        public void StartOFD()
        Запуск теневого потока отправки данных в ОФД (если поток работает, то он перезапускается).
      • StopOFD

        public void StopOFD()
        Останов теневого потока отправки данных в ОФД.
      • StartOISM

        public void StartOISM()
        Запуск теневого потока отправки данных в ОИСМ (если поток работает, то он перезапускается).
      • StopOISM

        public void StopOISM()
        Останов теневого потока отправки данных в ОИСМ.
      • IsStartedOFD

        public boolean IsStartedOFD()
        Проверка, что теневой поток отправки данных в ОФД запущен.
        Returns:
        true: запущен false: не запущен.
      • IsStartedOISM

        public boolean IsStartedOISM()
        Проверка, что теневой поток отправки данных в ОИСМ запущен.
        Returns:
        true: запущен false: не запущен.
      • registerHandler

        public void registerHandler​(android.os.Handler h)
        Регистрация хендлера (активность при создании должна регистрировать хэндлер, чтобы получать ответы).
        Parameters:
        h - хендлер активности.
      • unregisterHandler

        public void unregisterHandler​(android.os.Handler h)
        Освобождение текущего хэндлера (активность при завершении работы должна освободить хэндл).
        Parameters:
        h - хэндлер активности.
      • getRegisteredHandler

        public android.os.Handler getRegisteredHandler()
        Получение текущего хендлера.
        Returns:
        текущий хендлер.
      • Activate

        public int Activate​(android.content.Context context,
                            long timeOut,
                            boolean viewDialog)
        Инициализация контроллера ФН.
        Parameters:
        context - контекст активности (вывод окна с сообщением).
        timeOut - максимальный тамймаут ожидания ответа от контроллера ФН.
        viewDialog - true: вывод прогресс-диалога с информацией, false: не выводить.
        Returns:
        0: успешно, иначе ошибка.
      • Activate

        public int Activate​(android.content.Context context,
                            long timeOut)
        Инициализация контроллера ФН.
        Parameters:
        context - контекст активности (для вывода окна с сообщением).
        timeOut - максимальный тамймаут ожидания ответа от контроллера ФН.
        Returns:
        0: успешно, иначе ошибка.
      • DoCmd

        public int DoCmd​(android.content.Context context,
                         TMCommand cmd,
                         long timeOut,
                         boolean viewDialog)
        Выполнение команды контроллером ФН.
        Parameters:
        context - контекст активности.
        cmd - команда.
        timeOut - максимальный тамймаут ожидания ответа от контроллера ФН.
        viewDialog - true: вывод прогресс-диалога с информацией, false: не выводить.
        Returns:
        0: успешно, иначе ошибка.
      • DoCmd

        public int DoCmd​(android.content.Context context,
                         TMCommand cmd,
                         long timeOut)
        Выполнение команды контроллером ФН (с обязательным выводом прогресс-диалога).
        Parameters:
        context - контекст активности.
        cmd - команда.
        timeOut - максимальный таймаут ожидания ответа от контроллера ФН.
        Returns:
        0: успешно, иначе ошибка.
      • DoDLE

        public int DoDLE​(android.content.Context context,
                         byte code,
                         long timeOut,
                         boolean viewDialog)
        Выполнение DLE команды контроллером ФН.
        Parameters:
        context - контекст активности.
        code - команда DLE.
        timeOut - максимальный таймаут ожидания ответа от контроллера ФН.
        viewDialog - true: вывод прогресс-диалога с информацией, false: не выводить.
        Returns:
        0: успешно, иначе ошибка.
      • DoDLE

        public int DoDLE​(android.content.Context context,
                         byte code,
                         long timeOut)
        Выполнение команды в контроллер ФН (с обязательным выводом прогресс-диалога).
        Parameters:
        context - контекст активности.
        code - команда DLE.
        timeOut - максимальный тамймаут ожидания ответа от сервиса КФН.
        Returns:
        0: успешно, иначе ошибка.
      • SendCmd

        public int SendCmd​(TMCommand cmd)
        Отправка команды в контроллер ФН (без ожидания ответа).
        Parameters:
        cmd - команда.
        Returns:
        0: успешно, иначе ошибка.
      • SendDLE

        public int SendDLE​(byte code)
        Отправка DLE в контроллер ФН.
        Parameters:
        code - код DLE команды.
        Returns:
        0: успешно, иначе ошибка.
      • SendNAK

        public int SendNAK()
        Отправка NAK в контроллер ФН.
        Returns:
        0: успешно, иначе ошибка.
      • SendByPass

        public int SendByPass​(byte[] data)
        Режим прямой отправки данных в контроллер ФН.
        Parameters:
        data - данные для отправки.
        Returns:
        0: успешно, иначе ошибка.
      • ResetByPass

        public int ResetByPass()
        Сброс режима прямой отправки данных в контроллер ФН.
        Returns:
        0: успешно, иначе ошибка.
      • SendPrintData

        public void SendPrintData​(byte[] data)
        Отправить данные на печать (данные должны быть в кодировке CP866).
        Parameters:
        data - данные для печати.
      • SendPrintCut

        public void SendPrintCut()
        Отрезать печатаемые данные (для принтеров с гильотиной). ВНИМАНИЕ: для принтеров без гильотины, используется прокрутка после печати SendPrintParam(int, int, int).
      • SendPrintParam

        public void SendPrintParam​(int lineFeed,
                                   int grayLevel)
        Установить параметры принтера.
        Parameters:
        lineFeed - межстрочный интервал в пикселях (<0: установить значение по умолчанию).
        grayLevel - уровень серого (<0: установить значение по умолчанию).
      • SendPrintParam

        public void SendPrintParam​(int lineFeed,
                                   int grayLevel,
                                   int scrollAfter)
        Установить параметры принтера.
        Parameters:
        lineFeed - межстрочный интервал в пикселях (<0: установить значение по умолчанию).
        grayLevel - уровень серого (<0: установить значение по умолчанию).
        scrollAfter - прокрутка после печати(в пикселях: 0:не использовать прокрутку, -1: значение по умолчанию), если в данных печати символ отреза (для принтеров без гильотины).
      • SendRespVer

        public void SendRespVer()
        Отправить запрос на получение версии.
      • start

        public void start()
        Отправить запрос на старт сервиса (после получения permissions).
      • SendLogData_CMD

        public void SendLogData_CMD​(byte[] data)
        Запись в лог длинной команды.
        Parameters:
        data - данные команды.
      • SendLogData_DLE

        public void SendLogData_DLE​(byte[] data)
        Запись в лог короткой команды.
        Parameters:
        data - данные команды.
      • SendLogData_HEX

        public void SendLogData_HEX​(byte[] data)
        Запись в лог хекс дампа.
        Parameters:
        data - данные дампа.
      • SendLogData_PRINTER

        public void SendLogData_PRINTER​(byte[] data)
        Запись в лог данных для принтера.
        Parameters:
        data - данные для принтера.
      • SendLogData_TEXT

        public void SendLogData_TEXT​(byte[] data)
        Запись в лог текста.
        Parameters:
        data - данные текста.