📄 plc_demo.c
字号:
Display_LCD( WorkLink_Title );
}
strcpy(PCTxBuffer, dog_reply[i]);
break;
case 21:
WriteEEPROMonebyte( NETDOG_CONNECT_OPEN_ADDR, 1 );
NetFoxConnectOpenFlag = 1;
if( NetFoxPowerOpenFlag == 1 )
Display_LCD( Work_Title );
else
Display_LCD( WorkLink_Title );
strcpy(PCTxBuffer, dog_reply[i]);
PCConnectCount = 0;
break;
case 22:
WriteEEPROMonebyte( NETDOG_CONNECT_OPEN_ADDR, 0 );
NetFoxConnectOpenFlag = 0;
if(NetFoxPowerOpenFlag == 0 )
{
Display_LCD( Wait_Title );
}
else
{
Display_LCD( WorkAC_Title );
}
strcpy(PCTxBuffer, dog_reply[i]);
break;
case 23:
len = GetConcentFromString( PCRxBuffer, '(', ')', &mark );
memset( ModuleTxBuffer, 0, LINE_LENGTH );
DelayCount = 0;
strcpy( ModuleTxBuffer, "AT+CSCA=\"" );
memcpy( ModuleTxBuffer+9, PCRxBuffer+mark, len );
strcat( ModuleTxBuffer, "\",145\r\n");
strcpy(PCTxBuffer, dog_reply[i]);
break;
case 24:
strcpy( ModuleTxBuffer, "AT+CSCA?\r\n" );
break;
case 25:
DelayCount = 0;
strcpy( ModuleTxBuffer, "AT+CSCS=\"GSM\"\r\n" );
strcpy(PCTxBuffer, "NF:OK\r\n" );
break;
case 26:
DelayCount = 0;
strcpy( ModuleTxBuffer, "AT+CSCS=\"UCS2\"\r\n" );
strcpy(PCTxBuffer, "NF:OK\r\n" );
break;
case 27:
strcpy(PCTxBuffer, dog_reply[i]);
// WDTD = 0x10;
// WDRE = 1;
// WDT = 1;
// SWDT = 1;
// WDOUT= 1;
break;
case 28:
len = GetConcentFromString( PCRxBuffer, '(', ')', &mark );
if( len > 32 )
len = 32;
WriteEEPROMonestring( PCRxBuffer+mark, len, NETDOG_NAME_ADDR );
memcpy( Name, PCRxBuffer+mark, len );
Name[len] = 0;
strcpy(PCTxBuffer, dog_reply[i]);
break;
case 29:
strcpy(PCTxBuffer, dog_reply[i]);
GetStringFromEEPROM(PCTxBuffer + strlen(dog_reply[i]), NETDOG_NAME_ADDR );
strcat(PCTxBuffer, ")\r\n" );
break;
case 30:
NetFoxUseNameOpenFlag = 1;
WriteEEPROMonebyte(USE_NAME_OPEN_ADDR, 1);
strcpy(PCTxBuffer, dog_reply[i]);
break;
case 31:
NetFoxUseNameOpenFlag = 0;
WriteEEPROMonebyte(USE_NAME_OPEN_ADDR, 0);
strcpy(PCTxBuffer, dog_reply[i]);
break;
case 32:
len = GetConcentFromString( PCRxBuffer, '(', ')', &mark );
if( len > 16 )
len = 16;
WriteEEPROMonestring( PCRxBuffer+mark, len, NETDOG_SERIAL_NO_ADDR );
strcpy(PCTxBuffer, dog_reply[i]);
break;
case 33:
strcpy(PCTxBuffer, dog_reply[i]);
GetStringFromEEPROM(PCTxBuffer + strlen(dog_reply[i]), NETDOG_SERIAL_NO_ADDR );
strcat(PCTxBuffer, ")\r\n" );
break;
default:
strcpy(PCTxBuffer, dog_reply[i]);
break;
}
PCRxBuffer[0] = 0;
PCReceiveCount = 0;
PCConnectCount = 0;
if( ConnectSmsHasSent == 1 )
{
ConnectSmsHasSent = 0;
RePCDisconnectFlag = 1;
LCDRefreshFlag = 1;
}
SendStringToPC();
return;
}
}
strcpy(PCTxBuffer, "ERROR COMMAND\r\n");
PCRxBuffer[0] = 0;
PCReceiveCount = 0;
SendStringToPC();
}
/*-----------------------------------------
JudgeModuleString
判断来自模块的字符串是什么
------------------------------------------*/
void JudgeModuleString( )
{
unsigned char i, j, k;
if(ModuleRxBuffer[0] == 0)
return;
switch( Initialized )
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 7:
case 6:
if( StrStr(ModuleRxBuffer, module_reply[0]) )
{
Initialized ++;
ModuleWaitFlag = 0;
}
break;
case 5:
if( StrStr(ModuleRxBuffer, module_reply[1]) )
{
ModuleWaitFlag = 0;
Initialized ++;
}
else if( StrStr(ModuleRxBuffer, "ERROR") )
{
strcpy( PCTxBuffer, "NF:NOSimCard\r\n" );
Display_LCD2( "NO SIMCARD....... " );
LedFlashFlag = 1;
SendStringToPC();
}
break;
case 8:
if( StrStr(ModuleRxBuffer, module_reply[2]) )
{
ModuleWaitFlag = 0;
Initialized ++;
}
break;
default:
if( StrStr( ModuleRxBuffer, module_reply[3]) )
{
ModuleWaitFlag = 0;
Initialized ++;
}
else if( StrStr( ModuleRxBuffer, ">") )
{
ModuleWaitFlag = 0;
Initialized ++;
}
else if( StrStr( ModuleRxBuffer, module_reply[2]) )
{
strcpy(PCTxBuffer, "NF:CSQ: ");
strcat( PCTxBuffer, ModuleRxBuffer );
SendStringToPC();
}
else if( StrStr( ModuleRxBuffer, module_reply[4]) )
{
// strcpy(PCTxBuffer, dog_reply[17]);
// strcat( PCTxBuffer, ModuleRxBuffer );
// SendStringToPC();
//+CMTI:<mem>,<index>
//get index
strcpy( ModuleTxBuffer, "AT+CMGR=" );
i = strlen(ModuleRxBuffer);
i --;
j = 0;
while( ModuleRxBuffer[i] != ',' && i > 0)
{
i --;
j ++;
}
for( k = 0; k < j; k ++ )
{
ModuleTxBuffer[8+k] = ModuleRxBuffer[i+k];
}
ModuleTxBuffer[8+k] = 0;
ModuleTxBuffer[8+k+1] = '\r';
ModuleTxBuffer[8+k+2] = '\n';
}
else
{
strcpy( PCTxBuffer, ModuleRxBuffer );
SendStringToPC();
}
break;
}
ModuleRxBuffer[0] = 0;
ModuleReceiveCount = 0;
}
/*-----------------------------------------
SendStringToPC
发送字串到PC
------------------------------------------*/
void SendStringToPC( )
{
PCTxCount = 0;
if(PCTxBuffer[PCTxCount] == 0 )
{
PCTxBuffer[0] = 0;
return;
}
TI = 1;
}
/*-----------------------------------------
SendStringToModule
发送字串到模块
------------------------------------------*/
void SendStringToModule( )
{
if(ModuleTxBuffer[ModuleTxCount] == 0)
{
ModuleTxCount = 0;
memset( ModuleTxBuffer, 0, LINE_LENGTH );
Sms_edit_mode = 0;
return;
}
if( SendByteToModule(ModuleTxBuffer[ModuleTxCount]) )
{
if(ModuleTxBuffer[ModuleTxCount] == 0x0a)
{
ModuleWaitFlag = 1;
DelayCount = 0;
ModuleTxCount ++;
}
else if( ModuleTxBuffer[ModuleTxCount] == 0x1a )
{
ModuleWaitFlag = 1;
DelayCount = 0;
ModuleTxCount = 0;
ModuleTxBuffer[0] = 0;
Sms_edit_mode = 0;
}
else
{
ModuleTxCount ++;
}
}
}
/*EEPROM function */
unsigned char ReadEEPROMonebyte(unsigned char addr)
{
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
unsigned char ret;
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1 = addr;
return IRcvChar(xsla,xsuba,xsuba1,ret);
}
void WriteEEPROMonebyte( unsigned char addr, unsigned char ch )
{
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
/* less than 32*/
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=addr;
ISendChar(xsla,xsuba,xsuba1,ch);
}
void WriteEEPROMonestring( unsigned char *str, int len, unsigned char addr )
{
unsigned char ch;
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
int i;
/* less than 32*/
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=addr;
ISendChar(xsla,xsuba,xsuba1,(unsigned char)len);
for ( i= 0; i < len; i ++ )
{
DelayCount = 0;
while( DelayCount < 100 );
ISendChar(xsla,xsuba,xsuba1+i+1,str[i]);
}
}
unsigned char GetStringFromEEPROM( unsigned char *str, unsigned char addr )
{
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
unsigned char len;
int i;
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=addr;
len = IRcvChar(xsla,xsuba,xsuba1,len);
for ( i= 0; i < len; i ++ )
{
str[i] = IRcvChar(xsla,xsuba,xsuba1+1+i,str[i]);
str[i+1] = 0;
}
return len;
}
void SetFirPhoneNo( unsigned char *str, int len )
{
unsigned char ch;
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
int i;
/* less than 32*/
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=FIR_PHONE_NUMBER_ADDR;
ISendChar(xsla,xsuba,xsuba1,(unsigned char)len);
for ( i= 0; i < len; i ++ )
{
DelayCount = 0;
while( DelayCount < 100 );
ISendChar(xsla,xsuba,xsuba1+i+1,str[i]);
}
}
void SetSecPhoneNo( unsigned char *str, int len )
{
/* less than 32*/
unsigned char ch;
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
int i;
/* less than 32*/
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=SEC_PHONE_NUMBER_ADDR;
ISendChar(xsla,xsuba,xsuba1,(unsigned char)len);
for ( i= 0; i < len; i ++ )
{
DelayCount = 0;
while( DelayCount < 100 );
ISendChar(xsla,xsuba,xsuba1+i+1,str[i]);
}
}
unsigned char GetFirPhoneNo( unsigned char *str, const char mode )
{
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
unsigned char len;
int i;
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=FIR_PHONE_NUMBER_ADDR;
len = IRcvChar(xsla,xsuba,xsuba1,len);
for ( i= 0; i < len; i ++ )
{
if( mode == 1)
{
/* USC2 mode */
str[i*4] = '0';
str[i*4+1] = '0';
str[i*4+2] = '3';
str[i*4+3] = IRcvChar(xsla,xsuba,xsuba1+1+i,str[i*4+3]);
str[i*4+4] = 0;
}
else
{
str[i] = IRcvChar(xsla,xsuba,xsuba1+1+i,str[i]);
str[i+1] = 0;
}
}
return len;
}
unsigned char GetSecPhoneNo( unsigned char *str, const char mode )
{
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
unsigned char len;
int i;
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=SEC_PHONE_NUMBER_ADDR;
len = IRcvChar(xsla,xsuba,xsuba1,len);
for ( i= 0; i < len; i ++ )
{
if( mode == 1)
{
/* USC2 mode */
str[i*4] = '0';
str[i*4+1] = '0';
str[i*4+2] = '3';
str[i*4+3] = IRcvChar(xsla,xsuba,xsuba1+1+i,str[i*4+3]);
str[i*4+4] = 0;
}
else
{
str[i] = IRcvChar(xsla,xsuba,xsuba1+1+i,str[i]);
str[i+1] = 0;
}
}
return len;
}
void SetDisconnectTime( unsigned char ch )
{
unsigned char i, ch1;
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=DISCONNECT_TIME_ADDR;
ISendChar(xsla,xsuba,xsuba1,ch);
}
unsigned char GetDisconnectTime( )
{
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
unsigned char len;
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=DISCONNECT_TIME_ADDR;
len = IRcvChar(xsla,xsuba,xsuba1,len);
return len;
}
void SetSMSSendTimes( unsigned char ch )
{
unsigned char i, ch1;
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
xsla = EEPRom_SLA;
xsuba= EEPRom_SUBA;
xsuba1=SMS_SEND_TINE_ADDR;
ISendChar(xsla,xsuba,xsuba1,ch);
}
unsigned char GetSMSSendTimes()
{
unsigned char xsla;
unsigned char xsuba;
unsigned char xsuba1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -