📄 mfw_sat.c
字号:
{
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)
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,0x0A,1)) /* USSD string */
return 0;
if (!decIconId(&cmd.c.ss.info.icon,0))
return 0;
return MfwSatSendUSSD;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SAT |
| STATE : code ROUTINE : decCall |
+--------------------------------------------------------------------+
PURPOSE : decode command: setup call
*/
static U32 decCall (void)
{
TRACE_FUNCTION("decCall()");
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.call.info.code = 0; /* set default values */
cmd.c.call.info.len = -1; /* optional info if absent */
cmd.c.call.info.text = 0;
cmd.c.call.info2.code = 0; /* set default values */
cmd.c.call.info2.len = -1; /* optional info if absent */
cmd.c.call.info2.text = 0;
if (!decAlpha(&cmd.c.call.info,0))
return 0;
if (!decAddrSS(&cmd.c.call.addr,0x06,1)) /* address (SS string) */
return 0;
cmd.c.call.bc.len = 0; /* set default values */
cmd.c.call.bc.data = 0;
if (!decData(&cmd.c.call.bc,0x07,0)) /* bearer capabilities */
return 0;
cmd.c.call.sa.len = 0; /* set default values */
cmd.c.call.sa.data = 0;
if (!decData(&cmd.c.call.sa,0x08,0)) /* subaddress */
return 0;
cmd.c.call.durUnit = 0; /* set default values */
cmd.c.call.durValue = 0;
if (!decDuration(&cmd.c.call.durUnit,0)) /* redial timing */
return 0;
if (!decIconId(&cmd.c.call.info.icon,0)) /* icon for info 1 */
return 0;
if (!decAlpha(&cmd.c.call.info2,0)) /* call setup info (2) */
return 0;
if (!decIconId(&cmd.c.call.info2.icon,0)) /* icon for info 2 */
return 0;
return MfwSatCall;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SAT |
| STATE : code ROUTINE : decExecAT |
+--------------------------------------------------------------------+
PURPOSE : decode command: run AT command
*/
static U32 decExecAT (void)
{
TRACE_FUNCTION("decExecAT()");
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.cmd.info.code = 0; /* set default values */
cmd.c.cmd.info.len = -1; /* optional info if absent */
cmd.c.cmd.info.text = 0;
if (!decAlpha(&cmd.c.cmd.info,0))
return 0;
cmd.c.cmd.cmd.len = 0; /* set default values */
cmd.c.cmd.cmd.data = 0;
if (!decData(&cmd.c.cmd.cmd,0x28,1)) /* AT command string */
return 0;
if (!decIconId(&cmd.c.cmd.info.icon,0)) /* icon for info */
return 0;
return MfwSatExecAT;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SAT |
| STATE : code ROUTINE : decSndDTMF |
+--------------------------------------------------------------------+
PURPOSE : decode command: send DTMF
*/
static U32 decSndDTMF (void)
{
TRACE_FUNCTION("decSndDTMF()");
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.cmd.info.code = 0; /* set default values */
cmd.c.cmd.info.len = -1; /* optional info if absent */
cmd.c.cmd.info.text = 0;
if (!decAlpha(&cmd.c.cmd.info,0))
return 0;
cmd.c.cmd.cmd.len = 0; /* set default values */
cmd.c.cmd.cmd.data = 0;
if (!decData(&cmd.c.cmd.cmd,0x2C,1)) /* DTMF string */
return 0;
if (!decIconId(&cmd.c.cmd.info.icon,0)) /* icon for info */
return 0;
return MfwSatSendDTMF;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_SAT |
| STATE : code ROUTINE : decCcRes |
+--------------------------------------------------------------------+
PURPOSE : decode Call Control result
*/
static U32 decCcRes (void)
{
TRACE_FUNCTION("decCcRes()");
cmd.c.ccres.addr.ton = -1; /* set default values */
cmd.c.ccres.addr.len = -1;
cmd.c.ccres.addr.number = -1;
cmd.c.ccres.addr2.ton = -1; /* set on SMS result */
cmd.c.ccres.addr2.len = -1;
cm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -