コード例 #1
0
ファイル: PartTool.cs プロジェクト: valor7/ESPToolsGUI
        private async void SavePartition(string filename)
        {
            await partition.CreatePartition(Nvs, Ota0, Ota1, Eeprom, Spiffs);

            File.Copy(partition.GetPartitionPath(filename.EndsWith(".bin")), filename, true);
        }
コード例 #2
0
        private async void editPartitionTableToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Regex re = new Regex(@"(\d+)(\.\d+)?\s*");
            var   m  = re.Matches(tool.Flash);

            if (m.Count > 0)
            {
                PartTool pt = new PartTool(int.Parse(m[0].Value), partition);
                foreach (ListViewItem lv in partitionListview.Items)
                {
                    m = re.Matches(lv.SubItems[4].Text);
                    double size = double.Parse(m[0].Value);
                    if (m.Count > 1)
                    {
                        double.Parse(m[0].Value + "." + m[1].Value);
                    }
                    if (lv.SubItems[4].Text.IndexOf("k") > 0)
                    {
                        size *= 1024;
                    }
                    if (lv.SubItems[4].Text.IndexOf("M") > 0)
                    {
                        size *= 1024 * 1024;
                    }
                    size = Convert.ToInt32(size);
                    switch (lv.Text.Replace("\0", "").Trim())
                    {
                    case "nvs":
                        pt.SetNvs(int.Parse(size.ToString()));
                        break;

                    case "eeprom":
                        pt.SetEeprom(int.Parse(size.ToString()));
                        break;

                    case "app0":
                        pt.SetOta0(int.Parse(size.ToString()), null);
                        break;

                    case "app1":
                        pt.SetOta1(int.Parse(size.ToString()));
                        break;

                    case "spiffs":
                        pt.SetSpiffs(int.Parse(size.ToString()));
                        break;
                    }
                }
                if (pt.ShowDialog() == DialogResult.Yes)
                {
                    var res = partition.CreatePartition(PartTool.Nvs, PartTool.Ota0, PartTool.Ota1, PartTool.Eeprom, PartTool.Spiffs);
                    await tool.Execute("--before default_reset --after hard_reset write_flash 0x8000 part.bin");

                    FillPartitionTab();
                }
            }
            else
            {
                MessageBox.Show("Unable to get flash size. Connect device before execute this function.", "Error");
            }
        }