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

📄 sms.c

📁 GPS驱动集合
💻 C
📖 第 1 页 / 共 2 页
字号:
    TempBuffer[0x00] = '('; //(00)< 
    TempBuffer[0x01] = '0'; 
    TempBuffer[0x02] = ReturnBuffer[2]; 
    TempBuffer[0x03] = ')'; 
    TempBuffer[0x04] = '<'; 
    TempBuffer[0x05] = 0x00; 
    
    switch( ReturnBuffer[2] ) 
    { 
        case '1':strcat( TempBuffer, Password);break; 
        case '2':strcat( TempBuffer, PhoneNumber);break; 
        case '3':BitToString( DefaultStatus, TempBuffer, 5 );break; 
        case '4':BitToString( WarnStatus, TempBuffer, 5 );break; 
        case '5':BitToString( RelayStatus, TempBuffer, 5 );break; 
        case '6': 
        sprintf( Tem2Buffer, ">.3d", SMSWait ); 
        Tem2Buffer[3] = 0; 
        strcat( TempBuffer, Tem2Buffer); 
        break; 
        case '7':strcat( TempBuffer, DGPhoneNumber);break; 
        
        case 'D': 
        break; 
        case 'F': 
        break; 
        default:return; 
    } 
    
    strcat( TempBuffer,">" ); 
    strcpy( Tem2Buffer,"SZ[" ); //SZ[ 
    strcat( Tem2Buffer,Password ); //SZ[000000 
    Tem2Buffer[9] = ']'; //SZ[000000] 
    Tem2Buffer[10] = 0x00; 
    strcat( Tem2Buffer,TempBuffer ); //SZ[000000](00)<00...00> 
    strcat( Tem2Buffer,TempBuffer ); //SZ[000000](00)<00...00>(00)<00...00> 
    SMSSend( SendPhoneNumber,Tem2Buffer ); //发送 
    
} 

