Как стать автором
Обновить

Комментарии 47

За день количество проданного товара могло превышать полторы тысячи позиций. Вводить штрих код каждого из них в итальянскую систему стало проблематично.

*facepalm.jpg*, а купить обычный сканер штирхкодов в PS/2 то не судьба?
Вообщем сканер штрих кода присутствует. В том то и проблема, вбивать каждую позицию даже со сканером дело очень проблематичное. Намного легче выгрузить в Excel лист нажать кнопку «Старт».
А вбивать в 1С то же самое стало быть не проблематично?
Почему, проданный товар пробивался одновременно и в 1С и в итальянской программе, а только к концу рабочего дня, я не в курсе. Думаю на это были свои причины.
Так ведь причины очевидны — итальянская программа только для отчетов итальянцам, а наши ведь тоже требуют налоговые отчеты…
Спс, теперь я это знаю=)
Вообщем сканер штрих кода присутствует. В том то и проблема, вбивать каждую позицию даже со сканером дело очень проблематичное.

ШТО? Слушайте вот ваши слова:
За день количество проданного товара могло превышать полторы тысячи позиций. Вводить штрих код каждого из них в итальянскую систему стало проблематично.

Это делается при продаже сканером-штрих кодов. Это стандартная фича. Я решительно не понимаю зачем этот код сначала писать в файл, а затем при помощи RasberryPi фигачить это в систему. Вы какой товар то грузите? Если приход, то как правило в таких системах есть импорт данных через файл или API о чем можно узнать у поставщика.
Я не особо углублялся в работу программы. Как я понял, менеджеры в течении рабочего дня работают в 1С. К концу рабочего дня старший менеджер выгружал в один отчет все данные по проданным товарам и заносил их итальянскую программу. В подробности я не углублялся. Думаю на это были свои причины л которых мы не знаем.
Ну как обычно. Они умеют только в 1С. По идее схема должна быть обратная. Они работают в итальянской программе, а затем уже менеджер делает выгрузку из нее в 1С. И я более чем уверен что так оно и должно работать.
Можно пароли от BIOS перебирать.
Можно=) Только главное во-время остановить его)
Работало это всё у вас не иначе как святым духом… как это передавать сигналы без подключения ОБЩЕГО провода? Только если запитать платку от того же системника чью клавиатуру взломали…
Нет, работало все верно. Нельзя делать выводы о том, вы просто не совсем поняли всю схему работы.
Так а чего не понять если это не озвучено? Общий провод для сигналов CLOCK и DATA на малинке где?
Прошу прошения, может у Вас картинка со схемой подключения пинов не открылась?
В схеме я указывал, что к пинам GPIO4 и GPIO15 на GPIO интерфейсе Raspberry подключены те самые провода.
Это я вижу. Но у вас получается что СИГНАЛЫ не имеют точки отсчета.
Что будет с сигналами, если потенциал общего провода «малинки» будет отличаться от потенциала системника к которому подключена клавиатура на 100 вольт?
Все сигналы отсчитываются от общего провода! У клавиатуры один общий провод, относительно которого отсчитываются сигналы CLOCK и DATA а у малинки свой, если их не объединить то возникнет ситуация когда уровень напряжения смещен на сотни вольт и более.
Например, если малинку включить сетевым адаптером в розетку, то относительно клавиатуры сигналы CLOCK и DATA будут прыгать с размахом 100...200 вольт. Но само собой из-за защитных диодов напряжение на входах не поднимется выше напряжения питания. А оно там у клавиатуры порядка 5В.
Хост-контроллер отсюда отсекают свое напряжение, если на нем есть чужое не менее 50 миллисекунд. Можно было даже обойтись без подачи напряжения. Достаточно было заземлять пины, что было бы равносильно перевода пина в логический 0, но в этом случаи клавиатура могла без проблем подавать свои сигнал, чего я не хотел. Надеюсь я правильно понял ваш вопрос и ваши опасения?
Куда заземлять, если нет общего провода? на заземление что-ли?
А разве есть разница, куда заземлять? Если на проводе (Clock или Data) напряжение подянуто к земле это состояние считается 0 иначе 1, а куда заземлять нет разницы. А вот и ссылка на видео
эээ… как это нет разницы? А если потенциал «земли» к которой подключена малинка больше 1000 вольт относительно потенциала «земли» клавиатуры?

