コード例 #1
0
ファイル: Form1.cs プロジェクト: RoBoardGod/RoBoME
        //load file
        private void actionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Motion != null)
            {
                if (!onPC)
                    RoBoIO.rcservo_Close();
                DialogResult dialogResult = MessageBox.Show("Do you want to save?", "", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    saveFileToolStripMenuItem_Click(sender,e);
                }
            }
            NewMotion nMotion = new NewMotion();
            ME_Triggerlist = new ArrayList();
            ME_Motionlist = new ArrayList();
            string[] rbver = new string[] { "---unset---",
                                            "RB_100b1",
                                            "RB_100b2",
                                            "RB_100b3",
                                            "RB_100",
                                            "RB_100RD",
                                            "RB_110",
                                            "unknow"};
            string[] servo = new string[] { "---noServo---",
                                            "KONDO_KRS786",
                                            "KONDO_KRS788",
                                            "KONDO_KRS78X",
                                            "KONDO_KRS4014",
                                            "KONDO_KRS4024",
                                            "HITEC_HSR8498",
                                            "FUTABA_S3003",
                                            "SHAYYE_SYS214050",
                                            "TOWERPRO_MG995",
                                            "TOWERPRO_MG996",
                                            "DMP_RS0263",
                                            "DMP_RS1270",
                                            "GWS_S777",
                                            "GWS_S03T",
                                            "GWS_MICRO"};
            ME_Motion motiontag = null;

            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "rbm files (*.rbm)|*.rbm";
            dialog.InitialDirectory = Environment.CurrentDirectory + "\\";
            dialog.Title = "Open File";
            String filename = (dialog.ShowDialog() == DialogResult.OK) ? dialog.FileName : null;
            if (filename == null)
            {
                return;
            }
            using (StreamReader reader = new StreamReader(filename))
            {
                nfilename = Path.GetFileName(dialog.FileName);
                triggerlist.Items.Clear();
                MotionCombo.Items.Clear();
                MotionCombo.Text = "";
                Motionlist.Items.Clear();
                delaytext.Text = "0";
                typecombo.Text = "";
                string[] datas = reader.ReadToEnd().Split(delimiterChars);
                for (int i = 0; i < datas.Length; i++)
                {
                    if (String.Compare(datas[i], "RoBoardVer") == 0)
                    {
                        i++;
                        for (int j = 0; j < rbver.Length; j++)
                            if (String.Compare(datas[i], rbver[j]) == 0)
                            {
                                nMotion.comboBox1.SelectedIndex = j;
                            }
                    }
                    else if (String.Compare(datas[i], "Homeframe") == 0)
                    {
                        i++;
                        if (String.Compare(datas[i], "Yes") == 0)
                            nMotion.checkBox1.Checked = true;
                        else
                            nMotion.checkBox1.Checked = false;
                    }
                    else if (String.Compare(datas[i], "Range") == 0)
                    {
                        i++;
                        if (String.Compare(datas[i], "Yes") == 0)
                            nMotion.checkBox2.Checked = true;
                        else
                            nMotion.checkBox2.Checked = false;
                    }
                    else if (String.Compare(datas[i], "Servo") == 0)
                    {

                        for (int k = 0; k < 32; k++)
                        {
                            i++;
                            for (int j = 0; j < servo.Length; j++)
                                if (String.Compare(datas[i], servo[j]) == 0)
                                    nMotion.fbox[k].SelectedIndex = j;
                        }
                    }
                    else if (String.Compare(datas[i], "Trigger") == 0)
                    {
                        ME_Trigger m = new ME_Trigger();
                        i++;
                        m.key = datas[i];
                        i++;
                        if (String.Compare(datas[i], "null") != 0)
                        {
                            m.motion = new ME_Motion();
                            m.motion.name = datas[i];
                            ME_Motionlist.Add(m.motion);
                        }
                        else
                            m.motion = null;
                        ME_Triggerlist.Add(m);
                    }
                    else if (String.Compare(datas[i], "Motion") == 0)
                    {
                        i++;
                        for (int j = 0; j < ME_Motionlist.Count; j++)
                        {
                            motiontag = (ME_Motion)ME_Motionlist[j];
                            if (String.Compare(datas[i], motiontag.name) != 0)
                                motiontag = null;
                            else
                                break;
                        }
                        if (motiontag == null)
                        {
                            motiontag = new ME_Motion();
                            motiontag.name = datas[i];
                            ME_Motionlist.Add(motiontag);
                        }
                    }
                    else if (String.Compare(datas[i], "MotionEnd") == 0)
                    {
                        i++;
                        if (String.Compare(datas[i], motiontag.name) == 0)
                            motiontag = null;
                    }
                    else if (String.Compare(datas[i], "frame") == 0)
                    {

                        ME_Frame nframe = new ME_Frame();
                        i++;
                        nframe.delay = int.Parse(datas[i]);
                        int j = 0;
                        while (j < 32)
                        {
                            if (String.Compare(nMotion.fbox[j].SelectedItem.ToString(), "---noServo---") != 0)
                            {
                                i++;
                                nframe.frame[j] = int.Parse(datas[i]);
                            }
                            else
                            {
                                nframe.frame[j] = 0;
                            }
                            j++;
                        }
                        motiontag.Events.Add(nframe);
                    }
                    else if (String.Compare(datas[i], "delay") == 0)
                    {
                        ME_Delay ndelay = new ME_Delay();
                        i++;
                        ndelay.delay = int.Parse(datas[i]);
                        motiontag.Events.Add(ndelay);
                    }
                    else if (String.Compare(datas[i], "sound") == 0)
                    {
                        ME_Sound nsound = new ME_Sound();
                        i++;
                        nsound.filename = datas[i];
                        i++;
                        nsound.delay = int.Parse(datas[i]);
                        motiontag.Events.Add(nsound);
                    }
                    else if (String.Compare(datas[i], "flag") == 0)
                    {
                        ME_Flag nflag = new ME_Flag();
                        i++;
                        nflag.name = datas[i];
                        motiontag.Events.Add(nflag);
                    }
                    else if (String.Compare(datas[i], "goto") == 0)
                    {
                        ME_Goto ngoto = new ME_Goto();
                        i++;
                        ngoto.name = datas[i];
                        i++;
                        ngoto.key = datas[i];
                        motiontag.Events.Add(ngoto);
                    }
                }
            }

            if (File.Exists("offset.txt"))
                using (StreamReader reader = new StreamReader(Environment.CurrentDirectory + "\\offset.txt"))
                {
                    string[] datas = reader.ReadToEnd().Split(delimiterChars);
                    for (int i = 0; i < 32; i++)
                    {
                        offset[i] = uint.Parse(datas[i]);
                    }

                }
            else
                for (int i = 0; i < 32; i++)
                {
                    offset[i] = 0;
                }
            if (File.Exists("homeframe.txt"))
                using (StreamReader reader = new StreamReader(Environment.CurrentDirectory + "\\homeframe.txt"))
                {
                    string[] datas = reader.ReadToEnd().Split(delimiterChars);
                    for (int i = 0; i < 32; i++)
                    {
                        homeframe[i] = uint.Parse(datas[i]);
                    }

                }
            else
                for (int i = 0; i < 32; i++)
                {
                    homeframe[i] = 0;
                }
            if (File.Exists("Range.txt"))
                using (StreamReader reader = new StreamReader(Environment.CurrentDirectory + "\\Range.txt"))
                {
                    string[] datas = reader.ReadToEnd().Split(delimiterChars);
                    for (int i = 0; i < 32; i++)
                    {
                        min[i] = uint.Parse(datas[i]);
                        Max[i] = uint.Parse(datas[i + 32]);
                    }
                }
            else
                for (int i = 0; i < 32; i++)
                {
                    min[i] = 600;
                    Max[i] = 2300;
                }
            if (nMotion.picfilename != null)
                Framelist.BackgroundImage = Image.FromFile(Environment.CurrentDirectory + "\\" + nMotion.picfilename);
            groupBox2.Enabled = true;
            groupBox3.Enabled = true;
            optionToolStripMenuItem.Enabled = true;
            saveFileToolStripMenuItem.Enabled = true;
            NewMotion.Enabled = false;
            Motion = nMotion;
            for (int i = 0; i < ME_Motionlist.Count; i++)
            {
                ME_Motion m = (ME_Motion)ME_Motionlist[i];
                MotionCombo.Items.Add(m.name);
            }
            for (int i = 0; i < ME_Triggerlist.Count; i++)
            {
                ME_Trigger t = (ME_Trigger)ME_Triggerlist[i];
                if(t.motion != null)
                    triggerlist.Items.Add("Trigger: " + t.key + "\tMotion: " + t.motion.name);
                else
                    triggerlist.Items.Add("Trigger: " + t.key + "\tMotion: ");

            }
            if (!onPC)
            {
                set_RBver();
                set_RCservo();
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: RoBoardGod/RoBoME
 private void triggerlistevent(object sender, ToolStripItemClickedEventArgs e)
 {
     if (String.Compare(e.ClickedItem.Text, "New Trigger") == 0) {
         ME_Trigger t = new ME_Trigger();
         t.motion = null;
         t.key = "";
         ME_Triggerlist.Insert(triggerlist.SelectedIndex+1,t);
         if(t.motion != null)
             triggerlist.Items.Insert(triggerlist.SelectedIndex+1, "Trigger: " + t.key + "\tMotion: " + t.motion.name);
         else
             triggerlist.Items.Insert(triggerlist.SelectedIndex + 1, "Trigger: " + t.key + "\tMotion: ");
     }
     else if (String.Compare(e.ClickedItem.Text, "Delete Trigger") == 0)
     {
         ME_Triggerlist.RemoveAt(triggerlist.SelectedIndex);
         triggerlist.Items.RemoveAt(triggerlist.SelectedIndex);
     }
     else if (String.Compare(e.ClickedItem.Text, "Set Trigger") == 0)
     {
         TriggerSet ts = new TriggerSet(((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).key);
         ts.ShowDialog();
         if (ts.DialogResult == DialogResult.OK)
         {
             ((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).key = ts.Keyvalue.Text;
             if (((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).motion != null)
             {
                 triggerlist.Items.Insert(triggerlist.SelectedIndex, "Trigger: " + ((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).key + "\tMotion: " + ((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).motion.name);
                 triggerlist.Items.RemoveAt(triggerlist.SelectedIndex);
             }
             else
             {
                 triggerlist.Items.Insert(triggerlist.SelectedIndex, "Trigger: " + ((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).key + "\tMotion: ");
                 triggerlist.Items.RemoveAt(triggerlist.SelectedIndex);
             }
         }
     }
     else if (String.Compare(e.ClickedItem.Text, "Link Motion") == 0)
     {
         if (MotionCombo.SelectedIndex >= 0)
         {
             ((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).motion = (ME_Motion)ME_Motionlist[MotionCombo.SelectedIndex];
             triggerlist.Items.Insert(triggerlist.SelectedIndex, "Trigger: " + ((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).key + "\tMotion: " + ((ME_Trigger)ME_Triggerlist[triggerlist.SelectedIndex]).motion.name);
             triggerlist.Items.RemoveAt(triggerlist.SelectedIndex);
         }
         else {
             MessageBox.Show("Please choose a Motion.");
         }
     }
 }