Документирование libinkview
Goto page Previous  1, 2, 3, 4  Next
 
View unanswered posts
Post new topic   Reply to topic    The-eBook Forum Index -> PocketBook -> PocketBook Free
 

Ваше отношение к созданию документации
Поддерживаю
71%
 71%  [ 20 ]
Поддерживаю и готов учавствовать
21%
 21%  [ 6 ]
Мне все равно
7%
 7%  [ 2 ]
Total Votes : 28

Author Message

garamGor
Бывалый участник форума

Бывалый участник форума



Joined: 02 Sep 2011
Posts: 137


Location: Украина, Донецк

PostPosted: 23.11.2011 21:39     Quote

Вопрос. Документирование будет на русском, или на английском?
_________________
PB 902 (2.0.6->2.1.2а->2.0.6->2.1.0->2.0.6)
[FBReader180 v0.11.3, CR for PocketBook v0.0.6-2]
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 24.11.2011 11:44     Quote

garamGor wrote:
Вопрос. Документирование будет на русском, или на английском?


Однозначно на английском. И почему "будет"? Уже частично есть...

Но если кто-то будет параллельно поддерживать русскую версию, буду только за.
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

garamGor
Бывалый участник форума

Бывалый участник форума



Joined: 02 Sep 2011
Posts: 137


Location: Украина, Донецк

PostPosted: 24.11.2011 14:39     Quote

sergeyvl wrote:
Но если кто-то будет параллельно поддерживать русскую версию, буду только за.
Я могу поддерживать русскую версию, если никто не против.
_________________
PB 902 (2.0.6->2.1.2а->2.0.6->2.1.0->2.0.6)
[FBReader180 v0.11.3, CR for PocketBook v0.0.6-2]
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 24.11.2011 14:44     Quote

Я за. Тогда покурю как в доксигене лучше организовать 2 языка.
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 02.12.2011 00:32     Quote

Прошу всех кто знает отписаться по поводу таких вещей:

1. Чем отличается HardTimer от WeakTimer?

2. void DynamicUpdate(int x, int y, int w, int h);
void DynamicUpdateBW(int x, int y, int w, int h);

3. В чем принципиальная разница между PartialUpdate() и PartialUpdateBW()? Я понимаю что вторая быстрее но должна использоваться на монохромных изображениях, но хочется более подробно. У меня сейчас на горизонте замелькала задача написать "умную" функцию апдейта, которая будет анализировать изображение и выбирать одну из этих двух.

Как это работает?

Результы буду заносить сюда: http://pbsdk.vlasovsoft.net/html/index.html
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

Antuan
Член клуба The eBook

Член клуба The eBook



Joined: 30 Sep 2009
Posts: 11600


Location: Киев

PostPosted: 02.12.2011 00:59     Quote

sergeyvl wrote:
В чем принципиальная разница между PartialUpdate() и PartialUpdateBW()? Я понимаю что вторая быстрее но должна использоваться на монохромных изображениях, но хочется более подробно.

Трудно дать точное описание, дело в том, что на разных устройствах логика работы PartialUpdateBW() разная. Например на 360-м(без плюса) и некоторых 301+, если в изображении изменились не только черные/белые пикселы, но и хотя бы один серый, то обновление PartialUpdateBW() превращается в PartialUpdate(), т.е. обновляет и серый тоже, что приводит к тормозам.
На других моделях PartialUpdateBW() обновляет только Ч/Б изображение.
Вот тут когда-то исследовали скорость обновления в зависимости от площади и т.д.
_________________
PB 360° (v.15.3) | PB Pro 602 Grey (v.2.2.1a fastdrv) | PB A7 (v.1.3.1583) - подарок от PocketBook.
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 02.12.2011 01:18     Quote

Antuan wrote:
то обновление PartialUpdateBW() превращается в PartialUpdate()


У меня не превращается Smile На примере шахмат, где движется курсор (рамка) по доске (серые и белые поля). PartialUpdate() работает как надо (хоть и медленно). PartialUpdateBW() работает быстро но с браком (по-моему не убирал курсор с серых полей).

Antuan wrote:
На других моделях PartialUpdateBW() обновляет только Ч/Б изображение.


Да, похоже это мой случай.

Надо понять, в каких случаях вместо PartialUpdateBW нужно использовать PartialUpdate.

1. Изменение белый <-> черный - PartialUpdateBW()!
2. Нет изменения, серый - PartialUpdateBW()!
3. Изменение серый <-> белый - PartialUpdate()?
4. Изменение серый <-> черный - PartialUpdate()?
5. Изменение серый <-> другой серый - PartialUpdate()!

Как-то так?
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

Antuan
Член клуба The eBook

Член клуба The eBook



Joined: 30 Sep 2009
Posts: 11600


Location: Киев

PostPosted: 02.12.2011 01:27     Quote

sergeyvl wrote:
Надо понять, в каких случаях вместо PartialUpdateBW нужно использовать PartialUpdate.

