def _autoset_Cff(self): cff_dev = self.get_elem_by_idx('CFF').data['device'] cff_fp = self.get_elem_by_idx('CFF').data['footprint'] Zfb = self.RFB1 * (self.RFB2 / (self.RFB1 + self.RFB2)) self.target_cff = Capacitance( (self.Vout / self.Vin_min) / (self.Fsw.value * Zfb.value) ) allowed_cff_vals = iec60063.gen_vals(self._configdict['Cseries'], iec60063.cap_ostrs, self._configdict['Cmin'], self._configdict['Cmax']) best_match = None for c in allowed_cff_vals: err = abs(self.target_cff - Capacitance(c)) if best_match is None or err < best_match[0]: best_match = (err, c) cff = gsymlib.find_capacitor(best_match[1], cff_fp, cff_dev) self.get_elem_by_idx('CFF').data['value'] = cff.value
def jb_harmonize(item): ident = ident_transform(item.data['device'], item.data['value'], item.data['footprint']) prefix = check_for_std_val(ident) if not prefix: return item else: if item.data['footprint'].startswith('MY-'): item.data['footprint'] = item.data['footprint'][3:] context = { 'device': item.data['device'], 'footprint': item.data['footprint'] } if prefix == 'RES': params = parse_resistor(item.data['value'], context) from tendril.gedaif.gsymlib import find_resistor from tendril.gedaif.gsymlib import NoGedaSymbolException try: resistor = find_resistor(item.data['device'], item.data['footprint'], **params._asdict()) item.data['value'] = resistor.value except NoGedaSymbolException: pass return item elif prefix == 'CAP': params = parse_capacitor(item.data['value'], context) from tendril.gedaif.gsymlib import find_capacitor from tendril.gedaif.gsymlib import NoGedaSymbolException try: capacitor = find_capacitor(item.data['device'], item.data['footprint'], **params._asdict()) item.data['value'] = capacitor.value except NoGedaSymbolException: pass return item else: return item
def Fc(self, value): c1_dev = self.get_elem_by_idx('C1').data['device'] c1_fp = self.get_elem_by_idx('C1').data['footprint'] if c1_fp[0:3] == "MY-": c1_fp = c1_fp[3:] allowed_cap_vals = iec60063.gen_vals(self._configdict['Cseries'], iec60063.cap_ostrs, self._configdict['Cmin'], self._configdict['Cmax']) required_cap_val = 1 / (2 * pi * float(self.R1) * value) cval = None for val in allowed_cap_vals: lastval = cval cval = electronics.parse_capacitance(val) if cval >= required_cap_val: self.get_elem_by_idx('C1').data['value'] = gsymlib.find_capacitor(lastval, c1_fp, c1_dev).value # noqa break if cval is None: raise ValueError
def get_symbol(self, value, device=None, footprint=None): from tendril.gedaif import gsymlib if device is None: device = self._device if footprint is None: footprint = self._footprint if self._stype == 'resistor': if isinstance(value, (str, Resistance)): try: return gsymlib.find_resistor(value, footprint, device) except (gsymlib.NoGedaSymbolException, InvalidOperation): pass if self._stype == 'capacitor': if isinstance(value, (str, Capacitance)): try: return gsymlib.find_capacitor(value, footprint, device) except (gsymlib.NoGedaSymbolException, InvalidOperation): pass ident = electronics.ident_transform(device, value, footprint) return gsymlib.get_symbol(ident)
def get_symbol(self, value, device=None, footprint=None): from tendril.gedaif import gsymlib if device is None: device = self._device if footprint is None: footprint = self._footprint # TODO Handle other parameters such as wattage, voltage if self._stype == 'resistor': if isinstance(value, (str, Resistance)): try: return gsymlib.find_resistor(device, footprint, value) except (gsymlib.NoGedaSymbolException, InvalidOperation): pass if self._stype == 'capacitor': if isinstance(value, (str, Capacitance)): try: return gsymlib.find_capacitor(device, footprint, value) except (gsymlib.NoGedaSymbolException, InvalidOperation): pass ident = electronics.ident_transform(device, value, footprint) return gsymlib.get_symbol(ident)