Страница 41 из 49
					
				Взять кассу
				Добавлено: 29 Май 2023, 14:54
				 Игорь Столяров
				RaFaeL писал(а): 29 Май 2023, 14:35
"Мой" сканер не сжирает, но у него код непечатного символа - 31!
 
Дело в том, что символ-разделитель - это стандарт кода GS1, а не сканера.
(Я скопировал PDF с описанием стандарта в папку TMP в FTP разделе форума - посмотрите пожалуйста).
Лично не видел (!) но по форумам слышал, что 1C-ники иногда перепрограммируют сканеры для 
авто-распознования кода по первому символу заменяя 29 на неиспользуемые коды символов.
Проверьте - возможно у Вас такой "настроенный" сканер ...
 
			 
			
					
				Взять кассу
				Добавлено: 29 Май 2023, 15:19
				 RaFaeL
				Сложно мне что-то проверить, он в другом регионе за тысячи километров, 
Проще сделать принудительную установку символа с кодом 29 в нужных позициях, если остальные позиции совпадают...
			 
			
					
				Взять кассу
				Добавлено: 29 Май 2023, 15:28
				 Игорь Столяров
				RaFaeL писал(а): 29 Май 2023, 15:19Проще сделать
 
Надо сначала сделать сброс сканера до заводских настроек. Как правило этого достаточно.
Мы всегда это делаем даже для сканеров из коробки, а если девайс уже где-то поработал - тем более. 
И это не проще. Сейчас Вы завяжете программу на перепрограммированный сканер, а завтра он сгорит
или программу переставят на другой компьютер - и всё по новой. 

 Лучше сразу сделать правильно.
 
			 
			
					
				Взять кассу
				Добавлено: 29 Май 2023, 15:43
				 RaFaeL
				Игорь Столяров писал(а): 29 Май 2023, 15:28
И это не проще. Сейчас Вы завяжете программу на перепрограммированный сканер, а завтра он сгорит
или программу переставят на другой компьютер - и всё по новой.  Лучше сразу сделать правильно.
 
Так я замену сделаю по позиции, будет неважно что там придет, если остальные символы на месте и по стандарту, аналог вашего метода RecodeMarking, только тот проверяет отсутствие символа вообще, а здесь будет не вставка символа, а замена, остальное то же самое. Кстати, "правильно" может стоило бы именно туда и добавить этот вариант. А сканер потестируем, там много вариантов может быть, грешу еще на RDP
 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 11:51
				 RaFaeL
				Если мы сканируем в блокнот, то приходит символ 29, а если в кларионовскую прогу в поле entry то 31. Есть мысли?
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 12:18
				 Игорь Столяров
				RaFaeL писал(а): 30 Май 2023, 11:51Есть мысли?
 
Как я понимаю, Вы сейчас транслируете слова некого условного Рудольфа за тысячу км. и сами этого не видели ? 

Сканер 2D - это достаточно сложное устройство, имеющий процессор и микропрограмму. 
И если из устройства с USB подключением выводится хоть что-то в Блокнот - значит работает драйвер HID устройства.
Что бы ответить на Ваш вопрос по существу, нужна информация. С Блокнотом понятно - это ввод через буфер клавиатуры.
А как Вы получаете строку с кодом в программу ? Может быть реализована эмуляция COM порта (если Вы вообще видите коды) ?
Если да - значит в драйвере эмуляции COM порта настроена перекодировка спец. символов - о причинах я говорил ранее.
 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 12:36
				 RaFaeL
				Игорь Столяров писал(а): 30 Май 2023, 12:18
Что бы ответить на Ваш вопрос по существу, нужна информация. С Блокнотом понятно - это ввод через буфер клавиатуры.
А как Вы получаете строку с кодом в программу ? Может быть реализована эмуляция COM порта (если Вы вообще видите коды) ?
 
Я попросил записать подробное видео, вот оно: 
https://www.youtube.com/watch?v=j-ObqSIPqtw
Только надо в максимальном качестве смотреть, тогда видно будет все коды и т.п.
Сканируем в программу, потом копируем в блокнот с режимом просмотра спецсимволов. Потом сканируем туда же. Коды разные...
Насколько я знаю, да, эмуляция COM-порта, с HID были проблемы с потерей заглавных букв, о чем выше как-то писал. Марку просто в текстовом поле принимаю, если можно как-то через порт то я так не умею (но наверное могу научиться, надо пример)
 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 13:28
				 Игорь Столяров
				Уф ! Что показано на этом видео ? 
 
Почему для проверки сканера не считать код сразу в блокнот и не увидеть что возвращает сканер ?
Если Вы ищите толкователя фокусов - то лучше начать с сисадмина, который знает как настроен сканер. 
Мы (и судя по интернету все) просто втыкаем сканер в USB разъём и Windows 10 устанавливает HID драйвер.
Из настроек делаем сброс и иногда замену завершающего символа с штатного TAB на ENTER. И это всё.
Эмуляция COM порта нужная для получения необработанной строки и для совместимости со старыми программами.
 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 13:30
				 Игорь Столяров
				А вообще - купите себе сканер за $50, отработайте технологию в  программе и тогда сможете предлагать её пользователям.
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 13:41
				 RaFaeL
				Игорь Столяров писал(а): 30 Май 2023, 13:28
