:: Visual Foxpro, Foxpro for DOS
Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
Всем привет. Программирую фиск.накопитель VIKI PRINT

Очередная загадка для меня.
Есть элементарная команда
"Получить номер смены"
в ответ на которую номер смены возвращается

Но бывает так, что мой viki перестает отвечать на эту команду.
Уж не знаю, что он там в это время обрабатывает, нет ответа и все

Что делаю:
открываю стандартную утилиту этого принтера. Запускаю ту же команду.
Срабатывает мгновенно

После этой манипуляции и в моей проге команда начинает срабатывать

Такая ситуация бывает не только с конкретно этой командой

Что это может быть? Уж не знаю в каком направлении копать.
Может есть какие идеи. Понимаю, что туманно обрисовываю. Направьте меня пожалуйста в нужном направлении
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Что можно сказать, ничего не зная.
Только общие соображения.
Коли работаешь не через апи, а через ком.
Протоколируй весь обмен!
Все что послал, все что получил.Разбирай почему зависает.
И не понятно, на другие команды реагирует, или только эту.

Попробуй ждать некоторое время, потом ресетить и начинать сначала.


------------------
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Вангую...
Леокади
Такая ситуация бывает не только с конкретно этой командой
Думаю, ты вводишь в ступор контроллер, какой то предыдущей командой.
Стандартный контроллер, инициализирует обмен по новой, и все срабатывает.


------------------
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
Аспид
Думаю, ты вводишь в ступор контроллер, какой то предыдущей командой.
Стандартный контроллер, инициализирует обмен по новой, и все срабатывает.

Я тоже так думаю. И эта команда - печать чека. Фиск.накопитель отправляет чеки на сайт сразу после выписки. Это обеспечивает программа ComProxy

Вот пока я эту ComProxy не поставила (и чеки не отправлялись) все было норм, команды не подвисали
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
Свойство Handshaking для элемента MSComm установлено в 1 - XOn/XOff Handshaking
Это верно?
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Это зависит от требований к протоколу вашего устройства. Должно быть в документации описано. Обычно этот флаг игнорируется.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.




Исправлено 1 раз(а). Последнее : Влад Колосов, 23.06.17 11:28
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Леокади
Открываю стандартную утилиту этого принтера. Запускаю ту же команду.
Срабатывает мгновенно

После этой манипуляции и в моей проге команда начинает срабатывать

Скорее всего, происходит инициализация нужных настроек порта. Если непонятно что и как настраивать, то для Windows существуют программы-снифферы для того, чтобы подсмотреть обмен данными.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
Подскажите пожалуйста, какую библиотеку я переписываю, чтоб моя откомпилированная программа работала на машине пользователя. Обычно я переписывала
VFP6R.DLL
VFP6RENU.DLL

и для COM-порта
MSCOMCT2.OCX

программа открывается, а начинаешь открывать формы, где объект COM, ругается
OLE Object is being ignored

У пользователя Win10, 64разр
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
ocx нужно регистрировать - через regsvr32 - и обязательно запускаемый из консоли "As Administrator". При том в 64-битных системах саму 32-битную dll/ocx следует помещать в папку %WINDIR%\SYSWOW64 Впрочем, можно и в другой папке её зарегистрировать - лишь бы ты знала где именно, и не удалила потом случаяно БЕЗ дерегистрации...
Есть технология RegFreeCOM позволяющая обходится без регистрации, просто размещая ocx/dll рядом с exe - но я не уверен что она корректно работает с VFP6 - были там встроенные в exe манифесты или нет, и как нужно это правильно делать для данной версии - я не в курсе. Это СЛИШКОМ устаревшая система.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
Переписала MSCOMCT2.OCX
в %WINDIR%\SYSWOW64
зарегистрировала в команд.строке от имени админа
regsvr32 %WINDIR%\SYSWOW64\MSCOMCT2.OCX

Сообщил, что все успешно

Но в моей проге результат тот же
Class not registered. OLE Object is being ignored
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
Может надо regsvr64 ?
У меня же 64разрядная
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Эммм- у тебя на этой форме какой контрол то? Если mscomm, то это НЕ mscomct2.ocx а mscomm32.ocx


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
matod

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
Сталкивался с этой проблемой после перехода на работу с ComProxy. Вылечилось элементарно увеличением времени ожидания ответа от устройства. Раньше хватало 0.3 секунды, после того, как увеличил до 2 секунд проблема исчезла и больше не повторялась.

Я с COM работаю через api, не использовал MSCommControl.
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
Igor Korolyov
Эммм- у тебя на этой форме какой контрол то? Если mscomm, то это НЕ mscomct2.ocx а mscomm32.ocx

С этим вопрос решила. Все получилось) Спасибо огромное
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
matod
Сталкивался с этой проблемой после перехода на работу с ComProxy. Вылечилось элементарно увеличением времени ожидания ответа от устройства. Раньше хватало 0.3 секунды, после того, как увеличил до 2 секунд проблема исчезла и больше не повторялась.

Пробовала и время увеличивать. Удивительно, что оригинальная утилита мгновенно срабатывает

matod
Я с COM работаю через api, не использовал MSCommControl.

Можно пример кода? Я через API не работала с COM
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Хочется спросить, а у вашей кассы нет АПИ?
Вы сразу через ком-порт.
Неудобно.

И коли через него, полагаю, он должен по окончанию печати, и всех сопряженных действий, что то выдать.
А Вы послать ответ.
Или... какой то постоянный опрос...
Не знаю как ваш протокол организован.

Лучше работать через АПИ.
Ну а коли его нет, то внимательно разбираться с протоколом обмена.


------------------
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Навскидку погуглил Viki Print
Мне показалось, что драйвер от атола подойдет.
Почему вы пошли по столь трудному пути?


------------------
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Леокади
Автор

Сообщений: 89
Дата регистрации: 27.06.2005
Аспид
Хочется спросить, а у вашей кассы нет АПИ?
Вы сразу через ком-порт.

Открываю руководство, сразу раздел
"1.1. Формат протокола передачи данных"
первая строка
"Связь FM16 (далее - ККТ) с компьютером осуществляется по интерфейсу RS232 или USB в режиме виртуального COM порта. Параметры COM порта по умолчанию - 57600,n,8,1"

Может я чего не понимаю. Объясните мне как чайнику, что за связь посредством API
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ну это когда есть некоторая программа от производителя кассы, которая САМА общается с кассой по USB/RS232/прочим соединениям, а уже твой софт работает с кассой через эту программу. По сути ComProxy это, вероятно, вариант такой программы - но он, видимо не лучший, т.к. для твоей программы выставляет не какой-то "приличный" COM интерфейс (наподобии того который ворд/эксель даёт для управления собой), а такой же низкоуровневый "виртуальный последовательный порт".


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Ответ от COM-порта
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Леокади
"Связь FM16 (далее - ККТ) с компьютером осуществляется по интерфейсу RS232 или USB в режиме виртуального COM порта. Параметры COM порта по умолчанию - 57600,n,8,1"
Сочувствую.
Какой .... злодей решил купить такую кассу. Когда на рынке нормальных полно.


------------------
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 MikhsR  (Гостей: 26)

© 2000-2024 Fox Club 
Яндекс.Метрика