Open VladislavKhambikov opened 2 years ago
Версия ФФД так.
public FfdVersion getFfdVersion() {
String result = null;
try {
DeviceMetrics metrics = printer.readDeviceMetrics();
try {
if (metrics.isShtrihNano()) {
result = callPrinterMethod(() -> printer.readTable(17, 1, 17), "readTable", "17, 1, 17");
} else if (metrics.isShtrihMobile()) {
result = callPrinterMethod(() -> printer.readTable(10, 1, 4), "readTable", "10, 1, 4");
}
} catch (Exception ex) {
Logger.getInstance().log(LogLevel.ERROR, "Ошибка чтения версии ФФД: " + ex.getMessage());
throw new PpsException("Ошибка чтения версии ФФД: " + ex.getMessage(), 10);
}
} catch (Exception metricsEx) {
Logger.getInstance().log(LogLevel.ERROR, "Ошибка чтения метрик устройства: " + metricsEx.getMessage());
}
if (result != null) {
if (StringComparator.IsEquals(result, "0") || StringComparator.IsEquals(result, "1")) {
return FfdVersion.Ffd100;
} else if (StringComparator.IsEquals(result, "2")) {
return FfdVersion.Ffd105;
} else if (StringComparator.IsEquals(result, "3")) {
return FfdVersion.Ffd11;
} else if (StringComparator.IsEquals(result, "4")) {
return FfdVersion.Ffd12;
}
}
return FfdVersion.Ffd105;
}
нет, интересует именно метод драйвера
public int getFDVersion() throws Exception {
if (this.fdVersion == null) {
this.fdVersion = Integer.parseInt(this.readTable(17, 1, 17));
}
return this.fdVersion;
}
в частности он вызывается при печати маркировки в методе sendItemCode
Я не зря привёл кусок процедуры, обратите внимание на этот кусок кода.
if (metrics.isShtrihNano()) {
result = callPrinterMethod(() -> printer.readTable(17, 1, 17), "readTable", "17, 1, 17");
} else if (metrics.isShtrihMobile()) {
result = callPrinterMethod(() -> printer.readTable(10, 1, 4), "readTable", "10, 1, 4");
}
так проблема в том что в методе драйвера sendItemCode, напрямую вызывается метод getFDVersion() https://github.com/shtrih-m/javapos_shtrih/blob/af1cd8ffb9e1ec8ee25735321163076705b24ebc/Source/Core/src/com/shtrih/fiscalprinter/SMFiscalPrinterImpl.java#L4724
На версии драйвера 631 возникает ошибка при получении версии ффд на МГМ
jpos.JposException: Invalid int: "" Логи https://disk.yandex.ru/d/tYdOx_N7pwlTNQ this.readTable(17, 1, 17) возвращает пустую строку и при попытке привести ее к int возникает NumberFormatException
@VitalyKravtsov2016