/// <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; }
/// <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); }
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); } } }
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); } } }