Releases: shtrih-m/javapos_shtrih
Android ShtrihJavaPOS 468
[*] Ускорена работа по Bluetooth
ShtrihJavaPOS 467
[*] Исправлена печать чека коррекции v2, добавлена проверка кода ответа и отрезка
466
466
Android ShtrihJavaPOS 465
[+] Android: добавлена поддержка работы с устройством по USB
Для включения работы по USB необходимо:
- В jpos.xml указать класс порта:
<prop name="portClass" type="String" value="com.shtrih.fiscalprinter.port.UsbPrinterPort"/>
- В portName указать идентификатор порта
UsbManager usbManager = (UsbManager) getApplicationContext().getSystemService(Context.USB_SERVICE);
List<UsbSerialDriver> usbs = UsbSerialProber.getDefaultProber().findAllDrivers(usbManager);
if (usbs.size() == 0) {
Log.e(TAG, "Не найдено ни одного устройства");
return;
}
int deviceId = usbs.get(0).getDevice().getDeviceId();
SysUtils.setFilesPath(this.getFilesDir().getAbsolutePath());
JposConfig.configure("ShtrihFptr", String.format(Locale.ENGLISH, "%d", deviceId), getApplicationContext());
- Устройство должно иметь разрешение на доступ:
private void setFilter() {
IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_USB_PERMISSION);
filter.addAction(ACTION_USB_DETACHED);
filter.addAction(ACTION_USB_ATTACHED);
filter.addAction(ACTION_USB_STATE);
registerReceiver(usbReceiver, filter);
}
private final BroadcastReceiver usbReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
Log.d("onReceive", arg1.getAction());
if (arg1.getAction().equals(ACTION_USB_PERMISSION)) {
boolean granted = arg1.getExtras().getBoolean(UsbManager.EXTRA_PERMISSION_GRANTED);
if (granted) // User accepted our USB connection. Try to open the device as a serial port
{
Intent intent = new Intent(ACTION_USB_PERMISSION_GRANTED);
arg0.sendBroadcast(intent);
Log.d(TAG, "permission granted for USB ");
} else // User not accepted our USB connection. Send an Intent to the Main Activity
{
Intent intent = new Intent(ACTION_USB_PERMISSION_NOT_GRANTED);
arg0.sendBroadcast(intent);
Log.d(TAG, "permission not granted for USB");
}
}
if (arg1.getAction().equals(ACTION_USB_STATE)) {
findSerialPortDevice(); // A USB device has been attached. Try to open it as a Serial port
}
if (arg1.getAction().equals(ACTION_USB_ATTACHED)) {
findSerialPortDevice(); // A USB device has been attached. Try to open it as a Serial port
}
if (arg1.getAction().equals(ACTION_USB_DETACHED)) {
// Usb device was disconnected. send an intent to the Main Activity
Intent intent = new Intent(ACTION_USB_DISCONNECTED);
arg0.sendBroadcast(intent);
}
}
};
private void findSerialPortDevice() {
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
// This snippet will try to open the first encountered usb device connected, excluding usb root hubs
HashMap<String, UsbDevice> usbDevices = usbManager.getDeviceList();
if (!usbDevices.isEmpty()) {
for (Map.Entry<String, UsbDevice> entry : usbDevices.entrySet()) {
UsbDevice device = entry.getValue();
int deviceVID = device.getVendorId();
int devicePID = device.getProductId();
Log.d(TAG, "opening device VID: " + deviceVID + ", PID " + devicePID);
PendingIntent mPendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
usbManager.requestPermission(device, mPendingIntent);
}
} else {
Log.d(TAG, "no usb devices");
}
}
ShtrihJavaPOS 464
[*] Исправлен #17: поправлено центрирование сгенерированных ШК
[-] FSPrintTags: больше не печатает тэги 1084, 1085, 1086, 1203
[+] Добавлены directIO команды:
* SMFPTR_DIO_FS_READ_DAY_OPEN - поиск в ФН последнего документа открытия смены
* SMFPTR_DIO_FS_READ_DAY_CLOSE- поиск в ФН последнего документа закрытия смены
* SMFPTR_DIO_FS_READ_RECEIPT - поиск в ФН последнего чека
[+] Добавлены новые параметры в SMFPTR_DIO_READ_FS_PARAMS
BREAKING CHANGES:
[!] FSDocumentInfo: изменен возвращаемый тип getDocumentNumber с int на long, т.к. номер документа, согласно протоколу ФН, 4 байта
[!] FSDocumentInfo: изменен тип возвращаемого значения getDocumentType с FSDocType на int, т.к. FSDocType не соответствует данной команде
ShtrihJavaPOS 463
[+] Добавлена опция FSTagsPlacement позволяющая печатать описания тэгов в теле чека в момент когда был передан тэг, работает если включена опция печати описания переданных в чек тэгов FSPrintTags.
ShtrihJavaPOS 462
[*] Исправлен баг, когда при печати документа после закрытия чека не игнорировались ошибки печати
[+] Добавлен метод отправки принтеру команды "Продолжить печать" continuePrint
[+] Добавлен метод чтения TLV документа fsReadDocumentTLV
ShtrihJavaPOS 461
[*] Исправлена печать текста шрифтом в чеке
[*] Исправлен #20: убраны захардкоженные имена типов оплаты в СКЛ
[+] Добавлен метод printRecMessage печатающий текст указанным шрифтом
[+] Добавлено свойство openReceiptOnBegin включающее открытие чека при вызове beginFiscalReceipt
[+] Добавлена возможность передачи признака типа оплаты и признака способа оплаты для ФФД 1.05
ShtrihJavaPOS 460
Исправлен #18: типы оплаты не прописываются в таблицу ККТ
ShtrihJavaPOS 459
Исправлена печать неправильного количества товара в СКЛ.