Bulk status record uploaded from KFLOP
Exemple #1
0
        /// <summary>
        /// Create Bulk status record  
        /// </summary>
        public static KM_MainStatus GetStatus
    (
    int versionandsize,
    int[] adc,
    int[] dac,
    int[] pwm,
    double[] position,
    double[] destination,
    int[] outputchan0,
    int inputmodes,
    int inputmodes2,
    int outputmodes,
    int outputmodes2,
    int enables,
    int axisdone,
    int[] bitsdirection,
    int[] bitsstate,
    int snapbitsdirection0,
    int snapbitsdirection1,
    int snapbitsstate0,
    int snapbitsstate1,
    int kanalgobitsstateinputs,
    int kanalogbitsstateoutputs,
    int runonstartup,
    int threadactive,
    int stopimmediatestate,
    double timestamp,
    int[] pccomm,
    int virtualbits,
    int virtualbitsex0
    )
        {
            KM_MainStatus retval = new KM_MainStatus();
            retval._VersionAndSize = versionandsize;
            retval._ADC = adc;
            retval._DAC = dac;
            retval._PWM = pwm;
            retval._Position = position;
            retval._Destination = destination;
            retval._OutputChan0 = outputchan0;
            retval._InputModes = inputmodes;
            retval._InputModes2 = inputmodes2;
            retval._OutputModes = outputmodes;
            retval._OutputModes2 = outputmodes2;
            retval._Enables = enables;
            retval._AxisDone = axisdone;
            retval._BitsDirection = bitsdirection;
            retval._BitsState = bitsstate;
            retval._SnapBitsDirection0 = snapbitsdirection0;
            retval._SnapBitsDirection1 = snapbitsdirection1;
            retval._SnapBitsState0 = snapbitsstate0;
            retval._SnapBitsState1 = snapbitsstate1;
            retval._KanalogBitsStateInputs = kanalgobitsstateinputs;
            retval._KanalogBitsStateOutputs = kanalogbitsstateoutputs;
            retval._RunOnStartUp = runonstartup;
            retval._ThreadActive = threadactive;
            retval._StopImmediateState = stopimmediatestate;
            retval._TimeStamp = timestamp;
            retval._PC_comm = pccomm;
            retval._VirtualBits = virtualbits;
            retval._VirtualBitsEx0 = virtualbitsex0;

            retval._TicksAtUpdate = Environment.TickCount;
            return retval;
        } 
Exemple #2
0
        /// <summary>
        /// Create Bulk status record
        /// </summary>
        /// <param name="versionandsize">packed Version and size</param>
        /// <param name="adc">adc value array</param>
        /// <param name="dac">dac value array</param>
        /// <param name="pwm">Snap Amp PWM value array</param>
        /// <param name="position">position value array</param>
        /// <param name="destination">destination value array</param>
        /// <param name="outputchan0">packed output channel 0 array</param>
        /// <param name="inputmodes">packed input modes channels 0-3</param>
        /// <param name="inputmodes2">packed input modes channels 4-7</param>
        /// <param name="outputmodes">packed output modes channels 0-3</param>
        /// <param name="outputmodes2">packed output modes channels 4-7</param>
        /// <param name="enables">packed Enables</param>
        /// <param name="axisdone">packed axisdone</param>
        /// <param name="bitsdirection">packed bit direction array</param>
        /// <param name="bitsstate">packed bit state array</param>
        /// <param name="snapbitsdirection0">packed bit directions for SnapAmp 0</param>
        /// <param name="snapbitsdirection1">packed bit directions for SnapAmp 1</param>
        /// <param name="snapbitsstate0">packed bit states for SnapAmp 0</param>
        /// <param name="snapbitsstate1">packed bit states for SnapAmp 1</param>
        /// <param name="kanalgobitsstateinputs">packed input bit states for Kanalog</param>
        /// <param name="kanalogbitsstateoutputs">packed output bit states for Kanalo</param>
        /// <param name="runonstartup">packed startup bits for User Threads</param>
        /// <param name="threadactive">packed Thread Active bits for User Threads</param>
        /// <param name="stopimmediatestate">Feed Hold Status State</param>
        /// <param name="timestamp">Timestamp - time since KFLOP boot of Status capture</param>
        /// <param name="pccomm">KFLOP Persist variables included in Status for communication</param>
        /// <param name="virtualbits">packed bit states for Virtual bits</param>
        /// <param name="virtualbitsex0">packed bit states for first 32 Extended Virtual bits</param>
        /// <returns>0=successful</returns>
        public static KM_MainStatus GetStatus
        (
            int versionandsize,
            int[] adc,
            int[] dac,
            int[] pwm,
            double[] position,
            double[] destination,
            int[] outputchan0,
            int inputmodes,
            int inputmodes2,
            int outputmodes,
            int outputmodes2,
            int enables,
            int axisdone,
            int[] bitsdirection,
            int[] bitsstate,
            int snapbitsdirection0,
            int snapbitsdirection1,
            int snapbitsstate0,
            int snapbitsstate1,
            int kanalgobitsstateinputs,
            int kanalogbitsstateoutputs,
            int runonstartup,
            int threadactive,
            int stopimmediatestate,
            double timestamp,
            int[] pccomm,
            int virtualbits,
            int virtualbitsex0
        )
        {
            KM_MainStatus retval = new KM_MainStatus();

            retval._VersionAndSize          = versionandsize;
            retval._ADC                     = adc;
            retval._DAC                     = dac;
            retval._PWM                     = pwm;
            retval._Position                = position;
            retval._Destination             = destination;
            retval._OutputChan0             = outputchan0;
            retval._InputModes              = inputmodes;
            retval._InputModes2             = inputmodes2;
            retval._OutputModes             = outputmodes;
            retval._OutputModes2            = outputmodes2;
            retval._Enables                 = enables;
            retval._AxisDone                = axisdone;
            retval._BitsDirection           = bitsdirection;
            retval._BitsState               = bitsstate;
            retval._SnapBitsDirection0      = snapbitsdirection0;
            retval._SnapBitsDirection1      = snapbitsdirection1;
            retval._SnapBitsState0          = snapbitsstate0;
            retval._SnapBitsState1          = snapbitsstate1;
            retval._KanalogBitsStateInputs  = kanalgobitsstateinputs;
            retval._KanalogBitsStateOutputs = kanalogbitsstateoutputs;
            retval._RunOnStartUp            = runonstartup;
            retval._ThreadActive            = threadactive;
            retval._StopImmediateState      = stopimmediatestate;
            retval._TimeStamp               = timestamp;
            retval._PC_comm                 = pccomm;
            retval._VirtualBits             = virtualbits;
            retval._VirtualBitsEx0          = virtualbitsex0;

            retval._TicksAtUpdate = Environment.TickCount;
            return(retval);
        }
