LINUX.ORG.RU

Сообщения I-Love-Microsoft

 

Где купить Li-Fi адаптер и точку доступа

Форум — Linux-hardware

Хочется опробовать «светодиодный» интернет через лампочки, но не знаю где купить точку доступа и адаптер, совместимый с Linux. Или это всё еще настолько глубокий прототип, что его нигде не купишь?

Также интересует, как оно работает, точнее конструкция приемника и передатчика в мельчайших деталях, понятно что модулируется светодиод - мигает и даже CSK меняет цвет, а вот как устроена оптика, что говорят даже от стенки будет ловить.

 lifi адаптер

I-Love-Microsoft
()

дату сборки в имя исполняемого файла

Форум — Development

Имеется проект на Qt, хотелось бы при помощи qmake сделать так, чтобы собрав программу, получить исполняемый файл с датой сборки в имени, например: my_shit_software__20160914_1328.exe

Есть ли такая возможность у qmake? Через скрипты сделать авторенейм конечно вариант, но что если можно штатно?

 

I-Love-Microsoft
()

copy_to_user из прерывания

Форум — Development

В дополнение к моей предыдущей теме, возникло непонимание, которое пока не сильно устранилось чтением LDD и SO. Требуется реализовать blocking read, по этому есть темы как в LDD так и на SO, сам механизм blocking read не вызвал затруднений.

Я выделил DMA буфер на 256 Кбайт, через MMIO передаю адрес этого буфера и он успешно заполняется, после чего приходит прерывание, в котором можно инициировать чтение следующего блока. Скорость около 170 Мбайт/с (если запросить гигабайт).

Возникла проблема при реализации char device, а именно операции read. Если осуществить copy_to_user в самом этом вызове то всё успешно читается на стороне userspace (cat, dd). Однако в обработчике прерывания copy_to_user не работает, хотя бы потому что он может сам уходить в sleep, что очевидно недопустимо для ISR.

Как же тогда быть? Допустим я запросил прочитать мегабайт из устройства, а буфер 256К - нужно при получении прерывания проснуться и вернуть лишь 256К а пользователь будет затем повторять запросы чтения четыре раза с разным offset (у char-то устройства)? Например dd bs=1M count=1 не повторит.

Нужно выделить буфер в драйвере на мегабайт и затем после его заполнения уже просыпаться и делать copy_to_user всего мегабайта? Получается двойное копирование.

slapin tailgunner ebantrop Andrey_Utkin :)

 

I-Love-Microsoft
()

как запретить systemd отбирать ttyS0 у ядра?

Форум — Development

Нужно отладить железку, иногда система виснет, и самый первый путь это позволить ядру выводить в последовательный порт:

loglevel=7 console=ttyS0,115200
ОС - Ubuntu 16.04.1 и это работает в первые секунды загрузки. А потом сисямдэ отбирает вывод ядра и предлагает логин на этой консоли (который кстати работает).

Как заставить сисямдэ не трогать ttyS0? Мне надо чтобы туда продолжал сыпаться лог ядра. А пока можно что-то увидеть по dmesg. Когда система повисла - никаких dmesg разумеется тыкнуть негде...

 ,

I-Love-Microsoft
()

Определить конфиг для подпроектов в верхнем проекте subdirs

Форум — Development

Есть проект Qt/qmake типа subdirs, состоящий из подпроектов. Как сделать так, чтобы CONFIG в проекте subdirs попадал в подпроекты?

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

Например:

TEMPLATE = subdirs
CONFIG += local_ip
SUBDIRS = \
	my_shit_software \
	test_soft
my_shit_software.pro:
local_ip {
	message("debug with local ip")
	DEFINES += USE_LOCAL_IP
} else {
	message("release mode")
}
Например, если это «release mode» то программа будет коннектиться к нужному серверу, а если «debug» то к localhost.

Я знаю что можно, наверное, зацепиться за debug/release, если subdirs проект открыт в debug конфигурации то это попадет во все подпроекты. Но что если мне нужно более одного CONFIG? Это возможно? Или например как-то явно задать что-то вроде SUBDIRS = my_shit_software:local_ip test_soft...

 ,

I-Love-Microsoft
()

планшет без аккумулятора

Форум — Linux-hardware

Есть планшет 3Q Q-Pad RC0710B. Как заставить его работать без аккумулятора? У него дурацкий разъем для зарядки, отваливается - бесит и поэтому неудобно.

