Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Подсчёт количество байт
tolyan249 Дата: Вт, 29.04.2025, 06:55  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 209
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Всем привет.
Есть модуль ESP-01 WI-FI ,он просит перед отправкой данных , отправить сначала количество байт для отправки ,а как их подсчитать если переменная WORD

dim NP1 as Word
dim NP2 as Word
dim NP3 as Word
dim NP4 as Word
Dim CountId as byte

HRSOut Dec countD," ", Dec NP1," ", Dec NP2," ",Dec NP3," ",Dec NP4,13,10

То получается 4 word=8 байт ,но так как отправляю целые числа то в одной переменной может быть числа от 0 до 65535 ,это от 1 байта до 2 в одной переменной Word.
Как правильно посчитать отправляемые данные количество байт ?
если указать допустим что я буду отправлять 11  байт ,а отправляю 8  байт ,то модуль будет ждать этих остаток 3 байта.
11 byte =countD+ NP1+NP2+NP3+NP4+13+10

Cпасибо.


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Вт, 29.04.2025, 08:18
ЯНДЕКС Дата: 29.04.2025
xvovanx Дата: Вт, 29.04.2025, 20:53  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 355
Репутация: 65   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Думаю, что Word в любом случае будет занимать 2 Байта. При малых значениях переменной все равно отсылается 2 байта с кучей нулей в старших разрядах и единицами в младших. В противном случае твой модуль не сможет в посылке понять и разделить правильно какая из переменных имеет сколько байт.
tolyan249 Дата: Ср, 30.04.2025, 08:11  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 209
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Это понятно ,просто если я укажу больше байт ,то модуль будет ждать все эти байты ,если отправлю меньше . Так как отправляю DEC ,то получается что может быть 1 байт отправляется или 2 байта в зависимости от числа.

Добавлено (01.05.2025, 18:29)
---------------------------------------------
Пример NP1=32578, если я передаю в компорт это число ,то наверно он передаёт 1 число как байт(моё мнение) ,т.е получается 5 байт в место 4.
Да проверил , ему надо знать количество знакомест. Если NP1=5 , а количество указываю что надо отправить 1 ,всё работает (NP1  занимает 1 байт), Если NP1=55(тоже 1 байт) ставлю количество1 ,получаю токо одну 5 а не 2. Если количество укажу 2 знака надо передать то приходит число 55. Как положено.

Вопрос как посчитать сколько знакомест занимает переменная WORD ,как то посчитать можно математически. Блин замучился уже 5 дней бюсь ни куда не двигаюсь. переменная WORD может иметь 5 знакомест (65535),но как перевести в массив байт это число 32578 ,Т.Е. как пример

DN[0]=3
DN[1]=2
Dn[2]=5
Dn[3]=7
Dn[4]=8

Спасибо.

Добавлено (02.05.2025, 03:53)
---------------------------------------------
Нашёл как запихать в массив число WORD по символам 

 dan[4]=NP1 Dig 0   ;младший разряд
 dan[3]=NP1 Dig 1 
 dan[2]=NP1 Dig 2
 dan[1]=NP1 Dig 3
 dan[0]=NP1 Dig 4


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Чт, 01.05.2025, 19:15
  • Страница 1 из 1
  • 1
Поиск: