Как сделать так, чтобы калибровка на основе tslib оставалась постоянной?

У меня проблема с созданием постоянный калибровка в моем встроенном решении. Я занимаюсь разработкой приложения на основе Qt для среды Embedded Linux с сенсорным экраном. Для этой последней части я использую tslib (настроено предыдущими разработчиками).

Что касается простой калибровки сенсорного экрана, все в порядке: ts_calibrate запускается и создает pointercal файл правильно. Если после вызова ts_calibrate я запускаю свое приложение Qt (или ts_test), я могу заметить, что калибровка прошла успешно.

Проблема в том, что результаты калибровки работают только для 1 открытия моего приложения: я калибрую с помощью ts_calibrate, запускаю свое приложение, закрываю его, и если я снова запускаю свое приложение, экран снова не откалиброван.

Теперь, очевидно, я не хочу вызывать калибровку каждый раз, когда мое приложение закрывается и снова открывается. Вопрос в том: как сделать так, чтобы результаты калибровки стали постоянными? (то есть до другой калибровки)


Дополнительная информация:

Я провел некоторое исследование в Интернете, и я нашел это так нить рассказывая о способе решения этой проблемы с помощью QWSServer, Сначала мне не понравилось это решение, так как от работы зависит среда Qt (я ожидал более общего «решения C ++» (или вызова скрипта, что угодно)). Но я реализовал это, и это сработало — но только в конкретном случае, а именно, если я откалибрую, открою свое программное обеспечение, закрою и снова открою, тогда калибровка будет продолжена. Но проблема, тем не менее, сохраняется, если я полностью выключил оборудование, включил его и запустил свое приложение без вызова ts_calibrate (перезагрузка ядра Linux в процессе); так что это шоу является лишь частичным решением и, следовательно, неприемлемым.

Пытаясь найти источник проблемы, я создал копию pointercal файл сразу после калибровки и еще одна его копия после выключения и включения моего оборудования (и подтверждения того, что калибровка была завершена), и я заметил, что файл был изменен в середине, несмотря на то, что не был сделан вызов ts_calibrate или подобному приложению:

После калибровки:
55438 118 -1920736 -543 -36058 34531168 65536 800 480

После аппаратного выключения:
-55040 1280 2526720 -288 35040 -34398240 -62768

Журнал терминала для загрузки linux (tftp; bootm команда) не упоминайте pointercal или соответствующий процесс калибровки.

редактировать

Я недавно узнал, что pointercal файл находится внутри /etc/ меняется между разделами, потому что вся папка становится новой после перезапуска оборудования. Так что, по сути, происходит то, что Tslib идет после файла, который постоянно сбрасывается к значению по умолчанию при каждом перезапуске аппаратного обеспечения, и мне нужно настроить Tslib не на то, чтобы искать там, а на более безопасную папку (в моем чехол, SD-карта). Теперь новый вопрос: как это сделать? Я знаю, что должен настроить tslib.sh создание файла TSLIB_CALIBFILE переменная точка для нового местоположения pointerscal, но tslib.shсам внутри /etc/Будучи сама по себе временной.

1

Решение

Вы должны изменить TSLIB_CALIBFILE в изображении, загруженном через TFTP.

Это должно сделать это, так как вы просто должны изменить это один раз.

0

Другие решения


По вопросам рекламы [email protected]