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)

T_r_D 11.03.2016 11:05

Вложений: 2
Может кто знает.
Есть XML
В нём рамка.
PHP код:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    
    <solid android:color="#DC000000" />
    <stroke
        android:width="3dip"
        android:color="#FFFFFF" />

    <corners android:bottomRightRadius="10dip"
        android:bottomLeftRadius="10dip"
        android:topLeftRadius="10dip"
        android:topRightRadius="10dip"/>

</shape>

Она соответственно на лейаут применяется.
Получается как на первой картинке, а надо как на второй.
Что куда вписать?

T_r_D 11.03.2016 12:39

Вложений: 1
Вопрос с LayoutInflater снят.

Результат:

T_r_D 11.03.2016 18:06

Вложений: 1
Ну и пошёл процесс окультуривания

T_r_D 12.03.2016 12:27

Всё, сегодня я закончил со всеми меню которые можно повторить без эмуляции дисплея. Мне осталось сделать
1 отображение если станция в памяти (Mem1 -6)
2 Радиотекст
3 Отловить поиск станций РДС. Надпись появляется RDS Search и всё замолкает.

T_r_D 12.03.2016 17:50

Вложений: 1
Вот окончательный вид интерфейса. Не реальный только радиотекст, всё остальное снимается с магнитолы которая лежит на столе.

T_r_D 13.03.2016 20:03

Вопрос с радиотекстом решён. Кстати он почему-то всегда одного размера в кане передаётся. Максимального :)
Вот код
PHP код:

//____________________________MULTIFRAME__________________________________
          
if(canId == 164// 125HEX
            
{
              if ((
buf[0] >> 4) == 0x01){
                
LengthR = ((buf[0] & 0x0F) * 256 buf[1]) - 6;
                
DataBufSizeR 2;
                
MULTIFRAMER[0] = buf[6];
                
MULTIFRAMER[1] = buf[7];
             } 

              if(((
buf[0] >> 4) == 0x02) && LengthR 0multiframef();
              if(((
buf[0] >> 4) == 0x02) && LengthR == 0)
              {
             for(
int i=0;i<=53;i++) Serial.print(char(MULTIFRAMER[i]));
             
Serial.println();
             }
             }

   }
}
  
void multiframef(){
              if (
LengthR 8)
              {
                for (
int i=07;i++) MULTIFRAMER[DataBufSizeR] = buf[i+1];
                
DataBufSizeR DataBufSizeR 7;
                
LengthR LengthR 7;
              }
              else{
                for (
int i=0LengthR;i++) MULTIFRAMER[DataBufSizeR] = buf[i+1];
                
DataBufSizeR DataBufSizeR LengthR;
                
LengthR 0;
              }


Как бы всё отображается.

T_r_D 16.03.2016 12:13

Всё народ. С первой частью задачи я справился благодаря всем вам. За что вам огромное спасибо.

На данный момент полностью повторён дисплей. Тоесть отображаем на планшете всё что на дисплее. Бортовик, всё что отображает магнитола в режиме радио\ЦД\Ченджера, настройки аудио и громкость.

Во второй части будем пытаться эмулировать дисплей. Без этого невозможно отобразить меню(3 разных для каждого режима работы) по кнопке ОК и меню по кнопке MENU.
Делать меню по кнопке ОК я не буду так как не удобно, а вот по кнопке MENU сделать нужно.

Но для начала надо понять главное- не в дисплее ли случаем считается бортовик?
Если нет, то перед тем как разбираться с меню надо разобраться с загвоздкой со сбросом трипа. Он сбрасывается только тогда, когда находится в отображении трипа. Надо понять кто в этом замешен и если кто идентифицирует в каком мы сейчас режиме отображения.

dmit 17.03.2016 17:52

Заказал Ардуино и Шилд . Тоже хочу помучаться в этом плане. Идея такая на первых порах ловить сообщения, которые рисуют надписи на штатном мониторе. И посылать сообщения для того, чтобы написать свои сообщения на штатном мониторе ! Конкретно для чего пока не знаю, но мысли есть ! Возможно ли такая процедура на Ардуино ? Авто Ниссан Теана2 . Направьте в нужное русло с чего начинать ? Может ЕЛМ327 пока протокол пощупать ? Какой принцип прорисовки экрана в протоколе, текст допустим ascii сообщениями (если я не ошибаюсь), а прорисовка других элементов ?

T_r_D 18.03.2016 03:39

Для начала нужно узнать какая шина в тиане на которой висит дисплей.
Потом уже разбираться с протоколом.

Ардуине с CAN платой вполне справляется с задачами обработки, приёма и передачи данных из шины.

Возможно или нет на дисплее что-то писать своё станет понятно после разбора протокола.
И сообщения в CAN ходят не обязательно в ASCII, тем более что в нём нет русских буковок, а в тиане они скорее всего есть.

Ловить сообщения можно, но они для дисплея идут явно не символами. Скорее стандартные меню дисплея прошиты в нём, а идут только указатели на то, что надо отображать.

dmit 18.03.2016 12:25

Цитата:

Сообщение от T_r_D (Сообщение 355402)
Для начала нужно узнать какая шина в тиане на которой висит дисплей.
Потом уже разбираться с протоколом.

Если к монитору подключиться по CAN сможет Ардуино распознать протокол и скорость ? или эти данные явно нужно знать, чтобы снюхать Ардуино с шиной на дисплее ?

Ардуине с CAN платой вполне справляется с задачами обработки, приёма и передачи данных из шины.

Возможно или нет на дисплее что-то писать своё станет понятно после разбора протокола.
И сообщения в CAN ходят не обязательно в ASCII, тем более что в нём нет русских буковок, а в тиане они скорее всего есть. В Теане 2 в моей по крайней мере нет русских букв !

Ловить сообщения можно, но они для дисплея идут явно не символами. Скорее стандартные меню дисплея прошиты в нём, а идут только указатели на то, что надо отображать.

т.е если выловить данные управляющие стандартными меню дисплея в шине, то этими меню можно управлять для своих сообщений !


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

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