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

📄 mfw_sat.c

📁 GSM手机设计软件代码
💻 C
📖 第 1 页 / 共 5 页
字号:

    res = decTLV(0x2B,mandatory,"ResponseFlag");

    if (res > 1)
    {
        *flag = 1;                      /* immediate response       */
        return 1;
    }
    else
    {
        *flag = 0;                      /* no immediate response    */
    }

    return res;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decDispText        |
+--------------------------------------------------------------------+

  PURPOSE : decode command: display text

*/

static U32 decDispText (void)
{
    TRACE_FUNCTION("decDispText()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevDisplay)
            break;                      /* success                  */

        TRACE_ERROR("illegal device combination");
        if (curCR)
        {
            satResponse(SatResUnknownData);
            return 0;
        }
        partialCompr = 1;
    }
    if (!decText(&cmd.c.text,0x0D,1))
        return 0;

    if (!decIconId(&cmd.c.text.icon,0))
        return 0;                       /* fatal error              */
    if (!decRespFlag(&cmd.c.text.responseFlag,0))
        return 0;                       /* fatal error              */

    return MfwSatTextOut;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decGetKey          |
+--------------------------------------------------------------------+

  PURPOSE : decode command: get inkey

*/

static U32 decGetKey (void)
{
    TRACE_FUNCTION("decGetKey()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevME)
            break;                      /* success                  */

        TRACE_ERROR("illegal device combination");
        if (curCR)
        {
            satResponse(SatResUnknownData);
            return 0;
        }
        partialCompr = 1;
    }
    if (!decText(&cmd.c.text,0x0D,1))
        return 0;

    if (!decIconId(&cmd.c.text.icon,0))
        return 0;                       /* fatal error              */

    return MfwSatGetKey;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decGetString       |
+--------------------------------------------------------------------+

  PURPOSE : decode command: get input

*/

static U32 decGetString (void)
{
    TRACE_FUNCTION("decGetString()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevME)
            break;                      /* success                  */

        TRACE_ERROR("illegal device combination");
        if (curCR)
        {
            satResponse(SatResUnknownData);
            return 0;
        }
        partialCompr = 1;
    }
    if (!decText(&cmd.c.inp.prompt,0x0D,1))
        return 0;
    if (!decRespLen(1))
        return 0;

    cmd.c.inp.defRsp.len = 0;           /* default settings         */
    cmd.c.inp.defRsp.code = 0;
    cmd.c.inp.defRsp.text = 0;

    if (!decText(&cmd.c.inp.defRsp,0x17,0))
        return 0;                       /* fatal error              */

    if (!decIconId(&cmd.c.inp.prompt.icon,0))
        return 0;                       /* fatal error              */

    return MfwSatGetString;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decPlayTone        |
+--------------------------------------------------------------------+

  PURPOSE : decode command: play tone

*/

static U32 decPlayTone (void)
{
    TRACE_FUNCTION("decPlayTone()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevSpeaker)
            break;                      /* success                  */

        TRACE_ERROR("illegal device combination");
        if (curCR)
        {
            satResponse(SatResUnknownData);
            return 0;
        }
        partialCompr = 1;
    }

    cmd.c.tone.alpha.len = 0;           /* default settings         */
    cmd.c.tone.alpha.code = 0;
    cmd.c.tone.alpha.text = 0;
    cmd.c.tone.tone = 0;
    cmd.c.tone.durUnit = 0;
    cmd.c.tone.durValue = 0;

    if (!decAlpha(&cmd.c.tone.alpha,0))
        return 0;
    if (!decTone(0))
        return 0;
    if (!decDuration(&cmd.c.tone.durUnit,0))
        return 0;

    return MfwSatPlayTone;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decSetMenu         |
+--------------------------------------------------------------------+

  PURPOSE : decode command: setup menu

*/

static U32 decSetMenu (void)
{
    SatItem *ip;
    S16 oldLen;
    U8 nItems;

    TRACE_FUNCTION("decSetMenu()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevME)
            break;                      /* success                  */

        TRACE_ERROR("illegal device combination");
        if (curCR)
        {
            satResponse(SatResUnknownData);
            return 0;
        }
        partialCompr = 1;
    }
    cmd.c.menu.nItems = 0;
    if (!decAlpha(&cmd.c.menu.header,1))
        return 0;

    oldLen = curCmdLen;
    ip = cmd.c.menu.items;
    if (!decItem(ip,1))
        return 0;
    nItems = 0;                         /* number of menu items     */

    while (oldLen != curCmdLen)         /* really decoded something */
    {
        nItems++;
        oldLen = curCmdLen;
        ip++;
        if (!decItem(ip,0))
            return 0;
    }

    if (!decNextAction(cmd.c.menu.items,nItems,0))
        return 0;

    if (!decIconId(&cmd.c.menu.header.icon,0))
        return 0;

    if (!decItemIcons(&cmd.c.menu,cmd.c.menu.items,nItems,0))
        return 0;

    cmd.c.menu.nItems = nItems;

    return MfwSatSetupMenu;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decSelItem         |
+--------------------------------------------------------------------+

  PURPOSE : decode command: select item

*/

static U32 decSelItem (void)
{
    SatItem *ip;
    S16 oldLen;
    U8 nItems;

    TRACE_FUNCTION("decSelItem()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevME)
            break;                      /* success                  */

        TRACE_ERROR("illegal device combination");
        if (curCR)
        {
            satResponse(SatResUnknownData);
            return 0;
        }
        partialCompr = 1;
    }
    cmd.c.menu.nItems = 0;

    cmd.c.menu.header.code = 0;         /* set default values       */
    cmd.c.menu.header.len = 0;
    cmd.c.menu.header.text = 0;
    if (!decAlpha(&cmd.c.menu.header,0))
        return 0;

    oldLen = curCmdLen;
    ip = cmd.c.menu.items;
    if (!decItem(ip,1))
        return 0;
    nItems = 0;                         /* number of menu items     */

    while (oldLen != curCmdLen)         /* really decoded something */
    {
        nItems++;
        oldLen = curCmdLen;
        ip++;
        if (!decItem(ip,0))
            return 0;
    }

    if (!decNextAction(cmd.c.menu.items,nItems,0))
        return 0;

    if (!decDefItem(cmd.c.menu.items,nItems,0))
        return 0;

    if (!decIconId(&cmd.c.menu.header.icon,0))
        return 0;

    if (!decItemIcons(&cmd.c.menu,cmd.c.menu.items,nItems,0))
        return 0;

    cmd.c.menu.nItems = nItems;

    return MfwSatSelectItem;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decSndSMS          |
+--------------------------------------------------------------------+

  PURPOSE : decode command: send SMS

*/

static U32 decSndSMS (void)
{
    TRACE_FUNCTION("decSndSMS()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevNet)
            break;                      /* success                  */

        TRACE_ERROR("illegal device combination");
        if (curCR)
        {
            satResponse(SatResUnknownData);
            return 0;
        }
        partialCompr = 1;
    }

    cmd.c.sms.info.code = 0;            /* set default values       */
    cmd.c.sms.info.len = -1;            /* optional info if absent  */
    cmd.c.sms.info.text = 0;
    if (!decAlpha(&cmd.c.sms.info,0))
        return 0;

    cmd.c.sms.addr.ton = 0;             /* set default values       */
    cmd.c.sms.addr.len = 0;
    cmd.c.sms.addr.number = 0;
    if (!decAddrSS(&cmd.c.sms.addr,0x06,0)) /* address (SS string)  */
        return 0;

    if (!decSMS(&cmd.c.sms.sms,1))
        return 0;

    if (!decIconId(&cmd.c.sms.info.icon,0))
        return 0;

    return MfwSatSendSMS;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decSndSS           |
+--------------------------------------------------------------------+

  PURPOSE : decode command: send SS

*/

static U32 decSndSS (void)
{
    TRACE_FUNCTION("decSndSS()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevNet)
            break;                      /* success                  */

        TRACE_ERROR("illegal device combination");
        if (curCR)
        {
            satResponse(SatResUnknownData);
            return 0;
        }
        partialCompr = 1;
    }

    cmd.c.ss.info.code = 0;             /* set default values       */
    cmd.c.ss.info.len = -1;             /* optional info if absent  */
    cmd.c.ss.info.text = 0;
    if (!decAlpha(&cmd.c.ss.info,0))
        return 0;

    if (!decAddrSS(&cmd.c.ss.ss,0x09,1)) /* SS string (== address)  */
        return 0;

    if (!decIconId(&cmd.c.ss.info.icon,0))
        return 0;

    return MfwSatSendSS;
}


/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417)        MODULE  : MFW_SAT            |
| STATE   : code                        ROUTINE : decSndUSSD         |
+--------------------------------------------------------------------+

  PURPOSE : decode command: send USSD

*/

static U32 decSndUSSD (void)
{
    TRACE_FUNCTION("decSndUSSD()");

    while (curCmdLen > 0)
    {
        if (!decDevId(1))
            return 0;

        if (cmd.source == SatDevSIM && cmd.dest == SatDevNet)

⌨️ 快捷键说明

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