triggerdef.c

来自「可编程器件厂商Xilinx的手持式逻辑分析仪的逻辑设计」· C语言 代码 · 共 969 行 · 第 1/4 页

C
969
字号
    }
    else
    {
        CtlSetValue (GetObjectPtr (frmTrigDefGo2TrigOnRunCheckbox ), false);
        CtlSetValue (GetObjectPtr (frmTrigDefStayPutOnRunCheckbox), true);
    }

    /*========================================================================*/
    /* Set the PreTrigger buffer location in both the list and the selector.  */
    /*========================================================================*/
    pLst = GetObjectPtr (frmTrigDefPreTriggerList);
    LstSetSelection (pLst, TrigPrefs.PreTrigger);
    pLabel = LstGetSelectionText (pLst, TrigPrefs.PreTrigger);

    pCtl = GetObjectPtr (frmTrigDefPreTriggerPopTrigger);
    CtlSetLabel (pCtl, pLabel);
    FrmShowObject (pFrm,
                   FrmGetObjectIndex (pFrm, frmTrigDefPreTriggerPopTrigger));

    /*========================================================================*/
    /* Set the Labels on the Channel Label buttons.                           */
    /*========================================================================*/
    CtlSetLabel (GetObjectPtr(frmTrigDefCh0LabelButton),
                 TrigPrefs.ChnlLabel[0]);
    CtlSetLabel (GetObjectPtr(frmTrigDefCh1LabelButton),
                 TrigPrefs.ChnlLabel[1]);
    CtlSetLabel (GetObjectPtr(frmTrigDefCh2LabelButton),
                 TrigPrefs.ChnlLabel[2]);
    CtlSetLabel (GetObjectPtr(frmTrigDefCh3LabelButton),
                 TrigPrefs.ChnlLabel[3]);
    CtlSetLabel (GetObjectPtr(frmTrigDefCh4LabelButton),
                 TrigPrefs.ChnlLabel[4]);
    CtlSetLabel (GetObjectPtr(frmTrigDefCh5LabelButton),
                 TrigPrefs.ChnlLabel[5]);
    CtlSetLabel (GetObjectPtr(frmTrigDefCh6LabelButton),
                 TrigPrefs.ChnlLabel[6]);
    CtlSetLabel (GetObjectPtr(frmTrigDefCh7LabelButton),
                 TrigPrefs.ChnlLabel[7]);

    /*========================================================================*/
    /* Set the labels on the trigger definitions for each channel.            */
    /*========================================================================*/
    if (TrigPrefs.ChnlTriggers[0] == trigwordLowLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh0SettingButton), "0");
    else if (TrigPrefs.ChnlTriggers[0] == trigwordHiLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh0SettingButton), "1");
    else
        CtlSetLabel (GetObjectPtr (frmTrigDefCh0SettingButton), "X");

    if (TrigPrefs.ChnlTriggers[1] == trigwordLowLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh1SettingButton), "0");
    else if (TrigPrefs.ChnlTriggers[1] == trigwordHiLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh1SettingButton), "1");
    else
        CtlSetLabel (GetObjectPtr (frmTrigDefCh1SettingButton), "X");

    if (TrigPrefs.ChnlTriggers[2] == trigwordLowLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh2SettingButton), "0");
    else if (TrigPrefs.ChnlTriggers[2] == trigwordHiLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh2SettingButton), "1");
    else
        CtlSetLabel (GetObjectPtr (frmTrigDefCh2SettingButton), "X");

    if (TrigPrefs.ChnlTriggers[3] == trigwordLowLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh3SettingButton), "0");
    else if (TrigPrefs.ChnlTriggers[3] == trigwordHiLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh3SettingButton), "1");
    else
        CtlSetLabel (GetObjectPtr (frmTrigDefCh3SettingButton), "X");

    if (TrigPrefs.ChnlTriggers[4] == trigwordLowLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh4SettingButton), "0");
    else if (TrigPrefs.ChnlTriggers[4] == trigwordHiLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh4SettingButton), "1");
    else
        CtlSetLabel (GetObjectPtr (frmTrigDefCh4SettingButton), "X");

    if (TrigPrefs.ChnlTriggers[5] == trigwordLowLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh5SettingButton), "0");
    else if (TrigPrefs.ChnlTriggers[5] == trigwordHiLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh5SettingButton), "1");
    else
        CtlSetLabel (GetObjectPtr (frmTrigDefCh5SettingButton), "X");

    if (TrigPrefs.ChnlTriggers[6] == trigwordLowLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh6SettingButton), "0");
    else if (TrigPrefs.ChnlTriggers[6] == trigwordHiLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh6SettingButton), "1");
    else
        CtlSetLabel (GetObjectPtr (frmTrigDefCh6SettingButton), "X");

    if (TrigPrefs.ChnlTriggers[7] == trigwordLowLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh7SettingButton), "0");
    else if (TrigPrefs.ChnlTriggers[7] == trigwordHiLevel)
        CtlSetLabel (GetObjectPtr (frmTrigDefCh7SettingButton), "1");
    else
        CtlSetLabel (GetObjectPtr (frmTrigDefCh7SettingButton), "X");

    /*========================================================================*/
    /* Call the function to read the current probe state and display it.      */
    /*========================================================================*/
    DisplayProbeState(true);
}




