Цитата(asen @ May 15 2006, 10:02)

при инвертировании нескольких бит может случится так что получится другая команда и она будет выполнена и подтверждение тоже не поможет так что в этом случаи придется повышать качество связи
расстояние по времени между байтами пакета больше чем время передачи байта пакета так что при ошибке синхронизации будет потерян только первый байтно такое событие еще менее вероятно так как по итогам проведенных испытаний небело зарегистрировано ошибки более 3 бит
я передали почти 4 гигабайта информации
Как то сумбурно, но имхо:
Для решения вашей задачи необходимо реализовать 2 механизма, которые должны:
1. Обеспечить определенную вероятность необнаруженной ошибки. Для защиты от этого:
Цитата
может случится так что получится другая команда и она будет выполнена
2. Обеспечить контроль получения команды.
Первое обычно решается протоколом на канальном уровне. Он должен быть хорошо продуман, пакеты должны быть защищены кодом, обнаруживающим ошибки. В вашем случае достаточно применить CRC16.
Протокол можно взять "modbus serial line protocol". Там многие вещи продуманы, хотя и не нестолько, как хотелось бы.
Второе решается квитированием.
Если рассуждать о применение кодов с исправлением ошибок, то эти коды имеет смысл применять:
1. если канал симплексный
2. если время распространения сигнала от передатчика до приемника несоизмеримо больше времени передачи самого пакета (спутниковые каналы)
3. если необходимо произвести доставку сообщения за время "не более чем", а ширина канала не позволяет организовать перезапрос искаженных кадров.
Кроме того, нужно учесть, что коды с исправлением ошибок не могут эффективно работать с асинхронными приемопередатчиками. Если код с исправлением ошибок используется, то используется и синхронный канал связи.
Пасу котов...