PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Общение с машиной (http://pccar.ru/forumdisplay.php?f=14)
-   -   CITROEN-ARDUINO (http://pccar.ru/showthread.php?t=23275)

autowp 02.02.2016 16:23

Примерно так, но в вашем случае, принимающая сторона уже есть и вам об этом (подтверждении) не придется беспокоиться. Вы "подслушиваете" обмен между другими устройствами.

T_r_D 02.02.2016 17:15

Ну тогда вопрос как отмечается конец посылки?
Как посылается длинна следующего пакета? Ну или если хотите, то данные о следующем пакете.

Можно описать человеческим языком как происходит обмен?

Да и кстати дисплея у меня потом не будет. Так что на мою железку и это ляжет.

autowp 02.02.2016 17:25

> как отмечается конец посылки?
зачем его как-то отмечать? Получили задекларированный объем данных - передача закончена

> Как посылается длинна следующего пакета?
Как и любого другого - в его DLC

> Можно описать человеческим языком как происходит обмен?
Я ж дал вам 2 ссылки с детальнейшим описанием всего процесса.

Dmitry8 02.02.2016 21:46

T_r_D, спасибо, нашёл уже. Я так понял, что вся логика работы вашего девайса организована на ардуине. С чем связано такое решение? Почему бы всю логику не реализовать на андройде?

T_r_D 03.02.2016 10:39

Цитата:

Сообщение от Dmitry8 (Сообщение 350533)
T_r_D, спасибо, нашёл уже. Я так понял, что вся логика работы вашего девайса организована на ардуине. С чем связано такое решение? Почему бы всю логику не реализовать на андройде?

Потому что логики тут мало :)
Получили пакет, переделали в стринг и отправили его.
В некоторых случаях проанализировали данные в пакете и отправили результат.

Так гораздо проще посылать пакеты и длина их получается приемлемой.
И на стороне андройда не надо следить за целостностью пакета, а проверять целостность можно по его длине.

T_r_D 03.02.2016 10:44

autowp
> как отмечается конец посылки?
зачем его как-то отмечать? Получили задекларированный объем данных - передача закончена

Где этот объём смотреть?
И вопрос второй был в том- посылается в первом пакете полный размер сообщения текста или только первого фрейма? Если всего, то не понятно зачем после каждого фрейма ждать подтверждения от дисплея, если только первого, то какой пакет посылает магнитола потом для описания следующего пакета с текстом и как узнать сколько всего пакетов в таком случае.

Я всё прочитал, но ни чего особо не понял к сожалению.
Мне бы на примере моих пакетов ткнули бы носом где какая посылка и что она значит был бы очень благодарен!

autowp 03.02.2016 11:47

>Где этот объём смотреть?

Вы точно смотрели то, что по ссылкам? В первом фрейме.

>И вопрос второй был в том- посылается в первом пакете полный размер сообщения текста или только первого фрейма?

Странный вопрос. Зачем в первом фрейме посылать размер первого фрейма? Он и так в DLC есть

> зачем после каждого фрейма ждать подтверждения от дисплея

Это мера, направленная на исключение перегрузки входного буфера принимающей стороны.

T_r_D 04.02.2016 00:45

Цитата:

Сообщение от autowp (Сообщение 350583)
>И вопрос второй был в том- посылается в первом пакете полный размер сообщения текста или только первого фрейма?

Странный вопрос. Зачем в первом фрейме посылать размер первого фрейма? Он и так в DLC есть

Я не так выразился просто. Имел в виду в первом фрейме указан размер данных всех последующих фреймов или только идущего за ним?

Как я понял в 4 байте первого фрейма указаны размеры 4 фреймов с данными далее?
Или всётаки 8?
Если 4, то первая пара бит указывает первым битом на количество данных о исполнители в пакете, а вторым на количество данных названия трека?

И почему в конце первого пакета 2 бита данных текстовых? Это биты относятся к исполнителю или треку?

autowp 04.02.2016 01:07

Цитата:

Сообщение от T_r_D (Сообщение 350640)
Я не так выразился просто. Имел в виду в первом фрейме указан размер данных всех последующих фреймов или только идущего за ним?

The first frame contains the length of the full packet, along with the initial data.
т.е. всего

Цитата:

Сообщение от T_r_D (Сообщение 350640)
Как я понял в 4 байте первого фрейма указаны размеры 4 фреймов с данными далее?
Или всётаки 8?
Если 4, то первая пара бит указывает первым битом на количество данных о исполнители в пакете, а вторым на количество данных названия трека?

И почему в конце первого пакета 2 бита данных текстовых? Это биты относятся к исполнителю или треку?

Еще раз: сначала соберите сообщение целиком, потом беритесь за его анализ. Иначе каша.

Когда соберете готовое сообщение, в 4ом (с нуля) байте получившегося блока данных (6ом с нуля байте первого фрейма) будут флажки, сигнализирующие о том, что следует искать в последующей части сообщение: названия исполнителей и треков (1100000 будет означать, что дальше будет 40 байт с исполнителем и названием первого трека, а остальные 3 трека не имеют названия и исполнителя)

T_r_D 04.02.2016 01:25

Вот кусок лога:
16 13 16 29 25 16 86 69
4 0 96
48 0 10
16 0
33 83 84 73 32 70 77 144
0 0 0 0 0 0 0 208
0 255 255 0 85 0 0
1 3 146 64 0 208 0 16
0 0 2 111 0 89 0 0
255 255 0 80 0
1 0 0 0 0 0 0 0
0 255 255 0 0 7 56 9
2 63 255 255 255 0 255 255

В первом сообщении в двух битах с конца буквы VE
В пятом ! S T I F M 

Можно ли считать первое сообщение заглавным мультифрейма?

По каким признакам вообще определить первое сообщение?
Как его найти в потоке данных?

В 4 байте первого сообщение DEC 25 что в бинарном виде 00011001
это означает что 20 байт следующие за этим сообщением названия артиста первого, потом 20 байт названия второго трека, потом 20 байт артиста 3 трека?
или я не с той стороны считаю биты?
или то что обозначено "0", то тоже занимает 20 байт?


Часовой пояс GMT +4, время: 05:57.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot