Closed mifkamaz closed 7 years ago
Добрый день. Да, интеграция есть. В настройках драйвера параметр FSServiceEnabled.
А как задавать хост и порт ОФД?
Хост и порт ОФД берутся из соответствующей таблицы, они прописываются при фискализации, для тестов их можно выставить вручную использую команду записи таблиц или виндовый драйвер, но в боевую эти параметры должны меняться путем перерегистрации.
Чеки для отправки есть, но они не отправляются Касса фискализирована, ОФД настроен
В FSService
вызов byte[] data = printer.fsReadBlockData()
всегда возвращает массив нулевой длинны
Код соединения с кассой
printerImpl = new FiscalPrinterImpl();
JposEntry jposEntry = JposConfig.configure(
operatorPassword,
kktProfile.getGeneralPassword(),
"ShtrihFptr",
kktProfile.getSettings(),
App.getInstance().getApplicationContext()
);
if (printerImpl.getState() != JposConst.JPOS_S_CLOSED) {
printerImpl.close();
}
printerImpl.setJposEntry(jposEntry);
printerImpl.open("ShtrihFptr", new EventCallbacks() {
@Override
public void fireDataEvent(DataEvent dataEvent) {
System.out.println("fireDataEvent " + dataEvent);
}
@Override
public void fireDirectIOEvent(DirectIOEvent directIOEvent) {
System.out.println("fireDirectIOEvent " + directIOEvent);
}
@Override
public void fireErrorEvent(ErrorEvent errorEvent) {
System.out.println("ErrorEvent " + errorEvent.getErrorCode());
}
@Override
public void fireOutputCompleteEvent(OutputCompleteEvent outputCompleteEvent) {
System.out.println("fireOutputCompleteEvent " + outputCompleteEvent);
}
@Override
public void fireStatusUpdateEvent(StatusUpdateEvent statusUpdateEvent) {
System.out.println("fireStatusUpdateEvent " + statusUpdateEvent);
}
@Override
public BaseControl getEventSource() {
return null;
}
});
printerImpl.claim(3000);
printerImpl.setDeviceEnabled(true);
Конфигурация драйвера
public static JposEntry configure(String operatorPassword, String adminPass, String deviceName, String portName, Context context)
throws Exception {
copyAsset("jpos.xml", SysUtils.getFilesPath() + "jpos.xml", context);
String fileUrl = "file://" + SysUtils.getFilesPath() + "jpos.xml";
System.setProperty(
JposPropertiesConst.JPOS_POPULATOR_FILE_URL_PROP_NAME, fileUrl);
System.setProperty(
JposPropertiesConst.JPOS_REG_POPULATOR_CLASS_PROP_NAME,
"jpos.config.simple.xml.SimpleXmlRegPopulator");
JposEntryRegistry registry = JposServiceLoader.getManager()
.getEntryRegistry();
if (registry.hasJposEntry(deviceName)) {
JposEntry jposEntry = registry.getJposEntry(deviceName);
if (jposEntry != null) {
jposEntry.addProperty("portName", portName);
jposEntry.modifyPropertyValue("portName", portName);
jposEntry.addProperty("operatorPassword", operatorPassword);
jposEntry.modifyPropertyValue("operatorPassword", operatorPassword);
jposEntry.addProperty("sysAdminPassword", adminPass);
jposEntry.modifyPropertyValue("sysAdminPassword", adminPass);
jposEntry.addProperty("FSConnectTimeout", "3000");
jposEntry.modifyPropertyValue("FSConnectTimeout", "3000");
jposEntry.addProperty("FSServiceEnabled", "1");
jposEntry.modifyPropertyValue("FSServiceEnabled", "1");
}
return jposEntry;
}
return null;
}
Странно, надо б лог глянуть и какая версия прошивки у устройства?
Версия ПО: А.4 Сборка ПО: 20014 Дата ПО: 07.04.2017
А лог? Нужно посмотреть какие байты передаются и какие ответы приходят.
Обновили драйвер до 411, все ок
Есть ли интеграция с ОФД в вашем драйвере (передача чеков в ОФД через Bluetooth)