Package ru.nilsoft.tm

Class TMLib

java.lang.Object
ru.nilsoft.tm.TMLib

public class TMLib extends Object

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

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

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

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Полное название класса сервиса для работы с контроллером ФН.
    static final String
    Название класса сервиса для работы с контроллером ФН.
    static final String
    Название package к которому относится сервис для работы с контроллером ФН.
  • Method Summary

    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
    Получение динамического статуса из последнего ответа контроллера ФН.
    int
    Получение постоянного статуса из последнего ответа контроллера ФН.
    static TMLib
    Получение реализации класса.
    Получение последней, отправленной на выполнение, команды.
    Получение последнего ответа из контроллера ФН на команду.
    android.os.Handler
    Получение текущего хендлера.
    int
    getState(int mask)
    Получение состояния библиотеки (смотри TMLib.states.
    boolean
    init(android.content.Context context)
    Инициализация библиотеки (должна проводится один раз в классе Application).
    boolean
    Проверка, что теневой поток отправки данных в ОФД запущен.
    boolean
    Проверка, что теневой поток отправки данных в ОИСМ запущен.
    void
    registerHandler(android.os.Handler h)
    Регистрация хендлера (активность при создании должна регистрировать хэндлер, чтобы получать ответы).
    int
    Сброс режима прямой отправки данных в контроллер ФН.
    int
    SendByPass(byte[] data)
    Режим прямой отправки данных в контроллер ФН.
    int
    Отправка команды в контроллер ФН (без ожидания ответа).
    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
    Отправка NAK в контроллер ФН.
    void
    Отрезать печатаемые данные (для принтеров с гильотиной).
    void
    SendPrintData(byte[] data)
    Отправить данные на печать (данные должны быть в кодировке CP866).
    void
    SendPrintParam(int lineFeed, int grayLevel)
    Установить параметры принтера.
    void
    SendPrintParam(int lineFeed, int grayLevel, int scrollAfter)
    Установить параметры принтера.
    void
    Отправить запрос на получение версии.
    void
    Отправить запрос на старт сервиса (после получения permissions).
    void
    Запуск теневого потока отправки данных в ОФД (если поток работает, то он перезапускается).
    void
    Запуск теневого потока отправки данных в ОИСМ (если поток работает, то он перезапускается).
    android.content.Intent
    startService(android.content.Context context)
    Запуск сервиса.
    void
    Останов теневого потока отправки данных в ОФД.
    void
    Останов теневого потока отправки данных в ОИСМ.
    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 Details

    • ServiceName

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

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

      public static final String ServiceFullName
      Полное название класса сервиса для работы с контроллером ФН.
      See Also:
  • Method Details

    • getInstance

      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 - данные текста.