📄 sci.c
字号:
}
////////////////填子机ID////////////////
for(i=0;i< (4*LostCount);i=i+4) //格式0x33 0x33 0x34 0x4X
{
SciTxBuf[96+i] = 0x30;
SciTxBuf[96+i+1] = 0x30;
SciTxBuf[96+i+2] = 0x34;
if(LostAlarmBuff[i/4] < 0x3C)
{
SciTxBuf[96+i+3] = LostAlarmBuff[i/4]-0x02;
}
else
{
SciTxBuf[96+i+3] = LostAlarmBuff[i/4]-0x02+0x07;
}
}
break;
case POWER_ALARM:
strcpy(SciTxBuf,"08916800000000000011000D91680000000000000008A736000000000000000000000000000000005B50673A63897535002000200020002000200020002000200020002000200020002000200020");
/////////////////填地点///////////////
ReadFlash(ALARM_INFO3);
for(i=0;i<24;i++){
SciTxBuf[48+i] = FLASHBUFFER[i];
}
/////////////////填个数///////////////
for(i=0;i<8;i++)
{
SciTxBuf[72+i] = 0x30;
}
SciTxBuf[74] = 0x33;
SciTxBuf[78] = 0x33;
if(PowerCount >= 10)
{
SciTxBuf[75] = 0x31;
SciTxBuf[79] = PowerCount - 0x10 + 0x30;
}
else
{
SciTxBuf[75] = 0x30;
SciTxBuf[79] = PowerCount + 0x30;
}
////////////////填子机ID////////////////
for(i=0;i< (4*PowerCount);i=i+4) //格式0x33 0x33 0x34 0x4X
{
SciTxBuf[96+i] = 0x30;
SciTxBuf[96+i+1] = 0x30;
SciTxBuf[96+i+2] = 0x34;
if(PowerAlarmBuff[i/4] < 0x3C)
{
SciTxBuf[96+i+3] = PowerAlarmBuff[i/4]-0x02;
}
else
{
SciTxBuf[96+i+3] = PowerAlarmBuff[i/4]-0x02+0x07;
} }
break;
//case MOVE_ALARM:
case MASTER_POWER_ALARM:
//填写中文短信包内容
strcpy(SciTxBuf,"08916800000000000011000D91680000000000000008A736000000000000000000000000000000005B50673A79FB52A8002000200020002000200020002000200020002000200020002000200020");//写一些固定字段
/////////////////填地点///////////////
ReadFlash(ALARM_INFO2);
for(i=0;i<24;i++){
SciTxBuf[48+i] = FLASHBUFFER[i];
}
/////////////////填个数///////////////
for(i=0;i<8;i++)
{
SciTxBuf[72+i] = '0';
}
SciTxBuf[74] = 0x33;
SciTxBuf[78] = 0x33;
if(LostCount >= 10)
{
SciTxBuf[75] = 0x31;
SciTxBuf[79] = MoveCount - 0x10 + 0x30;
}
else
{
SciTxBuf[75] = 0x30;
SciTxBuf[79] = MoveCount + 0x30;
}
////////////////填子机ID////////////////
for(i=0;i< (4*MoveCount);i=i+4) //格式0x33 0x33 0x34 0x4X
{
SciTxBuf[96+i] = 0x30;
SciTxBuf[96+i+1] = 0x30;
SciTxBuf[96+i+2] = 0x34;
if(MoveAlarmBuff[i/4] < 0x3C)
{
SciTxBuf[96+i+3] = MoveAlarmBuff[i/4]-0x02;
}
else
{
SciTxBuf[96+i+3] = MoveAlarmBuff[i/4]-0x02+0x07;
}
}
break;
case MASTER_ALARM:
//填写中文短信包内容
strcpy(SciTxBuf,"0891683108100005F011000D91683118505244F00008A73667D067D067D067D05730533A4E3B673A005A004900470042004500456A2157576545969C002000200020002000200020002000200020");//写一些固定字段
/////////////////填地点///////////////
ReadFlash(ALARM_INFO2);
for(i=0;i<24;i++)
{
SciTxBuf[48+i] = FLASHBUFFER[i];
}
break;
//case MASTER_POWER_ALARM:
case MOVE_ALARM:
//填写中文短信包内容
strcpy(SciTxBuf,"0891683108100005F011000D91683118505244F00008A73667D067D067D067D05730533A4E3B673A4EA46D4163897535002000200020002000200020002000200020002000200020002000200020");//写一些固定字段
/////////////////填地点///////////////
ReadFlash(ALARM_INFO2);
for(i=0;i<24;i++)
{
SciTxBuf[48+i] = FLASHBUFFER[i];
}
break;
default:
break;
}
//Feed_SoftDog(); //喂软狗
Feed_HardDog();
ReadFlash(SMS_CENTRE);//从FLASH中读出短信息中心号码
for(k=0;k<12;k=k+2) //写短信息中心字段
{
SciTxBuf[6+k+1]=FLASHBUFFER[k];
SciTxBuf[6+k] =FLASHBUFFER[k+1];
}
SciTxBuf[16]='F';
switch(TelNum)
{
case 1:
ReadFlash(TELE_NUMBER1);
break;
case 2:
ReadFlash(TELE_NUMBER2);
break;
case 3:
ReadFlash(TELE_NUMBER3);
break;
default:
break;
}
for(k=0;k<12;k=k+2) //写接收号码字段
{
SciTxBuf[28+k+1]=FLASHBUFFER[k];
SciTxBuf[28+k] =FLASHBUFFER[k+1];
}
SciTxBuf[38]='F';
SciTxBuf[156]=0x1A;
SciTxLen = 157;
UARTTransmitt();
i=SCI_RX_BUF_TC;//结束循环
}
}
}while(flag==0);
//Feed_SoftDog(); //喂软狗
}
void DialCellPhone(UINT8 Tel)
{
UINT8 i,flag;
while(SciTxFlag==TRANSMITT_ING);//等待上一次发送完毕
if(Tel==1) //第一次打电话要清除发短信带来的回复标志
{
while(RxTimeoutFlag < 3);
RxTimeoutFlag=0;
//Feed_SoftDog(); //喂软狗
Feed_HardDog();
do{
flag=0;
for(i=0;i<SCI_RX_BUF_TC;i++)
{
if(SciRxBuf[i]=='>')
{
//Feed_SoftDog(); //喂软狗
flag=1;
i=SCI_RX_BUF_TC;
}
}
}while(flag==0);
}
for(i=0;i<SCI_TX_BUF_TC;i++){
SciTxBuf[i]=0;
}
for(i=0;i<SCI_RX_BUF_TC;i++) {
SciRxBuf[i]=0;
}
//打电话
(void)strcpy(SciTxBuf,"ATD"); //打电话AT指令
switch(Tel)
{
case 1:
ReadFlash(TELE_NUMBER1); //读电话号码
break;
case 2:
ReadFlash(TELE_NUMBER2); //读电话号码
break;
case 3:
ReadFlash(TELE_NUMBER3); //读电话号码
break;
default:
break;
}
for(i=0;i<11;i++)
{
SciTxBuf[3+i]= FLASHBUFFER[i];
}
SciTxBuf[14]=';';
SciTxBuf[15]='\r';
SciTxLen =16;
SciRxPtr = 0;
UARTTransmitt(); //串口发送
}
void HangUpCellPhone(void)
{
UINT8 i,flag;
while(SciTxFlag==TRANSMITT_ING);//等待上一次发送完毕
while(RxTimeoutFlag < 3);
RxTimeoutFlag=0;
Feed_HardDog();
do{
flag=0;
for(i=0;i<SCI_RX_BUF_TC;i++){
if(SciRxBuf[i]==';') {
//Feed_SoftDog(); //喂软狗
flag=1;
i=SCI_RX_BUF_TC;
}
}
}while(flag==0);
for(i=0;i<SCI_TX_BUF_TC;i++){
SciTxBuf[i]=0;
}
for(i=0;i<SCI_RX_BUF_TC;i++) {
SciRxBuf[i]=0;
}
//挂断电话
(void)strcpy(SciTxBuf,"ATH\r");
SciTxLen =4;
SciRxPtr = 0;
UARTTransmitt(); //串口发送
while(SciTxFlag==TRANSMITT_ING);//等待上一次发送完毕
DelayMS(300);
Feed_HardDog();
(void)strcpy(SciTxBuf,"ATH\r");
SciTxLen =4;
SciRxPtr = 0;
UARTTransmitt(); //串口发送
/*
while(SciTxFlag==TRANSMITT_ING);//等待上一次发送完毕
while(RxTimeoutFlag < 3);
RxTimeoutFlag=0;
Feed_HardDog();
while(RxTimeoutFlag < 3);
RxTimeoutFlag=0;
Feed_HardDog();
do{
flag=0;
for(i=0;i<SCI_RX_BUF_TC;i++){
if(((SciRxBuf[i]=='C')&&(SciRxBuf[i+1]=='A'))&&((SciRxBuf[i]=='N')&&(SciRxBuf[i+1]=='O'))) {
//Feed_SoftDog(); //喂软狗
flag=1;
i=SCI_RX_BUF_TC;
}
}
}while(flag==0);
//再挂一次
for(i=0;i<SCI_TX_BUF_TC;i++){
SciTxBuf[i]=0;
}
for(i=0;i<SCI_RX_BUF_TC;i++) {
SciRxBuf[i]=0;
}
(void)strcpy(SciTxBuf,"ATH\r");
SciTxLen =4;
SciRxPtr = 0;
UARTTransmitt(); //串口发送
while(SciTxFlag==TRANSMITT_ING);//等待上一次发送完毕
while(RxTimeoutFlag < 3);
RxTimeoutFlag=0;
Feed_HardDog();
while(RxTimeoutFlag < 3);
RxTimeoutFlag=0;
Feed_HardDog();
do{
flag=0;
for(i=0;i<SCI_RX_BUF_TC;i++){
if(((SciRxBuf[i]=='O')&&(SciRxBuf[i+1]=='K'))&&((SciRxBuf[i]=='N')&&(SciRxBuf[i+1]=='O'))) {
//Feed_SoftDog(); //喂软狗
flag=1;
i=SCI_RX_BUF_TC;
}
}
}while(flag==0); */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -