Beispiel #1
0
        // Added on 2018/2/27 Ming-Yen
        private void btnGPO0_Click(object sender, EventArgs e)
        {
            short err;

            // Added on 2018/2/27 Ming-Yen
            // The 80M / 40 = 2MHz Clock will be sent out when IntEnable is set to 1
            // The 80M / 40 = 2MHz Clock will be stopped when IntEnable is set to 0
            if (btnGPO0.Text == "GPO0 2MHz OFF")
            {
                err = USBDASK.UD_GPTC_Control((ushort)Module_Num1, 0, USBDASK.IntENABLE, 1);
                if (err < 0)
                {
                    MessageBox.Show(string.Format("UD_GPTC_Control IntENABLE Error: {0}", err));
                    return;
                }
                btnGPO0.Text = "GPO0 2MHz ON";
            }
            else
            {
                err = USBDASK.UD_GPTC_Control((ushort)Module_Num1, 0, USBDASK.IntENABLE, 0);
                if (err < 0)
                {
                    MessageBox.Show(string.Format("UD_GPTC_Control IntENABLE Error: {0}", err));
                    return;
                }
                btnGPO0.Text = "GPO0 2MHz OFF";
            }
        }
Beispiel #2
0
 public void Start()
 {
     if (Listener == null)
     {
         Listener = Task.Run(() =>
         {
             while (true)
             {
                 int cam_index = 0;
                 foreach (var one in Config.IOCard.Line)
                 {
                     bool b = ReadDI((ushort)one.TriggerNo);
                     Trigger(b, cam_index);
                     cam_index++;
                 }
                 ChangeUI();
                 Task.Delay(10).Wait();
             }
         });
         //初始化DO口
         uint CtrlByte = 0;
         foreach (var line in Config.IOCard.Line)
         {
             CtrlByte |= (uint)0 << line.MachineWaringNo;
         }
         USBDASK.UD_DO_WritePort((ushort)CardNo, 0, CtrlByte);
     }
 }
Beispiel #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            short iTemp;
            int   nBufSize;

            if (wSelModuleID == USBDASK.INVALID_CARD_ID)
            {
                return;
            }
            m_delegate = new CallbackDelegate(Callback);
            gr         = pbxDisplay.CreateGraphics();

            iTemp = USBDASK.UD_Register_Card(wSelModuleType, wSelModuleID);
            if (iTemp < 0)
            {
                MessageBox.Show("UD_Register_Card() Fail, Code:" + iTemp.ToString());
                Close();
                return;
            }
            textBox_CardID.Text = wSelModuleID.ToString();

            nBufSize      = sizeof(short) * Convert.ToInt32(dwDataNum);
            m_data_buffer = Marshal.AllocHGlobal(nBufSize);
            alloc         = 1;
            Module_Num    = (ushort)iTemp;

            tbxYup.Text          = "10V";
            tbxYdown.Text        = "-10V";
            textYZero.Text       = "0V";
            pbxDisplay.BackColor = Color.Black;
        }
