?? sms.c
字號(hào):
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 ); //發(fā)送
}
/*------------------------------------------------------------------
名稱: AskDetectSMS
作用: 詢問監(jiān)測(cè)短信
輸入: 無(wú)
輸出: 無(wú)
創(chuàng)建日期: 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
作用: 設(shè)置
輸入: 無(wú)
輸出: 無(wú)
創(chuàng)建日期: 2005-8-26
修改日期: 2005-8-26
------------------------------------------------------------------*/
void SetupSMS( void )
{
switch( TempBuffer[2] )
{
case '1': //設(shè)置密碼
strcpy( Password, &TempBuffer[ 0x05 ] );
strcpy( PasswordCheck, Password );
ParameterErrorFlag &= 0x3e;
break;
case '2': //設(shè)置電話
strcpy( PhoneNumber, &TempBuffer[ 0x05 ] );
strcpy( PhoneCheck, PhoneNumber );
ParameterErrorFlag &= 0x3d;
break;
case '3': //默認(rèn)狀態(tài)
DefaultStatus = StringToBit( TempBuffer, 0x05 );
DefaultCheck = DefaultStatus;
ParameterErrorFlag &= 0x3b;
OLDDETP = DefaultStatus;
DETP = (P4 ^ 0xff);
DelightAll();
break;
case '4': //報(bào)警狀態(tài)
WarnStatus = StringToBit( TempBuffer, 0x05 );
WarnCheck = WarnStatus;
ParameterErrorFlag &= 0x37;
OLDDETP = DefaultStatus;
DETP = (P4 ^ 0xff);
DelightAll();
break;
case '5': //繼電器控制狀態(tài)
RelayStatus = StringToBit( TempBuffer, 0x05 );
RelayCheck = RelayStatus;
ParameterErrorFlag &= 0x2f;
OLDDETP = DefaultStatus;
DETP = (P4 ^ 0xff);
DelightAll();
break;
case '6': //短消息等待時(shí)間
SMSWait = atoi( &TempBuffer[ 0x05 ] );
SMSWaitCheck = SMSWait;
ParameterErrorFlag &= 0x1f;
break;
case '7': //電工電話
strcpy( DGPhoneNumber, &TempBuffer[ 0x05 ] );
strcpy( DGPhoneCheck, DGPhoneNumber );
ParameterErrorFlag &= 0x3f;
break;
case 'D':
EnableRelay( 0 ); //控制繼電器
Delays(4);
DisableRelay( 0 ); //控制繼電器
break;
case 'E': //復(fù)位
ResetFlag = true;
break;
case 'F': //短消息數(shù)目清0
SMSNumber = 0x00;
break;
default: return;
}
if( (SMSWait & 0x81) != 0x81 )
{
TempBuffer[0x04] = 0x00;
sprintf( Tem2Buffer,"SZ%s[0]",TempBuffer );
SMSSend( SendPhoneNumber, Tem2Buffer );
}
}
/*------------------------------------------------------------------
名稱: ErrorPassword
作用: 密碼錯(cuò)誤
輸入: 無(wú)
輸出: 無(wú)
創(chuàng)建日期: 2005-8-26
修改日期: 2005-8-26
------------------------------------------------------------------*/
void ErrorPassword( void )
{
TempBuffer[0x4] = 0x00;
sprintf( Tem2Buffer,"SZ%s[2]",TempBuffer );
SMSSend( SendPhoneNumber, Tem2Buffer );
}
/*------------------------------------------------------------------
名稱: ErrorPassword
作用: 密碼錯(cuò)誤
輸入: 無(wú)
輸出: 無(wú)
創(chuàng)建日期: 2005-8-26
修改日期: 2005-8-26
------------------------------------------------------------------*/
void ErrorData( void )
{
TempBuffer[0x4] = 0x00;
sprintf( Tem2Buffer,"SZ%s[1]",TempBuffer );
SMSSend( SendPhoneNumber, Tem2Buffer );
}
/*------------------------------------------------------------------
名稱: SendAskSetup
作用: 發(fā)送要求設(shè)置短信
輸入: pPhoneNumber -> 電話號(hào)碼
uchar Status -> 不正常標(biāo)志
輸出: 無(wú)
創(chuàng)建日期: 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 ); //發(fā)送
}
/*------------------------------------------------------------------
名稱: SendDetect
作用: 發(fā)送監(jiān)測(cè)狀態(tài)
輸入: pPhoneNumber -> 電話號(hào)碼
輸出: 無(wú)
創(chuàng)建日期: 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 ) & WarnStatus ); //判斷需要報(bào)警位是否有變化
c2 = ( ca & WarnStatus ); //判斷是否有報(bào)警
for( i = 0x00;i < 0x04; i ++ ) //點(diǎn)燈
{
if( c2 & Table38[ i ] )
{
LightOther( i + 1 );
#ifdef HARDDEBUG1
DSend("\r\nLight:");
z = i + 0x30;
DSend( &z );
#endif
}
else
{
DelightOther( i + 1 );
#ifdef HARDDEBUG1
DSend("\r\nDelight:");
z = i + 0x30;
DSend( &z );
#endif
}
}
c2 = ( ca & WarnStatus ); //判斷是否有報(bào)警
c3 = ( c2 & RelayStatus ); //判斷是否有操作繼電器
for( i = 0x00; i < 0x08; i ++ )
{
c = 0x00;
if( DETP & Table38[ i ] ) c |= 0x01; //端口狀態(tài)
if( c1 & Table38[ i ] ) c |= 0x08; //狀態(tài)變化
if( c2 & Table38[ i ] ){c |= 0x02;DGTemp[ i + 5 ] = '1';}
//報(bào)警
if( c3 & Table38[ i ] ) c |= 0x04; //繼電器動(dòng)作
if( c < 0x0a) //Number to char
{
TempBuffer[ i ] = c + 0x30;
}
else
{
TempBuffer[ i ] = c + 0x37;
}
}
TempBuffer[ 8 ] = 0x00;
c &= RelayStatus;
sprintf( Tem2Buffer, "SZ[%s](11)<%s>(11)<%s>", Password, TempBuffer, TempBuffer );
SMSSend( pPhoneNumber, Tem2Buffer ); //發(fā)送
if( !(SMSWait & 0x82 ) )
{
WaitStatus |= Table38[ 0 ]; //設(shè)置等待位
WaitTime[0] = SMSWait * 2; //設(shè)置等待時(shí)間
}
else
{
WaitStatus &= Tablef38[ 0 ]; //清除等待位
}
OLDDETP = DETP;
SMSSend( DGPhoneNumber, DGTemp ); //發(fā)送
}
/*------------------------------------------------------------------
名稱: SendLogin
作用: 發(fā)送注冊(cè)
輸入: pPhoneNumber -> 電話號(hào)碼
輸出: 無(wú)
創(chuàng)建日期: 2005-8-26
修改日期: 2005-8-26
------------------------------------------------------------------*/
void SendLogin( char *pPhoneNumber )
{
sprintf( Tem2Buffer , "SZ[%s](12)<0>(12)<0>", Password );
ErrorCode = 0x01;
SMSSend( pPhoneNumber, Tem2Buffer ); //發(fā)送
WaitStatus |= Table38[ 1 ]; //設(shè)置等待位
WaitTime[1] = SMSWait * 2; //設(shè)置等待時(shí)間
}
/*------------------------------------------------------------------
名稱: SendLogout
作用: 發(fā)送注銷
輸入: pPhoneNumber -> 電話號(hào)碼
輸出: 無(wú)
創(chuàng)建日期: 2005-8-26
修改日期: 2005-8-26
------------------------------------------------------------------*/
void SendLogout( char *pPhoneNumber )
{
sprintf( Tem2Buffer, "SZ[%s](13)<0>(13)<0>", Password );
ErrorCode = 0x02;
SMSSend( pPhoneNumber, Tem2Buffer ); //發(fā)送
WaitStatus &= Tablef38[ 2 ]; //清除等待位
}
/*------------------------------------------------------------------
名稱: SendPowerDown
作用: 發(fā)送注銷
輸入: pPhoneNumber -> 電話號(hào)碼
輸出: 無(wú)
創(chuàng)建日期: 2005-8-26
修改日期: 2005-8-26
------------------------------------------------------------------*/
void SendPowerDown( char *pPhoneNumber )
{
sprintf( Tem2Buffer, "SZ[%s](14)<0>(14)<0>", Password );
ErrorCode = 0x03;
SMSSend( pPhoneNumber, Tem2Buffer ); //發(fā)送
WaitStatus |= Table38[3]; //設(shè)置等待位
WaitTime[1] = SMSWait * 2; //設(shè)置等待時(shí)間
}
/*------------------------------------------------------------------
名稱: SendVersion
作用: 發(fā)送版本號(hào)
輸入: pPhoneNumber -> 電話號(hào)碼
輸出: 無(wú)
創(chuàng)建日期: 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 ); //發(fā)送
}
/*------------------------------------------------------------------
名稱: SendSMSNumber
作用: 發(fā)送版本號(hào)
輸入: pPhoneNumber -> 電話號(hào)碼
輸出: 無(wú)
創(chuàng)建日期: 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 ); //發(fā)送
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -