Example #1
0
 public int closeInstrument()
 {
     MagnetDriveDriver.CloseChannel(channelHandle);
     MagnetDriveDriver.Power(0);
     SerializeData.SerializeObject <MagnetDriveSettings>(magSettings, settingsFile);
     return(0);
 }
Example #2
0
        public static short initDrive(string comPort, uint baudRate, string setupFile, byte axisID)
        {
            short retOpen = MagnetDriveDriver.OpenChannel(comPort, 0, 0, baudRate);

            //succesful opening of the channel
            if (retOpen > 0)
            {
                short setup = MagnetDriveDriver.LoadSetup(setupFile);

                if (MagnetDriveDriver.SetupAxis(1, setup) != 0)
                {
                    if (MagnetDriveDriver.SelectAxis(1) != 0)
                    {
                        if (MagnetDriveDriver.DriveInitialisation() == 0)
                        {
                            retOpen = -1;
                        }
                    }
                    else
                    {
                        retOpen = -1;
                    }
                }
                else
                {
                    retOpen = -1;
                }
            }

            return(retOpen);
        }
Example #3
0
 private void updateStatus()
 {
     if (driveStatus == 0)
     {
         lblDriveStatus.Text = "Drive status: off";
     }
     else
     {
         lblDriveStatus.Text = "Drive status: on";
         nudCurrentPos.Value = (decimal)(MagnetDriveDriver.getMotorPosition(setup) * 180 / Math.PI);
     }
 }
Example #4
0
        private void cmdInitDrive_Click(object sender, EventArgs e)
        {
            string comPort   = txtComPort.Text;
            uint   baudRate  = (uint)(nudBaudRate.Value);
            string setupFile = txtSetupFile.Text;
            byte   axisID    = (byte)(nudAxisID.Value);
            string pwd       = Directory.GetCurrentDirectory();

            channelHandle = MagnetDriveDriver.initDrive(comPort, baudRate, setupFile, axisID);

            if (channelHandle > 0)
            {
                driveStatus = MagnetDriveDriver.Power(1);
            }
            updateStatus();
        }
Example #5
0
        private void moveMagnet()
        {
            //find the speed of the magnet drive (converted from T/s to rad/s)
            double speed_T_s = (double)nudRampRate.Value;

            double maxPos = calibration[calibration.GetLength(0) - 1, 1];
            double minPos = calibration[0, 1];

            double maxField = calibration[calibration.GetLength(0) - 1, 0];
            double minField = calibration[0, 0];

            double speed_deg_s = Math.Abs(speed_T_s * (maxPos - minPos) / (maxField - minField));


            int retval = MagnetDriveDriver.moveMagnet((double)nudSetPos.Value * Math.PI / 180, speed_deg_s * Math.PI / 180, 2, setup);

            updateStatus();
        }
Example #6
0
 private void cmdReset_Click(object sender, EventArgs e)
 {
     MagnetDriveDriver.Reset();
     //MagnetDriveDriver.ResetFault();
 }