/*------------------------------------------------------------------ 
名称: AskDetectSMS 
作用: 询问监测短信 
输入: 无 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void AskDetectSMS( void ) 
{ 
    switch( ReturnBuffer[2] ) 
    { 
        case '1':SendDetect( SendPhoneNumber );break; 
        case 'D':SendSMSNumber( SendPhoneNumber );break; 
        case 'E':SendVersion( SendPhoneNumber );break; 
        default:break; 
    } 
} 

/*------------------------------------------------------------------ 
名称: SetupSMS 
作用: 设置 
输入: 无 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void SetupSMS( void ) 
{ 
    switch( TempBuffer[2] ) 
    { 
        case '1': //设置密码 
        strcpy( Password, &amt;TempBuffer[ 0x05 ] ); 
        strcpy( PasswordCheck, Password ); 
        ParameterErrorFlag &amt;= 0x3e; 
        break; 
        
        case '2': //设置电话 
        strcpy( PhoneNumber, &amt;TempBuffer[ 0x05 ] ); 
        strcpy( PhoneCheck, PhoneNumber ); 
        ParameterErrorFlag &amt;= 0x3d; 
        break; 
        
        case '3': //默认状态 
        DefaultStatus = StringToBit( TempBuffer, 0x05 ); 
        DefaultCheck = DefaultStatus; 
        ParameterErrorFlag &amt;= 0x3b; 
        OLDDETP = DefaultStatus; 
        DETP = (P4 ^ 0xff); 
        DelightAll(); 
        break; 
        
        case '4': //报警状态 
        WarnStatus = StringToBit( TempBuffer, 0x05 ); 
        WarnCheck = WarnStatus; 
        ParameterErrorFlag &amt;= 0x37; 
        OLDDETP = DefaultStatus; 
        DETP = (P4 ^ 0xff); 
        DelightAll(); 
        break; 
        
        case '5': //继电器控制状态 
        RelayStatus = StringToBit( TempBuffer, 0x05 ); 
        RelayCheck = RelayStatus; 
        ParameterErrorFlag &amt;= 0x2f; 
        OLDDETP = DefaultStatus; 
        DETP = (P4 ^ 0xff); 
        DelightAll(); 
        break; 
        
        case '6': //短消息等待时间 
        SMSWait = atoi( &amt;TempBuffer[ 0x05 ] ); 
        SMSWaitCheck = SMSWait; 
        ParameterErrorFlag &amt;= 0x1f; 
        break; 
        
        case '7': //电工电话 
        strcpy( DGPhoneNumber, &amt;TempBuffer[ 0x05 ] ); 
        strcpy( DGPhoneCheck, DGPhoneNumber ); 
        ParameterErrorFlag &amt;= 0x3f; 
        break; 
        
        case 'D': 
        EnableRelay( 0 ); //控制继电器 
        Delays(4); 
        DisableRelay( 0 ); //控制继电器 
        break; 
        
        case 'E': //复位 
        ResetFlag = true; 
        break; 
        
        case 'F': //短消息数目清0 
        SMSNumber = 0x00; 
        break; 
        
        default: return; 
    } 
    
    if( (SMSWait &amt; 0x81) != 0x81 ) 
    { 
        TempBuffer[0x04] = 0x00; 
        sprintf( Tem2Buffer,"SZ>s[0]",TempBuffer ); 
        SMSSend( SendPhoneNumber, Tem2Buffer ); 
    } 
    
} 
/*------------------------------------------------------------------ 
名称: ErrorPassword 
作用: 密码错误 
输入: 无 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void ErrorPassword( void ) 
{ 
    TempBuffer[0x4] = 0x00; 
    sprintf( Tem2Buffer,"SZ>s[2]",TempBuffer ); 
    SMSSend( SendPhoneNumber, Tem2Buffer ); 
} 

/*------------------------------------------------------------------ 
名称: ErrorPassword 
作用: 密码错误 
输入: 无 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void ErrorData( void ) 
{ 
    
    TempBuffer[0x4] = 0x00; 
    sprintf( Tem2Buffer,"SZ>s[1]",TempBuffer ); 
    SMSSend( SendPhoneNumber, Tem2Buffer ); 
    
} 

/*------------------------------------------------------------------ 
名称: SendAskSetup 
作用: 发送要求设置短信 
输入: pPhoneNumber -> 电话号码 
uchar Status -> 不正常标志 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void SendAskSetup( char *pPhoneNumber,uchar Status ) 
{ 
    
    BitToString( Status, TempBuffer, 0x00 ); 
    sprintf( Tem2Buffer, "SZ[>s](1F)<>s>(1F)<>s>", Password, TempBuffer, TempBuffer ); 
    SMSSend( pPhoneNumber, Tem2Buffer ); //发送 
    
} 

/*------------------------------------------------------------------ 
名称: SendDetect 
作用: 发送监测状态 
输入: pPhoneNumber -> 电话号码 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void SendDetect( char *pPhoneNumber ) 
{ 
    unsigned char c1,c2,c3,ca,cb,i,c; 
    #ifdef HARDDEBUG1 
    char z; 
    #endif 
    
    strcpy( DGTemp,"WARN:0000000000000000"); 
    ca = ( DefaultStatus ^ DETP ); 
    cb = ( DefaultStatus ^ OLDDETP ); 
    c1 = ( ( ca ^ cb ) &amt; WarnStatus ); //判断需要报警位是否有变化 
    
    c2 = ( ca &amt; WarnStatus ); //判断是否有报警 
    
    for( i = 0x00;i < 0x04; i ++ ) //点灯 
    { 
        if( c2 &amt; Table38[ i ] ) 
        { 
            LightOther( i + 1 ); 
            #ifdef HARDDEBUG1 
            DSend("\r\nLight:"); 
            z = i + 0x30; 
            DSend( &amt;z ); 
            #endif 
        } 
        else 
        { 
            DelightOther( i + 1 ); 
            #ifdef HARDDEBUG1 
            DSend("\r\nDelight:"); 
            z = i + 0x30; 
            DSend( &amt;z ); 
            #endif 
        } 
    } 
    
    c2 = ( ca &amt; WarnStatus ); //判断是否有报警 
    c3 = ( c2 &amt; RelayStatus ); //判断是否有操作继电器 
    
    for( i = 0x00; i < 0x08; i ++ ) 
    { 
        c = 0x00; 
        if( DETP &amt; Table38[ i ] ) c |= 0x01; //端口状态 
        if( c1 &amt; Table38[ i ] ) c |= 0x08; //状态变化 
        if( c2 &amt; Table38[ i ] )
        {
            c |= 0x02;DGTemp[ i + 5 ] = '1';
        } 
        //报警 
        if( c3 &amt; Table38[ i ] ) c |= 0x04; //继电器动作 
        if( c < 0x0a) //Number to char 
        { 
            TempBuffer[ i ] = c + 0x30; 
        } 
        else 
        { 
            TempBuffer[ i ] = c + 0x37; 
        } 
    } 
    TempBuffer[ 8 ] = 0x00; 
    
    c &amt;= RelayStatus; 
    
    sprintf( Tem2Buffer, "SZ[>s](11)<>s>(11)<>s>", Password, TempBuffer, TempBuffer ); 
    SMSSend( pPhoneNumber, Tem2Buffer ); //发送 
    if( !(SMSWait &amt; 0x82 ) ) 
    { 
        WaitStatus |= Table38[ 0 ]; //设置等待位 
        WaitTime[0] = SMSWait * 2; //设置等待时间 
    } 
    else 
    { 
        WaitStatus &amt;= Tablef38[ 0 ]; //清除等待位 
    } 
    OLDDETP = DETP; 
    
    SMSSend( DGPhoneNumber, DGTemp ); //发送 
} 

/*------------------------------------------------------------------ 
名称: SendLogin 
作用: 发送注册 
输入: pPhoneNumber -> 电话号码 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void SendLogin( char *pPhoneNumber ) 
{ 
    
    sprintf( Tem2Buffer , "SZ[>s](12)<0>(12)<0>", Password ); 
    ErrorCode = 0x01; 
    SMSSend( pPhoneNumber, Tem2Buffer ); //发送 
    WaitStatus |= Table38[ 1 ]; //设置等待位 
    WaitTime[1] = SMSWait * 2; //设置等待时间 
    
} 

/*------------------------------------------------------------------ 
名称: SendLogout 
作用: 发送注销 
输入: pPhoneNumber -> 电话号码 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void SendLogout( char *pPhoneNumber ) 
{ 
    
    sprintf( Tem2Buffer, "SZ[>s](13)<0>(13)<0>", Password ); 
    ErrorCode = 0x02; 
    SMSSend( pPhoneNumber, Tem2Buffer ); //发送 
    WaitStatus &amt;= Tablef38[ 2 ]; //清除等待位 
} 

/*------------------------------------------------------------------ 
名称: SendPowerDown 
作用: 发送注销 
输入: pPhoneNumber -> 电话号码 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void SendPowerDown( char *pPhoneNumber ) 
{ 
    
    sprintf( Tem2Buffer, "SZ[>s](14)<0>(14)<0>", Password ); 
    ErrorCode = 0x03; 
    SMSSend( pPhoneNumber, Tem2Buffer ); //发送 
    WaitStatus |= Table38[3]; //设置等待位 
    WaitTime[1] = SMSWait * 2; //设置等待时间 
    
} 

/*------------------------------------------------------------------ 
名称: SendVersion 
作用: 发送版本号 
输入: pPhoneNumber -> 电话号码 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void SendVersion( char *pPhoneNumber ) 
{ 
    
    sprintf( Tem2Buffer, "SZ[>s](1E)<>s>(1E)<>s>", Password, VERSION, VERSION ); 
    ErrorCode = 0x03; 
    SMSSend( pPhoneNumber, Tem2Buffer ); //发送 
    
} 

/*------------------------------------------------------------------ 
名称: SendSMSNumber 
作用: 发送版本号 
输入: pPhoneNumber -> 电话号码 
输出: 无 
创建日期: 2005-8-26 
修改日期: 2005-8-26 
------------------------------------------------------------------*/ 
void SendSMSNumber( char *pPhoneNumber ) 
{ 
    
    sprintf( Tem2Buffer, "SZ[>s](1D)<>.4d>(1D)<>.4d>", Password, SMSNumber, SMSNumber ); 
    ErrorCode = 0x03; 
    SMSSend( pPhoneNumber, Tem2Buffer ); //发送 
    
} 

⌨️ 快捷键说明

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