Ситуация примерно следующая: собирали наш проект к дефолтным log4cplus, но понадобилось кое-что добавить в код от log4cplus. Для этого просто добавили log4cplus в наши 3rd библиотеки и включили его через add_subdirectory(). Получили следующее: когда открываем cmake-gui, то видим наши options и кучу всего, что пришло с log4cplus, и что нам не надо видеть.
Вопрос понятен: есть ли простое решение для «проблемы»?
Имею: embedded систему под которую собран Линукс с Buildroot и основные утилиты на busybox. Есть беспроводной модуль, на который надо настроить AccessPoint и сперва просто протестировать соединение с прибором по iperf3 (прибор будет iperf сервер).
Для начала всё на статических IP адресах. Лэптоп настроен на статический 192.168.50.20. Прибору прописал:
Запускаю, лэптоп видит DevHotspot, соединяется. На стороне прибора по
hostapd_cli status
hostapd_cli list
вижу, что лэптоп соединился. Пробую на лэптопе пропинговать прибор и получаю
velik@velik-X270 ~ % ping 192.168.50.1
PING 192.168.50.1 (192.168.50.1) 56(84) bytes of data.
From 192.168.50.20 icmp_seq=1 Destination Host Unreachable
From 192.168.50.20 icmp_seq=2 Destination Host Unreachable
Оставляю активным пинг на лэптопе. Пробую пропинговать лэптоп с прибора. Пинг проходит без ошибок. И, как только проходит первый пинг от прибора, начинает работать пинг с лэптопа (!). И с этого момента соединение работает как часы.
Вот не понимаю, где я туплю и что делаю не так. Почему не работает соединение, пока не пройдёт первый пакет от прибора?
Имею примерно следующее: прибор в котором будет работать собранная на Buildroot Линукс система. В приборе есть Lan и WLan модуль. Также имеется Qt5.12 и connman. Для начала хотелось бы сделать что-то стандартное: просканировать какие WiFi точки видны, вывести качество сигнала (SignalStrength) и содиниться с ними по паролю. Так вот, смотрю, что с connman можно общаться через DBus. Но не хочу изобретать велосипед. Нашёл в Qt QNetworkConfigurationManager, который, похоже, использует свой connman bearer плагин, но с ним могу только просканировать и найти точки доступа. И вот не найду, как можно подключиться к точке по паролю. Такое вообще возможно? Нашёл, что в Qt5.6 был QWiFiConfiguration, но его похоже убрали.
Интересно, чем вы пользуетесь для сабжа? Интересно оценить сложность среднего размера проекта (где-то 1,2Мб С++ кода). Первое, что в голову пришло: cppcheck просто как анализатор того, сколько накосячено; pmccabe для заценить сколько ветвлений в функциях. А чем посоветуете оценить взаимосвязи модулей? Ну и вообще subj )))
Знаю, что название темы звучит несколько странно. Но что имею: - XML файл, который с XSLT перевожу в С-Файл со значениями «запакованными» в структуру; - Прибор, в котором надо перепрограммировать эту структуру со значениями; - Заказчика, у которого нету нашего компилятора и программатора
Т.е. заказчик хочет что-то поменять в XML файле и перенести эти значения в прибор. Первое, что пришло в голову: - Написать ещё один XSLT скрипт, который будет генерить питоновский скрипт со значениями из XML файла в текстовой форме. Потом запускается этот скрипт и генерится бинарный файл. Но для этого нужен питон на компе у заказчика - дать заказчику пакет программ. В этом пакете будет компилятор, и несколько С файлов. Компилятор создаст программу с С-файлом со значениями. А наша С-программа будет писать этот бинарник. Всё бы хорошо, но нужен небольшой компилятор. Попробовал tcc. Он не компилирует мой С-файл. А MinGW больше 400МБ. С ним не пройдёт
ВОт пришлось впервые столкнуться с XSD. Надо создать схему проверки XML файла, для которого стоит следующее: Min_Set_Temp [ Integer between 0 and 1000 ] Max Set Temp [ Integer between 0 and 1000 ] Default_Set_Temp [ Integer between Min Set Temp and Max Set Temp]
Вот не знаю как такое возможно в XSD. Пока имею следующий отрывок
<xs:simpleType name="tSetTemperature">
<xs:restriction base="xs:unsignedShort">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1000"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Bake">
<xs:complexType>
<xs:sequence>
<xs:element name="MinSetTemp" type="tSetTemperature"/>
<xs:element name="MaxSetTemp" type="tSetTemperature"/>
И КАК ТУТ ПРАВИЛЬНО ОПИСАТЬ DefaultTemperature?
</xs:sequence>
</xs:complexType>
</xs:element>
Есть тут одна контора, которой надо написать программу на Qt. Одно из требований заказчика, чтоб было видно только нашу программу и нельзя было просто так переключиться на что-то другое. Думаю, что программа будет работать на Xubuntu. Т.е. на XFCE. Попробовал QMainWindow включить в FullScreen. Всё замечательно - видно только нашу программу, пока программа не показывает какое-нибудь Popup окно. Тогда автоматически появляется панель таск-менеджера. Можно ли как-то программно запретить это дело? И ещё вопрос: как просто отключить/включить обратно Shortcuts? Поскольку ещё одно требование: по умолчанию видно только нашу программу и нельзя запустить ничего другого, но можно ввести пароль и система должна работать как нормальная.
Задачка примерно следующая: есть embedded приборчик на АРМ процессоре с двумя сетевыми. Надо проверить в производстве нормально ли работают сетевые. Соответственно для теста могу делать, что хочу. Первое, что пришло в голову, использовать ping. Но что-то я делаю не так. Может у кого есть идея?
Чё-та туплю я к вечеру не па-децки. Имею следующее: получил сегодня Evaluation Kit BT чипа от Bluegiga. Вставил в раб. комп, тот сразу определил его на hci1. Всё работает зашибись. Вставил в наш прибор. Никакого hci сходу не нашёл, хотя видит его на lsusb как «Bus 001 Device 005: ID 0a12:0000» Вот теперь сижу, гуглю и туплю как его подключить. В приборе я собрал blueZ 5.27. Знаю, что БТ модули на UART подключаются через hciattach. А как с УСБ?
Надо в одном встроенном устройстве на Atmel ARM процессоре переехать с 3.10 на новое ядро. Взял 3.19. И тут заподлец - ребята переехали в 3.19 на device tree. Ну ладно. Хочу скомпилировать ядро снячала просто для Evaluation Kit. Вызываю:
Kernel$ make -j4 ARCH=arm CROSS_COMPILE=/home/Developer/Toolchain/arm-toolchain/usr/bin/arm-linux- at91_dt_defconfig at91sam9m10g45ek.dtb
Получаю:
DTC arch/arm/boot/dts/at91sam9m10g45ek.dtb
In file included from arch/arm/boot/dts/at91sam9m10g45ek.dts:10:0:
arch/arm/boot/dts/at91sam9g45.dtsi:13:34: fatal error: dt-bindings/dma/at91.h: No such file or directory
compilation terminated.
make[2]: *** [arch/arm/boot/dts/at91sam9m10g45ek.dtb] Error 1
Это как понимать? Похоже этот DTC не находит заголовочные файлы, но не найду, как ему указать пути поиска? Или, может, я что-то совсем не догоняю?
Пользуюсь log4cplus. Есть ситуация, когда надо удалить все логи. Просто тупо удаляю лог-файлы и получаю следующую фишку: новые лог сообщения показываются в консоли,но лог файл не создаётся. Надо перегрузить прибор и тогда новые лог сообщения пишутся в файл. Уже замучался искать, откуда ноги растут. Может кто с подобным встречался и пнёт советом? Вот мой файл с настройками лога:
Купил себе для Lenovo X220 bluetooth мышку. Пользуюсь Kubuntu14.04. Пользуюсь каким-то Kubuntu апплетом. Без проблем нашёл мышку, соединился, всё работает прекрасно. Но как только выключаю и заново включаю мышку, то приходится заново устанавливать соединение вручную. Есть ли возможность как-то определять и подключать её автоматически (как в Windows)? А то задалбывает ручное переподключение
Что-то странное наблюдаю с 3.9 и 3.10. Может кто тут подскажет, куда копать?
Имею следующее: платка на АРМ процессоре AT91SAM9G45, пока крутится на 3.8.13 без проблем. Захотелось попробовать свежее ядро. ещё есть у меня драйвер управления бипером (для акустического подтверждения того, что пользователь нажал кнопку на GUI) и в этом драйвере запрограммирован hr_timer. С этим таймером я запрограммировал длительность бипа. Т.е. бипер включается при приеме команды, таймер выставляется на длительность и в callback методе таймера бипер выключается. С 3.8 никаких проблем. Но с 3.9 или 3.10 мой таймер частенько может пищать вместо нескольких милисекунд примерно секунду (!!!) Причем во время этого длинного пищания прибор вполне себе реагирует на нажатия тач скрина. Короче, фигня какая-то и не пойму откуда ноги растут.
Кто-то уже видел подобное? Заранее спасибо за ответы, velik
Что-то странное произошло. Выключил комп, включаю, он выдает:
error: file '/boot/vmlinuz-3.8.0-19-generic' not found
error: you need to load the kernel first...
Хм. Загрузился с Live стика. Смотрю, что лежит в boot директории слетевшей системы. Там только ядро 3.8.0-21. Интересно, с какого перепуга взялось 3.8.0-19???
Ладно. Сделал что-то стандартное вроде:
sudo mount /dev/sda6 /mnt
sudo mount -o bind /dev /mnt/dev
sudo mount -o bind /sys /mnt/sys
sudo mount -t proc /proc /mnt/proc
sudo cp /proc/mounts /mnt/etc/mtab
sudo chroot /mnt /bin/bash
grub-install /dev/sda
update-grub
Перегружаюсь, опять хочет 19. ЧЯДНТ? Система кубунта13.04
У меня примерно следующая проблема: использую syslogd+klogd от busybox связку в embedded приборчике. Запускаю syslogd+klogd из инит-процесса. В лог файл попадают вещи, которые генерятся ядром уже после запуска клогд. А как получить в лог файл то, что происходило ДО запуска логеров, т.е. то, что выводится с dmesg?
Совершенно примитивный вопрос, но не могу найти ответ в гугле :) Имею: соединение с прибором по RS232, передаю в него команды, набирая строку и нажимая ENTER. Так вот minicom передаёт '\r', а прибор «настроен» на строку с концом '\n'. Соответственно нифига не принимает. Подскажите плз, где поменять, чтоб он отсылал '\n' или «\r\n».
Склонировал я когда-то 3.3 ядро для использования в одном приборе. Потихоньку пришлось некоторые вещи подрихтовать для себя. Соответственно появились десятка два моих коммитов на 3.3 основе. Между делом появились 3.3.1 - 3.3.8. Я перенёс свои изменения на эти ядра с чем-то вроде «git fetch stable» + «git rebase 3.3.8». Всё работало на Ура. Вот сейчас хочу перенести свои коммиты на 3.7 ядро. При этом получаю ошибку mergА в файле, который никогда не трогал:
velik@work:/home/Developer/Work/trunk/Kernel$ git rebase v3.7
First, rewinding head to replay your work on top of it...
Applying: staging: android/lowmemorykiller: Don't unregister notifier from atomic context
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging drivers/staging/android/lowmemorykiller.c
CONFLICT (content): Merge conflict in drivers/staging/android/lowmemorykiller.c
Failed to merge in the changes.
Patch failed at 0001 staging: android/lowmemorykiller: Don't unregister notifier from atomic context
Такое ощущение, что гит отматывает не только мои коммиты на 3.3 ветке, а гораздо дальше...
Кто-то с таким уже встречался? Как можно побороть?
И немного другой вопрос, но из этой же темы: Есть ли возможность в git rebase указать, что я хочу перенести не все мои коммиты с 3.3 ветки на 3.7, а, допустим, только два последних?
Есть весьма примитивный вопрос, на который не найду решения в гугле. Имею: примитивный сервер, на который поставил webmin. Webmin прекрасно отзывается на https://адрес-сервера:10000. На сервере запущен апач, с примитивной веб мордой примерно следующего содержания:
Что-то туплю я с поведением простого выражения. Надо: просто получить 4 символа в конце одного выражения. Что может быть проще? Но почему мне этот вариант:
echo "hello_world_release-0003-1-g8dc5266" | sed -e 's/\(....\)$/\1/'
выдаёт hello_world_release-0003-1-g8dc5266 ?
Вот такой вариант, например, работает без проблем:
velik@sve:/home/TMP/$ echo "hello_world_release-0003-1-g8dc5266" | sed -e 's/.*\(....\)$/\1/'
5266
Где я туплю? Разве \(....\)$ не означает, что не надо 4 символа с конца строки?