def _set_biases(self): if 'pbias' not in self._configdict.keys(): logger.warning( 'Positive terminal bias not defined : ' + self.refdes ) else: if self._configdict['pbias'] != '-1': self.get_elem_by_idx('R3').data['value'] = electronics.construct_resistor(self._configdict['pbias'], '0.125W') # noqa else: try: self.get_elem_by_idx('R3').data['fillstatus'] = 'DNP' except KeyError: pass if 'nbias' not in self._configdict.keys(): logger.warning( 'Negative terminal bias not defined : ' + self.refdes ) else: if self._configdict['nbias'] != '-1': self.get_elem_by_idx('R4').data['value'] = electronics.construct_resistor(self._configdict['nbias'], '0.125W') # noqa else: try: self.get_elem_by_idx('R4').data['fillstatus'] = 'DNP' except KeyError: pass
def configure(self, configdict): # Set Resistances self.get_elem_by_idx('R1').data['value'] = electronics.construct_resistor(configdict['R1'], '0.125W') # noqa self.get_elem_by_idx('R2').data['value'] = electronics.construct_resistor(configdict['R1'], '0.125W') # noqa # Set Frequency self._configdict = configdict self.target_Fdiff = Frequency(configdict['Fdiff']) self.target_Fcm = self.target_Fdiff * 21 self.Fdiff = Frequency(configdict['Fdiff']) self._set_biases() self.validate()
def find_resistor(resistance, footprint, device="RES SMD", wattage=None): # TODO This should return a symbol instead, and usages should be adapted # accordingly to make consistent with find_capacitor if isinstance(resistance, str): try: resistance = Resistance(resistance) except ValueError: raise NoGedaSymbolException(resistance) if isinstance(resistance, Resistance): resistance = resistance._value if footprint[0:3] == "MY-": footprint = footprint[3:] if device == "RES THRU": resistances = iec60063.gen_vals(iec60063.get_series("E24"), iec60063.res_ostrs) if resistance in [parse_resistance(x) for x in resistances]: return construct_resistor(normalize_resistance(resistance), "0.25W") # noqa else: raise NoGedaSymbolException(resistance, device) for symbol in gsymlib: if symbol.device == device and symbol.footprint == footprint: res, watt = parse_resistor(symbol.value) sym_resistance = parse_resistance(res) if resistance == sym_resistance: return symbol.value raise NoGedaSymbolException(resistance)
def configure(self, configdict): # Set Resistances self.get_elem_by_idx('R1').data['value'] = electronics.construct_resistor(configdict['R1'], '0.125W') # noqa # Set Frequency self._configdict = configdict self.Fc = float(configdict['Fc'][:-2]) self.validate()
def _get_generator_values(pricegen): """ TODO This function should be parcelled out to conventions """ if pricegen['type'] == 'simple': return pricegen['values'] values = [] if pricegen['type'] == 'resistor': if 'resistances' in pricegen.keys(): for resistance in pricegen['resistances']: values.append(resistance) if 'generators' in pricegen.keys(): for generator in pricegen['generators']: if generator['std'] == 'iec60063': rvalues = iec60063.gen_vals(generator['series'], iec60063.res_ostrs, start=generator['start'], end=generator['end']) for rvalue in rvalues: values.append( construct_resistor(rvalue, generator['wattage']) ) else: raise ValueError if 'values' in pricegen.keys(): if pricegen['values'][0].strip() != '': values += pricegen['values'] return values if pricegen['type'] == 'capacitor': if 'capacitances' in pricegen.keys(): for capacitance in pricegen['capacitances']: values.append(capacitance) if 'generators' in pricegen.keys(): for generator in pricegen['generators']: if generator['std'] == 'iec60063': cvalues = iec60063.gen_vals(generator['series'], iec60063.cap_ostrs, start=generator['start'], end=generator['end']) for cvalue in cvalues: values.append( construct_capacitor(cvalue, generator['voltage']) ) else: raise ValueError if 'values' in pricegen.keys(): if pricegen['values'][0].strip() != '': values += pricegen['values'] return values
def _get_generator_values(pricegen): """ TODO This function should be parcelled out to conventions """ if pricegen['type'] == 'simple': return pricegen['values'] values = [] if pricegen['type'] == 'resistor': if 'resistances' in pricegen.keys(): for resistance in pricegen['resistances']: values.append(resistance) if 'generators' in pricegen.keys(): for generator in pricegen['generators']: if generator['std'] == 'iec60063': rvalues = iec60063.gen_vals(generator['series'], iec60063.res_ostrs, start=generator['start'], end=generator['end']) for rvalue in rvalues: values.append( construct_resistor( resistance=rvalue, wattage=generator['wattage'])) else: raise ValueError if 'values' in pricegen.keys(): if pricegen['values'][0].strip() != '': values += pricegen['values'] return values if pricegen['type'] == 'capacitor': if 'capacitances' in pricegen.keys(): for capacitance in pricegen['capacitances']: values.append(capacitance) if 'generators' in pricegen.keys(): for generator in pricegen['generators']: if generator['std'] == 'iec60063': cvalues = iec60063.gen_vals(generator['series'], iec60063.cap_ostrs, start=generator['start'], end=generator['end']) for cvalue in cvalues: values.append( construct_capacitor( capacitance=cvalue, voltage=generator['voltage'])) else: raise ValueError if 'values' in pricegen.keys(): if pricegen['values'][0].strip() != '': values += pricegen['values'] return values
def _get_data(self): with open(self._genpath) as genfile: gendata = yaml.load(genfile) if gendata["schema"]["name"] == "gsymgenerator" and \ gendata["schema"]["version"] == 1.0: if gendata['type'] == 'simple': self._type = 'Simple' self._ivalues = [ v for v in gendata['values'] if v is not None and v.strip() is not None ] return gendata['values'] values = [] if gendata['type'] == 'resistor': self._type = 'Resistor' giseries = None for resistance in gendata['resistances']: if resistance is not None: values.append(resistance) self._iunits.append(resistance) if 'composite_series' in gendata.keys(): from tendril.conventions.series import CustomValueSeries try: name = gendata['composite_series']['name'] tsymbol = GedaSymbol(self._sympath) giseries = CustomValueSeries( name, 'resistor', device=tsymbol.device, footprint=tsymbol.footprint) except KeyError: pass if 'generators' in gendata.keys(): dcomponents = jb_resistor_defs() for generator in gendata['generators']: self._igen.append(generator) if generator['std'] == 'iec60063': rvalues = iec60063.gen_vals( generator['series'], iec60063.res_ostrs, start=generator['start'], end=generator['end']) components = {} for dcomponent in dcomponents: if dcomponent.code in generator.keys(): try: dcomponent.typeclass( generator[dcomponent.code]) # noqa components[ dcomponent.code] = generator[ dcomponent.code] # noqa except: raise ValueError for rvalue in rvalues: pval = construct_resistor(resistance=rvalue, **components) values.append(pval) if giseries is not None: giseries.add_value(rvalue, pval) else: raise ValueError if giseries is not None: self._iseries.append(giseries) if 'values' in gendata.keys(): if gendata['values'][0].strip() != '': values += gendata['values'] self._ivalues.extend(gendata['values']) if 'custom_series' in gendata.keys(): from tendril.conventions.series import CustomValueSeries for name, series in viewitems(gendata['custom_series']): if series['detail'].pop('type') != 'resistor': raise ValueError('Expected a resistor series') vals = series['values'] tsymbol = GedaSymbol(self._sympath) iseries = CustomValueSeries( name, 'resistor', device=tsymbol.device, footprint=tsymbol.footprint) for type_val, val in viewitems(vals): iseries.add_value(type_val, val) iseries._desc = series['detail'].pop('desc') iseries._aparams = series['detail'] self._iseries.append(iseries) values.extend(vals.values()) return values if gendata['type'] == 'capacitor': self._type = 'Capacitor' giseries = None for capacitance in gendata['capacitances']: if capacitance is not None: values.append(capacitance) self._iunits.append(capacitance) if 'composite_series' in gendata.keys(): from tendril.conventions.series import CustomValueSeries try: name = gendata['composite_series']['name'] tsymbol = GedaSymbol(self._sympath) giseries = CustomValueSeries( name, 'capacitor', device=tsymbol.device, footprint=tsymbol.footprint) except KeyError: pass if 'generators' in gendata.keys(): dcomponents = jb_capacitor_defs() for generator in gendata['generators']: self._igen.append(generator) if generator['std'] == 'iec60063': cvalues = iec60063.gen_vals( generator['series'], iec60063.cap_ostrs, start=generator['start'], end=generator['end']) components = {} for dcomponent in dcomponents: if dcomponent.code in generator.keys(): try: dcomponent.typeclass( generator[dcomponent.code]) # noqa components[ dcomponent.code] = generator[ dcomponent.code] # noqa except: raise ValueError for cvalue in cvalues: pval = construct_capacitor(capacitance=cvalue, **components) values.append(pval) if giseries is not None: giseries.add_value(cvalue, pval) else: raise ValueError if giseries is not None: self._iseries.append(giseries) if 'values' in gendata.keys(): if gendata['values'][0].strip() != '': values += gendata['values'] self._ivalues.append(gendata['values']) if 'custom_series' in gendata.keys(): from tendril.conventions.series import CustomValueSeries for name, series in viewitems(gendata['custom_series']): if series['detail'].pop('type') != 'capacitor': raise ValueError('Expected a capacitor series') vals = series['values'] tsymbol = GedaSymbol(self._sympath) iseries = CustomValueSeries( name, 'capacitor', device=tsymbol.device, footprint=tsymbol.footprint) for type_val, val in viewitems(vals): iseries.add_value(type_val, val) iseries._desc = series['detail'].pop('desc') iseries._aparams = series['detail'] self._iseries.append(iseries) values.extend(vals.values()) return values elif gendata['type'] == 'wire': for gauge in gendata['gauges']: for color in gendata['colors']: values.append('{0} {1}'.format(gauge, color)) return values else: logger.ERROR("Config file schema is not supported")
def _get_data(self): with open(self._genpath) as genfile: gendata = yaml.load(genfile) if gendata["schema"]["name"] == "gsymgenerator" and gendata["schema"]["version"] == 1.0: if gendata["type"] == "simple": self._type = "Simple" self._ivalues = [v for v in gendata["values"] if v is not None and v.strip() is not None] return gendata["values"] values = [] if gendata["type"] == "resistor": self._type = "Resistor" for resistance in gendata["resistances"]: if resistance is not None: values.append(resistance) self._iunits.append(resistance) if "generators" in gendata.keys(): for generator in gendata["generators"]: self._igen.append(generator) if generator["std"] == "iec60063": rvalues = iec60063.gen_vals( generator["series"], iec60063.res_ostrs, start=generator["start"], end=generator["end"] ) for rvalue in rvalues: values.append(construct_resistor(rvalue, generator["wattage"])) # noqa else: raise ValueError if "values" in gendata.keys(): if gendata["values"][0].strip() != "": values += gendata["values"] self._ivalues.extend(gendata["values"]) if "custom_series" in gendata.keys(): from tendril.conventions.series import CustomValueSeries for name, series in viewitems(gendata["custom_series"]): if series["detail"].pop("type") != "resistor": raise ValueError("Expected a resistor series") vals = series["values"] tsymbol = GedaSymbol(self._sympath) iseries = CustomValueSeries( name, "resistor", device=tsymbol.device, footprint=tsymbol.footprint ) for type_val, val in viewitems(vals): iseries.add_value(type_val, val) iseries._desc = series["detail"].pop("desc") iseries._aparams = series["detail"] self._iseries.append(iseries) values.extend(vals.values()) return values if gendata["type"] == "capacitor": self._type = "Capacitor" for capacitance in gendata["capacitances"]: if capacitance is not None: values.append(capacitance) self._iunits.append(capacitance) if "generators" in gendata.keys(): for generator in gendata["generators"]: self._igen.append(generator) if generator["std"] == "iec60063": cvalues = iec60063.gen_vals( generator["series"], iec60063.cap_ostrs, start=generator["start"], end=generator["end"] ) for cvalue in cvalues: values.append(construct_capacitor(cvalue, generator["voltage"])) # noqa else: raise ValueError if "values" in gendata.keys(): if gendata["values"][0].strip() != "": values += gendata["values"] self._ivalues.append(gendata["values"]) if "custom_series" in gendata.keys(): from tendril.conventions.series import CustomValueSeries for name, series in viewitems(gendata["custom_series"]): if series["detail"].pop("type") != "resistor": raise ValueError("Expected a resistor series") vals = series["values"] tsymbol = GedaSymbol(self._sympath) iseries = CustomValueSeries( name, "resistor", device=tsymbol.device, footprint=tsymbol.footprint ) for type_val, val in viewitems(vals): iseries.add_value(type_val, val) iseries._desc = series["detail"].pop("desc") iseries._aparams = series["detail"] self._iseries.append(iseries) values.extend(vals.values()) return values elif gendata["type"] == "wire": for gauge in gendata["gauges"]: for color in gendata["colors"]: values.append("{0} {1}".format(gauge, color)) return values else: logger.ERROR("Config file schema is not supported")