本文整理汇总了C++中sim900_check_with_cmd函数的典型用法代码示例。如果您正苦于以下问题:C++ sim900_check_with_cmd函数的具体用法?C++ sim900_check_with_cmd怎么用?C++ sim900_check_with_cmd使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sim900_check_with_cmd函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: snprintf
bool GPRS::join()
{
char cmd[64];
char ipAddr[32];
//Select multiple connection
//sim900_check_with_cmd("AT+CIPMUX=1\r\n","OK",DEFAULT_TIMEOUT,CMD);
//set APN
snprintf(cmd,sizeof(cmd),"AT+CSTT=\"%s\",\"%s\",\"%s\"\r\n",_apn,_userName,_passWord);
sim900_check_with_cmd(cmd, "OK", DEFAULT_TIMEOUT,CMD);
//Brings up wireless connection
sim900_check_with_cmd("AT+CIICR\r\n","OK",DEFAULT_TIMEOUT,CMD);
//Get local IP address
sim900_send_cmd("AT+CIFSR\r\n");
sim900_read_buffer(ipAddr,32,2);
if(NULL != strstr(ipAddr,"AT+CIFSR")) {
_ip = str_to_ip(ipAddr+12);
if(_ip != 0) {
return true;
}
}
return false;
}
示例2: sim900_send_cmd
//Here is where we ask for APN configuration, with F() so we can save MEMORY
bool GPRS::join(const __FlashStringHelper *apn, const __FlashStringHelper *userName, const __FlashStringHelper *passWord)
{
byte i;
char *p, *s;
char ipAddr[32];
//Select multiple connection
//sim900_check_with_cmd("AT+CIPMUX=1\r\n","OK",DEFAULT_TIMEOUT,CMD);
//set APN. OLD VERSION
//snprintf(cmd,sizeof(cmd),"AT+CSTT=\"%s\",\"%s\",\"%s\"\r\n",_apn,_userName,_passWord);
//sim900_check_with_cmd(cmd, "OK\r\n", DEFAULT_TIMEOUT,CMD);
sim900_send_cmd("AT+CSTT=\"");
if (apn) {
sim900_send_cmd(apn);
}
sim900_send_cmd("\",\"");
if (userName) {
sim900_send_cmd(userName);
}
sim900_send_cmd("\",\"");
if (passWord) {
sim900_send_cmd(passWord);
}
sim900_check_with_cmd("\"\r\n", "OK\r\n", CMD);
//Brings up wireless connection
sim900_check_with_cmd("AT+CIICR\r\n","OK\r\n", CMD);
//Get local IP address
sim900_send_cmd("AT+CIFSR\r\n");
sim900_clean_buffer(ipAddr,32);
sim900_read_buffer(ipAddr,32);
//Response:
//AT+CIFSR\r\n --> 8 + 2
//\r\n --> 0 + 2
//10.160.57.120\r\n --> 15 + 2 (max) : TOTAL: 29
//Response error:
//AT+CIFSR\r\n
//\r\n
//ERROR\r\n
if (NULL != strstr(ipAddr,"ERROR")) {
return false;
}
s = ipAddr + 12;
p = strstr((char *)(s),"\r\n"); //p is last character \r\n
if (NULL != s) {
i = 0;
while (s < p) {
ip_string[i++] = *(s++);
}
ip_string[i] = '\0';
}
_ip = str_to_ip(ip_string);
if(_ip != 0) {
return true;
}
return false;
}
示例3: init
bool GPRS::init(void)
{
if(!sim900_check_with_cmd("AT\r\n","OK\r\n",CMD)){
return false;
}
if(!sim900_check_with_cmd("AT+CFUN=1\r\n","OK\r\n",CMD)){
return false;
}
if(!checkSIMStatus()) {
return false;
}
return true;
}
示例4: init
int GPRS::init(void)
{
if(0 != sim900_check_with_cmd("AT\r\n","OK",DEFAULT_TIMEOUT,CMD)){
return -1;
}
if(0 != sim900_check_with_cmd("AT+CFUN=1\r\n","OK",DEFAULT_TIMEOUT,CMD)){
return -1;
}
if(0 != checkSIMStatus()) {
return -1;
}
return 0;
}
示例5: need
int GPRS::readSMS(int messageIndex, char *message, int length, char *phone, char *datetime)
{
/* Response is like:
AT+CMGR=2
+CMGR: "REC READ","XXXXXXXXXXX","","14/10/09,17:30:17+08"
SMS text here
So we need (more or lees), 80 chars plus expected message length in buffer. CAUTION FREE MEMORY
*/
int i = 0;
char gprsBuffer[80 + length];
char cmd[16];
char *p,*p2,*s;
sim900_check_with_cmd("AT+CMGF=1\r\n","OK\r\n",CMD);
suli_delay_ms(1000);
sprintf(cmd,"AT+CMGR=%d\r\n",messageIndex);
sim900_send_cmd(cmd);
sim900_clean_buffer(gprsBuffer,sizeof(gprsBuffer));
sim900_read_buffer(gprsBuffer,sizeof(gprsBuffer),DEFAULT_TIMEOUT);
if(NULL != ( s = strstr(gprsBuffer,"+CMGR:"))){
// Extract phone number string
p = strstr(s,",");
p2 = p + 2; //We are in the first phone number character
p = strstr((char *)(p2), "\"");
if (NULL != p) {
i = 0;
while (p2 < p) {
phone[i++] = *(p2++);
}
phone[i] = '\0';
}
// Extract date time string
p = strstr((char *)(p2),",");
p2 = p + 1;
p = strstr((char *)(p2), ",");
p2 = p + 2; //We are in the first date time character
p = strstr((char *)(p2), "\"");
if (NULL != p) {
i = 0;
while (p2 < p) {
datetime[i++] = *(p2++);
}
datetime[i] = '\0';
}
if(NULL != ( s = strstr(s,"\r\n"))){
i = 0;
p = s + 2;
while((*p != '\r')&&(i < length-1)) {
message[i++] = *(p++);
}
message[i] = '\0';
}
return 0;
}
return -1;
}
示例6: sim900_check_with_cmd
bool GPRS::readSMS(int messageIndex, char *message,int length)
{
int i = 0;
char gprsBuffer[100];
//char cmd[16];
char num[4];
char *p,*s;
sim900_check_with_cmd("AT+CMGF=1\r\n","OK\r\n",CMD);
delay(1000);
sim900_send_cmd("AT+CMGR=");
itoa(messageIndex, num, 10);
sim900_send_cmd(num);
sim900_send_cmd("\r\n");
// sprintf(cmd,"AT+CMGR=%d\r\n",messageIndex);
// sim900_send_cmd(cmd);
sim900_clean_buffer(gprsBuffer,sizeof(gprsBuffer));
sim900_read_buffer(gprsBuffer,sizeof(gprsBuffer),DEFAULT_TIMEOUT);
if(NULL != ( s = strstr(gprsBuffer,"+CMGR:"))){
if(NULL != ( s = strstr(s,"\r\n"))){
p = s + 2;
while((*p != '\r')&&(i < length-1)) {
message[i++] = *(p++);
}
message[i] = '\0';
return true;
}
}
return false;
}
示例7: suli_delay_ms
int GPRS::sendSMS(char *number, char *data)
{
char cmd[32];
if(0 != sim900_check_with_cmd("AT+CMGF=1\r\n", "OK", DEFAULT_TIMEOUT,CMD)) { // Set message mode to ASCII
return -1;
}
suli_delay_ms(500);
snprintf(cmd, sizeof(cmd),"AT+CMGS=\"%s\"\r\n", number);
if(0 != sim900_check_with_cmd(cmd,">",DEFAULT_TIMEOUT,CMD)) {
return -1;
}
suli_delay_ms(1000);
sim900_send_cmd(data);
suli_delay_ms(500);
sim900_send_End_Mark();
return 0;
}
示例8: init
bool GPRS::init(void)
{
if (!sim900_check_with_cmd("AT\r\n","OK\r\n",CMD))
return false;
if (!sim900_check_with_cmd("AT+CFUN=1\r\n","OK\r\n",CMD))
return false;
if (!checkSIMStatus())
return false;
if (!sim900_check_with_cmd("AT+CNMI?\r\n", "+CNMI: 2,2,0,0,0\r\nOK\r\n", CMD)) {
if (!sim900_check_with_cmd("AT+CNMI=2,2,0,0,0\r\n","OK\r\n", CMD)) {
return false;
}
}
if (!sim900_check_with_cmd("AT+CMGF?\r\n", "+CMGF: 1\r\nOK\r\n", CMD)) {
if (!sim900_check_with_cmd("AT+CMGF=1\r\n","OK\r\n", CMD)) {
return false;
}
}
if (!sim900_check_with_cmd("AT+CLIP=1\r\n","OK\r\n", CMD)) {
return false;
}
return true;
}
示例9: itoa
bool GPRS::delBookEntry(int index)
{
char indexStr[4];
itoa(index, indexStr, 10);
sim900_flush_serial();
sim900_send_cmd(F("AT+CPBW="));
sim900_send_cmd(indexStr);
return sim900_check_with_cmd(F("\r"),"OK\r\n",CMD);
}
示例10: queryBearer
bool GPRS::queryBearer(uint8_t * bearerStatus)
{
char receiveBuffer[32];
char * commaPtr;
// send AT+SAPBR=2,1 and read "+SAPBR"
if (sim900_check_with_cmd(F("AT+SAPBR=2,1\r\n"),"+SAPBR:", DATA) == false)
return false;
sim900_clean_buffer(receiveBuffer, sizeof(receiveBuffer));
// check response which looks like:
// +SAPBR: <cid>,<Status>,<IP_Addr>\r\nOK
// read cid (always 1)
if (sim900_read_string_until(receiveBuffer, sizeof(receiveBuffer), "1,") == NULL)
return false;
// read until next comma -> status
commaPtr = sim900_read_string_until(receiveBuffer, sizeof(receiveBuffer), ",");
if (commaPtr == NULL)
return false;
// replace comma with string termination
*commaPtr = '\0';
// now extract status
*bearerStatus = (uint8_t)atol(receiveBuffer);
// only check for ip address if we are connected (=1)
if (*bearerStatus == 1)
{
char * endOfIpAddress = NULL;
// read ip address, which is enclosed in '"', so read first '"'
if (sim900_read_string_until(receiveBuffer, sizeof(receiveBuffer), "\"") == NULL)
return false;
// read second '"'
endOfIpAddress = sim900_read_string_until(receiveBuffer, sizeof(receiveBuffer), "\"");
if (endOfIpAddress == NULL)
return false;
*endOfIpAddress = '\0';
strncpy(ip_string, receiveBuffer, sizeof(ip_string));
_ip = str_to_ip(ip_string);
}
// flush rest of data which should be "\r\nOK"
sim900_flush_serial();
return true;;
}
示例11: callUp
int GPRS::callUp(char *number)
{
char cmd[24];
if(0 != sim900_check_with_cmd("AT+COLP=1\r\n","OK",DEFAULT_TIMEOUT,CMD)) {
return -1;
}
suli_delay_ms(1000);
sprintf(cmd,"ATD%s;\r\n", number);
sim900_send_cmd(cmd);
return 0;
}
示例12: sim900_send_cmd
bool GPRS::ntpSyncDateTime(int8_t timezone)
{
// e.g. "-105\0", this is not a valid value to pass to the SIM module, but we need to make sure not
// to cross boundaries of the char array
char timezoneString[5] = {'\0'};
if (sim900_check_with_cmd(F("AT+CNTPCID=1\r\n"), "OK\r\n", CMD) == false)
return false;
sim900_send_cmd(F("AT+CNTP=\"pool.ntp.org\","));
itoa(timezone, timezoneString, 10);
sim900_send_cmd(timezoneString);
if (sim900_check_with_cmd(F("\r\n"), "OK\r\n", CMD) == false)
return false;
return sim900_check_with_cmd(F("AT+CNTP\r\n"), "+CNTP: 1", CMD);
}
示例13: close
bool GPRS::close()
{
// if not connected, return
if (is_connected() == false) {
return true;
}
if(0 != sim900_check_with_cmd("AT+CIPCLOSE\r\n", "CLOSE OK", DEFAULT_TIMEOUT,CMD)) {
return false;
}
return true;
}
示例14: callUp
bool GPRS::callUp(char *number)
{
if(!sim900_check_with_cmd("AT+COLP=1\r\n","OK\r\n",CMD)) {
return false;
}
delay(1000);
sim900_send_cmd("ATD");
sim900_send_cmd(number);
sim900_send_cmd(";\r\n");
return true;
}
示例15: init
bool GPRS::init(void)
{
if(!sim900_check_with_cmd(F("AT\r\n"),"OK\r\n",CMD)){
return false;
}
if(!sim900_check_with_cmd(F("AT+CFUN=1\r\n"),"OK\r\n",CMD)){
return false;
}
//180822 Set SMS to text mode
if(!sim900_check_with_cmd(F("AT+CMGF=1\r\n"), "OK\r\n", CMD)) { // Set message mode to ASCII
return false;
}
//delay(500); It is not necessary, as we have time before next command
if(!checkSIMStatus()) {
return false;
}
return true;
}