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

📄 panel.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    else
    {
#if (_TRANSFER_ALI_BOARD_ == _TRANSFER_ALI_BOARD_DISABLE_)
        PnlSetDigitalMessage_TCT(value, posMsg);
#else
        PnlSetDigitalMessage(value, posMsg);
#endif
        PnlBlinkOff(posMsg);
        PnlLightOn(posSig);
        PnlBlinkOff(posSig);
    }
}
#endif

#if (_TRANSFER_ALI_BOARD_ == _TRANSFER_ALI_BOARD_DISABLE_)
/*------------------------------------------------------------------\
|   Function_Name:                                                  |
|       void PnlModuleDgtSig(register DWORD         value,          |
|                            register PNL_POS_TYPE  *posMsg,        |
|                            register PNL_POS_TYPE  *posSig)        |
|                                                                   |
|   Description: This function will print out digital message to t- |
|                he position pointed by posMsg with value and light |
|                on the lighter pointed by posSig.                  |
|                                                                   |
|   Arguments:                                                      |
|       register DWORD         value   : the value would be printed |
|                                        out                        |
|       register PNL_POS_TYPE  *posMsg : position pointer of 7 Seg- |
|                                        ment LEDs                  |
|       register PNL_POS_TYPE  *posSig : position pointer of the l- |
|                                        ighter                     |
|                                                                   |
|   Return Value:                                                   |
\------------------------------------------------------------------*/
#ifdef  PNL_MODULE_USED_MSGSIG
void PnlModuleDgtSig(register DWORD         value,
                     register PNL_POS_TYPE  *posMsg,
                     register PNL_POS_TYPE  *posSig)
{
    if (value == PNL_DISPLAY_OFF)
    {
        PnlLightOff(posMsg);
        PnlLightOff(posSig);
    }
    else
    {
        PnlSetDigitalMessage_HEX(value, posMsg);
        PnlBlinkOff(posMsg);
        PnlLightOn(posSig);
        PnlBlinkOff(posSig);
    }
}
#endif
#endif
/*------------------------------------------------------------------\
|   Function_Name:                                                  |
|       void PnlModuleTime(DWORD                    hour,           |
|                          DWORD                    min,            |
|                          DWORD                    sec,            |
|                          register PNL_POS_TYPE    *posHour,       |
|                          register PNL_POS_TYPE    *posMin,        |
|                          register PNL_POS_TYPE    *posSec,        |
|                          register PNL_POS_TYPE    *posSig)        |
|                                                                   |
|   Description: This function will display time and light on the   |
|                time signal                                        |
|                                                                   |
|   Arguments:                                                      |
|       DWORD                   hour     : the value of hour        |
|       DWORD                   min      : the value of minute      |
|       DWORD                   sec      : the value of second      |
|       register PNL_POS_TYPE   *posHour : the position of hour     |
|       register PNL_POS_TYPE   *posMin  : the position of minute   |
|       register PNL_POS_TYPE   *posSec  : the position of second   |
|       register PNL_POS_TYPE   *posSig  : the position of signal   |
|                                                                   |
|   Return Value:                                                   |
\------------------------------------------------------------------*/
#ifdef  PNL_MODULE_USED_TIME
void PnlModuleTime(DWORD                    hour,
                   DWORD                    min,
                   DWORD                    sec,
                   register PNL_POS_TYPE    *posHour,
                   register PNL_POS_TYPE    *posMin,
                   register PNL_POS_TYPE    *posSec,
                   register PNL_POS_TYPE    *posSig)
{
#if (_TRANSFER_ALI_BOARD_ == _TRANSFER_ALI_BOARD_DISABLE_)
#else
      if (hour == PNL_DISPLAY_OFF)
      {
    #ifdef PNL_POS_TIME_HOUR
          PnlLightOff(posHour);
    #endif

          PnlLightOff(posMin);
          PnlLightOff(posSec);
          PnlLightOff(posSig);
      }
      else
#endif        
      {
    PnlLightOff(posSig);
#ifdef  PNL_POS_TIME_HOUR
	#if (_FP==80 || _FP == 900 || _FP==901)/*Only for _FP==80, FOR dingtian*/
    if (hour != PNL_DISPLAY_OFF)
    {
        PnlSetDigitalMessage(hour, posHour);
        PnlBlinkOff(posHour);
    }
    else
        PnlLightOff(posHour);
#else

    if (hour != PNL_DISPLAY_OFF)
    {
        PnlSetDigitalMessage(hour, posHour);
        PnlBlinkOff(posHour);
    }
    else
        PnlLightOff(posHour);
#endif
#else

    min += hour * 60;
#endif

    if (min != PNL_DISPLAY_OFF)
    {
        PnlSetDigitalMessage(min, posMin);
        PnlBlinkOff(posMin);
    }
    else
        PnlLightOff(posMin);
    if(sec!= PNL_DISPLAY_OFF)
    {
        PnlSetDigitalMessage(sec, posSec);
        PnlBlinkOff(posSec);
    }
    else
        PnlLightOff(posSec);
#if(_FP==900 ||_FP==901)

    if (hour == PNL_DISPLAY_OFF)
    {
        posSig++;
        PnlLightOn(posSig);
        PnlBlinkOff(posSig);
    }
    else
    {
        PnlLightOn(posSig);
        PnlBlinkOff(posSig);
    }

#else
    PnlLightOn(posSig);
    PnlBlinkOff(posSig);
#endif

#if (_FP==80)/*Only for _FP==80*/

    if (!hour)
    {
        PnlLightTableOff(3, 0x0100);
        PnlBlinkTableUpdate(3);
    }
#endif

    }
}
#endif

/*------------------------------------------------------------------\
|   Function_Name:                                                  |
|       void PnlModuleMessage(DWORD                 hMsg,           |
|                             PNL_MSG_TYPE          *mMsg,          |
|                             DWORD                 mAttr[],        |
|                             DWORD                 nMsg,           |
|                             DWORD                 lMsg,           |
|                             register PNL_POS_TYPE *posMsg)        |
|                                                                   |
|   Description: This function will print out message to 7 Segment  |
|                LEDs pointed by posMsg.                            |
|                                                                   |
|   Arguments:                                                      |
|       DWORD                   hMsg    : handle of message         |
|       PNL_MSG_TYPE            *mMsg   : matrix of message         |
|       DWORD                   mAttr[] : matrix of message's attr- |
|                                         ibute                     |
|       DWORD                   nMsg    : total number of message   |
|       DWORD                   lMsg    : length of message         |
|       register PNL_POS_TYPE   *posMsg : position of 7 Segment LE- |
|                                         Ds                        |
|                                                                   |
|   Return Value:                                                   |
\------------------------------------------------------------------*/
#ifdef  PNL_MODULE_USED_MESSAGE
#if(_CUSTOM == CYBERHOME)
void PnlModuleMessage(DWORD hMsg,
                      PNL_MSG_TYPE *mMsg,
                      DWORD mAttr[],
                      DWORD nMsg,
                      DWORD lMsg,
                      register PNL_POS_TYPE *posMsg,
                      register PNL_POS_TYPE *posMsg2)
#else
void PnlModuleMessage(DWORD                 hMsg,
                      PNL_MSG_TYPE          *mMsg,
                      DWORD                 mAttr[],
                      DWORD                 nMsg,
                      DWORD                 lMsg,
                      register PNL_POS_TYPE *posMsg)
#endif
{
    register DWORD  attr = mAttr[hMsg];

    if ((attr & PNL_LIGHT_ON) && (hMsg < nMsg))
    {
        PnlSetMessage(mMsg+hMsg*lMsg, posMsg);
    }
    if (attr & PNL_LIGHT_OFF)
    {
        PnlLightOff(posMsg);
#if(_CUSTOM == CYBERHOME)

        PnlLightOff(posMsg2);
#endif

    }
    if (attr & PNL_BLINK_ON)
    {
        PnlBlinkOn(posMsg);
    }
    if (attr & PNL_BLINK_OFF)
    {
        PnlBlinkOff(posMsg);
    }
}
#endif

/*------------------------------------------------------------------\
|   Function_Name:                                                  |
|       void PnlModuleLightDisc(register DWORD        *pSpeedCount, |
|                               register DWORD        *pDir,        |
|                               register PNL_POS_TYPE *posSegment,  |
|                               register PNL_POS_TYPE *posSig,      |
|                               register DWORD        attr)         |
|                                                                   |
|   Description: This function will change LIGHT DISC's status      |
|                                                                   |
|   Arguments:                                                      |
|           register DWORD        *pSpeedCount : address of Light   |
|                                                Disc's SpeedCount  |
|           register DWORD        *pDir        : address of Light   |
|                                                Disc's Direction   |
|           register PNL_POS_TYPE *posSegment  : position of Light  |
|                                                Disc's disc        |
|           register PNL_POS_TYPE *posSig      : position of Light  |
|                                                Disc's signal      |
|           register DWORD        attr         : new attribute of   |
|                                                Light Disc         |
|                                                                   |
|   Return Value:                                                   |
\------------------------------------------------------------------*/
#ifdef PNL_MODULE_USED_LIGHTDISC
void PnlModuleLightDisc(register DWORD          *pSpeedCount,
                        register DWORD          *pDir,
                        register PNL_POS_TYPE   *posSegment,
                        register PNL_POS_TYPE   *posSig,
                        register DWORD          attr)
{
    if ((attr & PNL_LIGHT_ON) || (attr & PNL_SPEED_OFF))
    {
        *pSpeedCount = PNL_CLK_LD_SPEED_OFF;
        PnlLightOn(posSegment);
        PnlLightOn(posSig);
    }
    if (attr & PNL_LIGHT_OFF)
    {
        *pSpeedCount = PNL_CLK_LD_SPEED_OFF;
        PnlLightOff(posSegment);
        PnlLightOff(posSig);
    }
	if (attr & PNL_PAUSE)
	{
        *pSpeedCount = PNL_CLK_LD_SPEED_OFF;
	    PnlBDirty = 1;
	}
    if (attr & PNL_SPEED_SLOW)
    {
        *pSpeedCount = PNL_CLK_LD_SPEED_SLOW;
        PnlLightOn(posSegment);
        PnlLightOn(posSig);
    }
    if (attr & PNL_SPEED_MIDDLE)
    {
        *pSpeedCount = PNL_CLK_LD_SPEED_MIDDLE;
        PnlLightOn(posSegment);
        PnlLightOn(posSig);
    }
    if (attr & PNL_SPEED_FAST)
    {
        *pSpeedCount = PNL_CLK_LD_SPEED_FAST;
        PnlLightOn(posSegment);
        PnlLightOn(posSig);
    }
    if (attr & PNL_BLINK_ON)
    {
        PnlBlinkOn(posSegment);
        PnlBlinkOn(posSig);
    }
    if (attr & PNL_BLINK_OFF)
    {
        PnlBlinkOff(posSegment);
        PnlBlinkOff(posSig);
    }
    if (attr & PNL_DIRECT_FORWARD)
    {
        *pDir = PNL_DIRECT_FORWARD;
    }
    if (attr & PNL_DIRECT_BACKWARD)
    {
        *pDir = PNL_DIRECT_BACKWARD;
    }
}
#endif

/*------------------------------------------------------------------\
|   Function_Name:                                                  |
|       void PnlModuleDigitalMsg(register DWORD value,              |
|                                register DWORD nTotal,             |
|                                register DWORD nOrder,             |
|                                PNL_POS_TYPE   *posDgt,            |
|                                PNL_POS_TYPE   *posMsg,            |
|                                PNL_POS_TYPE   *posSig)            |
|                                                                   |
|   Description: This function will display value to 3 parts of pa- |
|                nel, 7 Segment LEDs, signal and digital LEDs       |
|                                                                   |
|   Arguments:                                                      |
|       register DWORD  value   : the value would be displayed      |
|       register DWORD  nTotal  : maximum fo value                  |
|       register DWORD  nOrder  : the order of digital LEDs part    |
|       PNL_POS_TYPE    *posDgt : position of digital LEDs          |
|       PNL_POS_TYPE    *posMsg : position of 7 Segment LEDs        |
|       PNL_POS_TYPE    *posSig : position of signal                |
|                                                                   |
|   Return Value:                                                   |
\------------------------------------------------------------------*/
#ifdef  PNL_MODULE_USED_DGTMSG
void PnlModuleDigitalMsg(register DWORD value,
                         register DWORD nTotal,
                         register DWORD nOrder,
                         PNL_POS_TYPE   *posDgt,
                         PNL_POS_TYPE   *posMsg,
                         PNL_POS_TYPE   *posSig)
{
    register DWORD  i;

    if (value == PNL_DISPLAY_OFF)
    {
        PnlLightOff(posDgt);
        PnlLightOff(posMsg);
        PnlLightOff(posSig);
    }
    else
    {
        /* display digital LEDs part */
        /* we will light on these digital LEDs */
        /* which are less or equal to nTotal,  */
        /* and blink the exact value.          */
        if (nTotal > nOrder)                /* light on digital LEDs */
            nTotal = nOrder;
        for (i = 0; i < nTotal; i++)
            PnlLightOnS(posDgt[i]);
        for (; i < nOrder; i++)
            PnlLightOffS(posDgt[i]);

⌨️ 快捷键说明

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