Автор Тема: как шустро проскролить битмап ? пешу "снифалку" ТПГ.  (Прочитано 21290 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
выпиливаю в си билдере, но с ооп не дружу. укрыла шиза сделать тестилку ТПГ. пример: принесли дорогущий Citizen CLP521 (или 621) с подозрениями на дохлую башку, а подкинуть вместо неё нечего. решил сделать из зверька хреновину, что следит за сигналами DAT,CLK,LAT и выводит всё посылаемое ТПГ bitmap хозяйство на моник. пока тренеруюсь на плате атло 22 pcb rel v5.25. ваще не факт что получится, ибо бошки уж больно шустрые стали, и скорости зверька пока не жуть хватает (на 108МГц частоты ядра !), даже его аппаратный SPI чот не справляеца - пришлось править прошу 22-го, шоб шевелился в 4 раза медленнее оригинала. но это лишь одна бяда. вторая бяда: надо полученное хозяйство хоть как либо быстро отобразить. пользуюсь Graphics::TBitmap* bm = new Graphics::TBitmap;
на получение приатаченной кортинки ушло минуты 2.
и каждый раз при получении новой строчки приходится всё это хозяйство scroll-ить:
Спойлер
for(y=0;y<400;y++) for(x=0;x<73*8;x++)bm->Canvas-> Pixels [ x] [ y]=bm->Canvas->Pixels[ x][ y+1];

получаеца пипец как медленно. кто чо мож знает про графику ? мож есть компонеты с методами скрола ?
PS: посоны, как считаете, эта тема представляет интерес ? есть смысл заморачиваца дальше ?
« Последнее редактирование: 02/12/2017 00:17:52 от tridentxp »
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн Prz777

  • Резидент
  • Ветеран
  • ****
  • Сообщений: 839
  • Похвалили: 718 раз(а)
Если в цикле для обновления формы используешь функцию Application.ProcessMessages, то она заметно замедляет выполнение программы. В небольшом примерчике наглядно заметна разница.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Prz777, да да я знаю, почему и пользуюсь ею после некоторого количества иттераций. без неё,  родимой, форма виснет - никуда не денешься от её вызова. плюшка в том, что мой метод скрола конкретно битмапа тормозит не хуже. даже взял, и свой же оригинальный скролл выправил на то чтобы не скролить, а тупо весь объём заполнять - получилось быстрее раза в два - полтора:
for(y=0;y<400;y++) for(x=0;x<73*8;x++)bm->Canvas-> Pixels [ x] [ y]=bm->Canvas->Pixels[ x][ y+1];
for(y=0;y<400;y++) for(x=0;x<73*8;x++)bm->Canvas-> Pixels [ x] [ y]=x+y;
тоесть доступ к bm->Canvas-> Pixels [ x] [ y] тормозит аж абзац. отчего и спрашиваю ИМЕННО про графику: есть ли компонент с дот-скролом ?
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
о, на CyberForum подсказали:
Спойлер
void Scroll(void){
unsigned int t;
    t=SizeY+1;
 Form1->Canvas->CopyRect(Rect(OffsetX,OffsetY,SizeX+OffsetX,t),
                  Form1->Canvas,
                  Rect(OffsetX,OffsetY+1,SizeX+OffsetX,t));
    }

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

Оффлайн MOTOR

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 3556
  • Похвалили: 775 раз(а)
У меня правого столбца нет. Левый скроллится так же как у тебя. w7 64
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
У меня правого столбца нет. Левый скроллится так же как у тебя. w7 64
столбцы каждый раз меняются как только ты изменишь поля X и Y, и нажмёшь тест. под X и Y я понимаю размер области для выведения данных и их скрола.
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн GS

  • Похвалили: 257 раз(а)
  • Откуда: Томск -> Новосибирск
вин10*64 визуально видно как скроллится
 

Оффлайн serj

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 121
  • Похвалили: 25 раз(а)
Ребята, а не проще ли не снифить то, что с принтера на ТПГ идет, а наоборот на базе зверька сделать генератор "тест сигнала" для тпг. там вроде не так уж и хитро. Тогда просто цепляем зверька к тпг и "печатаем" из компа. а на принтере просто протяжку нажать :) если уж атмеги справляются lpc -  вообще запросто...
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Ребята, а не проще ли не снифить то, что с принтера на ТПГ идет, а наоборот на базе зверька сделать генератор "тест сигнала" для тпг. там вроде не так уж и хитро. Тогда просто цепляем зверька к тпг и "печатаем" из компа. а на принтере просто протяжку нажать :) если уж атмеги справляются lpc -  вообще запросто...
ыыыы. как сказать.
1) НЕ КРУТЬ !
2) НЕ труЪ  !
3) вот принесут тебе дорогих и страшных кракадилаф Citizen 521,621, Zebra S4M, Argox X2000. с твоим предложением придётся ещё и силовухой управлять шоб лентопротяжный механизьм робил - а это уже грубое вмешательство в с хемотехнику в купе с НЕХИЛОЙ вероятностью ушлёпать башку двигло и ваще всё всё всё.
------------------------
ГЫЫ. реально быстрее чепятает и нет дополнительных искажений как если бы битмапом шлёпал.  но блин 22-ой робит не на родных скоростях.
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн serj

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 121
  • Похвалили: 25 раз(а)
Ребята, а не проще ли не снифить то, что с принтера на ТПГ идет, а наоборот на базе зверька сделать генератор "тест сигнала" для тпг. там вроде не так уж и хитро. Тогда просто цепляем зверька к тпг и "печатаем" из компа. а на принтере просто протяжку нажать :) если уж атмеги справляются lpc -  вообще запросто...
ыыыы. как сказать.
1) НЕ КРУТЬ !
2) НЕ труЪ  !
3) вот принесут тебе дорогих и страшных кракадилаф Citizen 521,621, Zebra S4M, Argox X2000. с твоим предложением придётся ещё и силовухой управлять шоб лентопротяжный механизьм робил - а это уже грубое вмешательство в с хемотехнику в купе с НЕХИЛОЙ вероятностью ушлёпать башку двигло и ваще всё всё всё.
------------------------
ГЫЫ. реально быстрее чепятает и нет дополнительных искажений как если бы битмапом шлёпал.  но блин 22-ой робит не на родных скоростях.
Согласен, кстати с Citizen'ами парадоксальная ситуация, приносят, бывает, как правило, с дохлой ТПГой, все остальное - исправно, выставляешь счет на ТПГ и тут клиент сливается, мол мы новый принтер купим, другой...
Данный вид зверька больше всего пригодится при ремонте DIGI SM100\101\5100, потому что там больше, чем в 50% случаев проц упаливают при тычке в тпг железом, пропадает TH_DATA.
Кстати помимо, картинки, можно было бы встроить чуть ниже индикаторы сигнала: типа TH_DATA, TH_CLK, STB_1, STB_2, LATCH по аналогии как в Terminal by BRAY DTR DSR RTC CTS RI и т.д., но поскольку они кратковременны, то их наличие показывать не реалтаймом, а просто миганием при наличии.
 

Оффлайн Slava

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 4030
  • Похвалили: 1254 раз(а)
Вот случай из практики . Приносит клиент весы Масса ВПМ-MF .
Продаванка голову им почистила так , что снесла термосопрот напрочь .
Голову мы поменяли , а весы так же уходят в несознанку с вердиктом Температура .
Оказывается вход проца так же погорел .
Итог - голову и проц под замену - клиенту обошлось в месяц простоя и пять рублей денег.
И никак ты этот гребанный сигнал не уберешь - вход проца в КЗ .
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 5277
  • Похвалили: 575 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • faust.dlinkddns.com
Шустро не выйдет.
Придётся клепать примитивные нейросети и обучать их для распознавания. Надо учесть настройки того или иного принтака, яркость с которой он печатает, степень живости ТПГ, качество бумаги. Обычным линейным алгоритмом тут не победить, только нейро.

С чеками, я думаю файнридер справится на ура - может проще его заюзать...
Не кассами одними жив ЦТО ;-)
 

Оффлайн Two_byte

  • Модератор раздела
  • Эксперт
  • ****
  • Сообщений: 1735
  • Похвалили: 282 раз(а)
  • Не впихуйте невпихуемое!
  • Откуда: Ногинск
Шустро не выйдет.
Придётся клепать примитивные нейросети и обучать их для распознавания. Надо учесть настройки того или иного принтака, яркость с которой он печатает, степень живости ТПГ, качество бумаги. Обычным линейным алгоритмом тут не победить, только нейро.

