private void button1_Click(object sender, EventArgs e)
        {
            GPIBGroup gg = new GPIBGroup("Gpib Group " + (Storage.sequenceData.GpibGroups.Count + 1));

            Storage.sequenceData.GpibGroups.Add(gg);
            setGpibGroup(gg);
        }
        private void gpibSelector_SelectedValueChanged(object sender, EventArgs e)
        {
            if (gpibSelector.SelectedItem.ToString() == "Continue")
            {
                gpibSelector.BackColor = Color.Green;
                toolTip1.SetToolTip(gpibSelector, "Continue previous GPIB group.");
            }
            else
            {
                gpibSelector.BackColor = Color.White;
            }

            if (stepData != null)
            {
                GPIBGroup gg = gpibSelector.SelectedItem as GPIBGroup;
                stepData.GpibGroup = gg;
                if (updateGUI != null)
                {
                    updateGUI(sender, e);
                }
                if (gg != null)
                {
                    toolTip1.SetToolTip(gpibSelector, gg.GroupDescription);
                }
            }

            gpibSelectorBackupItem = gpibSelector.SelectedItem;
        }
        public void setGpibGroup(GPIBGroup gpibGroup)
        {
            if (gpibGroup == null)
            {
                gpibGroup = new GPIBGroup("Placehold analog group. Do not use.");
                replacementGroupSelector.Enabled = false;
            }
            else
                replacementGroupSelector.Enabled = true;

            previousObjectBackup = gpibGroup;

            this.gpibGroup = gpibGroup;

            this.renameTextBox.Text = gpibGroup.GroupName;
            fillSelectorCombobox();
            gpibGroupBeingChanged = true;
            this.gpibGroupSelector.SelectedItem = gpibGroup;
            gpibGroupBeingChanged = false;
            layoutGroupChannelSelectors();
            layoutGraphCollection();
            waveformEditor1.setWaveform(null);
            descBox.Text = gpibGroup.GroupDescription;

            replacementGroupSelector.SelectedItem = null;
        }
        public void setGpibGroup(GPIBGroup gpibGroup)
        {
            if (gpibGroup == null)
            {
                gpibGroup = new GPIBGroup("Placehold analog group. Do not use.");
                replacementGroupSelector.Enabled = false;
            }
            else
            {
                replacementGroupSelector.Enabled = true;
            }

            previousObjectBackup = gpibGroup;

            this.gpibGroup = gpibGroup;


            this.renameTextBox.Text = gpibGroup.GroupName;
            fillSelectorCombobox();
            gpibGroupBeingChanged = true;
            this.gpibGroupSelector.SelectedItem = gpibGroup;
            gpibGroupBeingChanged = false;
            layoutGroupChannelSelectors();
            layoutGraphCollection();
            waveformEditor1.setWaveform(null);
            descBox.Text            = gpibGroup.GroupDescription;
            gpibGroup.UserGPIBGroup = true;

            replacementGroupSelector.SelectedItem = null;
        }
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (!gpibGroupBeingChanged)
     {
         previousObjectBackup = gpibGroupSelector.SelectedItem;
         GPIBGroup gg = gpibGroupSelector.SelectedItem as GPIBGroup;
         setGpibGroup(gg);
     }
 }
        private void renameButton_Click(object sender, EventArgs e)
        {
            GPIBGroup temp = this.gpibGroup;

            if (gpibGroup != null)
            {
                gpibGroup.GroupName = renameTextBox.Text;
                this.gpibGroupSelector.SelectedItem = null;
                this.gpibGroupSelector.SelectedItem = temp;
            }
        }
        public void updateRunOrderPanel()
        {
            if (runOrderLabels != null)
            {
                foreach (Label lab in runOrderLabels)
                {
                    runOrderPanel.Controls.Remove(lab);
                    lab.Dispose();
                }
                runOrderLabels.Clear();
                runOrderLabelGroups.Clear();
            }
            else
            {
                runOrderLabels      = new List <Label>();
                runOrderLabelGroups = new Dictionary <Label, GPIBGroup>();
            }

            int xPos = label2.Location.X + label2.Width;

            if (Storage.sequenceData != null)
            {
                if (Storage.sequenceData.TimeSteps != null)
                {
                    foreach (TimeStep step in Storage.sequenceData.enabledTimeSteps())
                    {
                        if (step.GpibGroup != null)
                        {
                            GPIBGroup gg  = step.GpibGroup;
                            Label     lab = new Label();
                            lab.Text         = gg.ToString();
                            lab.BorderStyle  = BorderStyle.FixedSingle;
                            lab.AutoSize     = false;
                            lab.Width        = 80;
                            lab.TextAlign    = ContentAlignment.MiddleCenter;
                            lab.AutoEllipsis = true;
                            lab.Location     = new Point(xPos, label2.Location.Y);
                            lab.Click       += new EventHandler(runOrderLabelClick);
                            runOrderLabelGroups.Add(lab, gg);
                            runOrderLabels.Add(lab);



                            this.toolTip1.SetToolTip(lab, "Timestep: " + step.StepName + ", Duration: " + step.StepDuration.ToString());

                            xPos += lab.Width + 10;
                        }
                    }
                }
            }

            runOrderPanel.Controls.AddRange(runOrderLabels.ToArray());
        }
        private void replaceGroupButton_Click(object sender, EventArgs e)
        {
            GPIBGroup replacementGroup = replacementGroupSelector.SelectedItem as GPIBGroup;

            if (replacementGroup != null)
            {
                if (replacementGroup != this.gpibGroup)
                {
                    DialogResult result = MessageBox.Show("This will permanently replace all occurences of the currently edited group with the group selected near the Replace button. Are you sure you want to proceed?", "Replace analog group?", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        Storage.sequenceData.replaceGPIBGroup(gpibGroup, replacementGroup);
                        WordGenerator.MainClientForm.instance.RefreshSequenceDataToUI();
                    }
                }
            }
        }
        public override bool outputGPIBGroup(GPIBGroup gpibGroup, SettingsData settings)
        {
            lock (remoteLockObj)
            {
                try
                {
                    messageLog(this, new MessageEvent("Received an output gpib group request."));

                    if (gpibGroup == null)
                    {
                        messageLog(this, new MessageEvent("Received a null object, unable to comply."));
                        displayError();
                        return false;
                    }

                    if (!stopAndCleanupTasks())
                        return false;

                    if (!setSettings(settings))
                        return false;

                    foreach (int channelID in usedGpibChannels.Keys)
                    {
                        if (gpibGroup.channelEnabled(channelID))
                        {
                            HardwareChannel hc = usedGpibChannels[channelID];
                            GPIBGroupChannelData channelData = gpibGroup.ChannelDatas[channelID];
                            if (channelData.DataType == GPIBGroupChannelData.GpibChannelDataType.raw_string)
                            {
                                NationalInstruments.NI4882.Device gpibDevice = new NationalInstruments.NI4882.Device(hc.gpibBoardNumber(), niAddress(hc.GpibAddress));
                                gpibDevice.Write(
                                    GpibTask.AddNewlineCharacters(channelData.RawString));
                                messageLog(this, new MessageEvent("Wrote GPIB data : " + channelData.RawString));
                            }
                            else if (channelData.DataType == GPIBGroupChannelData.GpibChannelDataType.string_param_string)
                            {
                                NationalInstruments.NI4882.Device gpibDevice = new NationalInstruments.NI4882.Device(hc.gpibBoardNumber(), niAddress(hc.GpibAddress));
                                if (channelData.StringParameterStrings != null)
                                {
                                    foreach (StringParameterString sps in channelData.StringParameterStrings)
                                    {
                                        gpibDevice.Write(
                                            GpibTask.AddNewlineCharacters(sps.ToString()));
                                        messageLog(this, new MessageEvent("Wrote GPIB data : " + sps.ToString()));
                                    }
                                }
                            }
                            else
                            {
                                messageLog(this, new MessageEvent("Skipping channel " + channelID + ", unsupported data type for an Output Now request: " + channelData.DataType.ToString()));
                                displayError();
                            }
                        }
                    }
                    return true;
                }
                catch (Exception e)
                {
                    messageLog(this, new MessageEvent("Caught exception when attempting to output gpib group: " + e.Message + e.StackTrace));
                    displayError();
                    return false;
                }
            }
        }
        /// <summary>
        /// Replaces all occurences in sequence of GPIB group ReplaceMe with group Withme, then
        /// removes ReplaceMe from list of groups.
        /// </summary>
        /// <param name="replaceMe"></param>
        /// <param name="withMe"></param>
        public void replaceGPIBGroup(GPIBGroup replaceMe, GPIBGroup withMe)
        {
            foreach (TimeStep step in TimeSteps)
            {
                if (step.GpibGroup == replaceMe)
                {
                    step.GpibGroup = withMe;
                }
            }

            if (gpibGroups.Contains(replaceMe))
                gpibGroups.Remove(replaceMe);
        }
 public override bool outputGPIBGroup(GPIBGroup gpibGroup, SettingsData settings)
 {
     return(true);
 }
 public ServerActionStatus outputGPIBGroupOnConnectedServers(GPIBGroup gpibGroup, SettingsData settings, EventHandler<MessageEvent> messageLog)
 {
     return runNamedMethodOnConnectedServers("outputGPIBGroup", new object[] { gpibGroup, settings }, 4000, messageLog);
 }
 private void button1_Click(object sender, EventArgs e)
 {
     GPIBGroup gg = new GPIBGroup("Gpib Group " + (Storage.sequenceData.GpibGroups.Count+1));
     Storage.sequenceData.GpibGroups.Add(gg);
     setGpibGroup(gg);
 }
 public void activateGPIBGroupEditor(GPIBGroup gg)
 {
     this.gpibGroupEditor1.setGpibGroup(gg);
     this.mainTab.SelectedIndex = 2;
 }
 /// <summary>
 /// Outputs a single gpib group. (evaluated at the beginning of the group.)
 /// </summary>
 /// <param name="gpibGroup"></param>
 /// <param name="settings"></param>
 /// <returns></returns>
 public abstract bool outputGPIBGroup(GPIBGroup gpibGroup, SettingsData settings);
 public override bool outputGPIBGroup(GPIBGroup gpibGroup, SettingsData settings)
 {
     return true;
 }