От какого потенциала вы отсчитываете напряжение на проводе «CLOCK»?
Потенциал на малинке оказался достаточным, чтобы детектировать состояние 0. Выяснено опытным путем=)
т.е. оно у вас работает вопреки…

Это называется вам повезло. Иначе, можно хоть прям сейчас идти за нобелевкой за передачу данных по одному проводу.

Для того чтобы передавать данные, нужны два провода. Как правило за второй провод для всех сигналов принимают один общий провод и отсчитывают все напряжения относительно его. Вам просто повезло что между клавиатурой и малинкой этот провод по всей видимости есть и поэтому все делает вид что работает.
=) Признаюсь, такое даже в голову не приходило. Если бы Вы не сделали замечание, я бы про это и не знал, т.к. все заработало без проблем. В следующий раз учту Ваши замечания. А как вы думаете, оптопара PC-817 подошла бы для этих целей? Просто есть подозрения, что она может не так быстро реагировать на сигналы.
Частота задается нами, передавай данные хоть на 300 бод. Поэтому всегда можно подобрать такую скорость когда оптопара срабатывает.

Насколько я знаю, клавиатура работает на 38Кбод, оптрон работать на такой скорости будет но… я такие использовал только на 19200
Судя по характеристикам, оптрон может сдутся уже на 50Кбод(наихудшее значение задержки 18мкс) но может обеспечить и 100кбод — все зависит от конкретных экземпляров.

Но оптопара тут не нужна, достаточно было запитать малинку от USB-порта или прямо с разъема PS/2 клавиатуры и тогда общий провод обеспечен автоматически.
Можно было и от USB (HID), просто кое где прочитал, что с Raspberri на PS/2 подать данные не получится, а схема показалась вроде очень простой. Если слишком уменьшить скорость передачи сигналов, котроллер начинал прерывать прием данных (так что, не совсем уж мы и управляем скоростью и по этой причине мне пришлось кодить на Python). Спасибо за ответ, скоро малинка прилетит вторая, буду экспериментировать.
только ПИТАНИЕ от USB взять… малинка вроде это позволяет, запитаться от USB-порта.
USB надо либо через GPIO (очень геморно, т.к. нет пина синхронизации времени и я не уверен, что частота позволит). Или через USBtoUSB, но тут из -за структуры USB порта простым спаиванием двух USB не обойтись, нужен паять плату или заказать готовую. Хотя я могу что-то упустить.
Да, ты почему-то упорно упускаешь суть. зачем реализовывать протокол, с USB надо взять только питание! Всего два провода.
Понял, понял, наконец то добрались до сути. Малина то питалась как раз от компьютера, вот и общий провод=) А я и не знал про этот нюанс, получается, если бы я ее запитал допустим через зарядку от телефона то могло не сработать?
Более того мог бы спалить или клавиатуру или малинку…
К этому я был готов когда начинал экспериментировать.
А везения тут, вроде никакого нет. Слышали про схему открытого коллектора? Видать на меня жара сильно действует (ох уж этот август=)
Если эмиттер такого транзистора подцепить к чужой земле не имеющей ничего общего с общим проводом клавиатуры… то ток в цепи не появится и потенциал вывода не изменится.
Все больше удивляюсь, почему у меня состояния изменяются. Надо будет повнимательней со-схемой контроллера разобраться.
лучше для начала посмотреть осциллографом напряжение между "-" малинки и "-" клавиатуры, можно для начала конечно прозвонить омметром, может они как-то уже соединены.
А я, кстати, изначально хотел использовать общий провод напряжения и земли от котролера, с использованием оптопары PC-817, но потом подключил напрямую и все заработало.
Было бы интересно подискутировать на эту тему. Может напишите на почту gebekovas@mail.ru?
Вот ссылка на видео, как это работает (индикатор присутствия «святого духа» молчал=). Если есть непонятные моменты, спрашивайте, постараюсь внятно объяснить.
Где видео, кстати?
Были проблемы со вставкой ссылок.
Реализовывать чтение команд от компьютера я поленился.

Можно считать или найти ответы и их эмулировать.
Задача считывания оказалась намного проблематичной, чем передачи. Первая проблема котороую мне необходимо было решить, это скорость считывания. Raspberry не успевал считывать данные передаваемые контроллером и возникали потери. Я не стал углубляться в эту проблему, предоставив все общение с контролером самой клавиатуре.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории