Open Tango600 opened 1 year ago
Добрый день. Можно увидеть полный лог? Какая модель и версия ПО ФР?
Добрый день. Можно увидеть полный лог? Какая модель и версия ПО ФР?
Добрый день. Привязка операции к позиции чека на этом ФР выполняется после формирования позиции. Разные модели ФР имеют разную реализацию. Это связано с тем, что над ФР работают 2 разработчика. Команда формирования позиции чека 0x80 не работает потому, что старые команды выкинули. Нужно использовать новую команду, 0xFF46.
Там много старых команд.
Старые команды формирования чека работать не будут. 80h Продажа 81h Покупка 82h Возврат продажи 83h Возврат покупки 85h Закрытие чека Нужно использовать вместо них новые.
В этом драйвере есть и другие методы, которые сейчас работают не так как в нём сделано?
Не совсем понял ваш вопрос. Можно подробнее?
Много ли методов которые не работают потому что сейчас нужно делать по-другому? Другие коды команд, например. Или совсем не так делать теперь нужно.
Также мне кажется что передается в команду 80h неправильное значение налога: 80 1E 00 00 00 - пароль E8 03 00 00 00 - количес тво 10 27 00 00 00 - цена EA - налог 1, допустимые дначения от 0 до 4
D::0| "-> 80 1E 00 00 00 E8 03 00 00 00 10 27 00 00 00 EA 00 00 00 00" D::0| "-> CF F0 E8 E5 EC 20 EF EB E0 F2 E5 E6 E0 00 00 00 00 00 00 00" D::0| "-> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" W::0| "Incorrect command parameters for this settings" D::0| "<- 80 35" D::0| "ERROR: 0x35, Incorrect command parameters for this settings" D:ShtrihKkmManager.cpp:478| "FAILED: 0x35, Incorrect command parameters for this settings"
Старые команды формирования чека работать не будут. 80h Продажа 81h Покупка 82h Возврат продажи 83h Возврат покупки 85h Закрытие чека Нужно использовать вместо них новые.
На какие? В JPos драйвере тоже PrintSale имеет код 80h.
Также мне кажется что передается в команду 80h неправильное значение налога: 80 1E 00 00 00 - пароль E8 03 00 00 00 - количес тво 10 27 00 00 00 - цена EA - налог 1, допустимые дначения от 0 до 4
D::0| "-> 80 1E 00 00 00 E8 03 00 00 00 10 27 00 00 00 EA 00 00 00 00" D::0| "-> CF F0 E8 E5 EC 20 EF EB E0 F2 E5 E6 E0 00 00 00 00 00 00 00" D::0| "-> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" W::0| "Incorrect command parameters for this settings" D::0| "<- 80 35" D::0| "ERROR: 0x35, Incorrect command parameters for this settings" D:ShtrihKkmManager.cpp:478| "FAILED: 0x35, Incorrect command parameters for this settings"
Странно, но ничего подобного в поля taxX не пишется. Там везде 0 с 1 по 4. Коды поменял, но ошибка в области налога. Так что проверить пока не удаётся.
Для чего в методе int ShtrihFiscalPrinter::execute(uint16_t code, ReceiptItemCommand& data), сделано принудительное заполнение полей.
int ShtrihFiscalPrinter::execute(uint16_t code, ReceiptItemCommand& data)
{
data.resultCode = printTextSplit(data.text);
if (failed(data.resultCode)) {
return data.resultCode;
}
data.text = data.text.left(40);
PrinterCommand command(code);
command.write(usrPassword, 4);
command.write(data.quantity, 5);
command.write(data.price, 5);
command.write(data.department, 1);
command.write(data.tax1, 1);
command.write(data.tax2, 1);
command.write(data.tax3, 1);
command.write(data.tax4, 1);
command.write(data.text, 40);
data.resultCode = send(command);
if (succeeded(data.resultCode)) {
data.operatorNumber = command.readChar();
}
return data.resultCode;
}
Добрый день. Это не принудительное заполнение, а запись в буфер значений. Для каждого поля указана длина: пароль - 4 байта, количество - 5 байт.
"4 байта, количество - 5 байт", это как?
Описание команды:
Продажа Код команды: 80h. Длина сообщения: 60 или 20+Y1,2 байт. Пароль оператора (4 байта) Количество (5 байт) 0000000000…9999999999 Цена (5 байт) 0000000000…9999999999 Номер отдела (1 байт) 0…16 – режим свободной продажи, 255 – режим продажи по коду товара1,3 Налог 1 (1 байт) «0» – нет, «1»…«4» – налоговая группа Налог 2 (1 байт) «0» – нет, «1»…«4» – налоговая группа Налог 3 (1 байт) «0» – нет, «1»…«4» – налоговая группа Налог 4 (1 байт) «0» – нет, «1»…«4» – налоговая группа Текст4,5,6,7 (40 или до Y1,2 байт) строка названия товара или строка "XXXX" кода товара1,3, где XXXX = 0001…9999 Ответ: 80h. Длина сообщения: 3 байта. Код ошибки (1 байт) Порядковый номер оператора (1 байт) 1…30
Тут видно, что: Пароль оператора (4 байта) Количество (5 байт) 0000000000…9999999999
Не работает команда ff4d fsWriteOperationTag, даёт ошибку 5e.