⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.cpp

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    PT_DeviceGetParam    ptDevGetPar;
    LPAOSET              lpAosetting;
    ULONG                size;
    char errmsg1720[100] = "for PCI-1720, the precondition of current out\nis that voltage range is set to 0 ~ 5V";
    char errtitle1720[20];
    int i;
    bool s;


    if (optVoltageOut->Checked)
    {
        OutputValue[0] = 0.0;
        OutputValue[1] = 1.25;
        OutputValue[2] = 2.5;
        OutputValue[3] = 5.0;
    }
    if (optCurrentOut0->Checked)
    {
        OutputValue[0] = 1.0;
        OutputValue[1] = 5.0;
        OutputValue[2] = 10.0;
        OutputValue[3] = 20.0;
    }
    if (optCurrentOut4->Checked)
    {
        OutputValue[0] = 4.0;
        OutputValue[1] = 10.0;
        OutputValue[2] = 15.0;
        OutputValue[3] = 20.0;
    }

    lErrCde = DRV_DeviceOpen( lDeviceNum, &lDeviceHandle);
    if ( DoesErr(lErrCde))
        return;

    // for PCI-1720, the precondition of current out is voltage range
    // is set to 0 ~ 5V
    if (!(optVoltageOut->Checked) &&
       (strstr(labDeviceName->Caption.c_str(), "PCI-1720") != NULL))
    {                
       // get device AO settings
       size = ptDevFeatures.usMaxAOChl * sizeof (AOSET);
       ptDevGetPar.nID = AO_RANGE_SETTING;
       ptDevGetPar.pData = malloc(size);
       ptDevGetPar.Length = & size;
       lErrCde = DRV_DeviceGetParam(lDeviceHandle, &ptDevGetPar);
       if ( DoesErr(lErrCde))
       {
           DRV_DeviceClose(&lDeviceHandle);
           free(ptDevGetPar.pData);
           return;
       }

       // check device AO settings
       lpAosetting = (LPAOSET) ptDevGetPar.pData;
       if(chkSyncAOEnable->Checked)
       {
          for(i = 0; i < ptDevFeatures.usMaxAOChl; i++)
          {
             if ((lpAosetting[i].fAOMaxVol != 5) || (lpAosetting[i].fAOMinVol != 0))
             {
                s = False;
      	        switch (i)
                {
                   case 0 :
                      if (chkSyncEnable0->Checked) s = True; break;
                   case 1 :
                      if (chkSyncEnable1->Checked) s = True; break;
                   case 2 :
                      if (chkSyncEnable2->Checked) s = True; break;
                   case 3 :
                      if (chkSyncEnable3->Checked) s = True; break;
                   case 4 :
                      if (chkSyncEnable4->Checked) s = True; break;
                   case 5 :
                      if (chkSyncEnable5->Checked) s = True; break;
                   case 6 :
                      if (chkSyncEnable6->Checked) s = True; break;
                   case 7 :
                      if (chkSyncEnable7->Checked) s = True; break;
                }
                if (s)
                {
                    sprintf(errtitle1720, "Error: Channel %d", i);
                    Application->MessageBox(errmsg1720, errtitle1720, MB_OK);
                    DRV_DeviceClose(&lDeviceHandle);
                    free(ptDevGetPar.pData);
                    return;
                }
             }
          }
       }
       else
       {
          for(i = 0; i < ptDevFeatures.usMaxAOChl; i++)
          {
             if ((lpAosetting[i].fAOMaxVol != 5) || (lpAosetting[i].fAOMinVol != 0))
             {
                s = False;
      	        switch (i)
                {
                   case 0 :
                      if (optAsyncEnable0->Checked) s = True; break;
                   case 1 :
                      if (optAsyncEnable1->Checked) s = True; break;
                   case 2 :
                      if (optAsyncEnable2->Checked) s = True; break;
                   case 3 :
                      if (optAsyncEnable3->Checked) s = True; break;
                   case 4 :
                      if (optAsyncEnable4->Checked) s = True; break;
                   case 5 :
                      if (optAsyncEnable5->Checked) s = True; break;
                   case 6 :
                      if (optAsyncEnable6->Checked) s = True; break;
                   case 7 :
                      if (optAsyncEnable7->Checked) s = True; break;
                }
                if (s)
                {
                    sprintf(errtitle1720, "Error: Channel %d", i);
                    Application->MessageBox(errmsg1720, errtitle1720, MB_OK);
                    DRV_DeviceClose(&lDeviceHandle);
                    free(ptDevGetPar.pData);
                    return;
                }
             }
          }
       }

       free(ptDevGetPar.pData);
    }

    // Enable Sync. output feature
    if (chkSyncAOEnable->Checked)
        lErrCde = DRV_EnableSyncAO(lDeviceHandle, 1);
    else
        lErrCde = DRV_EnableSyncAO(lDeviceHandle, 0);
    if ( DoesErr(lErrCde))
    {
        DRV_DeviceClose(&lDeviceHandle);
        return;
    }

    OutputIndex = 0;

    cmdStart->Enabled  = False;
    cmdStop->Enabled   = True;
    btnClose->Enabled  = False;

    ScanTimer->Enabled = True;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::cmdStopClick(TObject *Sender)
{
    ScanTimer->Enabled = False;

    lErrCde = DRV_DeviceClose(&lDeviceHandle);
    if ( DoesErr(lErrCde))
    	return;

    cmdStart->Enabled  = True;
    cmdStop->Enabled   = False;
    btnClose->Enabled  = True;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::txtScanTimeChange(TObject *Sender)
{
    ScanTimer->Interval = StrToInt(txtScanTime->Text);
}
//---------------------------------------------------------------------------


void __fastcall TfrmMain::chkSyncAOEnableClick(TObject *Sender)
{
    int	i;

    if (chkSyncAOEnable->Checked)
    {
        optAsyncEnable0->Enabled = False;
        optAsyncEnable1->Enabled = False;
	optAsyncEnable2->Enabled = False;
	optAsyncEnable3->Enabled = False;
	optAsyncEnable4->Enabled = False;
	optAsyncEnable5->Enabled = False;
	optAsyncEnable6->Enabled = False;
	optAsyncEnable7->Enabled = False;
        for (i = 0; i < 8; i++)
        {
            if (i < MaxAOChannel)
            {
                switch (i)
                {
                    case 0 : chkSyncEnable0->Enabled = True;
                    case 1 : chkSyncEnable1->Enabled = True;
                    case 2 : chkSyncEnable2->Enabled = True;
                    case 3 : chkSyncEnable3->Enabled = True;
                    case 4 : chkSyncEnable4->Enabled = True;
                    case 5 : chkSyncEnable5->Enabled = True;
                    case 6 : chkSyncEnable6->Enabled = True;
                    case 7 : chkSyncEnable7->Enabled = True;
                }
            }
            else
            {
                switch (i)
                {
                    case 0 : chkSyncEnable0->Enabled = False;
                    case 1 : chkSyncEnable1->Enabled = False;
                    case 2 : chkSyncEnable2->Enabled = False;
                    case 3 : chkSyncEnable3->Enabled = False;
                    case 4 : chkSyncEnable4->Enabled = False;
                    case 5 : chkSyncEnable5->Enabled = False;
                    case 6 : chkSyncEnable6->Enabled = False;
                    case 7 : chkSyncEnable7->Enabled = False;
                }
            }
        }
    }
    else
    {
        chkSyncEnable0->Enabled = False;
        chkSyncEnable1->Enabled = False;
	chkSyncEnable2->Enabled = False;
	chkSyncEnable3->Enabled = False;
	chkSyncEnable4->Enabled = False;
	chkSyncEnable5->Enabled = False;
	chkSyncEnable6->Enabled = False;
	chkSyncEnable7->Enabled = False;
        for (i = 0; i < 8; i++)
        {
            if (i < MaxAOChannel)
            {
                switch (i)
                {
                    case 0 : optAsyncEnable0->Enabled = True;
                    case 1 : optAsyncEnable1->Enabled = True;
                    case 2 : optAsyncEnable2->Enabled = True;
                    case 3 : optAsyncEnable3->Enabled = True;
                    case 4 : optAsyncEnable4->Enabled = True;
                    case 5 : optAsyncEnable5->Enabled = True;
                    case 6 : optAsyncEnable6->Enabled = True;
                    case 7 : optAsyncEnable7->Enabled = True;
                }
            }
            else
            {
                switch (i)
                {
                    case 0 : optAsyncEnable0->Enabled = False;
                    case 1 : optAsyncEnable1->Enabled = False;
                    case 2 : optAsyncEnable2->Enabled = False;
                    case 3 : optAsyncEnable3->Enabled = False;
                    case 4 : optAsyncEnable4->Enabled = False;
                    case 5 : optAsyncEnable5->Enabled = False;
                    case 6 : optAsyncEnable6->Enabled = False;
                    case 7 : optAsyncEnable7->Enabled = False;
                }
            }
        }
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -