VEQ1325
Опубликовано: 01.09.2018
Девайс
Попалось в руки такое устройство: Panasonic DIGITAL SCANNER VEQ1325 .
Никакой документации.
Из всей информации в интернете удалось понять, что это сканер штрих-кода, Который используют в "развитых" странах для программирования записи видеорекордера по штрих-коду передачи, публикуемой в программе телепередач. То есть, приходит к тебе телепрограмма, ты в ней что-то нашёл, провёл по штрих-коду, нажал на кнопочку, и твой рекордер уже запрограммирован на запись этой телепередачи.
Panasonic - Barcode scanning VCR commercial (1987)
Штрих-код
В интернете нашёлся только вот такой фрагмент таблицы со штрих-кодами:
Распечатал этот снимок, попробовал на плучившихся штрих-кодах сканер - РАСПОЗНАЁТ! В основном на нижних, более чётких.
Попытки найти описание кодирования в такой штрих-код никчему не привели.
Panasonic Barcode Reader Advert (1988)
Задача
Появилась интересная задачка: найти, как всё это кодируется и восстановить таблицу полностью.
Разборки
Экспериментальным путём нашёл (смотрите имевшуюся таблицу), что Первые две тонких полоски везде одинаковые - стартовые. Далее - цифры каналов, дней, часов - кодируются пятью полосками, из них две более толстые.
После семи полосок, остальные, групповые или командные (выбор канала, установка дня, установка часа включения, установка минут и т.д.).
Меджу пятью цифровыми полосками - два пробела, которые могут оказаться в разных местах.
Назовём для себя:
1 - тонкая полоска; 2 - толстая полоска; 0 - пробел.Дальше выявилась закономерность: меняя положение пробелов, меняются единицы в числе, получаемом сканером.
1,1, 1,1,1,2,0,2,0, 1,0,1,1 --> 77 1,1, 1,1,1,0,2,2,0, 1,0,1,1 --> 74 1,1, 1,1,0,1,2,2,0, 1,0,1,1 --> 72 1,1, 1,0,1,1,2,2,0, 1,0,1,1 --> 71 1,1, 1,1,1,0,2,0,2, 1,0,1,1 --> 70 1,1, 1,1,0,1,2,0,2, 1,0,1,1 --> 79 1,1, 1,0,1,1,2,0,2, 1,0,1,1 --> 78 1,1, 1,1,0,1,0,2,2, 1,0,1,1 --> 76 1,1, 1,0,1,1,0,2,2, 1,0,1,1 --> 75 1,1, 1,0,1,0,1,2,2, 1,0,1,1 --> 73Здесь нолики в центральном блоке перебрали все возможные свои положения ни разу не повторившись.
Попробуем так же двигать и двойки: и увидим, что меняются десятки. Тут же их сразу и отсортируем.
1,1, 1,1,2,0,2,0,1, 1,0,1,1 --> 0 1,1, 2,1,1,0,1,0,2, 1,0,1,1 --> 10 1,1, 1,2,1,0,1,0,2, 1,0,1,1 --> 20 1,1, 2,2,1,0,1,0,1, 1,0,1,1 --> 30 1,1, 1,1,2,0,1,0,2, 1,0,1,1 --> 40 1,1, 2,1,2,0,1,0,1, 1,0,1,1 --> 50 1,1, 1,2,2,0,1,0,1, 1,0,1,1 --> 60 1,1, 1,1,1,0,2,0,2, 1,0,1,1 --> 70 1,1, 2,1,1,0,2,0,1, 1,0,1,1 --> 80 1,1, 1,2,1,0,2,0,1, 1,0,1,1 --> 90Теперь, меняя положение двоек и нулей мы можем составить нужное число в диапазоне от 0 до 99.
К примеру, нужно число 37. Для тридцатки двойки находятся в начале блока, а для семёрки пробелы смещаются в самый конец, но не могут находиться рядом, по-этому занимают пятую и седьмую позиции в блоке.
Создаём таблицу
Для каналов переберём все 0..99 .
Для часов - 0..23 .
Минуты - 0..59 .
А вот в разделе дней оказалось несколько сюрпризов.
1..31 - дни месяца. 0 - каждый день. Есть конкретные дни недели и группы с понедельника по пятницу и с понедельника по субботу.
В этом же разделе расположены форматы записи SP и LP, ещё какие-то настройки, и, самое интересное - код 91 - при двойном вводе выдаёт на индикаторе подсветку всех сегментов.
Вся таблица разместилась на одном листе A4.
Ну, и напоследок, код, с помощью которого реинкарнировалась эта таблица.
#!/usr/bin/perl # Генератор табицы bar codes для Panasonic Digital Scanner VEQ1325 # Автор: Андрей Илларионов $Y=0; $X=0; open STDOUT, ">1.svg"; print <<SVG; <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg width="1150px" height="700px" viewBox="-10 -5 1140 695" preserveAspectRatio="xMinYMin meet"> <text x="590" y="627">http://www.illari.ru</text> <text x="590" y="640">Panasonic DIGITAL SCANNER VEQ1325</text> SVG # Десятки - заменяем знак в позиции @D=([2,3],[0,4],[1,4],[0,1],[2,4],[0,2],[1,2],[3,4],[0,3],[1,3]); # Единицы - вставляем после знака в позиции: @E=([2,3],[0,4],[1,4],[0,1],[2,4],[0,2],[1,2],[3,4],[0,3],[1,3]); $TITLE="Channel"; @Command=(1,0,1,1); # Выбор канала @ALL=(0..99); $dx=95; &makeBarCodes(); $TITLE="Day"; @Command=(2,0,1,1); # Выбор дня месяца или дня недели @ALL=(0..31,76,77,79..86,95,96,42..45,99,91); $dx=100; &makeBarCodes(); $TITLE="On Hour"; @Command=(1,1,2,0,2,0,1,1,0,1,1); # Выбор Часа начала @ALL=(0..23); $Y=0; #$X+=105; &makeBarCodes(); $TITLE="Off Hour"; @Command=(1,1,2,0,2,0,1,2,0,1,1); # Выбор Часа окончания @ALL=(0..23); $Y=0; $X+=130; &makeBarCodes(); $TITLE="Minutes"; @Command=(1,0,2,1); # Выбор минут @ALL=(0..59); $Y=0; $dx=95; $X+=130; &makeBarCodes(); print '</svg>'; exit; ###################################################### sub makeBarCodes(){ $v=20; print <<SVG; <text x="$X" y="10"> $TITLE</text> <path d="M$X,5 h-7v620" fill="none" stroke="#ccc" stroke-width="1" stroke-dasharray="8,2"/> SVG for $r(@ALL){ print <<SVG; <g transform="translate($X, $Y)"> <path d="M25,40 SVG $d=int $r/10; $e=$r-$d*10; @CODE=(1,1,1,1,1);#базовый @CODE[$D[$d][0]]=2;#заменяем десятки @CODE[$D[$d][1]]=2; $t=''; for $i(0..4){ # добавляем единицы $t.=$CODE[$i]; if ($E[$e][0]==$i){ $t.='0'; } if ($E[$e][1]==$i){ $t.='0'; } } # Start Value Command @A=(1,1, (split //,$t), @Command); for (@A){ if ($_==1){ print "v-${v}h2v${v}h2"; } elsif($_==2) { print "v-${v}h4v${v}h2"; } elsif($_==0) { print "h2"; } else { print "m-50,30"; } } print <<SVG; " fill="#000" stroke-width="none" /> <text x="2" y="40">$r</text> </g> SVG $Y+=25; if ($Y>600){ $Y=0; $X+=$dx; } } }Андрей Илларионов
19-12-20091. z4 18-08-2010, 11:00
Я сталкивался с таким сканером, как то давно был видик PANASONIC, еще кассетный, у него встроенный в пульт ДУ сканер, и как раз такая табличка на картоне. Тема конечно интересная но жаль она не актуальна у нас.
24. Al__________________ 05-05-2011, 20:21
Это бы перепостить туда где форматы данных складируют. А вот коменты от нецензурных спамеров портят впечатления. Равно как и заявление на слишком короткое имя//
25. Al__________________ 05-05-2011, 20:22
И н т е е с н о С п а и б о
Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |