// link the instance to a real YoctoAPI object
        internal override void linkToHardware(string hwdName)
        {
            YFiles hwd = YFiles.FindFiles(hwdName);

            // first redo base_init to update all _func pointers
            base_init(hwd, hwdName);
            // then setup Yocto-API pointers and callbacks
            init(hwd);
        }
        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);
        }
Beispiel #3
0
        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);
        }