using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using iio; namespace IIOCSharp { class ExampleProgram { static void Main(string[] args) { Context ctx = new Context("10.44.2.241"); if (ctx == null) { Console.WriteLine("Unable to create IIO context"); return; } Console.WriteLine("IIO context created: " + ctx.name); Console.WriteLine("IIO context description: " + ctx.description); Console.WriteLine("IIO context has " + ctx.devices.Count + " devices:"); foreach (Device dev in ctx.devices) { Console.WriteLine("\t" + dev.id + ": " + dev.name); if (dev is Trigger) { Console.WriteLine("Found trigger! Rate=" + ((Trigger) dev).get_rate()); } Console.WriteLine("\t\t" + dev.channels.Count + " channels found:"); foreach (Channel chn in dev.channels) { string type = "input"; if (chn.output) type = "output"; Console.WriteLine("\t\t\t" + chn.id + ": " + chn.name + " (" + type + ")"); if (chn.attrs.Count == 0) continue; Console.WriteLine("\t\t\t" + chn.attrs.Count + " channel-specific attributes found:"); foreach (Attr attr in chn.attrs) { Console.WriteLine("\t\t\t\t" + attr.name); if (attr.name.CompareTo("frequency") == 0) { Console.WriteLine("Attribute content: " + attr.read()); } } } /* If we find cf-ad9361-lpc, try to read a few bytes from the first channel */ if (dev.name.CompareTo("cf-ad9361-lpc") == 0) { Channel chn = dev.channels[0]; chn.enable(); IOBuffer buf = new IOBuffer(dev, 0x8000); buf.refill(); Console.WriteLine("Read " + chn.read(buf).Length + " bytes from hardware"); buf.Dispose(); } if (dev.attrs.Count == 0) continue; Console.WriteLine("\t\t" + dev.attrs.Count + " device-specific attributes found:"); foreach (Attr attr in dev.attrs) Console.WriteLine("\t\t\t" + attr.name); } /* Wait for user input */ Console.ReadLine(); } } }