С чеками, я думаю файнридер справится на ура - может проще его заюзать...
Насколько я понял - Федь, зачем нейросеть?. Я может недопонял графику, но, что мешает пакетами отправлять пакеты идущие на ТПГ?, или проблема в другом, Валя ась?. ЮСБ позволяет в самом херовом варианте = 12 МБит. 108МГц проц свободно варьирует сигналами минимум в 0.25 частоты. Это не я сказал, это аппаратные возможности камня.
Или я опять недопонял?. Что мешает сделать буфер, который будет отправлятся как "асинхронус" на хост. Или в хосте трабла?. Тады я вообще ничего не понимаю - ф-ция RedrowWindow, или как она там называется..., перерисовка текущего окна, это на компе, а буфер сам указуешь, из которого перерисовывать.
В итоге - вся нагрузка на отработку ложится на хост, на слейве единственная задача - передать данные.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Насколько я понял - Федь, зачем нейросеть?. Я может недопонял графику, но, что мешает пакетами отправлять пакеты идущие на ТПГ?, или проблема в другом, Валя ась?. ЮСБ позволяет в самом херовом варианте = 12 МБит. 108МГц проц свободно варьирует сигналами минимум в 0.25 частоты. Это не я сказал, это аппаратные возможности камня.
Или я опять недопонял?. Что мешает сделать буфер, который будет отправлятся как "асинхронус" на хост. Или в хосте трабла?. Тады я вообще ничего не понимаю - ф-ция RedrowWindow, или как она там называется..., перерисовка текущего окна, это на компе, а буфер сам указуешь, из которого перерисовывать.
В итоге - вся нагрузка на отработку ложится на хост, на слейве единственная задача - передать данные.
Два БАйта, тысяча чертей, не бесите меня уже обратно ! я ж тебе скока раз грил переходи на арму, ТЫ гришь с высоты своей аверо колокольни. на армах по другому. немного по другому. и памяти больше и свои тонкости переферии. так смело раскидываца рассужденниями по поводу УСБ - для начала манов по УСБ выкури и сам чо нить попробуй выпилить для interupt & bulk EP. а потом ещё и приложухой это грамотно принять не расплескав ничего.
//---
12Mbit - блииин, Ты о каких пересылках гришь ? isochronous, bulk, interrupt, control ? - на усбях всё круто. до такой степени круто, что в теории пересылку типа bulk ты можешь НЕ получить никогда. к сожалению именно этот тип пересылок принадлежит моей новойй любви CDC класс. HID в этом плане крутее - там передачи типа interrupt, а оне гарантированы с заказанной в дискрипторе конфигурации временной точностью.
« Последнее редактирование: 03/12/2017 13:45:50 от tridentxp »
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
И никак ты этот гребанный сигнал не уберешь - вход проца в КЗ .
поведуй мне каким образом этот косяк относится к этой теме ? я тех оснастку выпиливаю чтобы с такими случаями как у тебя можно было разобраца максимально быстро и безболезненно.
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
можно было бы встроить чуть ниже индикаторы сигнала: типа TH_DATA, TH_CLK, STB_1, STB_2, LATCH по аналогии как в Terminal by BRAY DTR DSR RTC CTS RI и т.д., но поскольку они кратковременны, то их наличие показывать не реалтаймом, а просто миганием при наличии.
будет всё как вы закжете, но при условии что мне удасться оседлать CLK - уж больно она шустрая. я оцениваю под 5 МГц. arm-у, точнее его VIC контроллеру скорости не хватает. даже аппаратный SPI на родных скоростях 22-го не справляется. чего уж тут за EXTINT говорить. есть подозрения, что эта задача решается не армом, а кортехой.
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
перерисовка текущего окна,
тяжёлые накладные расходы. тут я могу тебе только посоветовать самому поэксперементировать. сам посуди каким объёмом графики и в какие временные рамки приходится управляться. вот например тебе поток инфы от 22-го: размер регистра - 73 байта, значит еже "наносекундно" прилетает полкило.  и это лишь одна строчка. а их, ну что ли, хоть с 500-от на форме отображать надо. а если юзать ReDraw, значит и хранить где то тоже надо. не проще ли ротировать то, что уже есть ? хотя посмотрим. обратно всё упирается в CLK. если не удастся ею совладать, то и оптимизировать по сути нечего и вся эта идея обречена на провал. эээх, чую начинает пахнуть ПЛИСами.
« Последнее редактирование: 03/12/2017 14:16:53 от tridentxp »
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн SkaT

  • Наш человек
  • Эксперт
  • ***
  • Сообщений: 4951
  • Похвалили: 839 раз(а)
