Skip to contentSkip to conversation

Motorola Droid 4 SMS sending

DISCUSSION Pavel Machek 2 participants 2 messages Aug 10, 2019 – Aug 11, 2019

lore
Share & tools
lore
#0 lore raw

Hi!

Motorola Droid 4 runs packet protocol over serial... and its kernel driver requires explicit "write()" boundaries at places where packet boundaries should be.

So I can send SMS using low level g_at... functions (that are not normally accessible), but not using g_at_chat_send().

If anyone has good idea for clean (or clean enough) solution, let me know.

Best regards,
Pavel

   snprintf(buf, sizeof(buf), "AT+GCMGS=\r");
   encode_hex_own_buf(pdu, pdu_len, 0, buf_pdu);
#if WANT_IT_BROKEN
        strcat(buf, buf_pdu+2);
        g_at_chat_send(data->send_chat, buf, none_prefix, NULL, data, NULL);
#else
        g_at_io_write(data->send_chat->parent->io, buf, strlen(buf));
 	g_at_io_write(data->send_chat->parent->io, buf_pdu, strlen(buf_pdu));
	g_io_channel_flush(data->send_chat->parent->io->channel, NULL);

#endif

Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
#1 lore raw

Hi Pavel,

Quoted 9 lines · Pavel Machek

Hi!

Motorola Droid 4 runs packet protocol over serial... and its kernel driver requires explicit "write()" boundaries at places where packet boundaries should be.

So I can send SMS using low level g_at... functions (that are not normally accessible), but not using g_at_chat_send().

Quoted 9 lines

If anyone has good idea for clean (or clean enough) solution, let me know.

Best regards,

									Pavel

    snprintf(buf, sizeof(buf), "AT+GCMGS=\r");
    encode_hex_own_buf(pdu, pdu_len, 0, buf_pdu);

So speaking from memory, but 27.005 expects CMGS to be a two part command. First you send AT+CMGS=<whatever> and the modem then prompts for the PDU using '>'. Then we provide the PDU followed by Ctrl-Z. If the Motorola modem doesn't do this, then you're stuck providing a full Motorola-Hacked-AT-Commands implementation of your own.

You can try hacking GAtChat to add a bunch of behavior-modifications like this, but I imagine that this protocol is different enough where such changes become a nightmare to keep track of.

Regards,
-Denis