view uptools/atcmd/smsend_text.c @ 467:dc2fd8e6f42c

uptools/atcmd: null pointer passing fixes
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 11 Feb 2019 22:17:46 +0000
parents 89fe66cb60f6
children
line wrap: on
line source

/*
 * This module implements SMS sending/writing in text mode.
 */

#include <sys/types.h>
#include <stdio.h>

extern void cmgw_callback();

extern int sms_write_mode;

prep_for_text_mode()
{
	atinterf_exec_cmd_needok("AT+CMGF=1", (char *) 0, (void *) 0);
	atinterf_exec_cmd_needok("AT+CSCS=\"8859-1\"", (char *) 0, (void *) 0);
	atinterf_exec_cmd_needok("AT+CSMP=1,,0,0", (char *) 0, (void *) 0);
}

send_in_text_mode(binda, textstr)
	u_char *binda;
	char *textstr;
{
	char *cmdname;
	void (*callback)();
	char send_cmd[64], digits[21];

	if (sms_write_mode) {
		cmdname = "CMGW";
		callback = cmgw_callback;
	} else {
		cmdname = "CMGS";
		callback = 0;
	}
	if (binda[0]) {
		decode_address_digits(binda + 2, digits, binda[0]);
		sprintf(send_cmd, "AT+%s=\"%s\",%u", cmdname, digits, binda[1]);
	} else
		sprintf(send_cmd, "AT+%s", cmdname);
	atinterf_exec_cmd_needok(send_cmd, textstr, callback);
}