Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » C, С++ |
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Search | Conference rules | Album | Register | Pilots list | Profile | Log in to check your private messages | Log in

   Page 37 of 37
Go to page: Previous  1, 2, 3 ... 35, 36, 37    Перейти:   All pages
Поиск в этой теме:
Железный канал: «C, С++»
DIMOSUS.X
 997 EGP


Рейтинг канала: 4(58)
: 188
Posts: 3252
Location: Vilnius/Minsk
Joined: 06 Aug 2008
Неа, маркер сгенерирован один раз и не меняется. Каждый пакет (по 32 байта) нужно проверить на этот маркер, что бы знать просто ли это данные, или управляющий пакет.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.

Last edited by DIMOSUS.X on 15:41 29-01-2016; edited 1 time in total
    Posted: 15:40 29-01-2016   
Grebomet
 1469 EGP


Модератор
Рейтинг канала: 8(759)
: 261
Posts: 4790
Location: Питербурх
Joined: 06 Jan 2003
DIMOSUS.X wrote:
Каждый пакет (по 32 байта) нужно проверить на этот маркер, что бы знать просто ли это данные, или управляющий пакет.

Ващета это, конечно, не мое дело, но кто ж так делает? Улыбка

Обычно люди в каждый пакет заголовочек маленький добавляют, где указан тип пакета. Тогда не надо никаких магических маркеров: стоит в заголовке соответствующий бит в 1 - значит, у нас управляющий пакет, не стоит - значит, у нас данные.
Под твои цели вообще одного бита достаточно, но в интересах удобства и в целях расширяемости можно добавить аж целый байт.

А что за ограничение такое в 32 байта? Нельзя пакет потолще сделать?
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Posted: 16:00 29-01-2016   
DIMOSUS.X
 997 EGP


Рейтинг канала: 4(58)
: 188
Posts: 3252
Location: Vilnius/Minsk
Joined: 06 Aug 2008
32 байта это аппаратное ограничение радиомодуля. Резать данные на не ровные числа не хотел, вот и родил такой костыль Улыбка
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Posted: 16:03 29-01-2016   
AnrDaemon
 866 EGP


Модератор
Рейтинг канала: 8(802)
: 37
Posts: 12332

Joined: 17 Oct 2004
DIMOSUS.X wrote:
32 байта это аппаратное ограничение радиомодуля. Резать данные на не ровные числа не хотел, вот и родил такой костыль Улыбка

Это не костыль, это нормально.
Transmission padding, всё норм.
А вот структуру заголовка пакета хорошо бы продумывать заранее.
А то ты так льёшь данные по 32 байта, а как проверяешь, что они пролились целыми?…
_________________
Люблю свободный полёт... :)
    Posted: 16:51 29-01-2016   
DIMOSUS.X
 997 EGP


Рейтинг канала: 4(58)
: 188
Posts: 3252
Location: Vilnius/Minsk
Joined: 06 Aug 2008
В заголовке чек сумма и количество ожидаемых пакетов данных. После приема пересчет чексуммы и сравнение с пришедшим.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Posted: 16:54 29-01-2016   
AnrDaemon
 866 EGP


Модератор
Рейтинг канала: 8(802)
: 37
Posts: 12332

Joined: 17 Oct 2004
То есть данные передаются несколькими пакетами?…
Я бы передавал контрольную сумму с каждым пакетом.
Для 256 бит хватит CRC16, или даже меньше… Заодно избавишься от отдельного пакета с "заголовком". Можно будет просто гнать данные в порт и не думать о грустном
_________________
Люблю свободный полёт... :)
    Posted: 17:01 29-01-2016   
DIMOSUS.X
 997 EGP


Рейтинг канала: 4(58)
: 188
Posts: 3252
Location: Vilnius/Minsk
Joined: 06 Aug 2008
CRC16 реализован на хардварном уровне внутри пакета. То есть пакет всегда валиден.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Posted: 17:39 29-01-2016   
AnrDaemon
 866 EGP


Модератор
Рейтинг канала: 8(802)
: 37
Posts: 12332

Joined: 17 Oct 2004
Тогда это плюс Улыбка
Осталось только формат командного блока защитить от подделок и совпадений.
_________________
Люблю свободный полёт... :)
    Posted: 18:12 29-01-2016   
Grebomet
 1469 EGP


Модератор
Рейтинг канала: 8(759)
: 261
Posts: 4790
Location: Питербурх
Joined: 06 Jan 2003
А как обрабатываются ситуации, когда пакет потерялся/задублировался/пришел не в том порядке?
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Posted: 18:14 29-01-2016   
Железный канал: «C, С++»
Go to page: Previous  1, 2, 3 ... 35, 36, 37    Перейти:   All pages
  
Display posts from previous: 
View previous topic | View next topic |
К списку каналов | Наверх страницы
Цитата не в тему: Что-то дельное сказать хотел, а пока весь флуд прочитал, ничего дельного в голове не осталось... (расстроился $atana)

  » C, С++ |
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18