eXeL@B —› Основной форум —› Расшифровка нумерации пакетов микропроцессорного устройства |
Посл.ответ | Сообщение |
|
Создано: 03 декабря 2010 22:50 · Личное сообщение · #1 Есть программа которая общается с контроллером по COM порту. Данные перехватываю со стороны программы (смотрю что пишет и читает). Получаю логи и расшифровываю их. Понял уже многое, где номер команды, длина данных, где проверка CRC и как считается и где сами данные. Кроме всего прочего есть нумерация пакетов на которую всё реагирует критично. То есть с номерами напутать - работать не будет... Ниже привожу пример лога, во вложении три полных лога. Code:
Всё что программа вычитывает из контроллера помечено как R_CMD, всё что посылает на него - W_CMD. Далее сама команда, длина вместе с данными, SECV - это номер пакета с которым загвоздка и далее обрезанные до 4-х байт данные если они есть. Читает программа побайтно через ReadFile, пишет блоком. В начале номер (нумерую сам для удобства, инкремент счётчика по команде от программы). В приведённом куске (последняя строка) номер вдруг стал 3 без видимых причин. Далее тоже не понятно. Мой код будет выступать в роле контроллера, то есть данные для R_CMD мне нужно формировать самому, соответственно нужно знать в какой момент менять номер пакета что-бы программа поняла. Буду очень благодарен за подсказку. f4e4_03.12.2010_CRACKLAB.rU.tgz - logs.rar |
|
Создано: 04 декабря 2010 10:15 · Личное сообщение · #2 ToBad пишет: SECV Возможно это не номер пакета, а так называемый номер канала. Т.е. что то типа того (Delphi): Code:
Code:
Тогда имеем набор каналов, у каждого набор команд. ----- Yann Tiersen best and do not fuck |
|
Создано: 04 декабря 2010 14:56 · Поправил: ToBad · Личное сообщение · #3 PE_Kill пишет: Возможно это не номер пакета, а так называемый номер канала. Дальше в логах видно, что с определённого момента они идут с чётким приростом. То есть начинается всё с 1 и непонятно как, в итоге доходит до FF, затем сбрасывается на 0 и снова до FF. И так постоянно. Вся проблема у меня в первоначальном понимании формирования этого SECV... Вот одно из мест перехода: Code:
p.s. В зависимости от первоначального обмена дальнейший номер команды, команда и SECV могут сдвигаться. Например это место: Code:
в другом логе может выглядеть так: Code:
|
|
Создано: 04 декабря 2010 15:22 · Личное сообщение · #4 |
|
Создано: 04 декабря 2010 15:40 · Личное сообщение · #5 PE_Kill пишет: Значит зависит от данных которые передаются/принимаются у тебя в логи они порезаные сложно проанализировать. Данных зачастую вообще нет. То есть идёт пустой пакет запрос-ответ, команда, длина, номер, crc. Команды с данными часто идут однотипные. Сама DATA не отличается. Думаю вычитка из памяти контроллера. Вот фрагмент без урезания данных: Code:
|
eXeL@B —› Основной форум —› Расшифровка нумерации пакетов микропроцессорного устройства |