public static YFilesProxy FindFiles(string name) { // cases to handle: // name ="" no matching unknwn // name ="" unknown exists // name != "" no matching unknown // name !="" unknown exists YFiles func = null; YFilesProxy res = (YFilesProxy)YFunctionProxy.FindSimilarUnknownFunction("YFilesProxy"); if (name == "") { if (res != null) { return(res); } res = (YFilesProxy)YFunctionProxy.FindSimilarKnownFunction("YFilesProxy"); if (res != null) { return(res); } func = YFiles.FirstFiles(); if (func != null) { name = func.get_hardwareId(); if (func.get_userData() != null) { return((YFilesProxy)func.get_userData()); } } } else { func = YFiles.FindFiles(name); if (func.get_userData() != null) { return((YFilesProxy)func.get_userData()); } } if (res == null) { res = new YFilesProxy(func, name); } if (func != null) { res.linkToHardware(name); if (func.isOnline()) { res.arrival(); } } return(res); }
/** * <summary> * Enumerates all functions of type Files available on the devices * currently reachable by the library, and returns their unique hardware ID. * <para> * Each of these IDs can be provided as argument to the method * <c>YFiles.FindFiles</c> to obtain an object that can control the * corresponding device. * </para> * </summary> * <returns> * an array of strings, each string containing the unique hardwareId * of a device function currently connected. * </returns> */ public static new string[] GetSimilarFunctions() { List <string> res = new List <string>(); YFiles it = YFiles.FirstFiles(); while (it != null) { res.Add(it.get_hardwareId()); it = it.nextFiles(); } return(res.ToArray()); }
static void Main(string[] args) { string errmsg = ""; string target; YFiles files; if (args.Length < 1) { usage(); } target = args[0].ToUpper(); // API init if (YAPI.RegisterHub("usb", ref errmsg) != YAPI.SUCCESS) { Console.WriteLine("RegisterHub error: " + errmsg); Environment.Exit(0); } // find the display according to command line parameters if (target == "ANY") { files = YFiles.FirstFiles(); if (files == null) { Console.WriteLine("No module with files features (check USB cable) "); Environment.Exit(0); } } else { files = YFiles.FindFiles(target + ".files"); } if (!files.isOnline()) { Console.WriteLine("No module with files connected (check identification and USB cable) "); Environment.Exit(0); } Console.WriteLine(); Console.WriteLine("Using " + files.get_friendlyName()); Console.WriteLine(); byte[] binaryData; // create text files and upload them to the device for (int i = 1; i <= 5; i++) { string contents = "This is file " + i; // convert the string to binary data binaryData = Encoding.ASCII.GetBytes(contents); // upload the file to the device files.upload("file" + i + ".txt", binaryData); } // list files found on the device Console.WriteLine("Files on device:"); List <YFileRecord> filelist = files.get_list("*"); for (int i = 0; i < filelist.Count(); i++) { string filename = filelist[i].get_name(); Console.Write(filename); Console.Write(new string(' ', 40 - filename.Length)); // align Console.Write(filelist[i].get_crc().ToString("X")); Console.Write(" "); Console.WriteLine(filelist[i].get_size() + " bytes"); } //download a file binaryData = files.download("file1.txt"); // convert to string string st = System.Text.Encoding.Default.GetString(binaryData); // and display Console.WriteLine(""); Console.WriteLine("contents of file1.txt:"); Console.WriteLine(st); }