Sim900 + передача и прием данных в бинарном виде
- Войдите на сайт для отправки комментариев
Доброго времени суток!
В целом сам вопрос в теме!
Каким образом отправить данные и принять их именно в бинарном виде
Следующий код я использую для отправки смс с модуля и прием на него именно в виде строк
//Инициализация и старт GSM модуля void InitGprs() { gprsSerial.begin(9600); gprsSerial.print("AT+CMGF=1\r"); delay(300); gprsSerial.print("AT+IFC=1, 1\r"); delay(300); gprsSerial.print("AT+CPBS=\"SM\"\r"); delay(300); gprsSerial.print("AT+CNMI=1,2,2,1,0\r"); delay(500); } // Функция отправки смс void SendSms(String number, String text) { Serial.println("SEND SMS FUNC RETURN: "); Serial.println("NUMBER: " + number + "\nTEXT:\n" + text); delay(1500); gprsSerial.print("AT+CMGS="); // send the SMS the number gprsSerial.print((char)34); // передача в порт символа " gprsSerial.print(number); // передача номера телефона gprsSerial.print((char)34); // передача в порт символа " gprsSerial.print((char)13); delay(1500); gprsSerial.println(text); // передача текста сообщения delay(500); gprsSerial.print((char)26); // передача ^Z gprsSerial.print((char)13); // передача Enter }
Соответственно, когда я вызываю функцию и передаю туда в виде строк номер и сообщение, то приходят сообщения у меня на номер именно в текстовом виде, как я и отправлял
Но например у меня есть строка вида
str = "SH";
Соответсвенно переведя в бинарный вид получаем массив
byte array[2];
str.getBytes(&array, 2);
получаем в массиве байтовом следующие значения
'S' = 53 в бинарном виде
'H' = 48
получается 5348 ровно 2 байта...
теперь эти 2 байта я хочу соответственно переслать через SIM900 именно в этом формате, чтобы получить на другой стороне в бинарном виде данные как и уходили они
Каким образом можно это сделать? + еще вопрос - умеет ли модем отсылать данные на указанный порт?
поковырялся и нашел что можно установить настройки именно на прием вот так
AT+CMGR=3
+CMGR: "REC READ","+79012345678","","13/09/21,12:58:31+24"
005400650073007400200073006D007300200032
002E0020042204350441044200200441043C0441
OK
выходит что заголовок придет в текстовом формате - номер и иная системная информация, а вот сообщение придет в бинарном виде, а вот с передачей куда то не пойму, есть команда
Текстовый режим
1 – включить
0 – выключить
см. примечание
получается что при выключенно режиме можем всегда будет отправлять и принимать данные в установленном режиме или же только принимать?
+ как раз вопрос еще возник - есть 2 варианта как я хочу отправлять и принимать данные..
1 - отправлять и принимать в бинарном виде
2 - в текстовом
причем как определить в каком мне сейчас виде пришли данные на модуль?
допустим я отправляю с устройства 1 в виде бинарном, а потом с устройства 2 в виде текстовом, как определить мне в каком виде пришли данные, чтобы дать команду модему в каком виде принять эти данные?