Beispiel #4
0
        private void buttonstop_Click(object sender, EventArgs e)
        {
            buttonstop.Enabled         = false;
            buttonstart.Enabled        = true;
            comboBoxchan.Enabled       = true;
            comboBoxsamplerate.Enabled = true;
            start = false;
            check.Abort();
            daqcontrol.result = USBDASK.UD_AI_AsyncClear(0, out daqcontrol.AccessCnt);
            if (daqcontrol.result < 0)
            {
                this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_AI_AsyncClear(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            daqcontrol.result = USBDASK.UD_Release_Card(0);
            if (daqcontrol.result < 0)
            {
                this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_Release_Card(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            timetofileindex = 0;
            files           = dir.GetFiles("*", SearchOption.TopDirectoryOnly);
            filenames       = files.Select(f => f.Name).ToArray();

            for (int i = 0; i < filenames.Length; i++)
            {
                File.Move(path[0] + filenames[i], path[1] + filenames[i]);
            }
            //File.Move(path[0] + Timetofile.ToString("yyyyMMddHHmmss") + ".txt", path[1] + Timetofile.ToString("yyyyMMddHHmmss") + ".txt");
            // txtWtr.Close();
        }
Beispiel #5
0
 public void Start()
 {
     if (Listener == null)
     {
         Listener = Task.Run(() =>
         {
             while (true)
             {
                 bool trayState = ReadDI((ushort)Config.IOCard.TrayNo);
                 SetTrayChange(trayState);
                 bool machineState = ReadDI((ushort)Config.IOCard.MachineStateNo);
                 SetMachineChange(machineState);
                 bool machineWaring  = ReadDO((ushort)Config.IOCard.MachineWaringNo);
                 bool machineControl = ReadDO((ushort)Config.IOCard.MachineControlNo);
                 ChangeUI(trayState, machineState, machineWaring, machineControl);
                 Task.Delay(10).Wait();
             }
         });
         //初始化DO口
         uint CtrlByte = 0;
         CtrlByte |= (uint)0 << Config.IOCard.MachineControlNo;
         CtrlByte |= (uint)0 << Config.IOCard.MachineWaringNo;
         USBDASK.UD_DO_WritePort((ushort)CardNo, 0, CtrlByte);
     }
 }
Beispiel #6
0
        private void btnStop_Click(object sender, EventArgs e)
        {
            short err;
            uint  AccessCnt;

            err = USBDASK.UD_AI_AsyncClear(Module_Num, out AccessCnt);
            btnStart.Enabled = true;
        }
Beispiel #7
0
 public void Waring(int line, bool isWaring)
 {
     Console.WriteLine($"{line} {isWaring}");
     USBDASK.UD_DO_WriteLine((ushort)CardNo, 0, (ushort)Config.IOCard.Line[line].MachineWaringNo, (ushort)(!isWaring ? 0 : 1));
     if (isWaring)
     {
         MachineStop(line);
     }
 }
Beispiel #8
0
        bool ReadDO(ushort port)
        {
            short err = USBDASK.UD_DO_ReadPort((ushort)CardNo, 0, out uint StatusByte);

            if (err == 0)
            {
                return(Convert.ToBoolean((StatusByte >> port) & 1));
            }
            return(false);
        }
Beispiel #9
0
        private void GPO0Close()
        {
            short err;

            err = USBDASK.UD_GPTC_Control((ushort)Module_Num1, 0, USBDASK.IntENABLE, 0);
            if (err < 0)
            {
                MessageBox.Show(string.Format("UD_GPTC_Control IntENABLE Error: {0}", err));
                return;
            }
        }
Beispiel #10
0
        private void BT_RELEASE_Click(object sender, EventArgs e)
        {
            short err = USBDASK.UD_Release_Card((ushort)card);

            if (err < 0)
            {
                MessageBox.Show("Release Card Fail");
            }

            BT_REGISTER.Enabled = true;
            BT_RELEASE.Enabled  = false;
        }
Beispiel #11
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            short err;
            uint  dwInvCnt;

            // Configure AI Channel
            err = USBDASK.UD_AI_1902_Config(Module_Num, USBDASK.P1902_AI_PseudoDifferential, 0, 0, 0, 0);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_1902_Config error = :" + err.ToString());
                Close();
                return;
            }

            // Enable double-buffer
            err = USBDASK.UD_AI_AsyncDblBufferMode(Module_Num, true);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_AsyncDblBufferMode error = :" + err.ToString());
                Close();
                return;
            }

            dwInvCnt = Convert.ToUInt32(U1902_TIMEBASE / fSampleRate);

            err = USBDASK.UD_AI_1902_CounterInterval(Module_Num, dwInvCnt, dwInvCnt);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_1902_CounterInterval error = :" + err.ToString());
                Close();
                return;
            }
            err = USBDASK.UD_AI_EventCallBack(Module_Num, 1, USBDASK.DBEvent, m_delegate);
            if (err < 0)
            {
                MessageBox.Show("UD_AI_EventCallBack error = :" + err.ToString());
                Close();
                return;
            }

            err = USBDASK.UD_AI_ContReadChannel(Module_Num, 0, USBDASK.AD_B_10_V, m_data_buffer, dwDataNum, fSampleRate, USBDASK.ASYNCH_OP);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_ContReadMultiChannels error = :" + err.ToString());
                Close();
                return;
            }

            //timer1.Enabled = true;
            btnStart.Enabled = false;
        }
