LINUX.ORG.RU

Сообщения hdclnr

 

USB -> RS-232 ломает ответ устройства

Привет! Прибор (осциллограф) подключается к ПК через

/dev/ttyS0
Оператор через самописную утилиту посылает команды управления (SCPI) и анализирует ответы устройства.
Добавил в цепочку конвертер USB-RS232 и заверте столкнулся с неприятным поведением - конвертер ломает ответ прибора. Вместо вменяемого ответа шлёт набор символов. При этом посылка команды осуществляется нормально. Все настройки этого USB-Com порта полностью соответствуют настройкам «железного» COM-порта.
За чтение отвечает вот такая функция:
void GDS::getAnswer(){
	unsigned char buf[OUTBUFF];
	int n = RS232_PollComport(GDS::port, buf, OUTBUFF-1);
	if (n > 0) {
		buf[n] = 0; /* always put a "null" at the end of a string! */
		for (int i = 0; i < n; ++i) {
			if (buf[i] < 32) /* replace unreadable control-codes by dots */
				{ buf[i] = '.'; }
			}
		std::cout << "Received: " << (char*)buf << std::endl;
	}
	else {
		std::cerr << "Wrong command." << std::endl;		
	}
}

Использую переходник PL-2303 XA/HXA от Prolific, драйверы взял с прилагающегося диска.
Кто-нибудь сталкивался с таким поведением этого (или другого подобного) конвертера? В какую сторону копать? Спасибо!

 , , ,

hdclnr
()

Перегрузка операторов в C++

В связи с переползанием на C++ хочу спросить (не холивара ради, а понимания для) - используется ли в реальных рабочих проектах перегрузка операторов? При первом приближении кажется, что это очень запутанная вещь, которая потенциально ведёт ко множеству ошибок, особенно, если в разработке принимает участие >1 человека.
Спасибо.

 , ,

hdclnr
()

Сборка glibc с опцией версии ядра

В соответствии с документацией,

‘--enable-kernel=version’
This option is currently only useful on GNU/Linux systems. The version parameter should have the form X.Y.Z and describes the smallest version of the Linux kernel the generated library is expected to support. The higher the version number is, the less compatibility code is added, and the faster the code gets.

Делаю

$ ../glibc-2.22/configure --prefix=/usr --libexecdir=/usr/lib --enable-kernel=2.2.26
Всё собирается без ошибок. Иду проверять через таким вот хитрым способом:
#include <stdio.h>
#include <gnu/libc-version.h>
int main () {
puts (gnu_get_libc_version ());
return 0;}
Компилирую статически, с явным указанием новой библиотеки:
$ gcc -static version.c -o version /home/alex/src/glibc-build/libc.a
2.22. Соберём без указания библиотеки, и получим родную версию:
$ gcc -static version.c -o version
2.13. То есть сама библиотека цепляется.
Но при запуске на старой машине (версия ядра=2.2.26) хеллоуворлда, собранного с glibc 2.22, я получаю ошибку:
FATAL: kernel too old
Что я делаю не так? Особенно смущает, что при сборке glibc никаких ворнингов нет.

 , ,

hdclnr
()

ищу 486-мамку в СПб

Заказчик требует странного, поэтому ищу материнскую плату для работы с процессором Am486DX под ZIF-защёлку.
Может у кого из жителей Петербурга завалялось такое добро? С благодарностью забрал бы за сок или шоколадку. На ЮНОНЕ совсем тухло.

 , ,

hdclnr
()

Пример из O'Reilly

Добрый день. Разбираю пример из «Programming Embedded Systems, Second Edition with C and GNU Development Tools», касающийся тестирования памяти и непременно вылетаю в сегфолт. В примере ниже я пытаюсь пройтись по блоку размером 64 KB алгоритмом «шагающей единицы»

test.h

#ifndef _test_h
#define _test_h
/*
* Define NULL pointer value.
*/
#ifndef NULL
#define NULL (void *) 0
#endif
/*
* Set the data bus width.
*/
typedef unsigned long datum;
/*
* Function prototypes.
*/
datum  memTestDataBus(volatile datum * address);
#endif 