/*============================================================================*/
/* Function:            DisplayProbeState                                     */
/* Description:         This routine ...                                      */
/*                                                                            */
/* Arguments:           ?_name    =  ?_description                            */
/* Returns:             ?_description                                         */
/* Globals affected:    None                                                  */
/* Hardware affected:   None                                                  */
/*                                                                            */
/*============================================================================*/
/* Change History:                                                            */
/*                                                                            */
/* ECO#:  ?                                                                   */
/* Change Date:  dd-mmm-yyyy                                                  */
/* Changed By:   ?                                                            */
/* Description of Change:  ?                                                  */
/*                                                                            */
/*============================================================================*/
void DisplayProbeState (Boolean bInitialDisplay)
{
    /*========================================================================*/
    /* Declare all local variables.                                           */
    /*========================================================================*/
    FormPtr pFrm;
    static  UInt8 uiPreviousState;
    UInt8   uiProbeState;
    UInt8   uiChnlState;
    UInt8   uiPrevChnlState;

    /*========================================================================*/
    /* Get a pointer to the current active form.                              */
    /*========================================================================*/
    pFrm = FrmGetActiveForm();

    /*========================================================================*/
    /* Read the current probe state.                                          */
    /*========================================================================*/
    uiProbeState = (UInt8)sbioReadProbeState();

    /*========================================================================*/
    /* Set the Channel 7 Probe State Display to represent the current state.  */
    /* If this is not the initial display and the current and previous values */
    /* are different, the current state will be shown as a transition,        */
    /* otherwise a high or low level signal will be shown as is appropriate.  */
    /*========================================================================*/
    uiChnlState = (UInt8)(uiProbeState & 0x0080);
    uiPrevChnlState = (UInt8)(uiPreviousState & 0x0080);
    if (!bInitialDisplay && (uiChnlState != uiPrevChnlState))
    {
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateLoBitMap));
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateHiBitMap));
        FrmShowObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateTransBitMap));
    }
    else if (uiChnlState)
    {
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateLoBitMap));
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateTransBitMap));
        FrmShowObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateHiBitMap));
    }
    else
    {
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateHiBitMap));
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateTransBitMap));
        FrmShowObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh7StateLoBitMap));
    }

    /*========================================================================*/
    /* Set the Channel 6 Probe State Display to represent the current state.  */
    /* If this is not the initial display and the current and previous values */
    /* are different, the current state will be shown as a transition,        */
    /* otherwise a high or low level signal will be shown as is appropriate.  */
    /*========================================================================*/
    uiChnlState = (UInt8)(uiProbeState & 0x0040);
    uiPrevChnlState = (UInt8)(uiPreviousState & 0x0040);
    if (!bInitialDisplay && (uiChnlState != uiPrevChnlState))
    {
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateLoBitMap));
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateHiBitMap));
        FrmShowObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateTransBitMap));
    }
    else if (uiChnlState)
    {
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateLoBitMap));
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateTransBitMap));
        FrmShowObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateHiBitMap));
    }
    else
    {
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateHiBitMap));
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateTransBitMap));
        FrmShowObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh6StateLoBitMap));
    }

    /*========================================================================*/
    /* Set the Channel 5 Probe State Display to represent the current state.  */
    /* If this is not the initial display and the current and previous values */
    /* are different, the current state will be shown as a transition,        */
    /* otherwise a high or low level signal will be shown as is appropriate.  */
    /*========================================================================*/
    uiChnlState = (UInt8)(uiProbeState & 0x0020);
    uiPrevChnlState = (UInt8)(uiPreviousState & 0x0020);
    if (!bInitialDisplay && (uiChnlState != uiPrevChnlState))
    {
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh5StateLoBitMap));
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh5StateHiBitMap));
        FrmShowObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh5StateTransBitMap));
    }
    else if (uiChnlState)
    {
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh5StateLoBitMap));
        FrmHideObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh5StateTransBitMap));
        FrmShowObject(pFrm, FrmGetObjectIndex(pFrm,
                                              frmTrigDefCh5StateHiBitMap));

⌨️ 快捷键说明

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