using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Xml; using System.Xml.Serialization; namespace ConsoleApplication1 { public class Hradla { const string serhead = "\n\n"; public Dictionary FPGA = new Dictionary(); public void Load(string filename) { if (FPGA.ContainsKey(filename)) { FPGA[filename].Reset(); return; } Data_struct ds = new Data_struct(); net n = OpenFile(filename); ds.ParseData(n); FPGA.Add(filename, ds); } net OpenFile(string filename) { StreamReader sr = new StreamReader(filename); string xml = sr.ReadToEnd(); sr.Close(); xml = xml.Replace("", serhead); MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(xml)); XmlSerializer xmls = new XmlSerializer(typeof(net), "net"); return xmls.Deserialize(ms) as net; } public int[] CallFPGA(int[] inputs,string filename) { Data_struct ds = FPGA[filename]; int i=0; foreach (var item in inputs) { io inp = ds.inputs[i] as io; ds.lines[inp.linename].state = item; i++; } ; while (ds.Step() != true) { } List outp = new List(); foreach (var item in ds.outputs) { io o = item as io; outp.Add(ds.lines[o.linename].state); } return outp.ToArray(); } } }