public void waveformAiCtrl1_DataReady(object sender, BfdAiEventArgs args) { try { //The WaveformAiCtrl has been disposed. if (waveformAiCtrl1.State == ControlState.Idle) { return; } if (m_dataScaled.Length < args.Count) { m_dataScaled = new double[args.Count]; } ErrorCode err = ErrorCode.Success; int chanCount = waveformAiCtrl1.Conversion.ChannelCount; int sectionLength = waveformAiCtrl1.Record.SectionLength; err = waveformAiCtrl1.GetData(args.Count, m_dataScaled); //读取数据 // Test.emmmm();//在此处调用一个其他类的静态函数来对数据进行处理。 if (err != ErrorCode.Success && err != ErrorCode.WarningRecordEnd) { HandleError(err); return; } System.Diagnostics.Debug.WriteLine(args.Count.ToString()); } catch (System.Exception) { } }
public void waveformAiCtrl_DataReady(object sender, BfdAiEventArgs e) { Console.WriteLine(" Streaming AI data ready:count = {0},offset = {1} ", e.Count, e.Offset); Int32 returnedCount = 0; WaveformAiCtrl waveformAiCtrl = (WaveformAiCtrl)sender; Conversion conversion = waveformAiCtrl.Conversion; Record record = waveformAiCtrl.Record; int channelCountMax = waveformAiCtrl.Features.ChannelCountMax; int startChan = conversion.ChannelStart; int channelCount = conversion.ChannelCount; int sectionLengt = record.SectionLength; int getDataCount = sectionLengt * channelCount; // buffer section length, when 'DataReady' event been signaled, driver renew data count is e.count. if (e.Count > channelCount) { double[] sectionBuffers = new double[getDataCount]; getDataCount = Math.Min(getDataCount, e.Count); waveformAiCtrl.GetData(getDataCount, sectionBuffers, 0, out returnedCount); Console.Write("Streaming AI get data count is {0}", returnedCount); Console.WriteLine(" The first sample for each channel are:"); DoChart1update(sectionBuffers); DoChart2update(sectionBuffers); DoChart3update(sectionBuffers); // for (int j = 0; j < channelCount; ++j) //{ // Console.WriteLine(" channel {0}: {1}", (j % channelCount + startChan) % channelCountMax, sectionBuffer[j]); //} //Console.WriteLine(); //foreach (var sectionBuffer in sectionBuffers) //{ // Console.WriteLine(" channel {0}: {1}", (0 % channelCount + startChan) % channelCountMax, sectionBuffer); //} } }
private void waveformAiCtrl1_Overrun(object sender, BfdAiEventArgs e) { if (m_isFirstOverRun) { MessageBox.Show("WaveformAiOverrun"); m_isFirstOverRun = false; } }
public void waveformAiCtrl_Overrun(object sender, BfdAiEventArgs e) { try { _log.Error("Data Overrun"); //throw new Exception("Maybe one method or operation is busy."); } catch (Exception err) { _log.Error("Data Overrun"); MessageBox.Show(err.Message);; } }
public void BufferedReady(object e, BfdAiEventArgs b) { short[] data = new short[b.Count]; ErrorCode ret = bufferedCtrl.GetData(b.Count, data);//data存放的是从采集卡得到的数据 if (ret != ErrorCode.Success) { lock (locker) { this.data = null; readADInternal.Set(); } } lock (locker) { this.data = data.Select(o => (ushort)o).ToArray(); readADInternal.Set(); } }
private void waveformAiCtrl1_DataReady(object sender, BfdAiEventArgs e) { double[] data = new double[e.Count]; ErrorCode er = waveformAiCtrl1.GetData(e.Count, data); if (er != ErrorCode.Success) { return; } lock (locker) { for (int i = 0; i < data.Length; i += 4) { double[] temp = new double[4]; for (int j = 0; j < 4; j++) { temp[j] = data[i + j]; } dataFromBuffAI.Add(temp); } } }
public void waveformAiCtrl_DataReady(object sender, BfdAiEventArgs e) { try { Int32 returnedCount = 0; WaveformAiCtrl waveformAiCtrl = (WaveformAiCtrl)sender; Conversion conversion = waveformAiCtrl.Conversion; Record record = waveformAiCtrl.Record; int channelCountMax = waveformAiCtrl.Features.ChannelCountMax; int startChan = conversion.ChannelStart; int channelCount = conversion.ChannelCount; int sectionLengt = record.SectionLength; int getDataCount = sectionLengt * channelCount; // buffer section length, when 'DataReady' event been signaled, driver renew data count is e.count. if (e.Count > channelCount) { double[] sectionBuffers = new double[getDataCount]; getDataCount = Math.Min(getDataCount, e.Count); waveformAiCtrl.GetData(getDataCount, sectionBuffers, 0, out returnedCount); /* Filter * //sectionBuffers = SF.Bandpassfilter(sectionBuffers, convertClkRate, lowcutoff, highcutoff); * //sectionBuffers = SF.Butterworth(sectionBuffers, convertClkRate, 100); */ DoTimeChartupdate(sectionBuffers); DoFFTChartupdate(sectionBuffers); DoMaxChartupdate(sectionBuffers); } } catch (Exception err) { _log.Error("Failed to Data Collection---" + err.Message); MessageBox.Show(err.Message);; } }
private void waveformAiCtrl1_CacheOverflow(object sender, BfdAiEventArgs e) { MessageBox.Show("WaveformAiCacheOverflow"); }
private void waveformAiCtrl1_DataReady(object sender, BfdAiEventArgs args) { try { if (waveformAiCtrl1.State == ControlState.Idle) { return; } if (m_dataScaled.Length < args.Count) { m_dataScaled = new double[args.Count]; } ErrorCode err = ErrorCode.Success; int chanCount = waveformAiCtrl1.Conversion.ChannelCount; int sectionLength = waveformAiCtrl1.Record.SectionLength; err = waveformAiCtrl1.GetData(args.Count, m_dataScaled); if (err != ErrorCode.Success && err != ErrorCode.WarningRecordEnd) { HandleError(err); return; } this.Invoke(new Action(() => { arrSumData = new double[chanCount]; for (int i = 0; i < sectionLength; i++) { arrData = new string[chanCount]; for (int j = 0; j < chanCount; j++) { int cnt = i * chanCount + j; arrData[j] = m_dataScaled[cnt].ToString("F1"); arrSumData[j] += m_dataScaled[cnt]; //Console.WriteLine("j ke " + j + " arrsumdata :" + arrSumData[j] + " m_datascaled: " + m_dataScaled[cnt] + " cnt: " + cnt + " chancount: " + chanCount); } } arrAvgData = new string[arrSumData.Length]; for (int i = 0; i < arrSumData.Length; i++) { arrAvgData[i] = (arrSumData[i] / sectionLength).ToString("F1"); //label3.Text = arrAvgData[2]; //Console.WriteLine("i ke " + i + " arrsumdata :" + arrSumData[i]); dataCount++; } dataPrint[0] = Convert.ToDouble(arrAvgData[0]) * factor_baca; dataPrint[1] = Convert.ToDouble(arrAvgData[1]) * factor_baca; dataPrint[2] = Convert.ToDouble(arrAvgData[2]) * factor_baca; label1.Text = dataPrint[0].ToString(); label2.Text = dataPrint[1].ToString(); if (dataPrint[0] > max_x_1) { max_x_1 = dataPrint[0]; } if (dataPrint[0] < min_x_1) { min_x_1 = dataPrint[0]; } if (dataPrint[0] > max_x_2) { max_x_2 = dataPrint[1]; } if (dataPrint[0] < min_x_2) { min_x_2 = dataPrint[1]; } if (dataPrint[1] > max_y) { max_y = dataPrint[2]; } if (dataPrint[1] < min_y) { min_y = dataPrint[2]; } //chartXY.Series[0].Points.AddXY(arrAvgData[0], arrAvgData[1]); label9.Text = max_x_1.ToString(); label10.Text = min_x_1.ToString(); label11.Text = max_y.ToString(); label12.Text = min_y.ToString(); if (checkBox_holdX.Checked && firstChecked) { last_x_holdX = last_x; //last_x_0 = dataPrint[0]; //last_x_1 = dataPrint[1]; //last_x = dataCount.ToString(); firstChecked = false; } //plotChart(arrAvgData); })); Console.WriteLine(dataCount / 3); } catch { MessageBox.Show("nilai x dan y salah!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void waveformAiCtrl_Overrun(object sender, BfdAiEventArgs e) { Console.WriteLine("Streaming AI is Over run ! "); //throw new Exception("Maybe one method or operation is busy."); }
private void waveformAiCtrl1_DataReady(object sender, BfdAiEventArgs args) { try { if (waveformAiCtrl1.State == ControlState.Idle) { return; } if (m_dataScaled.Length < args.Count) { m_dataScaled = new double[args.Count]; } //Console.WriteLine(args.Count); ErrorCode err = ErrorCode.Success; int chanCount = waveformAiCtrl1.Conversion.ChannelCount; int sectionLength = waveformAiCtrl1.Record.SectionLength; err = waveformAiCtrl1.GetData(args.Count, m_dataScaled); if (err != ErrorCode.Success && err != ErrorCode.WarningRecordEnd) { HandleError(err); return; } //System.Diagnostics.Debug.WriteLine(args.Count.ToString()); this.Invoke(new Action(() => { arrSumData = new double[chanCount]; //listViewAi.BeginUpdate(); for (int i = 0; i < sectionLength; i++) { arrData = new string[chanCount]; for (int j = 0; j < chanCount; j++) { int cnt = i * chanCount + j; arrData[j] = m_dataScaled[cnt].ToString("F3"); arrSumData[j] += m_dataScaled[cnt]; //Console.WriteLine("j ke " + j + " arrsumdata :" + arrSumData[j] + " m_datascaled: " + m_dataScaled[cnt] + " cnt: " + cnt + " chancount: " + chanCount); } //addListViewItems(listViewAi, arrData); } arrAvgData = new string[arrSumData.Length]; for (int i = 0; i < arrSumData.Length; i++) { arrAvgData[i] = (arrSumData[i] / sectionLength).ToString("F3"); //ValueX1.Text = arrAvgData[0]; //ValueY.Text = arrAvgData[1]; //label3.Text = arrAvgData[2]; //Console.WriteLine("i ke " + i + " arrsumdata :" + arrSumData[i]); dataCount++; } dataBalance[0] = (Convert.ToDouble(arrAvgData[0]) * factor_baca_x_1); dataBalance[1] = (Convert.ToDouble(arrAvgData[1]) * factor_baca_x_2); dataBalance[2] = (Convert.ToDouble(arrAvgData[2]) * factor_baca_y); dataPrint[0] = (Convert.ToDouble(arrAvgData[0]) * factor_baca_x_1) - balance_1; dataPrint[1] = (Convert.ToDouble(arrAvgData[1]) * factor_baca_x_2) - balance_2; dataPrint[2] = (Convert.ToDouble(arrAvgData[2]) * factor_baca_y) - balance_3; if (checkBox_invertX1.Checked) { dataPrint[0] = -(dataPrint[0]); } if (checkBox_invertX2.Checked) { dataPrint[1] = -(dataPrint[1]); } if (checkBox_invertY.Checked) { dataPrint[2] = -(dataPrint[2]); } if (recordData) { if (check1.Checked && !check2.Checked) { dataPrint[1] = 0; } else if (check2.Checked && !check1.Checked) { dataPrint[0] = 0; } StreamWriter sw = new StreamWriter(File.Text, append: true); sw.WriteLine("{0},{1},{2},{3}", DateTime.Now.ToString("hh:mm:ss:fff"), dataPrint[0] - balance_1, dataPrint[1] - balance_2, dataPrint[2] - balance_3); sw.Close(); recCount++; } ValueX1.Text = (dataPrint[0]).ToString(); ValueX2.Text = (dataPrint[1]).ToString(); ValueY.Text = (dataPrint[2]).ToString(); //channel 0 if (dataPrint[0] > max_x_1) { max_x_1 = dataPrint[0]; } if (dataPrint[0] < min_x_1) { min_x_1 = dataPrint[0]; } //channel 1 if (dataPrint[1] > max_x_2) { max_x_2 = dataPrint[1]; } if (dataPrint[1] < min_x_2) { min_x_2 = dataPrint[1]; } //channel 2 if (dataPrint[2] > max_y) { max_y = dataPrint[2]; } if (dataPrint[2] < min_y) { min_y = dataPrint[2]; } //chartXY.Series[0].Points.AddXY(arrAvgData[0], arrAvgData[1]); MaxX1.Text = max_x_1.ToString(); MinX1.Text = min_x_1.ToString(); MaxX2.Text = max_x_2.ToString(); minX2.Text = min_x_2.ToString(); MaxY.Text = max_y.ToString(); MinY.Text = min_y.ToString(); if (checkBox_holdX.Checked && firstChecked) { last_x_0 = dataPrint[0]; last_x_1 = dataPrint[1]; //last_x = dataCount.ToString(); firstChecked = false; } plotChart(dataPrint); textBox_stopwatch.Text = watch.Elapsed.ToString("hh\\:mm\\:ss\\.f"); if (checkBox_holdX.Checked) { recordData = false; watch.Stop(); watch_holdx.Stop(); watch_holdx.Reset(); timer_hold.Stop(); } if (!checkBox_holdX.Checked) { recordData = true; watch.Start(); timer_hold.Start(); watch_holdx.Start(); } })); Console.WriteLine(dataCount / 3); } catch { MessageBox.Show("Terjadi kesalahan saat akuisisi data. Silahkan restart program", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } }
private void waveformAiCtrl1_DataReady(object sender, BfdAiEventArgs args) { ErrorCode err = ErrorCode.Success; try { //The WaveformAiCtrl has been disposed. if (waveformAiCtrl1.State == ControlState.Idle) { return; } if (m_dataScaled.Length < args.Count) { m_dataScaled = new double[args.Count]; } int chanCount = waveformAiCtrl1.Conversion.ChannelCount; int sectionLength = waveformAiCtrl1.Record.SectionLength; err = waveformAiCtrl1.GetData(args.Count, m_dataScaled);//读取数据 //Console.WriteLine("length:" + m_dataScaled.Length); DateTime t = DateTime.Now; // t = t.AddSeconds(-1.0);//采集到的是一秒钟之前的数据,因此需要对当前的时间减去1s t.ToString("yyyy-MM-dd hh:mm:ss:fff"); safetyDelegate mes = new safetyDelegate(systemInfoactive); try { Invoke(mes, t.ToString("yyyy-MM-dd hh:mm:ss:fff")); } catch { } //Console.WriteLine("time:" + t.ToString("yyyy-MM-dd hh:mm:ss:fff")); for (int i = 0; i < m_dataScaled.Length; i += 15) { Qc = Math.Round(m_dataScaled[i + 0], 2); Qh = Math.Round(m_dataScaled[i + 1], 2); Qm = Math.Round(m_dataScaled[i + 2], 2); Tc = Math.Round(m_dataScaled[i + 3], 2); Th = Math.Round(m_dataScaled[i + 4], 2); Tm = Math.Round(m_dataScaled[i + 5], 2); Pc = Math.Round(m_dataScaled[i + 6], 2); Ph = Math.Round(m_dataScaled[i + 7], 2); Pm = Math.Round(m_dataScaled[i + 8], 2); Qm5 = Math.Round(m_dataScaled[i + 9], 2); Temp1 = Math.Round(m_dataScaled[i + 10], 2); Temp2 = Math.Round(m_dataScaled[i + 11], 2); Temp3 = Math.Round(m_dataScaled[i + 12], 2); Temp4 = Math.Round(m_dataScaled[i + 13], 2); Temp5 = Math.Round(m_dataScaled[i + 14], 2); if (startFlag) { dt.Rows.Add(t.ToString("yyyy-MM-dd hh:mm:ss:fff"), Qc, Qh, Qm, Tc, Th, Tm, Pc, Ph, Pm, Qm5); } t = t.AddMilliseconds(10.0); } myDelegate md = new myDelegate(dataReadyUpdateForm); this.Invoke(md); if (err != ErrorCode.Success && err != ErrorCode.WarningRecordEnd) { HandleError(err); return; } System.Diagnostics.Debug.WriteLine("读取数据长度" + args.Count.ToString()); } catch (System.Exception) { HandleError(err); } }
private void waveformAiCtrl1_Overrun(object sender, BfdAiEventArgs e) { Console.WriteLine("waveformAiCtrl1_Overrun"); }
private void waveformAiCtrl1_DataReady(object sender, BfdAiEventArgs args) { ErrorCode err = ErrorCode.Success; bpqreturn_value = Math.Round(bpqMR.read_short("8451", 2) / 100.0, 2); try { //The WaveformAiCtrl has been disposed. if (waveformAiCtrl1.State == ControlState.Idle) { return; } if (m_dataScaled.Length < args.Count) { m_dataScaled = new double[args.Count]; } int chanCount = waveformAiCtrl1.Conversion.ChannelCount; int sectionLength = waveformAiCtrl1.Record.SectionLength; err = waveformAiCtrl1.GetData(args.Count, m_dataScaled);//读取数据 DateTime t = DateTime.Now; // t = t.AddSeconds(-1); t.ToString("yyyy-MM-dd hh:mm:ss:fff"); for (int i = 0; i < m_dataScaled.Length; i += 4) { if (startFlag) { PRESURE = Math.Round(m_dataScaled[i] + (double)Properties.Settings.Default.m压力, 2); dt.Rows.Add(t.ToString("yyyy-MM-dd hh:mm:ss:fff"), Math.Round(m_dataScaled[i] + (double)Properties.Settings.Default.m压力, 2), Math.Round(m_dataScaled[i + 1] + (double)Properties.Settings.Default.m冲击力, 2), Math.Round(m_dataScaled[i + 2] + (double)Properties.Settings.Default.m温度, 2)); m_dataScaled[i] += (double)Properties.Settings.Default.m压力; m_dataScaled[i + 1] += (double)Properties.Settings.Default.m冲击力; m_dataScaled[i + 2] += (double)Properties.Settings.Default.m温度; if (Math.Round(m_dataScaled[i], 2) >= (double)startThreshold.Value)//当压力大于某个数值开始 计按下工件的延时 { pushFlag = true; } if (maxPressure < Math.Round(m_dataScaled[i], 2)) { maxPressure = Math.Round(m_dataScaled[i], 2); } if (maxHammer < Math.Round(m_dataScaled[i + 1], 2)) { maxHammer = Math.Round(m_dataScaled[i + 1], 2); } if (pushedFlag && Math.Round(m_dataScaled[i], 2) <= (double)stopThreshold.Value)//当压力小于等于某个数值,停止向缓冲区写数据 { startFlag = false; pushFlag = false; pushedFlag = false; exit = true; } } t = t.AddMilliseconds(1.0); } myDelegate md = new myDelegate(setText); try { if (this.IsHandleCreated) { this.Invoke(md, new object[] { m_dataScaled }); } } catch { } if (err != ErrorCode.Success && err != ErrorCode.WarningRecordEnd) { HandleError(err); return; } System.Diagnostics.Debug.WriteLine(args.Count.ToString()); } catch (System.Exception) { HandleError(err); } }
public void waveformAiCtrl1_CacheOverflow(object sender, BfdAiEventArgs e) { }
private void waveformAiCtrl1_CacheOverflow(object sender, BfdAiEventArgs e) { throw new NotImplementedException(); }
public void waveformAiCtrl1_Overrun(object sender, BfdAiEventArgs e) { }
private void waveformAiCtrl1_DataReady(object sender, BfdAiEventArgs args) { Console.WriteLine("halooooooooooooooooooooo"); try { //The WaveformAiCtrl has been disposed. if (waveformAiCtrl1.State == ControlState.Idle) { return; } if (m_dataScaled.Length < args.Count) { m_dataScaled = new double[args.Count]; } ErrorCode err = ErrorCode.Success; int chanCount = waveformAiCtrl1.Conversion.ChannelCount; int sectionLength = waveformAiCtrl1.Record.SectionLength; err = waveformAiCtrl1.GetData(args.Count, m_dataScaled); if (err != ErrorCode.Success && err != ErrorCode.WarningRecordEnd) { HandleError(err); return; } System.Diagnostics.Debug.WriteLine(args.Count.ToString()); this.Invoke(new Action(() => { arrSumData = new double[chanCount]; //listViewAi.BeginUpdate(); for (int i = 0; i < sectionLength; i++) { arrData = new string[chanCount]; for (int j = 0; j < chanCount; j++) { int cnt = i * chanCount + j; arrData[j] = m_dataScaled[cnt].ToString("F4"); arrSumData[j] += m_dataScaled[cnt]; Console.WriteLine("j ke " + j + " arrsumdata :" + arrSumData[j] + " m_datascaled: " + m_dataScaled[cnt] + " cnt: " + cnt + " chancount: " + chanCount); } //addListViewItems(listViewAi, arrData); } arrAvgData = new string[arrSumData.Length]; for (int i = 0; i < arrSumData.Length; i++) { arrAvgData[i] = (arrSumData[i] / sectionLength).ToString("F4"); ValueY1.Text = arrAvgData[0]; //label2.Text = arrAvgData[1]; //label3.Text = arrAvgData[2]; //Console.WriteLine("i ke " + i + " arrsumdata :" + arrSumData[i]); chartXY.Series[0].Points.AddY(arrAvgData[0]); } //editListViewItems(listViewAi, 0, arrAvgData); //listViewAi.EndUpdate(); })); } catch (System.Exception) { } }