Поэтому я пытаюсь заставить его работать без аккумулятора, ибо то куда я подпаялся в обход разъема (трудно добраться) - приводит к его неправильной зарядке и работе. В правильное место подпаяться не выйдет. К тому же, если аккумулятор слаб, то даже с кабелем он, как пишут в интернете, все равно вырубится.

Аккумулятор подключен через три провода (подпаяно): белый, черный и красный. Я понял что белый это сервисный (диагностика температуры и т.д.), черный это земля, красный +3.75 вольта.

Когда я оставляю лишь черный и красный провод - он включается.

Однако когда я от источника 5 вольт через резисторный делитель ему даю всё те же 3.75 вольта, с которыми оно от аккума пашет, то он не включается.

Правильно ли я понимаю роли этих проводов? И почему у меня не включается? Ведь я подаю нужное напряжение.

Возвращая 3.75 вольта от аккумулятора - снова видно что всё работает. Странно.

Гарантии все равно нет давно уже, а пользоваться с таким разъемом и аккумулятором бессмысленно. Просто жаль - ведь есть планшет и им можно было бы воспользоваться, если бы заработал при подаче от внешнего источника по проводу.

 ,

I-Love-Microsoft
()

процесс перевода Qt5-приложения на другой язык

Форум — Development

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

Похоже, я не совсем понимаю принцип процесса перевода в рамках Qt5, документация его не сильно проясняет. Как я понимаю процесс:

1) Тексты виджетов в ui (у меня чисто Widgets-based) сами найдутся, а в коде обрамляем нужные строки при помощи tr.

2) lupdate найдет все такие строки, до кучи к элементам интерфейса, и сформирует ts-файл. А где с этим файлом дальше работать? В каком ПО? Пока вижу лишь консольные lupdate и lrelease.

3) Создаю копии этого ts-файла: mytr_ru.ts и mytr_en.ts и затем перевожу строки в en файле, используя простой текстовый редактор. Мне кажется ЯДЧНТ.

4) Далее пытаюсь обработать при помощи lrelease, но оно жалуется что перевод не закончен и создает почти пустой qm-файл.

Далее понятно, если у меня будет нормальный qm-файл, я его загружу либо из каталога, либо из ресурсов (если получится) при помощи QTranslator::load.

Пробовал курить https://habrahabr.ru/post/51319/ и http://doc.qt.io/qt-5/internationalization.html - пока не торкнуло понимание.

 ,

I-Love-Microsoft
()

заменить функцию uencode

Форум — Development

Есть код на Matlab, мне его очень надо запустить на GNU/Octave. Всё в принципе на 99.9% совместимо, но осталась досадная проблемка: функция uencode не реализована и потому не работает всё, а если обойти эту функцию то всё неправильно.

octave --version
GNU Octave, version 4.0.2
Copyright (C) 2016 John W. Eaton and others.
warning: the 'uencode' function belongs to the signal package from Octave Forge but has not yet been implemented

В коде есть:

#!/usr/bin/octave -q
pkg load signal
Пакет «sudo apt-get install octave-signal» установлен, инет говорит что два года некий индус прислал патч с реализацией этой функции, версия самая последняя стабильная, ставил из PPA.

Я что-то неправильно делаю или функция действительно не реализована? Может есть способ как сделать ее аналог? Просто я давно уже на Python для этого дела перешел с матлабов-октавей.

 

I-Love-Microsoft
()

собрать Qt 5 для ARM

Форум — Development

Начну с того, что Yocto/OpenEmbedded(/Buildroot) юзал и собирал Qt 5 в их составе под ARM архитектуру.

Сейчас же стоит задача вкатить на устройство, на котором крутится Linux ARM (вероятно Debian Wheezy), в рабочей ФС не стоит Qt 5 и ничего установить обновить нет возможности - это embedded сборка. Выход - просто скопировать туда свое приложение вместе с нужными кутэшными либами.

Задача:

1) Либо скомпилировать под ARM прямо из исходников (qt-everywhere-opensource-src-5.7.0.tar.gz). Как-то странно, не могу найти описание этого процесса, а в инете только старые статьи либо готовые скрипты, которые мне не подходят

2) Либо (если это возможно), установить Debian ARM (Wheezy) при помощи qemu-arm/chroot. Не уверен насколько это реально, хотя тупо Debian в qemu-arm-system устанавливал ранее

 , ,

I-Love-Microsoft
()

не удается изменить число тиков по оси X

Форум — Development

Вот мой код:

