Пример #1
0
void DealSmsContent(void)
{
    static BYTE SmsCmd;

    if (SmsContent[0] == '?')
    {
        SysHelp();
        return;
    }

    if (SmsContent[0] != 'F')
    {
        return;
    }

    SmsCmd = SmsContent[1];

    switch (SmsCmd)
    {   
        
        case '0':   
            //设置参数
            //F0:13912345678,dddd-hh
            //SetSysParam();

            //短信唤醒
            //F0:192.168.1.1,8000  // 服务器IP和端口
            SmsWakeup();
        break;
        #if 0
        //F1
        case '1':   //读当前电量
            if (SysParam[SP_ENABLESOCKET] == 1)
            {    
                
                ReportCurentPower();
            }
            else  
            {
                //GetCurIpAdd();
                Clear_Sms_Content();
                mcpy(&SmsContent[0],"Socket mode don't support the CMD!\r\n",36);
                SmsLength = 36;
                if (SysParam[SP_MODTYPE] == GSM_MG323)
                {
                    Send_Pdu_SMS();
                }
                else if (SysParam[SP_MODTYPE] == CDMA_MC323)
                {
                    Send_Txt_SMS(SmsNumber, SmsContent);
                }
            }
        break;
        #endif
        //F2:0/1
        case '2':   //控制外部设备
         //   ControlDevice();
        break;

        //F3
        case '3':   //读取机房环境状态
            RepStatus();
        break;

        //F4
        case '4':   //设置串口参数
            SetUartParam();
        break;

        #if 0
        //特殊需求: 当外部设备开启时提前1个小时取电
        //F5:1[,0/1]  是否根据读电量的时间控制外设,是否需要偷电为可选择项
        case '5':  //偷电 ^_^
            SetDeviceParam();
        break;
        #endif
        
        case '6':
            //设置服务器域名
            //SetHostName();
            SetUserInfo();
        break;
        

        //系统设置开关:GPRS/恢复默认参数/系统复位
        case '7':
            SysConfig();
        break;

        //返回电表ID
        case '8':
            if (SysParam[SP_ENABLESOCKET] == 0)
            {
                GetEmId();
            }
            else
            {
                GetCurIpAdd();
                /*
                Clear_Sms_Content();
                mcpy(&SmsContent[0],"Socket mode don't support the CMD!\r\n",36);
                SmsLength = 36;
                Send_Txt_SMS(SmsNumber, SmsContent);
                */
            }
        break;

        //设置服务器IP地址和端口及本地端口
        //F9:192.168.1.1,5000,9000
        case '9':
            SetServerAddr();
        break;

        //错误命名不处理,也不返回,防止垃圾短信
    }

    Clear_Sms_Content();
}
Пример #2
0
static  void  parseOptions( char *cmd )
/*************************************/
{
    char                *ptr;
    char                opt;

    cmd = skipBlanks( cmd );
    if( *cmd == '\0' || *cmd == '?' ) {
        SysHelp();                      /* no name specified */
    } else {
        ptr = skipToDelim( cmd );
        while( *cmd != '\0' ) {         /* parse options */
            ptr = skipToDelim( cmd );
            if( *cmd != '-'             /* object file name */
#if !defined( __QNX__ )
                && *cmd != '/'
#endif
                ) {
                if( objName == NULL ) {
                    ptr = skipFName( cmd );
                    objName = ParseName( cmd, ptr );
                } else {
                    SysError( ERR_INV_CMMD_OPTION, false );
                }
            } else {
                opt = tolower( *(++cmd) );
                switch( opt ) {
                case 'a':
                    Options |= FORM_ASSEMBLER;
                    if( tolower( *( cmd + 1 ) ) == 'u' ) {
                        cmd++;
                        Options |= FORM_UNIX;
                    }
                    break;
                case 'b':
                    Options |= FORM_INDEX_IN;
                    break;
                case 'e':
                    ImpDump = true;
                    break;
                case 'p':
                    ExpDump = true;
                    break;
                case 'r':
                    Options |= FORM_REG_UPPER;
                    break;
                case 'u':
                    Options |= FORM_NAME_UPPER;
                    break;
                case 'l':
                    lstReqd = true;
                    ++cmd;
                    if( *cmd == '=' || *cmd == '@' || *cmd == '#' ) {
                        ++cmd;
                        ptr = skipFName( cmd );
                        lstName = ParseName( cmd, ptr );
                    }
                    break;
                case 's':
                    srcReqd = true;
                    ++cmd;
                    if( *cmd == '=' || *cmd == '@' || *cmd == '#' ) {
                        ++cmd;
                        ptr = skipFName( cmd );
                        SrcName = ParseName( cmd, ptr );
                    }
                    break;
                case 'i':
                    ++cmd;
                    if( *cmd == '=' || *cmd == '@' || *cmd == '#' ) {
                        ++cmd;
                    }
                    if( isalpha( *cmd ) || *cmd == '_' ) {
                        IntLblStart = toupper( *cmd );
                    }
                    break;
                case 'c':
                    ++cmd;
                    if( *cmd == '=' || *cmd == '@' || *cmd == '#' ) {
                        CodeName = ParseName( ++cmd, ptr );
                        break;
                    } /* else - fall through */
                case 'w':
                    Options |= FORM_DO_WTK;
                    break;
                case 'm':
                    UnMangle = false;
                    break;
                default:
                    SysError( ERR_INV_CMMD_OPTION, false );
                }
            }
            cmd = skipBlanks( ptr );
        }
        if( objName == NULL ) {
            SysError( ERR_NO_OBJ_SPEC, false );
        }
    }
}