Esempio n. 1
0
        internal bool readEEPROM(int length)
        {
            bool       fail = false;
            ArduinoSTK sp   = osd.OpenArduino();

            byte[] data;

            if (sp != null && sp.connectAP())
            {
                try {
                    for (int i = 0; i < 5; i++)   //try to download two times if it fail
                    {
                        data = sp.download(EEPROM_SIZE);
                        if (sp.down_flag)
                        {
                            eeprom.data = data;
                            break;
                        }
                        else
                        {
                            if (sp.keepalive())
                            {
                                Console.WriteLine("keepalive successful (iter " + i + ")");
                            }
                            else
                            {
                                Console.WriteLine("keepalive fail (iter " + i + ")");
                            }
                        }
                    }
                } catch (Exception ex) {
                    if (ex != null)
                    {
                        MessageBox.Show(ex.Message);
                        fail = true;
                    }
                }
            }
            else
            {
                MessageBox.Show("Failed to talk to bootloader");
                fail = true;
            }

            try {
                sp.Close();
            } catch {};

            return(fail);
        }