• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Как послать hex

de1m

New member
Всем привет.

У меня вопрос
Хочу получать время с ntp сервера. Чтобы получить время надо послать вот такой пакет
Код:
0B00030000000000000000314E313400000000000000000000000000000000000000000000000000000000000000000b
Вопрос собственно такой, как послать пакет состоящий из hex числа? Хочу пока для теста только через терминал потестировать.
Я видел вот эту команду( Пример):
Код:
AT+CIPSTART=3,"UDP","192.168.168.81",1314
OK

AT+CIPSEND=3,6
> 123456
Но как я понял, здесь посылаются буквы (ASCII). Надо мне мои числа вверху тоже в ascii перевести?
Может кто-то что-то похожее делал?
 

Dmitry P

New member
из терминала не уверен, что получится. А из ардуины - формируешь массив переменной byte и пишешь в serial порт командой write.
Как-то так:
..................
byte response[100];
................
response[0]='\ob';
response[1]='\00';
response[2]='\03';
response[3]='\00';
response[4]='\00';
...
...............
String cmd="AT+CIPSEND="+String(id)+","+length_cmd;
Serail.println(cmd);
String data="";
unsigned long start;
bool found=0;
start = millis();
while (millis()-start<1000)
{
if (char(Serail.read())=='>')
{
// ("Ready to send");
for (int k=0; k<=length_cmd+2; k++)
{
Serail.write(msg[k]);
}
Serial.println("+++");
found = true;
break;
}
}
 

Tomahawk

New member
Код:
0B00030000000000000000314E313400000000000000000000000000000000000000000000000000000000000000000b
Вопрос собственно такой, как послать пакет состоящий из hex числа? Хочу пока для теста только через терминал потестировать.
В данном случае будет $0B$00$03$00$00... , если под терминалом вы подразумеваете Terminal v1.9b, числа Hex в этой программе разделяются именно таким служебным символом.
 
Сверху Снизу