Размышлял я как-то над быстрыми сниферами... Долго голову ломал, но против быстрого потока одно средство - быстрый приёмник...
Самый быстрый приёмник с большим объёмом памяти из относительно доступных, это дисплей телефона или фоторамки... Только остаётся подобрать с подходящей шиной, а дальше делать инит, подключение к шине, а по окончании сеанса считывать с него спокойно инфу и обрабатывать...
При этом экран можно видеть, что в него пошла загрузка, а можно и просто как скоростную память/стек использовать...
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Размышлял я как-то над быстрыми сниферами... Долго голову ломал, но против быстрого потока одно средство - быстрый приёмник...
Самый быстрый приёмник с большим объёмом памяти из относительно доступных, это дисплей телефона или фоторамки... Только остаётся подобрать с подходящей шиной, а дальше делать инит, подключение к шине, а по окончании сеанса считывать с него спокойно инфу и обрабатывать...
При этом экран можно видеть, что в него пошла загрузка, а можно и просто как скоростную память/стек использовать...
ну ты и извращенец. не правильно ты дядя фёдор колбасу на хлеб намазываешь. быстрый снифер. ну ты ваще цицерон или как там правильнее? кафка. ты чо гигагерцы цыфры захватить хочешь ?
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн SkaT

  • Наш человек
  • Эксперт
  • ***
  • Сообщений: 4951
  • Похвалили: 839 раз(а)
Цитировать
... ты чо гигагерцы цыфры захватить хочешь ?
Просто пропустить инфу не хотел вот и мудрил  :)
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Просто пропустить инфу не хотел вот и мудрил  :)
а чисто кирпичём каких частот удалось захватить ?
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн SkaT

  • Наш человек
  • Эксперт
  • ***
  • Сообщений: 4951
  • Похвалили: 839 раз(а)
Просто пропустить инфу не хотел вот и мудрил  :)
а чисто кирпичём каких частот удалось захватить ?
Это было пару лет назад, уже точно не помню. Но вроде на штатной частоте 60МГц, получилось только 1МГц сканирования, дальше становилась заметна не стабильность фазы снифа...
Но меня 1МГц не спасал, думал на ТПГ, но там памяти мало, вот и брал дисплей от старого Сименса, с ним кадры с камеры перехватывал. И обрабатывал на 2146.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Просто пропустить инфу не хотел вот и мудрил  :)
а чисто кирпичём каких частот удалось захватить ?
Это было пару лет назад, уже точно не помню. Но вроде на штатной частоте 60МГц, получилось только 1МГц сканирования, дальше становилась заметна не стабильность фазы снифа...
Но меня 1МГц не спасал, думал на ТПГ, но там памяти мало, вот и брал дисплей от старого Сименса, с ним кадры с камеры перехватывал. И обрабатывал на 2146.
я ща до 8/1 и до 9/1 разгоняю. чо аппаратный SPI не заюзал ?
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн hronosapiens

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 137
  • Похвалили: 18 раз(а)
    • Онлайн кассы Чебоксары
А если взять
Мега + WiFi R3 ATmega2560 + ESP8266  и посадить на прерывания сигналы какие надо, памяти там 32 мб. портов 56 вроде. и частота под стать. Все равно процессор обрабатывает графику медленно , а у этой штучки частота вроде 84, так что по любому успеет заснифить в память. А потом все по лану скинуть чтобы не парится. Ну или по усб если лан жалко прикупить. И цена вопроса 800 р. на Али.

ПС: там даже веб сервер поднимается и ви-фи можно на плату подцепить (вместо лана). Можно плату автономно использовать , а результат через вебморду смотреть, мультикомбайн получается. Очешуенная штучка этот конструктор. Надо поиграться заказать. Вроде на них даже осциллограф слабенький можно сделать.
« Последнее редактирование: 05/12/2017 18:17:03 от hronosapiens »
 

Оффлайн SkaT

  • Наш человек
  • Эксперт
  • ***
  • Сообщений: 4951
  • Похвалили: 839 раз(а)
... чую начинает пахнуть ПЛИСами.
Я вот тоже подумывал о ПЛИСине, даже раздобыл платку от Меркурий-MSK, на ней есть Altera EPM3064... но чёт так руки и не дошли :(
 
Это сообщение считают полезным: tridentxp

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
А если взять
Мега + WiFi R3 ATmega2560 + ESP8266
ну ты и завернул. по моему быстрее будет на серии AT90USBxxx. займись, а то я аверов не долюбливаю. хотя у них на скока знай скорость реакции на прерывания быстрее из - за простоты, супротив моих 29 тактов NVIC.
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн hronosapiens

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 137
  • Похвалили: 18 раз(а)
    • Онлайн кассы Чебоксары
скорость реакции на прерывания
Причем , сильно быстрее 4 такта на джамп и четыре на возврат. Но это на те про которые я читал и те которые уже "мучил". А в ардуино стоит  Atmel SAM3X8E . Такой "игрушки" у меня еще не было. Заказал. Буду ждать. Надеюсь приближение НГ не сломает почту в России.
Занятие на новогодние праздники. Коньяк,компьютер,компилятор. ККК :)
 

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24