AVL 0 20 июля, 2013 Опубликовано 20 июля, 2013 · Жалоба Ну значит так и буду сидеть на 71-й сборке, пока проблема не возникнет у кого-то еще. Проблема не в схемах. Создал пустую схему. Пустая схема воспринимается нормально. Кинул один элемент из стандартных либ. Запустил менеджер, выпало предупреждение. Выбрал элемент, завис менеджер. Это после чего так происходит? Если "Имя компонента" совпадает с атрибутом "Значение", то, при вызове Менеджера компонентов, содержимое атрибута "Значение" заменяется на тильду. P.S. И всё-таки как-то механизм не очень прозрачный. Может сделать по принципу "что вижу, то и имею"? Поставил опцию видимости атрибута - увидел на схеме, не поставил - не увидел. Продублированы атрибуты - в перечень/спецификацию вставляется только один. Но никакой самодеятельности по очищению атрибутов в схеме! Все описанные глюки смог повторить. Итог: 1) поскольку непрозрачность работы с атрибутом Value стала существенно мешать разработке (часть из последних глюков была в усложнившейся логике по обработке этого атрибута на разных этапах после того как развязал окна), принято решение сделать работу с атрибутом Value прозрачной. Прежняя логика по анализу ChipName==Value теперь выполняется отдельной функцией. Данная функция при открытии менеджера компонентов делает проверку всех компонентов. Если обнаруживается ситуация ChipName==Value, выдается предупреждающее сообщение о том, что будут внесены изменения в атрибуты таких компонентов. Пользователь либо подтверждает, либо отказывается. 2) "Запустил менеджер, выпало предупреждение." Как оказалось, у меня проявляется только в Ubuntu 10.04 (wxWidgets 2.8.10). Выглядит все так, что поведение wxWidgets отличается у разных версий то ли самих wxWidgets, то ли ОС. Исправил. 3) "Выбрал элемент, завис менеджер." тоже самое, что и в п.2. Чтобы побороть эту проблему для Ubuntu 10.04 (wxWidgets 2.8.10), пришлось отказаться от управления менеджером компонентов курсором в Pcbnew (оставил управление курсором только в EESchema). То есть в Ubuntu 10.04 (wxWidgets 2.8.10) зависание происходит из-за того, что отправляю сообщения и в EESchema и сразу в Pcbnew через механизм dde. Похоже, что нужно дорабатывать механизм dde в самом KiCad. Либо это баг wxWidgets, поскольку используется работа с сокетами от wxWidgets. Актуальная ревизия 4186. Сейчас в основном могут выпадать 2 типа сообщения, на которые пока не добавлен русский перевод. Привожу перевод пока здесь: 1) "Some components have equal 'Chip Name' and 'Value' attributes! 'Value' attributes will be copied to 'Type' ones including their position, orientation and visibility. After that 'Value' attributes will be cleared. If some of components do not have 'Type' attribute then such attributes will be created. Continue?" "Некоторые компоненты имеют равные значения атрибутов "Chip Name" ("Имя компонента") и "Value" (Номинал / Значение) ! Значения атрибутов "Value" будут скопированы в атрибуты "Type", включая их координаты, ориентацию и флаг видимости. После чего значения атрибутов "Value" будут стерты. Если некоторые из компонентов не будут иметь атрибут "Type", то такие атрибуты будут созданы. Продолжить?" 2) "Some components were changed outside of the Component Manager. The changes have been transferred back to the Component Manager." "Некоторые компоненты были изменены вне Менеджера Компонентов. Эти изменения загружены обратно в Менеджер Компонентов." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
faa 4 20 июля, 2013 Опубликовано 20 июля, 2013 · Жалоба Актуальная ревизия 4186. Сейчас в основном могут выпадать 2 типа сообщения, на которые пока не добавлен русский перевод. Привожу перевод пока здесь: Обновил перевод в gost-committers-doc - bzr449. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVL 0 20 июля, 2013 Опубликовано 20 июля, 2013 · Жалоба Обновил перевод в gost-committers-doc - bzr449. Спасибо :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
break 0 22 июля, 2013 Опубликовано 22 июля, 2013 (изменено) · Жалоба AVL "Некоторые компоненты имеют равные значения атрибутов "Chip Name" ("Имя компонента") и "Value" (Номинал / Значение) ! Значения атрибутов "Value" будут скопированы в атрибуты "Type", включая их координаты, ориентацию и флаг видимости. После чего значения атрибутов "Value" будут стерты. Если некоторые из компонентов не будут иметь атрибут "Type", то такие атрибуты будут созданы. Продолжить?" Не очень удачный вопрос - может ввести в заблуждение. Лучше написать "Выполнить перобразование?". (По-басурмански тоже соответственно.) пришлось отказаться от управления менеджером компонентов курсором в Pcbnew А это нужно? Я считаю, что нет. оставил управление курсором только в EESchema Это нормально. Если некоторые из компонентов не будут иметь атрибут "Type", то такие атрибуты будут созданы. Всё же остаётся вопрос по библиотекам. Как-то не очень хорошо, что элементы на схеме имеют больше составляющих частей (в данном случае атрибутов), чем в библиотеке. Не могу объяснить чем мне не нравится, но есть какой-то внутренний протест. ;) Изменено 22 июля, 2013 пользователем break Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVL 0 22 июля, 2013 Опубликовано 22 июля, 2013 · Жалоба Не очень удачный вопрос - может ввести в заблуждение. Лучше написать "Выполнить перобразование?". (По-басурмански тоже соответственно.) OK пришлось отказаться от управления менеджером компонентов курсором в Pcbnew А это нужно? Я считаю, что нет. Считаю, это может быть удобно для готовых устройств, в которые нужно внести изменения. Иногда удобнее смотреть на pcb. Если некоторые из компонентов не будут иметь атрибут "Type", то такие атрибуты будут созданы. Всё же остаётся вопрос по библиотекам. Как-то не очень хорошо, что элементы на схеме имеют больше составляющих частей (в данном случае атрибутов), чем в библиотеке. Не могу объяснить чем мне не нравится, но есть какой-то внутренний протест. ;) Ну Вам никто не мешает добавить эти атрибуты в библиотеки :) Пользователь же может добавить какой-то произвольный атрибут компоненту и сделать его видимым, чтобы отобразить какую-нибудь дополнительную информацию на схеме, например. В этом случае же нет ничего плохого, что атрибута не было изначально в библиотечном компоненте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tema-electric 0 22 июля, 2013 Опубликовано 22 июля, 2013 · Жалоба Собрал сегодня последнюю версию. Все работает :rolleyes: Большое спасибо ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tema-electric 0 23 июля, 2013 Опубликовано 23 июля, 2013 · Жалоба Баги. Если в менеджере выбрать строчку, и нажать кнопку вверх или вниз на клаве, то от быстрого перебора строчек он зависает. Если зажать shift и попытаться выделить группу элементов, менеджер виснет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVL 0 23 июля, 2013 Опубликовано 23 июля, 2013 · Жалоба Вчера сделал merge с lp:kicad, а сегодня обнаружил, что eeschema при запуске падает. Так что будем сначала с этим разбираться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVL 0 23 июля, 2013 Опубликовано 23 июля, 2013 · Жалоба Вчера сделал merge с lp:kicad, а сегодня обнаружил, что eeschema при запуске падает. Так что будем сначала с этим разбираться. В ревизии 4189 теперь OK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVL 0 24 июля, 2013 Опубликовано 24 июля, 2013 · Жалоба Баги. Если в менеджере выбрать строчку, и нажать кнопку вверх или вниз на клаве, то от быстрого перебора строчек он зависает. Если зажать shift и попытаться выделить группу элементов, менеджер виснет. Удалось повторить только в Ubuntu 10.04. Пока выяснил только, что зависает опять из-за отправки пакетов через dde (управление курсором). Надо разбираться как это исправить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blmt 0 4 августа, 2013 Опубликовано 4 августа, 2013 · Жалоба Удалось повторить только в Ubuntu 10.04. Пока выяснил только, что зависает опять из-за отправки пакетов через dde (управление курсором). Надо разбираться как это исправить. Проблема заключается в том, что механизм dde можно использовать только для связи двух разных процессов, но нельзя в одном процессе. Для механизма dde, как для сервера, так и для клиента используется общая очередь сообщений процесса. Могу описать более подробно, но очень много букв. Патч прилагается. 0001_BUG_gost_doc_freezed_on_fast_selecting.patch.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVL 0 4 августа, 2013 Опубликовано 4 августа, 2013 · Жалоба Проблема заключается в том, что механизм dde можно использовать только для связи двух разных процессов, но нельзя в одном процессе. Для механизма dde, как для сервера, так и для клиента используется общая очередь сообщений процесса. Могу описать более подробно, но очень много букв. Патч прилагается. Приветствую, Максим. Спасибо за патч. Патч применен в ревизии 4199 ветки lp:~kicad-gost-committers/kicad/kicad . По поводу dde Вы похоже говорите о стандартном DDE, который используется как одна из технологий взаимодействия процессов в винде. В исходниках KiCad используется свой собственный механизм, который, похоже, разработчики KiCad назвали одноименной аббревиатурой dde. Этот механизм в KiCad сделан на основе сокетов фрейморка wxWidgets и является кросс-платформенным (а виндовый DDE только для винды). С учетом того, что KiCad dde отправляет сообщение через сокеты, не вижу проблемы в использовании KiCad dde в том числе пределах одного процесса. В чем там проблема, так и не разбирался пока. P.S.: если хотите, можем добавить Вас в команду lp:~kicad-gost-committers, чтобы коммитить изменения в lp:~kicad-gost-committers/kicad/kicad. Для этого нужно зарегистрироваться на https://login.launchpad.net/+login (если еще не зарегистрированы) и далее https://launchpad.net/~kicad-gost-committers/+join Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blmt 0 4 августа, 2013 Опубликовано 4 августа, 2013 · Жалоба Приветствую, Максим. Спасибо за патч. Патч применен в ревизии 4199 ветки lp:~kicad-gost-committers/kicad/kicad . По поводу dde Вы похоже говорите о стандартном DDE, который используется как одна из технологий взаимодействия процессов в винде. В исходниках KiCad используется свой собственный механизм, который, похоже, разработчики KiCad назвали одноименной аббревиатурой dde. Этот механизм в KiCad сделан на основе сокетов фрейморка wxWidgets и является кросс-платформенным (а виндовый DDE только для винды). С учетом того, что KiCad dde отправляет сообщение через сокеты, не вижу проблемы в использовании KiCad dde в том числе пределах одного процесса. В чем там проблема, так и не разбирался пока. Я имел ввиду внутренний механизм Kicad, реализованный через wxSocket. Если ипользовать его внутри одного процесса, то возможно зацикливание. Подробнее: При клике мыши в gtk_main() при ходит сообщение, которое через wx вызывает GOST_COMP_MANAGER::OnClickListCtrl(), SendCommand(), wxSocketClient::Connect(),wxSocketClient::WaitConnect(), wxSockeBase::_Wait(),wxApp::Yield() . wxApp::Yield() вызывает gtk_main_iteration(), которая вызывает EDA_DRAW_FRAME::OnSockRequest(), wxSockeBase::Read(), потом wxSockeBase::_Wait(), которая повторно вызывает wxApp::Yield(). wxApp::Yield() анлизирует повторный вход и вызывает wxAppBase::OnAssertFailure(). В Release сборке wxAppBase::OnAssertFailure() выкидывается, и программа уходит в цикл. В Debug версии выкидывает диалог исключения. Подробное описание зацикливания очень многословно, хотя код весьма простой. Проще читать прямо код. Резюме: встроенный dde служит для межпроцессного взаимодействия, применение внутри одного процесса чревато трудноуловимыми глюками. P.S.: если хотите, можем добавить Вас в команду lp:~kicad-gost-committers, чтобы коммитить изменения в lp:~kicad-gost-committers/kicad/kicad. Для этого нужно зарегистрироваться на https://login.launchpad.net/+login (если еще не зарегистрированы) и далее https://launchpad.net/~kicad-gost-committers/+join Я не смогу заниматься этим проектом на постоянной основе. Моё хобби читать код открытых проектов. Здесь я увидел небольшую головоломку и попытался её решить. Сам проект некрасив архитектурно, развивался эволюционно без должного проектирования. Изначально были заложены весьма ограниченные модели данных. Теперь практически невозможно переделать систему без потери совместимости, и значит проект практически обречён на статус поделки. Ситуация с аттрибутом Value == Chip-Name, наглядно это показывает. Поэтому я только читать. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVL 0 5 августа, 2013 Опубликовано 5 августа, 2013 · Жалоба Я не смогу заниматься этим проектом на постоянной основе. Моё хобби читать код открытых проектов. Здесь я увидел небольшую головоломку и попытался её решить. Сам проект некрасив архитектурно, развивался эволюционно без должного проектирования. Изначально были заложены весьма ограниченные модели данных. Теперь практически невозможно переделать систему без потери совместимости, и значит проект практически обречён на статус поделки. Ситуация с аттрибутом Value == Chip-Name, наглядно это показывает. Поэтому я только читать. :) Буду надеяться, что головоломки KiCad, хотя бы и небольшие, будут Вас заинтересовывать и впредь ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tema-electric 0 5 августа, 2013 Опубликовано 5 августа, 2013 · Жалоба Апробировал 99 сборку. Большое спасибо за патч. Теперь все работает :a14: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться