Example #1
0
int sendTextMessage(struct ModemInterface* interf, char* number, char* buffer) {
#if defined(LINUX) || defined(ARDUINO)
	mmSendCommand(interf, F("AT+CMGS=\""));
	mmSendCommand(interf, number);
	mmSendCommand(interf, F("\"\r"));
	if (mmFind(interf->modem, F(">"))) {
		mmSendCommand(interf, buffer);
		mmWriteByte(interf->modem, 26);
		mmSendCommand(interf, F("\r"));
		return 1;
}
	return 0;
#endif
#ifdef _WIN32
	char c;
	mmSendCommand(interf, "AT+CMGS=\"");
	mmSendCommand(interf, number);
	mmSendCommand(interf, "\"\r");
	Sleep(1);
	if (mmFind(interf->modem, ">")) {
		mmSendCommand(interf, buffer);
		mmWriteByte(interf->modem, (char)26);
		mmSendCommand(interf, "\r");
		return 1;
	}
	return 0;
#endif
}
Example #2
0
int mmRetrieveTextMessage(struct ModemInterface* interface, char* buffer, int length, int id) {
	mmSendCommand(interface, F("AT+CMGR="));
	mmPrinti(interface->modem, id);
	//mmSendCommand(interface, id);
	mmWriteByte(interface->modem, '\r');
	mmFind(interface->modem, F("AT+CMGR="));
	int c = mmFindChars(interface->modem, 'E', ':');
	int len;
	if (c == ':') { //mmFindChar(interface->modem, ':')) {
		mmFindChar(interface->modem, ':');
		for(int i = 0; i < 7; i++) mmFindChar(interface->modem, ',');
		
		len = mmParseInt(interface->modem);
		mmFindChar(interface->modem, '\n');
		if(length > len) length = len;
		len = length;
		int count;
		do{
			count = mmReadBytes(interface->modem,buffer,length);
			buffer+=count;
			length-=count;
		}while(length > 0);
		buffer[0] = 0;
		return len;
	}
	else {
		return 0;
	}
}
Example #3
0
bool mmSendTextMessage(struct ModemInterface* interface, char* number, char* buffer) {
	mmSendCommand(interface, F("AT+CMGS=\""));
	mmSendCommand(interface, number);
	mmSendCommand(interface, F("\"\r"));
	mmFind(interface->modem, F("AT+CMGS=\""));
	
	int c = mmFindChars(interface->modem, 'E', '>');
	//sleep_millis(milliTimeoutSMS);
	if (c == '>') {
		mmSendCommand(interface, buffer);
		mmWriteByte(interface->modem,26);
		mmSendCommand(interface, F("\r"));
		return true;
	}
	return false;
}
Example #4
0
bool mmRetrievePhoneNumber(struct ModemInterface* interface, char* buffer, int length, int id) {
	mmSendCommand(interface, F("AT+CMGR="));
	mmPrinti(interface->modem, id);
	//mmSendCommand(interface, id);
	mmWriteByte(interface->modem, '\r');
	mmFind(interface->modem, F("AT+CMGR="));
	int c = mmFindChars(interface->modem, 'E', ':');
	if (c == ':') {
		mmFindChar(interface->modem, '+');
		int index = 0;
		length--; //save room for null terminator
		while(index < length){
			c = mmRead(interface->modem);
			if( c < 0) continue;
			if(c == '\"') break;
			buffer[index++] = c;
		}
		buffer[index] = 0;
		return index;
	}
	else {
		return 0;
	}
}