test.c

#include "test.h"

#define BASE_ADDRESS		(datum *)(0x00500000)
datum
memTestDataBus(volatile datum * address)
{
    datum pattern;
    /*
    * Perform a walking 1's test at the given address.
    */
    for (pattern = 1; pattern != 0; pattern &lt;&lt;= 1)
    {
        /*
        * Write the test pattern.
        */
        *address = pattern;
        /*
        * Read it back (immediately is okay for this test).
        */
        if (*address != pattern)
        {
            return (pattern);
        }
    }
    return (0);
}
int main(int argc, char **argv){
    memTestDataBus(BASE_ADDRESS);
    return 0;
}

В чём может быть ошибка?

 , ,

hdclnr
()

Покупка планшета 8"

Привет, ЛОР. Решил сменить смартфон на звонилку «нокиа» + планшет, поэтому выбираю последний для следующих задач и приложений:

  • whatsapp
  • ssh
  • github
  • fheroes2
  • skype
  • C4droid
  • 3G/4G
  • хотелось бы неплохую камеру
  • время работы хотя бы сутки
  • диагональ 8-9"
  • карты памяти и выход на USB

Понимаю, что хочу всего и сразу, но вдруг кто знает готовый рецепт?
До этого пользовался Sony Tablet S, который теперь успешно перекочевал к родителям.

 , , ,

hdclnr
()

Ищу тачскрин LG E960

Разбил тач на LG Nexus 4 и теперь ищу, где его заказать.
Кроме ebay (3700р и >месяца доставки) и сервис-центров (6000р) ничего толком не найти. Может коллективный разум подскажет мне, где лучше заказать тач? Город - СПб или Москва.
Спасибо.

 , , ,

hdclnr
()

надоело ходить на работу

Обращусь за советом к аналитикам ЛОРа по очень волнующему меня вопросу.
Дело в том, что не хочу работать в офисе ни в каком виде. На нынешнем месте я работаю уже 4 года, и мне нравится моя работа. Сразу скажу, что я не программист - я инженер с навыками программирования. Мне приходится работать с LabView, системами реального времени, немного с ядром (модули ядра, драйверы), моё знание ассемблера и С весьма среднее, но его пока хватает. Но я больше не хочу работать с 9 до 18 никогда в своей жизни.
Поверхностные поиски вакансий привели меня к мысли, что мне или придётся учить python/django/whatever для работы веб-программистом, или. Или что? Существуют ли подоходящие мне вакансии? Я не боюсь учиться, но не знаю, «в какую сторону копать». Мне 25, я бородат и невесел. Простите за сумбурность.

 , ,

hdclnr
()

Макопроблемы

Привет!
Дома я использую макбук с макосью, а на работе в основном линукс. И когда дома я хочу подправить код, где есть что-то вроде:

fp = fopen("/proc/stat","r");
fscanf(fp,"%*s %Lf %Lf %Lf %Lf",&a[0],&a[1],&a[2],&a[3]);
fclose(fp);
то из-за очевидных отличий в ФС мне приходится проверять работоспособность в виртуалбоксе с убунтой. Это весьма утомительно и раздражает. Может есть адекватные решения моей проблемы, кроме установки линукса?

Перемещено beastie из general

 , ,

hdclnr
()

Не хочет заливать видео

Пробую сделать через ffmpeg так:

ffmpeg -i image.jpg -i file.mp3 -r 5 vidos.mov

но ютюб отказывается это переваривать и отфутболивает меня на страницу необходимых параметров видео. Пробовал и в .avi лить - то же самое. ЧЯДНТ?

 ,

hdclnr
()

Хостел на неделю в Москве

Не может ли коллективный разум посоветовать мне хостел/гостиницу в городе Москва в районе м.Первомайская или около того? Поеду по работе, цена за сутки в рамках разумного. Спасибо.

 , хостелы