Exemple #3
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            int []List;
            int nBoards = 0;

            // check how many boards connected
            List = KM.GetBoards(out nBoards);
            if (nBoards > 0)
            {
                this.Text = String.Format("Dynomotion Fiducial Alignment - Connected");
            }
            else
            {
                this.Text = "Dynomotion Fiducial Alignment - Disconnected";
            }

            if (KM.WaitToken(100) == KMOTION_TOKEN.KMOTION_LOCKED)
            {
                try
                {
                    MainStatus = KM.GetStatus(false);  // we already have a lock
                    KM.ReleaseToken();
                    XPos.Text = String.Format("{0:F4}", ConvertToUser(MainStatus.Destination[0] / XResolution));
                    YPos.Text = String.Format("{0:F4}", ConvertToUser(MainStatus.Destination[1] / YResolution));
                }
                catch (DMException ex) // in case disconnect in the middle of reading status
                {
                    KM.ReleaseToken();
                    MessageBox.Show(ex.InnerException.Message);
                }
            }

        }
Exemple #4
0
        private void UpdateStatus()
        {
            int[] List;
            int nBoards = 0;

            // check how many boards connected
            List = KM.GetBoards(out nBoards);
            if (nBoards > 0)
            {
                this.Text = String.Format("Teach Motion - Connected - USB location {0:X}", List[0]);
            }
            else
            {
                this.Text = "Teach Motion - Disconnected";
            }

            if (KM.WaitToken(100) == KMOTION_TOKEN.KMOTION_LOCKED)
            {
                try
                {
                    MainStatus = KM.GetStatus(false);  // we already have a lock
                    KM.ReleaseToken();
                    XPos.Text = String.Format("{0:F4}", MainStatus.Destination[0] / XResolution);
                    YPos.Text = String.Format("{0:F4}", MainStatus.Destination[1] / YResolution);
                    XEnabled.Checked = (MainStatus.Enables & (1 << 0)) != 0;
                    YEnabled.Checked = (MainStatus.Enables & (1 << 1)) != 0;

                    if (CaptureOn.Checked)
                        CapList.Add(new CPoint(MainStatus.Destination[1] / YResolution, 
                                               MainStatus.Destination[0] / XResolution, 
                                               MainStatus.TimeStamp));
                }
                catch (DMException ex) // in case disconnect in the middle of reading status
                {
                    KM.ReleaseToken();
                    MessageBox.Show(ex.InnerException.Message);
                }
            }
        }