реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Странный глюк xDM Library Client, Не работает поиск и добавление в схему некоторых компонентов
SII
сообщение Mar 12 2017, 13:13
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



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

1. Если пытаться выполнять поиск по значению индуктивности, проблемные компоненты не выдаются, хотя другие с таким же номиналом (например, 3.3uH) присутствуют.

2. Если пытаться добавить такой компонент на схему, найдя его по имени или просто выбрав из общего списка того каталога объектов, которому он принадлежит (где он отображается без проблем), xDM Library Client выдаёт такое ругательство:

com.mentor.datafusion.SocketIPC.toolbox.WrongClassException: com.mentor.datafusion.dfo.DFOException: No items for instatiation found!

Однако, если пытаться добавить его на схему из общего списка компонентов (в котором уже нет специфических для индуктивностей столбцов вроде значения индуктивности), всё нормально срабатывает, причём на схему добавляется не только символ и другая общая информация, но и правильное значение индуктивности.

Если в xDM Library Client поменять для такой катушки значение индуктивности (например, вместо 3.3uH поставить 2.2uH), ничего другого не меняя, всё будет работать нормально. Т.е. эта ошибка каким-то совершенно непонятным образом связана со значением индуктивности -- но при этом такое же значение в других катушках, давно существующих в библиотеке, проблем не вызывает.

Когда именно появилась эта ошибка, я затрудняюсь сказать, поскольку, когда возникает потребность в компоненте, принадлежащем некоему семейству, я ввожу в базу всё семейство сразу, но использую на практике, понятно, лишь тот компонент, который мне реально понадобился. Но это произошло уже в VX2 или 2.1, в более ранних на такое не натыкался.

Ни у кого нет идей, в чём может быть причина? Мне пока в голову приходит лишь полезть напрямик в базу через консоль PostgreSQL и попробовать посмотреть реальное содержимое таблиц, отвечающих за компоненты и их свойства...
Go to the top of the page
 
+Quote Post
SII
сообщение Mar 16 2017, 16:58
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Покопался в базе и вот что выяснил.

Как известно (тому, кто читал документацию и что-то настраивал), всякие характеристики типа индуктивности, ёмкости и т.п. не имеют в стандартной базе штатных полей. Вместо этого нужно в xDM Library Client создать требуемые характеристики, а потом прописать их нужным подкаталогам компонентов, что и было мной в своё время сделано. Естественно, для числовых по сути номиналов используется тип "вещественное число двойной точности" (ибо целые не годятся, а строки не будут нормально обрабатываться как числа). Все пользовательские характеристики для компонентов хранятся в таблице te_dyn.

Так вот, для тех катушек номиналом 3,3 мкГн, которые работают нормально (их у меня три штуки и все созданы достаточно давно -- ещё когда Экспедишн не потерял первую букву в названии), в базе для индуктивности прописано значение 3.3000000000000002e-006 (поскольку машина работает в двоичной системе, десятичные числа далеко не всегда могут быть представлены точно в двоичной -- отсюда и 2 в последнем разряде мантиссы). А вот три новые катушки (введены уже в эпоху VX) с тем же номиналом имеют значение 3.2999999999999997e-006.

Таким образом, во-первых, почему-то разные версии Library Client'а сохраняли вводимое мной значение (3.3uH) как разные двоичные числа, а во-вторых, почему-то поиск со сравнением вещественного значения работает по принципу 100% совпадения, что для вещественных чисел некорректно (это любой хороший программист знает): необходимо искать всегда в диапазоне с заданной точностью.

Понятно, что можно в базе вручную эти значения поменять (что и придётся делать), но нет гарантии, что в будущем опять такое не произойдёт. Кроме того, не только три катушки этим отличились -- ещё несколько катушек с другими номиналами аналогичным образом глючат...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th March 2017 - 20:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.04494 секунд с 7
ELECTRONIX ©2004-2016