Если у Вас девайс из серии "про", то можете уже не заморачиваться, потому что в новой прошивке этим занят драйвер, и что взбредет ему в код предугадать сложно, не делать же еще и проверку на версию прошивки.
_________________
PB 360° (v.15.3) | PB Pro 602 Grey (v.2.2.1a fastdrv) | PB A7 (v.1.3.1583) - подарок от PocketBook.
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 02.12.2011 12:53     Quote

Antuan wrote:
Если у Вас девайс из серии "про", то можете уже не заморачиваться


Приходится заморачиваться потому что не у всех серия про и не у всех новая прошивка Smile А шахматы должны работать везде.

"Спасибо" покетбуку за то что он "облегчает" задачу сторонним разработчикам Sad
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

NetSpider
Искушенный участник форума

Искушенный участник форума



Joined: 15 Jun 2011
Posts: 55



PostPosted: 02.12.2011 17:27     Quote

sergeyvl wrote:

1. Чем отличается HardTimer от WeakTimer?

HardTimer позволяет проснуться устройству и отработать нужной функции
WeakTimer если устройство уснуло, то функция отработает только тогда, когда оно проснется.

sergeyvl wrote:

2. void DynamicUpdate(int x, int y, int w, int h);
void DynamicUpdateBW(int x, int y, int w, int h);

Запускает обновление определенной области экрана с мгновенным выходом из функции не дожидаясь завершения. Только вот если в момент, когда происходит обновление области попытаться сделать с ней что-то еще - можно получить артефакты.
DynamicUpdate - обновление серого участка
DynamicUpdateBW - обновление черно-белого участка

sergeyvl wrote:

3. В чем принципиальная разница между PartialUpdate() и PartialUpdateBW()?

PartialUpdate - обновление серого участка
PartialUpdateBW - обновление черно-белого участка

PartialUpdateBW работает значительно быстрее чем PartialUpdate. Но BW версию можно использовать только на чернобелых изображениях, иначе на сером будет "каша".
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 02.12.2011 18:15     Quote

NetSpider

Спасибо

Не подскажешь еще такую вещь. Я InkViewMain запустил не в главном потоке, а в созданном мной. В главном потоке я запустил Qt.

Так вот, все работает норм. за исключением одной вещи. Когда чтение из файла в главном потоке длится достаточно долго (файл достаточно большой), то главный поток "замирает". Оживает он только если нажать что-то на клавиатуре. Через некоторое время (если файл длинный) опять замирает... В чем там может быть дело?

По правде говоря я не знаю точно где именно замирает главный поток. Предположил что на чтении...
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

NetSpider
Искушенный участник форума

Искушенный участник форума



Joined: 15 Jun 2011
Posts: 55



PostPosted: 02.12.2011 18:23     Quote

Думаю, дело в том, что устройство засыпает по таймауту. Как вариант можно отключить режим сна на время обработки. Например, так:
iv_sleepmode(0) - выключить режим сна
iv_sleepmode(1) - включить режим сна
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 02.12.2011 18:42     Quote

NetSpider wrote:
Думаю, дело в том, что устройство засыпает по таймауту. Как вариант можно отключить режим сна на время обработки. Например, так:
iv_sleepmode(0) - выключить режим сна
iv_sleepmode(1) - включить режим сна


Еще раз огромное вам спасибо! Сижу над этой проблемой почти день...

Я не зная про iv_sleepmode() попробовал использовать в потоке InkViewMain() HardTimer() с интервалом в пол-секунды. Зависания прекратились, вот только лампочка гореть не перестает. Думаю если лампочка - индикатор сна, то HardTimer() не позволяет устройству засыпать, иначе почему бы тогда она все время горела? ...
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

yuryfdr
Член клуба The eBook

Член клуба The eBook



Joined: 18 Jun 2009
Posts: 694



PostPosted: 03.12.2011 13:34     Quote

Кстати, было бы неплохо к функциям и структурам добавить поля совместимость с моделями, и с какой прошивки появились.
у меня набежало 12к разницы между inkview.h для arm и arm_gnueabi
(не говоря уже о старых SDK).
_________________
http://fedorchenko.net программы для PocketBook
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 03.12.2011 23:40     Quote

yuryfdr wrote:
Кстати, было бы неплохо к функциям и структурам добавить поля совместимость с моделями, и с какой прошивки появились.
у меня набежало 12к разницы между inkview.h для arm и arm_gnueabi
(не говоря уже о старых SDK).


Да, это тоже важно. Но пока что документировать бы наиболее важные функции...
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

yuryfdr
Член клуба The eBook

Член клуба The eBook



Joined: 18 Jun 2009
Posts: 694



PostPosted: 04.12.2011 01:08     Quote

sergeyvl
кстати там по некоторые вызовы отличаются по параметрам, например DynamicUpdate и OpenBook.

oldconfigedit_s это не deprecated, это совсем того до 14 прошивки 301+
я даже не знаю, почему она ещё жива в inkview.h.

меня разница заинтересовала после того как нашел такую функцию,
convert_to_utf в 15м sdk её нет. вот мне интересно для 301+
в прошивке 15.3 она есть? (у меня на 301+ 14.2 стоит).
_________________
http://fedorchenko.net программы для PocketBook
 
View user's profile Send private message ^

Vanuan
Продвинутый участник форума

Продвинутый участник форума



Joined: 25 Nov 2011
Posts: 81



PostPosted: 04.12.2011 04:36     Quote

lunohod wrote:
А зачем inkview, если можно напрямую с фреймбуфером работать?



В прошивке PB фреймбуфер не используется. Там ядро сконфигурировано на использование ioctl вызовов напрямую: https://github.com/pocketbook-free/pocketbook_free/blob/master/kernel_ 070611/drivers/video/eink/epson.ntx/S1D13521%20Linux%20Device%20Driver .txt
А libinkview базируется на ioctl вызовах.

Драйвер контроллера S1D13521 для использования фреймбуфера и deferred io появился в ядре версии 2.6.30
В этом случае приложению не нужно ничего знать про ioctl и драйвер, который там используется. В прошивке FB используется какая-то древняя версия ядра 2008 года.

Статья про поддержку eink контроллеров в ядре linux:
http://lwn.net/Articles/259210/

Тред про использование фреймбуфера в обход libinkview: http://www.the-ebook.org/forum/viewtopic.php?t=13564&start=0&postdays= 0&postorder=asc&highlight=fb0
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 06.12.2011 00:03     Quote

yuryfdr wrote:
меня разница заинтересовала после того как нашел такую функцию,
convert_to_utf в 15м sdk её нет. вот мне интересно для 301+
в прошивке 15.3 она есть? (у меня на 301+ 14.2 стоит).


есть.

Добавлено спустя 4 минуты 9 секунд:

yuryfdr wrote:
oldconfigedit_s это не deprecated, это совсем того до 14 прошивки 301+
я даже не знаю, почему она ещё жива в inkview.h.


Тут много загадок. Например, почему в inkview.h понатикано много всяких левых инклудов которые там вообще не используются:

#include <sys>
#include <sys>
#include <sys>
#include <sys>
#include <signal>
#include <errno>
....

может у них один большой прекомпайлед хидер создается? Smile

Добавлено спустя 2 минуты 45 секунд:

Vanuan wrote:
В прошивке PB фреймбуфер не используется. Там ядро сконфигурировано на использование ioctl вызовов напрямую: https://github.com/pocketbook-free/pocketbook_free/blob/master/kernel_ 070611/drivers/video/eink/epson.ntx/S1D13521%20Linux%20Device%20Driver .txt
А libinkview базируется на ioctl вызовах.


Здрасти, как это не используется? Используется. Нет автоматического обновления - это да. А напрямую конечно можно работать. Получил его параметры через GetCanvas() и вперед.
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^

Vanuan
Продвинутый участник форума

Продвинутый участник форума



Joined: 25 Nov 2011
Posts: 81



PostPosted: 07.12.2011 14:41     Quote

Quote:
Здрасти, как это не используется? Используется. Нет автоматического обновления - это да. А напрямую конечно можно работать. Получил его параметры через GetCanvas() и вперед.


Здрасти. А можно, пожалуйста, пример кода? Например, приложение рисования черного квадратика 100x100
И как обновить вручную?
 
View user's profile Send private message ^

sergeyvl
Член клуба The eBook

Член клуба The eBook



Joined: 12 Nov 2010
Posts: 1240


Location: Украина. Харьков

PostPosted: 07.12.2011 14:55     Quote

Vanuan wrote:
Здрасти. А можно, пожалуйста, пример кода? Например, приложение рисования черного квадратика 100x100
И как обновить вручную?


Пример кода не дам, думаю сами справитесь.

А порядок такой:
1. Получаем параметры фреймбуффера с помощию GetCanvas(). Там все параметры: высота, ширина, адрес памяти и т.д. Ну вобщем смотрите структурку icanvas из inkview.h
2. Рисуем все что хотим (там идет 1 байт на пиксель).
3. Делаем апдейт экрана: PartialUpdate(), PartialUpdateBW() или FullUpdate().

все.

А реальный это фреймбуффер или виртуальный какой-нибудь, меня не волнует. Я так думаю что в связи с появлением многозадачности точно появятся виртуальные буфера для каждой задачи.
_________________
Шахматы - PocketBook,Kindle,Onyx,Kobo,Android
 
View user's profile Send private message E-mail Skype ICQ ^
Display posts from previous:   
Post new topic   Reply to topic    The-eBook Forum Index -> PocketBook -> PocketBook Free All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4  Next
Page 2 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© The-eBook, 1999-2014. © Design by Prohorenkov
Syndicating News | Powered by phpBB © 2001, 2005 phpBB Group.
Хостинг предоставлен компанией DatForce     Яндекс.Метрика