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

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

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 37 из 37
На страницу: Пред.  1, 2, 3 ... 35, 36, 37    Перейти:   Все страницы
Поиск в этой теме:
Железный канал: «C, С++»
DIMOSUS.X
 995 EGP


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

Последний раз редактировалось: DIMOSUS.X (15:41 29-01-2016), всего редактировалось 1 раз
    Добавлено: 15:40 29-01-2016   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
DIMOSUS.X :
Каждый пакет (по 32 байта) нужно проверить на этот маркер, что бы знать просто ли это данные, или управляющий пакет.

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

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

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


Рейтинг канала: 4(58)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
32 байта это аппаратное ограничение радиомодуля. Резать данные на не ровные числа не хотел, вот и родил такой костыль Улыбка
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 16:03 29-01-2016   
AnrDaemon
 857 EGP


Модератор
Рейтинг канала: 8(784)
Репутация: 37
Сообщения: 12292

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

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


Рейтинг канала: 4(58)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
В заголовке чек сумма и количество ожидаемых пакетов данных. После приема пересчет чексуммы и сравнение с пришедшим.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 16:54 29-01-2016   
AnrDaemon
 857 EGP


Модератор
Рейтинг канала: 8(784)
Репутация: 37
Сообщения: 12292

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


Рейтинг канала: 4(58)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
CRC16 реализован на хардварном уровне внутри пакета. То есть пакет всегда валиден.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 17:39 29-01-2016   
AnrDaemon
 857 EGP


Модератор
Рейтинг канала: 8(784)
Репутация: 37
Сообщения: 12292

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


Модератор
Рейтинг канала: 8(753)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
А как обрабатываются ситуации, когда пакет потерялся/задублировался/пришел не в том порядке?
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 18:14 29-01-2016   
Железный канал: «C, С++»
На страницу: Пред.  1, 2, 3 ... 35, 36, 37    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Зашёл в тему и сразу, сходу кликнул в первый вариант, просто потому что первый он, потом почитал, чего и как, понял, что чего-то не то нажал. (обнаружил Рыб)

  » C, С++ | страница 37
Каналы: Новости | 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