Служба INECRMAN (Incotex ECR Manager)
Re: Служба INECRMAN (Incotex ECR Manager)
Да, получилось. Поскольку были нули не верно выставлялся размер приемного буфера
[16:25:51.182] Client::on_leng_read() readed = 4
[16:25:51.182] Client::on_leng_read() recv msg len = 2065851247 from cli_id= 94
[16:25:51.182] Client::on_leng_read() RETURN : error small buffer! recvlen = 2065851247 maxlen = 15000000
Ошибку можно сделать другую например "Не верно задан размер пакета"
Теперь другая проблема в log после выполнения команды заметил строку
[10:22:41.017] Client::drop() kill sock catch = cancel: Предоставленный дескриптор файла неверен.: Предоставленный дескриптор файла неверен.
Кусок log
00F018C0 VcomPipeBroadcast::push_status() result = 0
00F018C0 VcomPipeBroadcast::push_status() STARTUP = TRUE
00F018C0 VcomPipeBroadcast::StartUp() RETURN TRUE
[10:22:41.010] MercHolder::PortIsValid() ENTER
[10:22:41.010] PortExchRS_Sync::TestPort() ENTER thread_id = 3248
[10:22:41.013] PortExchRS_Sync::TestPort():: RETURN SUCCESS = 0
[10:22:41.013] MercHolder::PortIsValid() RETURN TRUE
[10:22:41.013] Client::send_answer() : message to send - {"result":0,"description":"Успешно завершено","sessionKey":"072241-127","protocolVer":"3.0"}
[10:22:41.013] Client::send_answer() write msg post, cli_id = 13
[10:22:41.014] Client::handle_write_post() : get it message to send, cli_id = 13
[10:22:41.014] Client::keepalive()
[10:22:41.014] Client::handle_write_res() write buffer OK! cli_id = 13
[10:22:41.014] Client::handle_write_res() erase message
[10:22:41.016] Client::on_leng_read() readed = 0
[10:22:41.016] Client::on_leng_read() RETURN : ERROR code = 2 ,msg = End of file cli_id = 13
[10:22:41.016] Exchanger::check_keepalive() client tick!
[10:22:41.016] Client::drop() drop client sock
[10:22:41.016] Exchanger::check_keepalive() erase from Clients
[10:22:41.017] Client::~Client() cli_id = 13
[10:22:41.017] Client::drop() drop client sock
[10:22:41.017] Client::drop() kill sock catch = cancel: Предоставленный дескриптор файла неверен.: Предоставленный дескриптор файла неверен.
[16:25:51.182] Client::on_leng_read() readed = 4
[16:25:51.182] Client::on_leng_read() recv msg len = 2065851247 from cli_id= 94
[16:25:51.182] Client::on_leng_read() RETURN : error small buffer! recvlen = 2065851247 maxlen = 15000000
Ошибку можно сделать другую например "Не верно задан размер пакета"
Теперь другая проблема в log после выполнения команды заметил строку
[10:22:41.017] Client::drop() kill sock catch = cancel: Предоставленный дескриптор файла неверен.: Предоставленный дескриптор файла неверен.
Кусок log
00F018C0 VcomPipeBroadcast::push_status() result = 0
00F018C0 VcomPipeBroadcast::push_status() STARTUP = TRUE
00F018C0 VcomPipeBroadcast::StartUp() RETURN TRUE
[10:22:41.010] MercHolder::PortIsValid() ENTER
[10:22:41.010] PortExchRS_Sync::TestPort() ENTER thread_id = 3248
[10:22:41.013] PortExchRS_Sync::TestPort():: RETURN SUCCESS = 0
[10:22:41.013] MercHolder::PortIsValid() RETURN TRUE
[10:22:41.013] Client::send_answer() : message to send - {"result":0,"description":"Успешно завершено","sessionKey":"072241-127","protocolVer":"3.0"}
[10:22:41.013] Client::send_answer() write msg post, cli_id = 13
[10:22:41.014] Client::handle_write_post() : get it message to send, cli_id = 13
[10:22:41.014] Client::keepalive()
[10:22:41.014] Client::handle_write_res() write buffer OK! cli_id = 13
[10:22:41.014] Client::handle_write_res() erase message
[10:22:41.016] Client::on_leng_read() readed = 0
[10:22:41.016] Client::on_leng_read() RETURN : ERROR code = 2 ,msg = End of file cli_id = 13
[10:22:41.016] Exchanger::check_keepalive() client tick!
[10:22:41.016] Client::drop() drop client sock
[10:22:41.016] Exchanger::check_keepalive() erase from Clients
[10:22:41.017] Client::~Client() cli_id = 13
[10:22:41.017] Client::drop() drop client sock
[10:22:41.017] Client::drop() kill sock catch = cancel: Предоставленный дескриптор файла неверен.: Предоставленный дескриптор файла неверен.
Теги:
Re: Служба INECRMAN (Incotex ECR Manager)
В данной ситуации никаких проблем нет. Данная запись была добавлена в лог в результате штатной обработки ожидаемого исключения при закрытии сокета, если соединение было разорвано на стороне клиента. Не стоит обращать внимания на эту запись.
В лог пишется много различной информации, она может понадобиться для анализа разработчиком в том случае если у Вас возникнут проблемы или ошибки. Если команда вернула ответ result = 0, как в Вашем случае, значит все штатно.
В лог пишется много различной информации, она может понадобиться для анализа разработчиком в том случае если у Вас возникнут проблемы или ошибки. Если команда вернула ответ result = 0, как в Вашем случае, значит все штатно.
Re: Служба INECRMAN (Incotex ECR Manager)
Версия 1.4.0.274
поделюсь проблемами возникшими в процессе работы с драйвером и тестирования на 115Ф.
Подключение работает только если указать модель 185F, если указываем модель 115F, то получаем ошибку доступа к порту. Логи приложил по ссылке - http://pstor.ru/20200115.log
Также путем экспериментов выяснили, что подключение проходит только если указываем номер порта в формате \\.\COM20, если пишем просто COM20, то получаем ошибку доступа к порту. Выяснили это изучая логи подключения MercBase, он передает всегда модель 185F и порт в указанном формате.
В документации об этом ни слова.
поделюсь проблемами возникшими в процессе работы с драйвером и тестирования на 115Ф.
Подключение работает только если указать модель 185F, если указываем модель 115F, то получаем ошибку доступа к порту. Логи приложил по ссылке - http://pstor.ru/20200115.log
Также путем экспериментов выяснили, что подключение проходит только если указываем номер порта в формате \\.\COM20, если пишем просто COM20, то получаем ошибку доступа к порту. Выяснили это изучая логи подключения MercBase, он передает всегда модель 185F и порт в указанном формате.
В документации об этом ни слова.
Re: Служба INECRMAN (Incotex ECR Manager)
Страница 6:
• model (string, необяз.) – модель ККТ с которой устанавливается связь. По умолчанию –
119F. Допустимые значения:
∘ 119F – для ККТ «Меркурий-119Ф».
∘ 185F – для ККТ «Меркурий-115Ф», «Меркурий-130Ф», «Меркурий-180Ф» и
«Меркурий-185Ф».
• model (string, необяз.) – модель ККТ с которой устанавливается связь. По умолчанию –
119F. Допустимые значения:
∘ 119F – для ККТ «Меркурий-119Ф».
∘ 185F – для ККТ «Меркурий-115Ф», «Меркурий-130Ф», «Меркурий-180Ф» и
«Меркурий-185Ф».
Re: Служба INECRMAN (Incotex ECR Manager)
При использовании Windows API номера COM-портов с 1 по 9 могут передаваться как "COM1" ... "COM9", так и как "\\.\COM1" ... "\\.\COM9". Имена портов с двузначными номерами должны передаваться только так, как Вы и указали ("\\.\COM20").
В следующей версии драйвера будет добавлена возможность передачи имён портов с двузначными номерами без использования обратных слешей.
Re: Служба INECRMAN (Incotex ECR Manager)
Предложения:
1. Добавить в команды OpenCheck, AddGoods, CloseCheck не обязательный параметр ”CancelingCheck по умолчанию False ” - отменять чек в случае ошибки например:
”CancelingCheck”: False // Ничего не делать выводить ошибку стандартно, пользователь решает сам, что делать дальше
”CancelingCheck”: Trye // Отменить чек, выводить ошибку например 900-отмена чека успешно, 901-не удалось отменить чек
1. Сделать пакетную обработку команд например для пробития чека, ПОЗВОЛИТ снизить общую нагрузку,
повысит производительность, сделает проще разработку и контроль ПО
Например: command”: ”CommandPacet”- команда пакетного режима, параметр ”ListCommands”-список команд
{
”sessionKey”: ”CAC1A797-6A48-474A-A08E-72A8CD3AEFE2”,
”command”: ”CommandPacet”,
”ListCommands”:
{
{
”command”: ”OpenCheck”,
...
},
{
”command”: ”AddGoods”,
...
},
{
”command”: ”. №.. AddGoods”,
...
},
{
”cashierName”: ”CloseCheck”,
...
}
}
}
1. Добавить в команды OpenCheck, AddGoods, CloseCheck не обязательный параметр ”CancelingCheck по умолчанию False ” - отменять чек в случае ошибки например:
”CancelingCheck”: False // Ничего не делать выводить ошибку стандартно, пользователь решает сам, что делать дальше
”CancelingCheck”: Trye // Отменить чек, выводить ошибку например 900-отмена чека успешно, 901-не удалось отменить чек
1. Сделать пакетную обработку команд например для пробития чека, ПОЗВОЛИТ снизить общую нагрузку,
повысит производительность, сделает проще разработку и контроль ПО
Например: command”: ”CommandPacet”- команда пакетного режима, параметр ”ListCommands”-список команд
{
”sessionKey”: ”CAC1A797-6A48-474A-A08E-72A8CD3AEFE2”,
”command”: ”CommandPacet”,
”ListCommands”:
{
{
”command”: ”OpenCheck”,
...
},
{
”command”: ”AddGoods”,
...
},
{
”command”: ”. №.. AddGoods”,
...
},
{
”cashierName”: ”CloseCheck”,
...
}
}
}
Re: Служба INECRMAN (Incotex ECR Manager)
У нас MercConfig 1.1.4 работает, на складе скидываем базу товаров на флешку. Вместе с товаром передаем в магаз флешку. Продавцы обновляют с флешки базу товаров в М185Ф. Но в MercConfig 1.1.4 не хранит коды маркировки.
Конфигуратор MercConfig2 вроде поддерживает маркировку, но он только встроенный в INECRMAN.
Можно надеяться и ожидать MercConfig2, которым можно будет на флешке передать базу товаров с кодами маркировки?
Re: Служба INECRMAN (Incotex ECR Manager)
Используйте MercBase viewtopic.php?f=19&t=4733
Re: Служба INECRMAN (Incotex ECR Manager)
Как подключиться кассу у службе по интерфейсу Bluetooth?
Какие параметры в команде "Открытие сессии" ?
Какие параметры в команде "Открытие сессии" ?
Re: Служба INECRMAN (Incotex ECR Manager)
Подключение по Bluetooth с точки зрения обращения к службе ничем не отличается, необходимо указывать СОМ порт полученный при настройке Bluetooth соединения. В ОС Windows номер СОМ порта можно посмотреть в диспетчере устройств.
Re: Служба INECRMAN (Incotex ECR Manager)
Здравствуйте.
Появились вопросы:
1.
2. Есть ли х-отчет?
3. Печать текста (PrintText) - есть ли номера шрифтов?
4. Закрытие (регистрация) чека (CloseCheck) - э.
Появились вопросы:
1.
Есть ли перечень/таблица таких кодов ошибок и может ли код содержать минус? Получил -218 - "открытие смены"Каждый ответ на команды, в обязательном порядке, содержит следующие ключи:
• result (integer, обяз.) – Код завершения операции. В случае успешного выполнения команды
возвращается 0, в противном случае – код ошибки.
2. Есть ли х-отчет?
3. Печать текста (PrintText) - есть ли номера шрифтов?
4. Закрытие (регистрация) чека (CloseCheck) - э.
Re: Служба INECRMAN (Incotex ECR Manager)
4. Закрытие (регистрация) чека (CloseCheck) - после закрытия смены и снятия z-отчета ошибка "-217 Ошибка физического обмена : Vcom: Ответная сторона аварийно прекратила приём" . На ККМ выводится "ОШИБКА 036 НЕТ РЕСУРСОВ ДЛЯ ВЫПОЛНЕНИЯ ОПЕРАЦИИ". Это что?
Re: Служба INECRMAN (Incotex ECR Manager)
Здравствуйте.
Тестируемая касса Меркурий 185Ф.
1. Вопрос является ли правильным поведением, возвращение кода ошибки -218 на разные события. Например:
Тип данных Integer, на деле же получается, что там идет long(Int64). Если возможно дополните пожалуйста документацию или указав длину данных или указав более точно тип.
3. Поле fiscalSign имеет тип integer по документации, но в случае возникновении ошибки возвращает пусто поле (string), а не ноль. Например такое происходит в случае CloseCheck() если в этот момент в кассе нет бумаги.
4. По поводу нет бумаги, как правильно будет обработать данную ситуацию?
Тестируемая касса Меркурий 185Ф.
1. Вопрос является ли правильным поведением, возвращение кода ошибки -218 на разные события. Например:
- Смена уже ранее была закрыта, при попытке повторного закрытия возвращается ошибка -218 с описанием, что смена закрыта. Тут всё верно.
- Смена уже открыта, выполняем открытие смены и ошибка возвращается вновь -218, только с другим описанием, смена открыта. Вот тут думаю уже не верно. Мне кажется для данного события должен быть другой код.
Код: Выделить всё
fiscalDocNum (integer, обяз.) – номер фискального документа.
3. Поле fiscalSign имеет тип integer по документации, но в случае возникновении ошибки возвращает пусто поле (string), а не ноль. Например такое происходит в случае CloseCheck() если в этот момент в кассе нет бумаги.
4. По поводу нет бумаги, как правильно будет обработать данную ситуацию?
- Запрашивать GetStatus() перед закрытием чека, так вроде не хотелось бы лишний раз обращаться к устройству.
- Думал обработать ситуацию с не полученным fiscalSign и после отправить команду ResetCheck(), но пока пользователь не вставит бумагу и не подтвердит (нажав ПИ) к устройству обратиться не получается, просто будет прервано по таймауту.
Re: Служба INECRMAN (Incotex ECR Manager)
Пока такой единой таблицы нет. Будем создавать. Минусовые ошибки могут быть.
У Меркурий-119Ф есть х-отчет, у портативок пока нет. Команда
Код: Выделить всё
PrintReport
Нет, шрифт только один.
Такое возникает, когда на кассе включен отчет по товарам на закрытие смены. Пока не доработают ПО кассы, советуем отключить все лишние отчеты.
Re: Служба INECRMAN (Incotex ECR Manager)
Замечание приняли. Учтем в следующих обновлениях.Dinariys писал(а): ↑27 янв 2020, 17:28 1. Вопрос является ли правильным поведением, возвращение кода ошибки -218 на разные события. Например:
Смена уже ранее была закрыта, при попытке повторного закрытия возвращается ошибка -218 с описанием, что смена закрыта. Тут всё верно.
Смена уже открыта, выполняем открытие смены и ошибка возвращается вновь -218, только с другим описанием, смена открыта. Вот тут думаю уже не верно. Мне кажется для данного события должен быть другой код.
На данный момент есть расхождение с документацией. fiscalDocNum возвращается строкой. Исправим на целое и опишем в докуметации.Dinariys писал(а): ↑27 янв 2020, 17:28 2. И еще один вопрос или может пожелание в документации, указано:
КОД: ВЫДЕЛИТЬ ВСЁ
fiscalDocNum (integer, обяз.) – номер фискального документа.
Тип данных Integer, на деле же получается, что там идет long(Int64). Если возможно дополните пожалуйста документацию или указав длину данных или указав более точно тип.
См. п.2.
На текущем развитии ПО портативных ККТ вообще нет контроля бумаги и не получится программно сделать за этим. Будем дорабатывать.Dinariys писал(а): ↑27 янв 2020, 17:28 4. По поводу нет бумаги, как правильно будет обработать данную ситуацию?
Запрашивать GetStatus() перед закрытием чека, так вроде не хотелось бы лишний раз обращаться к устройству.
Думал обработать ситуацию с не полученным fiscalSign и после отправить команду ResetCheck(), но пока пользователь не вставит бумагу и не подтвердит (нажав ПИ) к устройству обратиться не получается, просто будет прервано по таймауту.
Re: Служба INECRMAN (Incotex ECR Manager)
Спасибо большое.
Re: Служба INECRMAN (Incotex ECR Manager)
Здравствуйте.
Подскажите, а развитие Merconfig 1.1.4.0 дальше будет? Или теперь нужно переходить на INECRMAN (в которой merconfig2) и работать через браузер.
В Merconfig 1.1.4.0 мне было удобно т.к. все в одном приложении: и база товаров и настройки как опций агентов, так и ОФД, ФН, WiFi/GPRS, Операторы. А подключившись через браузер, я вижу только закладки ККТ, ОПЦИИ, Агент. Базу товаров могу редактировать через дополнительное приложение MercBase. А остальные настройки редактировать есть возможность ? (через приложения)
Подскажите, а развитие Merconfig 1.1.4.0 дальше будет? Или теперь нужно переходить на INECRMAN (в которой merconfig2) и работать через браузер.
В Merconfig 1.1.4.0 мне было удобно т.к. все в одном приложении: и база товаров и настройки как опций агентов, так и ОФД, ФН, WiFi/GPRS, Операторы. А подключившись через браузер, я вижу только закладки ККТ, ОПЦИИ, Агент. Базу товаров могу редактировать через дополнительное приложение MercBase. А остальные настройки редактировать есть возможность ? (через приложения)
Re: Служба INECRMAN (Incotex ECR Manager)
Здравствуйте.
Через ИнЭкрМен возможно как-то опции сохранить на ПК, чтоб затем перезалить в другую ККТ ?
Если ДА, то как ?
Через ИнЭкрМен возможно как-то опции сохранить на ПК, чтоб затем перезалить в другую ККТ ?
Если ДА, то как ?
Re: Служба INECRMAN (Incotex ECR Manager)
Добрый день!При подключении через браузер(пробовал Ghrome и IE)связь с ККТ Меркурий 185Ф устанавливается,а при "Прием из ККТ" появляется ошибка "Код - 1". Версия ККТ от 11.12.2019,Служба 1.5.0.281.В чем может быть причина?
Re: Служба INECRMAN (Incotex ECR Manager)
Добрый день.
MercConfig2 находится по адресу localhost:8080. Как изменить номер порта. Нужно запустить транспортный модуль.
Спасибо.
MercConfig2 находится по адресу localhost:8080. Как изменить номер порта. Нужно запустить транспортный модуль.
Спасибо.