Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
А не будет того, что отправка "отпускания" кнопки потерялась (ну, продолбался пакет, или ещё что) и ПР-ка думает, что кнопка залипла?
Есть периодическая синхронизация полного состояния?
И второй вопрос: контрольная сумма надёжная при передаче?
Не будет того, что передаём одну кнопку, а на ПР-ку совсем другая приходит? Т.е. бит-два испортится при передаче и вместо команды "полный стоп" на ПР придёт команда "полный вперёд".
Ничего не понял.
Давайте на примере:
1) Нажали -- передалась команда "едем"
2) Держим -- вроде, как ничего не передаётся, но ПР-ка помнит, что "ещё едем"
3) Отпустили -- планшет было хотел передать команду на "больше не едем", но глюк bluetooth и эта команда потерялась.
4) В итоге на планшете нарисовано "кнопка отпущена", а ПР-ка во всю фигачит
Как такое будет отработано?
Когда ПР-ка поймёт, что "неплохо бы и остановиться"?
Ни разу не приходилось скачивать битые файлы из интернета?
И это "протокол TCP CRC16" + "Ethernet CRC32".
Вы же предлагаете bluetooth, т.е. заведомо шумную среду передачи. Можно сделать что-то более серьёзное, чем CRC16?
Therac-25 слышали?
Прочитайте, пожалуйста: https://ru.wikipedia.org/wiki/Therac-25
Если команда не передалась, то есть 2 варианта.
Первый - по таймауту, появится восклицательный знак на компоненте (Button в это случае). Протоколом определено подтверждение команды, так вот если нет подтверждения, то вы об этом узнаете за считанные миллисекунды.
Второй - разрыв связи, все компоненты работающие с этим сервером "покраснеют" и каскада будет пытаться восстановить связь, сопровождается всё это текстовыми сообщениями.
ПР будет реагировать ровно так, как вы её запрограммируете, что выходит за рамки данной темы.
Уточните пожалуйста, вы предлагаете изменить протокол только между блютусом?
Или вы предлагаете нам улучшить modbus rtu в ПР?
vladimirisitnikov не путайте битые файлы и контрольную сумму. Совершенно разные вещи. Как раз для проверки целостности файла часто выкладывают MD5.
В остальном при передачи файлов контрольные суммы не используются, так как предполагается, что пакеты контролирует стек ТСР и обрыв связи приводит к битости файла, ибо он не скачался весь.