diff uptools/atcmd/smsend_pduout.c @ 372:1e7c6fcb9abe

uptools/atcmd: smsend_pdu.c renamed to smsend_pduout.c
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 08 Mar 2018 18:13:38 +0000
parents uptools/atcmd/smsend_pdu.c@46cf847781bd
children d1fa771abeb8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uptools/atcmd/smsend_pduout.c	Thu Mar 08 18:13:38 2018 +0000
@@ -0,0 +1,40 @@
+/*
+ * This module implements SMS sending/writing in PDU mode.
+ */
+
+#include <sys/types.h>
+#include <stdio.h>
+
+extern void cmgw_callback();
+
+extern int sms_write_mode;
+
+prep_for_pdu_mode()
+{
+	atinterf_exec_cmd_needok("AT+CMGF=0", 0, 0);
+}
+
+send_in_pdu_mode(da, textsrc, textlen, udh, udhl)
+	u_char *da, *textsrc, *udh;
+	unsigned textlen, udhl;
+{
+	char *cmdname;
+	void (*callback)();
+	u_char pdu[158];
+	unsigned pdulen;
+	char pduhex[317];
+	char send_cmd[32];
+
+	pdu[0] = 0;
+	pdulen = make_sms_submit_pdu(da, textsrc, textlen, udh, udhl, pdu + 1);
+	make_hex_string(pdu, pdulen + 1, pduhex);
+	if (sms_write_mode) {
+		cmdname = "CMGW";
+		callback = cmgw_callback;
+	} else {
+		cmdname = "CMGS";
+		callback = 0;
+	}
+	sprintf(send_cmd, "AT+%s=%u", cmdname, pdulen);
+	atinterf_exec_cmd_needok(send_cmd, pduhex, callback);
+}