private void BtnSave_Click(object sender, EventArgs e) { string installFolder = Properties.Settings.Default.installLocation; if (Directory.Exists(installFolder + "\\Community\\Tree-Editor\\vegetation") == false) { Directory.CreateDirectory(installFolder + "\\Community\\Tree-Editor\\vegetation"); } xmlBiomes.Save(Properties.Settings.Default.xmlFileBiomes); int xmlFileSize = (int)new FileInfo(Properties.Settings.Default.xmlFileBiomes).Length; LayoutJson layout = new LayoutJson(); layout.setSize(xmlFileSize); File.WriteAllText(Properties.Settings.Default.layoutFile, layout.getJson()); if (File.Exists(Properties.Settings.Default.xmlFile)) { xmlFileSize += (int)new FileInfo(Properties.Settings.Default.xmlFile).Length; } if (File.Exists(Properties.Settings.Default.xmlFileBiomesCities)) { xmlFileSize += (int)new FileInfo(Properties.Settings.Default.xmlFileBiomesCities).Length; } Manifest manifest = new Manifest(); manifest.setSize(xmlFileSize); File.WriteAllText(Properties.Settings.Default.manifestFile, manifest.getJson()); }
private void GenerateTraceSubckt(LayoutJson.Signal trace) { // this is where the smarts of what type of trace subcircuit to generate will reside // reference hspice98 - chapter21, pp 21-2: Selecting Wire Models // choices for wire models: // 1. no model // 2. lumped models with RLC - simple R, shunt cap C, series inductor and resistor RL, series resistor and shunt cap RC // 3. ideal - lossless transmission line // 4. lossy transmission line // decision based on : // 1. source properties: rise time - trise, source resistance - Rsource // 2. connector properties: characteristic impedance - Z0, time delay - TD (function of length/frequency) // OR : equiv resistance - R, equiv inductance - L, equiv capacitance - C // decision tree: Figure 21-1, Wire Model Selection Chart (wire_select.jpg) // a) trise > 5TD (low frequency) --- use lumped model with RLC (criteria for R / RL / RC in wire_select.jpg) // b) trise < 5TD (high frequence) --- use lossy or lossless transmission line StringWriter subckt = new StringWriter(); subckt.WriteLine(".subckt Trace_{0} 1 2", trace.name); subckt.WriteLine("* Simple Transmission Line Model "); subckt.WriteLine("TL 1 0 2 0 Z0=50 TD=10ns"); subckt.WriteLine(".ends Trace_{0}", trace.name); circuit_obj.subcircuits.Add(string.Format("Trace_{0}", trace.name), subckt.ToString()); }