Для миграции прочтите файл
Библиотека реализует протокол кассового взаимодействия LAN-4Gate компании ЛАНТЕР.
Подробная документация сгенерирована Javadoc. Доступна по ссылке и в шапке файла
Библиотека находится в процессе миграции на Android SDK
- Android 5.1
- Java 1.7
- Gradle 6.1.1
- JSON-java. Используется из состава Android SDK
- добавить в репозитории репозиторий jitpack
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- Добавить библиотеку в зависимости проекта.
dependencies {
implementation 'com.github.LanterECR:LAN-4GateLibrary:v1.0.0'
}
Ниже приведены фрагменты кода в качестве примера.
- Реализовать интерфейсы колбэков:
- ICommunicationCallback
import org.lanter.lan4gate.Callbacks.ICommunicationCallback;
class CommunicationCallback implements ICommunicationCallback {
public void communicationStarted(ILan4Gate initiator) {
//Реакция на событие запуска соединения
}
public void communicationStopped(ILan4Gate initiator) {
//Реакция на событие остановки соединения
}
public void connected(ILan4Gate initiator) {
//Реакция на подключение к терминалу
}
public void disconnected(ILan4Gate initiator) {
//Реакция на отключение от терминала
}
}
- IResponseCallback
import org.lanter.lan4gate.Callbacks.IResponseCallback;
class ResponseCallback implements IResponseCallback {
public void newResponseMessage(IResponse response, ILan4Gate initiator) {
//Реакция на получение ответа от терминала
}
}
- INotificationCallback
import org.lanter.lan4gate.Callbacks.INotificationCallback;
class NotificationCallback implements INotificationCallback {
public void newNotificationMessage(INotification notification, ILan4Gate initiator) {
//Реакция на получение уведомления
}
}
- Создать соединение
- TCP сервер, обслуживающий одно соединение по заданному порту 20500. Без указания параметра, будет использован порт по умолчанию - 20501. Порт взаимодействия согласуется при интеграции. Необходима возможность задавать вручную.
import org.lanter.lan4gate.Communication.CommunicationFactory;
import org.lanter.lan4gate.Communication.ICommunication;
ICommunication server = CommunicationFactory.getSingleTCPServer(20500);
- Декоратор, обслуживающий TCP сервер предыдущего пункта. Используется для определения длины сообщений. Использование данного параметра согласуется при интеграции
import org.lanter.lan4gate.Communication.CommunicationFactory;
import org.lanter.lan4gate.Communication.ICommunication;
ICommunication control = CommunicationFactory.getSizeControlDecorator(server);
- Создать менеджер библиотеки ILan4Gate
import org.lanter.lan4gate.Lan4GateFactory;
import org.lanter.lan4gate.ILan4Gate;
int ecrNumber = 1;
ILan4Gate gate = Lan4GateFactory.getLan4Gate(ecrNumber, control);
- Привязать колбэки к менеджеру
gate.addCommunicationCallback(new CommunicationCallback());
gate.addResponseCallback(new ResponseCallback());
gate.addNotificationCallback(new NotificationCallback());
- Запустить менеджер
gate.start();
- Остановить менеджер.
gate.stop();
gate = null;