private void timer1_Tick(object sender, EventArgs e) { string str; captureDriver.TAD(hDevice, 0, 14, 2, 0, 0, 0, 0, 0, 0, 100); for (int m = 0; m < 1000; m++) { for (int n = 0; n < 1000; n++) { ;; } } if (captureDriver.TAD_Poll(hDevice) < 0) { timer1.Enabled = false; captureDriver.TAD_Stop(hDevice); listBox_ad.Items.Add("ad fifo over!!!"); } else { if (captureDriver.TAD_Read(hDevice, captureDriver.TAD_Poll(hDevice), ref addata) == -1) { listBox_ad.Items.Add("ad fifo over!!!"); } else { listBox_ad.Items.Clear(); for (Int16 i = 0; i < 15; i++) { str = Convert.ToString(((addata[i]) - 2048) * 5000 / 2048); // (0..4096分度) = ( -5 .. +5 V 电压) // int j = str.IndexOf('.');// // j = j + 3; // str = str.Substring(0, j);// str = str + " mv"; listBox_ad.Items.Add(str); } } } captureDriver.TAD_Stop(hDevice); }
/// <summary> /// 传感器数据读取线程的主函数 /// </summary> public static void GetCaptureDataThread() { IntPtr hDevice; Int32[] addata; CaptureDriver captureDriver; #region 加载驱动 captureDriver = new CaptureDriver((CaptureDriver.EnumDriverName)Enum.Parse(typeof(CaptureDriver.EnumDriverName), "AC6623SIM")); hDevice = captureDriver.OpenDevice(0); captureDriver.CAL(hDevice); #endregion addata = new Int32[600000]; //采样数据 #region 线程一直读取板卡的AD采样信息 while (ThreadStatue) { foreach (Sensor aSensor in allSensorsList) { string str; captureDriver.TAD(hDevice, 0, 14, 2, 0, 0, 0, 0, 0, 0, 100); for (int m = 0; m < 1000; m++) { for (int n = 0; n < 1000; n++) { ;; } } if (captureDriver.TAD_Poll(hDevice) < 0) { //timer1.Enabled = false; captureDriver.TAD_Stop(hDevice); //listBox_ad.Items.Add("ad fifo over!!!"); } else { //read空值则报错 if (captureDriver.TAD_Read(hDevice, captureDriver.TAD_Poll(hDevice), ref addata) == -1) { //listBox_ad.Items.Add("ad fifo over!!!"); } else { //listBox_ad.Items.Clear();//清空数据 for (Int16 i = 0; i < 15; i++) { str = Convert.ToString(((addata[i]) - 2048) * 5000 / 2048); // (0..4096分度) = ( -5 .. +5 V 电压) // int j = str.IndexOf('.');// // j = j + 3; // str = str.Substring(0, j);// str = str + " mv"; //listBox_ad.Items.Add(str);//写入数据 } } } captureDriver.TAD_Stop(hDevice); Thread.Sleep(10); } //for (int i = 0; i < 10; i++) //{ // Console.WriteLine("ThreadProc: {0}", i); // // Yield the rest of the time slice. // Thread.Sleep(10); //} } Console.WriteLine("Thread stop."); #endregion }