Выход
Дистрибьюторы и цены
agentee parts: цены на BOM у Mouser и Farnell и более дешёвые компоненты, которые можно подставить без потери характеристик.
agentee parts NAME (MCP parts) считает стоимость BOM топологии или схемы по ценам Mouser и Farnell и предлагает более дешёвые взаимозаменяемые компоненты. Ключи хранятся вне проектов, в ~/.config/agentee/distributors.toml ($AGENTEE_DISTRIBUTORS или --config указывают на другое место):
[mouser]
api_key = "..." # Mouser Search API key, not the Cart/Order key
[farnell]
api_key = "..." # element14 Product Search API key
store = "uk.farnell.com" # ie.farnell.com, de.farnell.com, www.newark.com, au.element14.com ...
# currency = "GBP" # default follows the storeagentee parts buggy-guard --boards 5
agentee parts buggy-guard --distributor farnell --farnell-store ie.farnell.com
agentee parts buggy-guard --refs C11,R8 --json
agentee parts buggy-guard --no-alternativesКаждая строка BOM соответствует одному полю mpn, с той же группировкой, что в bom.csv, и требует количество ссылок, умноженное на --boards. Предложения для строки это записи дистрибьютора для данного номера компонента; выбирается самое дешёвое, которое есть в наличии на требуемое количество и не снято с производства. Стоимость учитывает минимальное количество и шаг записи, а также покупает до следующего ценового порога, если большее количество обходится дешевле в сумме, поэтому десять резисторов могут быть купаны как сто.
Альтернативы, не более трёх на строку, сначала с наибольшим снижением стоимости, в валюте выбранного предложения:
| компонент | поиск по | должно сохраниться |
|---|---|---|
резистор, R на посадочном месте в стиле R_0603... | значение, допуск и размер | сопротивление в пределах 0,5 %, допуск не хуже, тот же дюймовый код корпуса; термисторы, массивы и перемычки отклоняются |
керамический конденсатор, C на посадочном месте C_0603... | значение, напряжение, диэлектрик и размер | ёмкость в пределах 1 %, напряжение не ниже (из значения /50V или из записи компонента), диэлектрик не хуже (C0G остаётся C0G, X7R может стать X7S или X8R, X5R может стать X7R), допуск не хуже, тот же код корпуса; электролитические, танталовые, полимерные и плёночные конденсаторы отклоняются |
универсальный дискретный компонент, D или Q, у которого значение это имя по JEDEC (2N7002, BSS138, 1N4148, BAT54, BZT52, S1x, SS1x, SMAJ, BC847 ...) | имя и корпус | имя внутри номера компонента и тот же корпус (SOT-23 это не SOT-23-5, SMA это DO-214AC, а не SMB) |
индикаторный светодиод, D на посадочном месте LED_0603... | цвет и размер | цвет и код корпуса |
| всё остальное | ничего | только тот же компонент у другого дистрибьютора и предложенная дистрибьютором замена |
Коды корпуса читаются из атрибута imperial (Case Code - in) или из части значения Farnell до [... Metric], поэтому 0201, указанный как 0201 [0603 Metric], не принимается за 0603. Отчёт заканчивается итоговой суммой по выбранной валюте, всеми более дешёвыми вариантами и количеством сделанных вызовов API: Mouser разрешает 30 в минуту и 1000 в день, а поиск компонентов выполняется по десять номеров за вызов. Отклонённый ключ сообщается один раз, и этот дистрибьютор больше не запрашивается в течение выполнения.