Beispiel #12
0
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            short err;
            uint  AccessCnt;

            // gr.Dispose();

            if (Module_Num1 != -1)
            {
                err = USBDASK.UD_AI_AsyncClear((ushort)Module_Num1, out AccessCnt);
            }


            if (Module_Num2 != -1)
            {
                err = USBDASK.UD_AI_AsyncClear((ushort)Module_Num2, out AccessCnt);
            }


            Marshal.FreeHGlobal(m_data_buffer);
            Marshal.FreeHGlobal(m_data_buffer2);

            // Added on 2018/2/27 Ming-Yen
            // The 80M / 40 = 2MHz Clock will be sent out when IntEnable is set to 1
            // The 80M / 40 = 2MHz Clock will be stopped when IntEnable is set to 0
            err = USBDASK.UD_GPTC_Control((ushort)Module_Num1, 0, USBDASK.IntENABLE, 0);
            if (err < 0)
            {
                MessageBox.Show(string.Format("UD_GPTC_Control IntENABLE Error: {0}", err));
                return;
            }
            // Added on 2018/2/27 Ming-Yen
            err = USBDASK.UD_GPTC_Control((ushort)Module_Num1, 0, USBDASK.IntGate, 0);
            if (err < 0)
            {
                MessageBox.Show(string.Format("UD_GPTC_Control IntGate Error: {0}", err));
                return;
            }
            //btnGPO0.Text = "GPO0 2MHz OFF";

            if (Module_Num1 != -1)
            {
                USBDASK.UD_Release_Card((ushort)Module_Num1);
            }
            if (Module_Num2 != -1)
            {
                USBDASK.UD_Release_Card((ushort)Module_Num2);
            }
        }
Beispiel #13
0
        private void BT_REGISTER_Click(object sender, EventArgs e)
        {
            ushort card_num = Convert.ToUInt16(TXT_CARDNUM.Text);

            card = USBDASK.UD_Register_Card(USBDASK.USB_1902, card_num);
            if (card < 0)
            {
                MessageBox.Show("Register Card fail, " + card.ToString());
            }
            else
            {
                BT_RELEASE.Enabled  = true;
                BT_REGISTER.Enabled = false;
            }
        }
Beispiel #14
0
 public IOCard()
 {
     CardNo = USBDASK.UD_Register_Card(USBDASK.USB_7230, (ushort)Config.IOCard.CardNo);
     if (CardNo < 0)
     {
         LogInfo.Log.Fatal("IO 控制板连接失败!");
         Task.Run(() =>
         {
             Task.Delay(1000).Wait();
             OnMoni?.Invoke();
         });
     }
     else
     {
         Start();
     }
 }
Beispiel #15
0
 public void MachineStop(int line)
 {
     if (!Config.IOCard.MachineStopEnable)
     {
         return;
     }
     Task.Run(() =>
     {
         Task.Delay(Config.IOCard.MachineStopDelay).Wait();
         USBDASK.UD_DO_WriteLine((ushort)CardNo, 0, (ushort)Config.IOCard.MachineStopNo, 1);
         App.Current.Dispatcher.Invoke(new Action(() =>
         {
             MessageBox.Show($"线 {line + 1} NG,请捡NG料后点击确定后继续", "停机中...", MessageBoxButton.OK, MessageBoxImage.Warning);
             USBDASK.UD_DO_WriteLine((ushort)CardNo, 0, (ushort)Config.IOCard.MachineStopNo, 0);
         }));
     });
 }
Beispiel #16
0
 void SetMachine()
 {
     try
     {
         uint CtrlByte = 0;
         CtrlByte |= MachineControl << Config.IOCard.MachineControlNo;
         CtrlByte |= MachineWaring << Config.IOCard.MachineWaringNo;
         var res = USBDASK.UD_DO_WritePort((ushort)CardNo, 0, CtrlByte);
         if (res != 0)
         {
             LogError.Log.Error($"写入IO卡 DO 信号失败:Code {res}");
         }
     }
     catch (Exception ex)
     {
         LogError.Log.Error($"写入IO卡 DO 信号失败:{ex.Message}");
     }
 }
Beispiel #17
0
        private void Callback()
        {
            short err;



            err = USBDASK.UD_AI_AsyncDblBufferTransfer(Module_Num, m_data_buffer);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_ContReadMultiChannels error = :" + err.ToString());
                return;
            }
            else
            {
                DisplayTrend displaytrendInvoke = new DisplayTrend(PlotData);
                BeginInvoke(displaytrendInvoke);
            }
        }
