view uptools/atcmd/smsend_text.c @ 419:67d683a87b1d

rvinterf client refactoring: libinterf created
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 27 Oct 2018 23:35:10 +0000
parents 89fe66cb60f6
children dc2fd8e6f42c
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", 0, 0);
	atinterf_exec_cmd_needok("AT+CSCS=\"8859-1\"", 0, 0);
	atinterf_exec_cmd_needok("AT+CSMP=1,,0,0", 0, 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);
}