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(); }
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 ); } } }