Beispiel #18
0
        private void Configuredaq()
        {
            daqcontrol.result = USBDASK.UD_AI_2405_Chan_Config(0, daqcontrol.Chconfig, daqcontrol.Chconfig, daqcontrol.Chconfig, daqcontrol.Chconfig);
            if (daqcontrol.result != USBDASK.NoError)
            {
                this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_AI_2405_Chan_Config(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }
            daqcontrol.result = USBDASK.UD_AI_2405_Trig_Config(0, USBDASK.P2405_AI_CONVSRC_INT, USBDASK.UD_AI_TRGMOD_POST, 0, 0, 0, 0, 0);
            if (daqcontrol.result != USBDASK.NoError)
            {
                this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_AI_2405_Trig_Config(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            daqcontrol.result = USBDASK.UD_AI_AsyncDblBufferMode(0, true);
            if (daqcontrol.result != USBDASK.NoError)
            {
                this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_AI_AsyncDblBufferMode(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }
            daqcontrol.result = USBDASK.UD_AI_EventCallBack(0, 1 /*add*/, USBDASK.DBEvent /*EventType*/, ai_buf_ready_cbdel);
            if (daqcontrol.result != USBDASK.NoError)
            {
                this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_AI_EventCallBack(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }
            daqcontrol.result = USBDASK.UD_AI_ContReadMultiChannels(0, (ushort)daqcontrol.numbchans, daqcontrol.ai_chans, daqcontrol.ai_chans_range, daqcontrol.airowdata, daqcontrol.allchanlength * 2, daqcontrol.samplerate, USBDASK.ASYNCH_OP);
            if (daqcontrol.result != USBDASK.NoError)
            {
                this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_AI_ContReadMultiChannels(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }
            Time       = DateTime.Now;
            Timetofile = Time;
        }
Beispiel #19
0
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (start)
            {
                daqcontrol.result = USBDASK.UD_AI_AsyncClear(0, out daqcontrol.AccessCnt);
                daqcontrol.result = USBDASK.UD_Release_Card(0);
            }

            if (txtWtr != null)
            {
                txtWtr.Close();
            }
            if (check.IsAlive)
            {
                if (false == check.Join(200))
                {
                    check.Abort();
                }
            }
        }
Beispiel #20
0
 private void buttonstart_Click(object sender, EventArgs e)
 {
     daqcontrol.result = USBDASK.UD_Register_Card(USBDASK.USB_2405, 0);
     if (daqcontrol.result < 0)
     {
         this.Cursor = Cursors.Default;
         MessageBox.Show("Please Connecnt USB-2405 To your PC");
         return;
     }
     buttonstart.Enabled        = false;
     buttonstop.Enabled         = true;
     comboBoxchan.Enabled       = false;
     comboBoxsamplerate.Enabled = false;
     UpateDeviceConfig();
     Configuredaq();
     start = true;
     check = new Thread(checkcallback);
     check.Start();
     // txtWtr = new StreamWriter(path[1], true);
 }
Beispiel #21
0
        public int Initial(ushort cardNumber, string username, string password, string messageName, out string deviceId)
        {
            error = USBDASK.UD_Register_Card(USBDASK.USB_2405, cardNumber);
            if (error != USBDASK.NoError)
            {
                Console.WriteLine("Error:Please Connect ADLINK Device!");
                deviceId = null;
                return(-1);
            }
            else
            {
                USBDASK.UD_Custom_Serial_Number_Read(cardNumber, Read_SN_char);
                if (Read_SN_char.All(singleByte => singleByte == 0))
                {
                    USBDASK.UD_Serial_Number_Read(cardNumber, Read_SN_char);
                }
                GatewayID = System.Text.Encoding.ASCII.GetString(Read_SN_char).Substring(0, 10);
                deviceId  = GatewayID;
                USBDASK.UD_Release_Card(cardNumber);
                Username    = username;
                MessageName = messageName;
                try
                {
                    cdsHelper = new CDSHelper(APIURL, GatewayID, GatewayPW, username, password);
                    cdsHelper.Connect().Wait();
                    cdsHelper.GetMessaegCatalogId().Wait();
                    cdsHelper.ApplyMessage().Wait();
                    gateway           = new Gateway(CDSHelper._CDSClient, this);
                    equipmentSendTime = new Dictionary <string, DateTime>();
                    currenteqId       = "";
                    SendAsyncerror    = 0;
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error:Connecting Fail!");
                    return(-2);
                }

                return(0);
            }
        }
Beispiel #22
0
        void ai_buf_ready_cbfunc()
        {
            aliveindex++;
            daqcontrol.result = USBDASK.UD_AI_AsyncDblBufferTransfer32(0, daqcontrol.airowdata);
            if (daqcontrol.result != USBDASK.NoError)
            {
                //this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_AI_AsyncDblBufferTransfer32s(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            daqcontrol.result = USBDASK.UD_AI_ContVScale32(0, USBDASK.AD_B_10_V, 0 /*inType*/, daqcontrol.airowdata, daqcontrol.aivoltagedata, (int)(daqcontrol.allchanlength));
            if (daqcontrol.result != USBDASK.NoError)
            {
                //this.Cursor = Cursors.Default;
                MessageBox.Show("Falied to perform UD_AI_ContVScale32(), error: " + daqcontrol.result, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }
            WriteChannelData();

            MethodInvoker mi = new MethodInvoker(this.UpdateUI);

            ushort OverrunFlag;

            USBDASK.UD_AI_AsyncDblBufferHandled(0);
            USBDASK.UD_AI_AsyncDblBufferOverrun(0, 0, out OverrunFlag);

            if (OverrunFlag == 1)
            {
                m_dwOverrunCnt = m_dwOverrunCnt + 1;
                USBDASK.UD_AI_AsyncDblBufferOverrun(0, 1, out OverrunFlag);
                this.BeginInvoke(mi, null);
            }
            if (aliveindex == 10)
            {
                aliveindex = 0;
            }
            this.BeginInvoke(mi, null);
        }
Beispiel #23
0
        private void Callback()
        {
            short err;
            uint  dwAccessCnt;

            err = USBDASK.UD_AI_AsyncClear((ushort)Module_Num1, out dwAccessCnt);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_AsyncClear error = " + err.ToString());
                return;
            }

            err = USBDASK.UD_AI_AsyncClear((ushort)Module_Num2, out dwAccessCnt);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_AsyncClear error = " + err.ToString());
                return;
            }
            GPO0Close();
            PlotData();
        }
Beispiel #24
0
 public IOCard()
 {
     for (int line_index = 0; line_index < Config.IOCard.Line.Count; line_index++)
     {
         LastState.Add(line_index, false);
         NowState.Add(line_index, false);
         LastStateDate.Add(line_index, null);
     }
     CardNo = USBDASK.UD_Register_Card(USBDASK.USB_7230, (ushort)Config.IOCard.CardNo);
     if (CardNo < 0)
     {
         LogInfo.Log.Fatal("IO 控制板连接失败!");
         Task.Run(() =>
         {
             Task.Delay(1000).Wait();
             OnMoni?.Invoke();
         });
     }
     else
     {
         Start();
     }
 }
Beispiel #25
0
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            short err;
            uint  AccessCnt;

            gr.Dispose();

            if (Module_Num != USBDASK.INVALID_CARD_ID)
            {
                err = USBDASK.UD_AI_AsyncClear(Module_Num, out AccessCnt);
            }



            if (alloc == 1)
            {
                Marshal.FreeHGlobal(m_data_buffer);
            }

            if (Module_Num != USBDASK.INVALID_CARD_ID)
            {
                USBDASK.UD_Release_Card(Module_Num);
            }
        }
Beispiel #26
0
        private void FormCard_Load(object sender, EventArgs e)
        {
            short err;
            int   i;

            // scan the active USB DASK module
            err = USBDASK.UD_Device_Scan(out wModuleNum, AvailModules);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_Device_Scan() Failed !!, Error Code:" + err.ToString());
                return;
            }

            for (i = 0; i < wModuleNum; i++)
            {
                switch (AvailModules[i].wModuleType)
                {
                case USBDASK.USB_1902:
                    if (AvialableCardType[USBDASK.USB_1902] == 0x00)
                    {
                        AvialableCardType[USBDASK.USB_1902] = 0x01;
                        radioButton_1902.Enabled            = true;
                    }
                    break;

                case USBDASK.USB_1903:
                    if (AvialableCardType[USBDASK.USB_1903] == 0x00)
                    {
                        AvialableCardType[USBDASK.USB_1903] = 0x01;
                        radioButton_1903.Enabled            = true;
                    }
                    break;

                case USBDASK.USB_1901:
                    if (AvialableCardType[USBDASK.USB_1901] == 0x00)
                    {
                        AvialableCardType[USBDASK.USB_1901] = 0x01;
                        radioButton_1901.Enabled            = true;
                    }
                    break;
                }
            }

            // re-assign the wSelCardType
            if (AvialableCardType[USBDASK.USB_1902] == 0x01)
            {
                wSelCardType             = USBDASK.USB_1902;
                radioButton_1902.Checked = true;

                button_OK.Enabled = true;
                // UpdateComboBox();
            }
            else if (AvialableCardType[USBDASK.USB_1903] == 0x01)
            {
                wSelCardType             = USBDASK.USB_1903;
                radioButton_1903.Checked = true;

                button_OK.Enabled = true;
                // UpdateComboBox();
            }
            else if (AvialableCardType[USBDASK.USB_1901] == 0x01)
            {
                wSelCardType             = USBDASK.USB_1901;
                radioButton_1901.Checked = true;

                button_OK.Enabled = true;
                //UpdateComboBox();
            }
        }
Beispiel #27
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            short  err;
            ushort i;
            int    nBufSize;

            ushort[] ChanArray = new ushort[wSelectedChans];
            ushort[] GainArray = new ushort[wSelectedChans];

            dwDataNum = Convert.ToUInt32(TXT_DATACOUNT.Text);

            nBufSize       = sizeof(short) * Convert.ToInt32(dwDataNum) * wSelectedChans;
            m_data_buffer  = Marshal.AllocHGlobal(nBufSize);
            m_data_buffer2 = Marshal.AllocHGlobal(nBufSize);


            // Configure AI Channel
            err = USBDASK.UD_AI_Channel_Config((ushort)Module_Num1, USBDASK.UD_AI_Differential, USBDASK.UD_AI_Differential, USBDASK.UD_AI_Differential, USBDASK.UD_AI_Differential);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_Channel_Config error = " + err.ToString());
                Close();
                return;
            }
            err = USBDASK.UD_AI_Channel_Config((ushort)Module_Num2, USBDASK.UD_AI_Differential, USBDASK.UD_AI_Differential, USBDASK.UD_AI_Differential, USBDASK.UD_AI_Differential);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_Channel_Config error = :" + err.ToString());
                Close();
                return;
            }

            err = USBDASK.UD_AI_Trigger_Config((ushort)Module_Num1, USBDASK.UD_AI_CONVSRC_EXT, USBDASK.UD_AI_TRGMOD_POST, USBDASK.UD_AI_TRGSRC_SOFT, 0, 0, 0, 0);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_Trigger_Config error = " + err.ToString());
                Close();
                return;
            }
            err = USBDASK.UD_AI_Trigger_Config((ushort)Module_Num2, USBDASK.UD_AI_CONVSRC_EXT, USBDASK.UD_AI_TRGMOD_POST, USBDASK.UD_AI_TRGSRC_SOFT, 0, 0, 0, 0);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_Trigger_Config error = :" + err.ToString());
                Close();
                return;
            }

            // Disable double-buffer
            err = USBDASK.UD_AI_AsyncDblBufferMode((ushort)Module_Num1, false);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_AsyncDblBufferMode error = " + err.ToString());
                Close();
                return;
            }
            err = USBDASK.UD_AI_AsyncDblBufferMode((ushort)Module_Num2, false);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_AsyncDblBufferMode error = :" + err.ToString());
                Close();
                return;
            }

            err = USBDASK.UD_AI_EventCallBack_x64((ushort)Module_Num1, 1, USBDASK.AIEnd, m_delegate);
            if (err < 0)
            {
                MessageBox.Show("UD_AI_EventCallBack error = " + err.ToString());
                Close();
                return;
            }

            // Prepare the Channel Gain Queue
            for (i = 0; i < wSelectedChans; i++)
            {
                ChanArray[i] = i;
                GainArray[i] = USBDASK.AD_B_10_V;
            }

            dSamplerate = Convert.ToDouble(TXT_SAMPLERATE.Text);

            err = USBDASK.UD_AI_ContReadMultiChannels((ushort)Module_Num1, wSelectedChans, ChanArray, GainArray, m_data_buffer, dwDataNum * wSelectedChans, dSamplerate, USBDASK.ASYNCH_OP);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_ContReadMultiChannels error = " + err.ToString());
                Close();
                return;
            }
            err = USBDASK.UD_AI_ContReadMultiChannels((ushort)Module_Num2, wSelectedChans, ChanArray, GainArray, m_data_buffer2, dwDataNum * wSelectedChans, dSamplerate, USBDASK.ASYNCH_OP);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_AI_ContReadMultiChannels error = " + err.ToString());
                Close();
                return;
            }

            GPO0Clk();
        }
Beispiel #28
0
        private void Form1_Load(object sender, EventArgs e)
        {
            short err;

            m_delegate = new CallbackDelegate(Callback);
            gr         = pbxDisplay.CreateGraphics();

            blackBrush = new SolidBrush(Color.Black);
            // Create rectangle.
            PanelRect = new Rectangle(0, 0, pbxDisplay.Width, pbxDisplay.Height);


            TXT_SAMPLERATE.Text = dSamplerate.ToString();
            TXT_DATACOUNT.Text  = dwDataNum.ToString();
            Module_Num1         = USBDASK.UD_Register_Card(USBDASK.USB_1210, 0);
            if (Module_Num1 < 0)
            {
                MessageBox.Show("Register card Fail, Code:" + Module_Num1.ToString());
                Close();
                return;
            }
            Module_Num2 = USBDASK.UD_Register_Card(USBDASK.USB_1210, 1);
            if (Module_Num2 < 0)
            {
                MessageBox.Show("Register card Fail, Code:" + Module_Num2.ToString());
                Close();
                return;
            }

            tbxYup.Text          = "10V";
            tbxYdown.Text        = "-10V";
            textYZero.Text       = "0V";
            pbxDisplay.BackColor = Color.Black;

            err = USBDASK.UD_DIO_Config((ushort)Module_Num1, USBDASK.GPTC0_GPO1, USBDASK.GPTC2_GPO3);
            if (err != USBDASK.NoError)
            {
                MessageBox.Show("UD_DIO_Config error = :" + err.ToString());
                Close();
                return;
            }

            err = USBDASK.UD_GPTC_Setup_N((ushort)Module_Num1, 0, USBDASK.ContGatedPulseGen, USBDASK.GPTC_GATE_SRC_Int, 0x00, 40, 40, 1);
            if (err < 0)
            {
                MessageBox.Show(string.Format("UD_GPTC_Setup_N Error: {0}", err));
                return;
            }
            err = USBDASK.UD_GPTC_Control((ushort)Module_Num1, 0, USBDASK.IntUpDnCTR, 0);
            if (err < 0)
            {
                MessageBox.Show(string.Format("UD_GPTC_Control IntUpDnCTR Error: {0}", err));
                return;
            }

            // Added on 2018/2/27 Ming-Yen
            USBDASK.UD_GPTC_Control((ushort)Module_Num1, 0, USBDASK.IntGate, 1);
            if (err < 0)
            {
                MessageBox.Show(string.Format("UD_GPTC_Control IntGate Error: {0}", err));
                return;
            }
            // Added on 2018/2/27 Ming-Yen
            // The 80M / 40 = 2MHz Clock will be sent out when IntEnable is set to 1
            // The 80M / 40 = 2MHz Clock will be stopped when IntEnable is set to 0
            err = USBDASK.UD_GPTC_Control((ushort)Module_Num1, 0, USBDASK.IntENABLE, 0);
            if (err < 0)
            {
                MessageBox.Show(string.Format("UD_GPTC_Control IntENABLE Error: {0}", err));
                return;
            }
            btnGPO0.Text = "GPO0 2MHz OFF";
        }
Beispiel #29
0
 /// <summary>
 ///
 /// </summary>
 public void Dispose()
 {
     Stop();
     USBDASK.UD_Release_Card((ushort)CardNo);
 }