Уф ! Что показано на этом видео ? 
Почему для проверки сканера не считать код сразу в блокнот и не увидеть что возвращает сканер ?
 
На видео показано, как сканирование в программу на Кларионе искажает разделитель. Мне же в неё сканировать надо, не в блокнот. Почему искажает, в этом и вопрос
Игорь Столяров писал(а): 30 Май 2023, 13:28
Мы (и судя по интернету все) просто втыкаем сканер в USB разъём и Windows 10 устанавливает HID драйвер.
Из настроек делаем сброс и иногда замену завершающего символа с штатного TAB на ENTER. И это всё.
 
Раз за вас. А у нас в таком режиме при сканировании в RDP большие буквы заменяются на маленькие, как это решить тоже судя по всему никто не знает. Локально все работает, но нужно в RDP
Игорь Столяров писал(а): 30 Май 2023, 13:30
А вообще - купите себе сканер за $50, отработайте технологию в программе и тогда сможете предлагать её пользователям.
 
Ну да, отработаю для конкретного сканера и локально. А потом в боевом режиме на другом сканере и RDP начинаются вот такие приколы. Тут тоже два сканера из трех нормально работают, а с третьим вот такое
 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 13:49
				 Игорь Столяров
				RaFaeL писал(а): 30 Май 2023, 13:41
Почему искажает, в этом и вопрос
 
Масса вариантов. Например обработка ALERT на поле ввода. И какое это вообще поле ENTER или TEXT ?
Тип данных строки STRING ? Нет никаких промежуточных присваиваний между буфером и строкой на экране ?
RaFaeL писал(а): 30 Май 2023, 13:41
Тут тоже два сканера из трех нормально работают, а с третьим вот такое
 
Т.е. простая замена сканера решает вопрос ? Тогда сбросьте настройки проблемного сканера до заводских.
 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 13:57
				 RaFaeL
				Игорь Столяров писал(а): 30 Май 2023, 13:49
Масса вариантов. Например обработка ALERT на поле ввода. И какое это вообще поле ENTER или TEXT ?
Тип данных строки STRING ? Нет никаких промежуточных присваиваний между буфером и строкой на экране ?
 
Алертов нет, поле Entry, переменная CSTRING, присваивания нет, есть только update(?Dump) по таймеру
Игорь Столяров писал(а): 30 Май 2023, 13:49
Т.е. простая замена сканера решает вопрос ? Тогда сбросьте настройки проблемного сканера до заводских.
 
Да конечно можно. На текущий момент. А потом он сломается, воткнут другой и что-то перестанет работать, и ладно если просто сканирование перестанет, а если марки ошибочные пойдут и потом списываться не будут чеком, что намного хуже. Мне же надо все предусмотреть. А чтобы предусмотреть, надо понять причину проблемы
 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 14:16
				 Игорь Столяров
				RaFaeL писал(а): 30 Май 2023, 13:57
поле Entry, переменная CSTRING
 
Я бы для данных с бинарными кодами использовал STRING и пробежался по ней в цикле и посмотрел
какие коды записаны сразу после присваивания (до экранного отображения через Update).
RaFaeL писал(а): 30 Май 2023, 13:57
Да конечно можно. На текущий момент
 
Вы упрощённо воспринимаете современный сканер. Это сложное устройство с кучей настроек.
Вы ведь не сможете сделать программу, которая будет работать на любой Windows с изуродованными настройками ?
И я не смогу - должны быть выполнены определённые требования. Так вот со сканером тоже самое. 

 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 14:45
				 RaFaeL
				Игорь Столяров писал(а): 30 Май 2023, 14:16
Я бы для данных с бинарными кодами использовал STRING и пробежался по ней в цикле и посмотрел
какие коды записаны сразу после присваивания (до экранного отображения через Update).
 
Так тут наоборот - в переменную присваивается через Update с поля
Игорь Столяров писал(а): 30 Май 2023, 14:16
Вы ведь не сможете сделать программу, которая будет работать на любой Windows с изуродованными настройками ?
 
Я стараюсь делать именно так, чтобы потом лет 10 ко мне не обращались
 
			 
			
					
				Взять кассу
				Добавлено: 30 Май 2023, 15:15
				 Игорь Столяров
				RaFaeL писал(а): 30 Май 2023, 14:45
в переменную присваивается через Update с поля
 
Возможно я не понимаю ... 
- Код со сканера попадает (неважно как) в поле;
- У кода сканер всегда возвращает завершающий символ (TAB или ENTER);
- По нему отрабатываем штатное событие Accepted получаем в переменную код марки ...
При чём здесь таймер ? Или вот эти вот дёрганья строки при считывании кода на видео - это прерывания на попытки
анализа считываемого кода на лету по таймеру ?! Так после прерывания на ACCEPT там в строке будет что угодно. 
RaFaeL писал(а): 30 Май 2023, 14:45
чтобы потом лет 10 ко мне не обращались
 
О ! Вам бы с такими идеями сразу в Думу или Правительство РФ. Если решитесь - пишите, я поддержу ! 