hdclnr
()

Видеоуроки

Привет. Собираюсь отъехать от цивилизации и интернета на неопределенное время и кроме книг решил вдруг поискать видеоуроки. ЛОР, можешь посоветовать какие-нибудь? Интересует c, c++, qt, программирование для ОСРВ в общем. Спасибо.

hdclnr
()

[agilia] нижняя панель

Как называется нижняя панель по дефолту в agilia (openbox)? Очень понравилась, нагуглить не смог.

 

hdclnr
()

Напомните название игры

Шла вроде под оффтопиком 95, суть такова: ты играешь за лиса, собираешь яблоки, яйца, что-то ещё. Что особенно запомнилось, так это то, что в конце уровня твоя подруга-лисичка тебя целовала или била в зависимости от того, сколько ты набрал очков.
Всё действо происходило на каком-то поле или дворе, в общем в деревне. Играл очень давно, поэтому деталей не помню. Есть предположения?
Гугл молчит и выдаёт только «titus the fox», а это совсем не та игра.

hdclnr
()

ошибка на ARM

Постигаю азы кросс-компиляции для ARM, возникают проблемы. Пока попробовал 2 способа: через Sourcery и через

sudo apt-get install qemu-kvm-extras-static
sudo build-arm-chroot lenny qemu
sudo chroot qemu

Оба полученных файла при запуске дают один и тот же результат -

Syntax error: word unexpected (expecting ")")

Причем из sourcery я делал вообще по мануалу пример, а из qemu хелловорлд пытался собрать.
ЧЯДНТ? Что читать, куда копать?

hdclnr
()

«Наличие» диска Heroes II

Ударило в голову, нашел диск вторых героев и захотелось снова пройти.
Проблема заключается в том, что не видит диска при запуске через вайн. Пробовал снять образ и его в разные места монтировать, но тоже без толку. А без диска можно только по сети.
Есть ли у ЛОРа мысли, как мне запустить любимую игру детства?

hdclnr
()

[специалистам по всему] Болят глаза

ЛОР, почему когда я кашляю, у меня болят глаза? O_o
Это рак?

 

hdclnr
()

Завести живность

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

hdclnr
()

Некропостинг

Часто вбивая в гугл проблему, нахожу старые темы на ЛОРе. Но за давностию лет в них уже не написать, хотя проблемы часто остаются нерешенными. Почему запрещён некропостинг и планируется ли его убрать? Какой «возраст» должен быть у темы, чтобы постинг в неё был закрыт?
Спасибки.

hdclnr
()

Не видит скрипт

ЛОР, у меня пятничная тупость и я не понимаю, в чем дело.
Есть скрипт установки файловой структуры для разработки под плату. В нём есть в том числе и

# First calculate some important file names

export MYSELF=`which $0`
export SCRIPTSDIR=`echo -e $MYSELF | sed "-e s#/initproject.sh##"`
export BSPDIR=`cd ${SCRIPTSDIR};cd ..;pwd`
export CURRENTDIR="`pwd`"

# Set up the environment 
# (Definition of crosstoolchain and so on
source $SCRIPTSDIR/environment.sh

# Load the tool functions
source $SCRIPTSDIR/misctools.sh
source $SCRIPTSDIR/menutools.sh
source $SCRIPTSDIR/symlinkmirror.sh

Запускается это всё из /opt/, куда до этого было поставлено из тарбола.
При запуске скрипта из нужной папки, в которой он создаст структуру файлов, получаю:
alex@host:~/kontron$ sh /opt/bsp_eb42x/scripts/initproject.sh eb42x_proj
/opt/bsp_eb42x/scripts/initproject.sh: строка 27: /environment.sh: Нет такого файла или каталога

Скрипт environment.sh лежит рядом с запускаемым. ЧЯДНТ?
посмотреть полностью initproject.sh
посмотреть полностью environment.sh
Самое неясное то, что ещё вчера я точно таким же образом всё удачно ставил на другую машину.

hdclnr
()

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