view uptools/atcmd/smsend_text.c @ 698:9ecbf1bf2e1b

fc-iram: added '+' to getopt magic string like in fc-xram Both fc-iram and fc-xram now support secondary program invokation. If the user needs to pass some options to the secondary program, we don't want fc-iram or fc-xram to claim these options as its own, thus we need to stop getopt() from reordering arguments. This fix was already implemented in fc-xram a long time ago, but the issue was overlooked when secondary program invokation ability was added to fc-iram.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 31 Mar 2020 03:23:26 +0000
parents dc2fd8e6f42c
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);
}