def draw_sig_whx(text, data, x, width, height):
	import matplotlib.ticker
	f = pylab.figure()
	f.hold(False)
	sz = len(data)
	sub = f.add_subplot(1, 1, 1)
	f.set_size_inches(width, height)
	locator = matplotlib.ticker.LinearLocator(30)
	sub.xaxis.set_major_locator(locator)
	sub.plot(x, data, clip_on = False)
	sub.grid()
	f.savefig(text + ".jpg", dpi = 300)
Отображается лишь 6 тиков на оси X, хотя график очень широкий (width = 80.0, height = 6.0).

Например тут нашел http://jenyay.net/Matplotlib/Locators что можно использовать некий LinearLocator чтобы сделать больше засечек горизонтальной оси на графике. До этого пробовал всякие set_xticks и прочее. Всё выполняется без ошибок и варнингов, а тиков по-прежнему 6, это мало, не удобно читать график...

 ,

I-Love-Microsoft
()

написать драйвер для своего устройства

Форум — Development

Есть некое устройство (на базе ПЛИС), которое видится в системе через lspci, оно сконфигурировано, назначены адресные пространства и т.д. Осилена книга «PCI Express Technology. Comprehensive Guide to Generations 1.x, 2.x, 3.0», принципы работы PCI Express стали полностью понятны.

Теперь нужно с этим устройством работать. Для этого требуется свой драйвер для ОС Linux. Есть крохи информации в LDD3 (почти бесполезные), есть такой пример http://www.fpga4fun.com/PCI6.html

Подскажите какой-нибудь простейший пример PCI драйвера (самый маленький в ядре), или может есть руководство или книжка на эту тему.

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

Для начала (самый простой вариант) - на устройстве допустим на всем диапазоне запрошенного и выделенного ему адресного пространства лежит повторяющийся одинаковый текст (из пары слов), просто нужно в программе через драйвер этот текст считать с максимальной скоростью (DMA) и вернуться к исполнению программы.

 ,

I-Love-Microsoft
()

две ветки с одинаковыми файлами, во второй дополнительные

Форум — Development

Есть репозиторий git. В нем есть файлы проекта + куча отладочного шлака. Каким образом можно разнести этот каталог на две ветки, где в одной ветке лишь чистые файлы проекта, а во второй эти же файлы + отладочные файлы? Как это грамотно синхронизировать, когда разработчик поработав в ветке с отладочными потом перенес лишь обновленные файлы проекта в первую ветку?

 ,

I-Love-Microsoft
()

Построить кривую через заданные точки

Форум — Development

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

Мне же нужно совсем иначе - есть набор N точек (в трехмерном пространстве). Через эти N точек нужно построить кривую линию в 3D-пространстве так, чтобы она проходила через все точки, образуя плавную форму.

Как называются функции, которые выполняют такую задачу?

 , кривая,

I-Love-Microsoft
()

translate не работает

Форум — Development

Есть мой класс, который наследован от QGrahicsView. В нем есть операции с матрицей отображения:

	offset.setX(offset.x() + 100);
	offset.setY(offset.y() + 50);
	qDebug() << "offset=" << offset;
	r += 0.5;

	QMatrix matrix;
	qDebug() << "m1=" << matrix;
	matrix.translate(offset.x(), offset.y());
	qDebug() << "m2=" << matrix;
	matrix.scale(current_scale, current_scale);
	matrix.rotate(r);
	this->setMatrix(matrix);
offset= QPoint(100,50)
m1= QMatrix(11=1 12=0 21=0 22=1 dx=0 dy=0)
m2= QMatrix(11=1 12=0 21=0 22=1 dx=100 dy=50)
offset= QPoint(200,100)
m1= QMatrix(11=1 12=0 21=0 22=1 dx=0 dy=0)
m2= QMatrix(11=1 12=0 21=0 22=1 dx=200 dy=100)

Проблема в том что вращение есть, масштабирование - есть тоже. А просто сместить картинку - не работает. ЧЯДНТ?

P.S. Конструктор:

	setInteractive(true);
//	setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
	setResizeAnchor(QGraphicsView::NoAnchor);
	setTransformationAnchor(QGraphicsView::NoAnchor);
	setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
	setOptimizationFlag(QGraphicsView::DontSavePainterState, true);
	setCacheMode(QGraphicsView::CacheBackground);
	setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing);

	current_scale = 1.0;

setTransformationAnchor(QGraphicsView::NoAnchor); - тоже не работает

 ,

