Нашел в сети немного информации по этому, но на обычные свистки USB-GSM, и ничего для SIM900.
Делаю по аналогии. Алгоритм следующий
Все в кодировке ASCII
AT+CMGF=0 переход в PDU режим
AT+CMGS=25 длина сообщения без первого байта
жду запроса на сообщение >
Код
// Длина и номер SMS центра. 0 - означает, что будет использоваться дефолтный номер.
sms_pdu[i++] = '0';
sms_pdu[i++] = '0';
// SMS-SUBMIT
sms_pdu[i++] = '0'; //1
sms_pdu[i++] = '1';
// Длина и номер отправителя. 0 - означает что будет использоваться дефолтный номер.
sms_pdu[i++] = '0';
sms_pdu[i++] = '0';
// Длина номера получателя
//sms_pdu[i++] = strlen(sms_recive)-1;
sms_pdu[i++] = '0';
sms_pdu[i++] = 'C';
// 91 указывает международный формат телефонного номера, 81 - местный формат
sms_pdu[i++] = '9';
sms_pdu[i++] = '1';
// Телефонный номер получателя в международном формате.
sms_pdu[i++] = '8';
sms_pdu[i++] = '3';
sms_pdu[i++] = '6'; //38-06-68-65-46-97 номер в международном формате
sms_pdu[i++] = '0'; //83-60-86-56-64-79 пеерворачиваю байты местами
sms_pdu[i++] = '8';
sms_pdu[i++] = '6';
sms_pdu[i++] = '5';
sms_pdu[i++] = '6';
sms_pdu[i++] = '6';
sms_pdu[i++] = '4';
sms_pdu[i++] = '7';
sms_pdu[i++] = '9';
// Идентификатор протокола
sms_pdu[i++] = '0';
sms_pdu[i++] = '0';
// Старший полубайт означает сохранять SMS у получателя или нет (Flash SMS), Младший полубайт - кодировка(0-латиница 8-кирилица).
sms_pdu[i++] = '0';
sms_pdu[i++] = '8';
// Срок доставки сообщения. С1 - неделя
sms_pdu[i++] = 'С';
sms_pdu[i++] = '1';
// Длина текста сообщения.
//sms_pdu[i++] = '0';
//sms_pdu[i++] = 'C';
// Текста сообщения.
sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '1'; sms_pdu[i++] = 'F'; //П
sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '4'; sms_pdu[i++] = '0'; //р
sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '3'; sms_pdu[i++] = '8'; //и
sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '3'; sms_pdu[i++] = '2'; //в
sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '3'; sms_pdu[i++] = '5'; //е
sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '4'; sms_pdu[i++] = '2'; //т
в ответ от модуля получаю ERROR
подскажите где может быть ошибка
После выдачи модемом >
строку посылать в ASCII или HEX ?