I-Love-Microsoft
()

сохранить изображение виджета, дождавшись отрисовки суб-виджетов

Форум — Development

Есть окно, его содержимое можно легко сохранить при помощи this->grab().save(«my_window.png»);

Проблема: есть несколько суб-виджетов, в них я программно рисую сложные картинки, которые рисуются относительно долго (100 миллисекунд). В итоге сохраняется какой-то обрубок.

Как мне корректно синхронизировать время того, что все виджеты были корректно отрисованы и теперь вот уже можно сохранить всю эту красоту в файл?

 , ,

I-Love-Microsoft
()

возврат значения из генератора

Форум — Development

Использую фреймворк cototb (это Python + FPGA). И есть такая проблема: для работы с временем, т.е. ожидания положительных фронтов клоков, требуется задействовать ключевое слово yield. Эта функция считается что она генератор. Насколько мне известно из примеров в инете, из генераторов значения возвращается тоже словом yield. Как же мне тогда вернуть значение?

@cocotb.coroutine
def is_ch_active(channel):
	active = False
	chan_0_adr = 0x20
	chan_size = 7
	dut.cs_b = 0
	dut.rd_b = 0
	n_wait = 3
	chan_id = channel
	base_addr = chan_0_adr + chan_id * chan_size
	dut.adr = (base_addr + 6) * 4 # channel enable
	for wait in range(n_wait):
		yield posedge(dut.itfc_clk)
	v = int(dut.dout)
	dut.cs_b = 1
	dut.rd_b = 1
	yield posedge(dut.itfc_clk)
	if v & (1<<0):
		active = True
	yield active
Пока что вышеприведенный код дает неверный результат:
is_active_before = misc.is_ch_active(channel)
is_active_after = misc.is_ch_active(channel)

is_active before= <cocotb.decorators.RunningCoroutine object at 0x2aaad013af10>, after= <cocotb.decorators.RunningCoroutine object at 0x2aaad013add0>

Нужно просто вернуть то значение active - True или False. А может есть способ это обойти?

 cocotb, ,

I-Love-Microsoft
()

числа с ограниченным диапазоном

Форум — Development

Есть ли готовый стандартный класс чтобы работать с такими числами, типа угловые градусы от 0 до 359. Было 30, вычел 45, получилось не 15 а именно 344.

Просто чето часто с такими числами работаю, чуйствую что упарился их туда сюда проверять и добавлять.

 

I-Love-Microsoft
()

заблокировать сеть для программы

Форум — Admin

Есть такая тема: http://unix.stackexchange.com/questions/68956/block-network-access-of-a-process

unshare -n ping 127.0.0.1
connect: Network is unreachable
unshare -n -- sh -c 'ifconfig lo up; ping 127.0.0.1'
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=32 time=0.066 ms

Это позволяет вырубить сеть для приложения, но если ему нужно loopback - можно и вернуть. Это работает.

Моя проблема такая - программа хочет интерфейс с MAC-адресом, таким как у eth0, однако unshare -n его полностью убирает. Есть ли возможность вернуть eth0 но так, чтобы программа не видела интернета?

Может есть другой способ сделать так, чтобы программа думала что интернета нет и не могла пробиться куда либо? Просто unshare это позволяет для отдельной цепочки процесса и его подпроцессов - супер, но мне надо чтобы интерфейс с его MAC-адресом всё же был виден.

 ,

I-Love-Microsoft
()

сконвертировать строку в комплексное число

Форум — Development

Есть файл с кучей таких:

-5.9212e+06-4.7907e+06i
строк. Надо просто распарсить их либо в массив комплексных чисел, либо два массива. Ширина каждого числа разная, может быть и так:
69192+96721i
.

Как такое распарсить??? Нужно из каждой такой строки, которая так разнообразно форматирована, получить по одному комплексному числу...

 

I-Love-Microsoft
()

фильтр нижних частот

Форум — Development

Как реализовать на Python фильтр нижних частот?

Нужно чтобы на частоте 1 МГц было ослабление -3 дБ, а на частотах от 5 и выше гарантированно -60 дБ.

Есть такая тема http://stackoverflow.com/questions/25191620/creating-lowpass-filter-in-scipy-...

Однако там мне не совсем понятно, может терминология мне не ясна. Например те частоты что я указал (1 и 5 МГц) что из них Fstop и что Fcutoff?

 , ,

I-Love-Microsoft
()

RSS подписка на новые темы