Страница 2 из 5 ПерваяПервая 1 2 3 4 ... ПоследняяПоследняя
Показано с 31 по 60 из 144

Тема: Проект: доступный Tech2 - каждому астраводу

  1. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    да и входящий и исходящий.

    Цитата Сообщение от CoDeMasteR
    14 из 29 - не так уж плохо
    При этом подключение к ECU не началось даже! Т.е. в стандарте много ненужного мне мусора.

  2. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    При этом подключение к ECU не началось даже! Т.е. в стандарте много ненужного мне мусора.
    пересчитал, 10 из 29 если повторы убить

    CallBack по стандарту не один, а на каждый объект свой
    надо табличку сделать оригинальных CALLBACK вместо static переменной

  3. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    Разобрался я что было с showparam. Дело было в разрядность enum. В Builder для enum типа выделяется 16бит, а T2W ждет 32. пока вызывается еще одна функция портятся старшие разряды. Не смог переключить на 32-х битный режим enum, переопределил все enum как unsigned int. К MDI подключается, но при попытке связаться с ECU выдает ошибку "Нет связи", причем MDI релюшками щелкает как-то по-другому и в CAN-е ни одного пакета. Предполагаю, что проблема с передачей аргументов, а точнее с их разрядностью. Передавать enum надо в виде 32-х разрядного числа, это я понял, а вот как упаковывать в структуры не ясно.

  4. Маргариныч Заслуженный флудер Migraine_heaD на верном пути Аватар для Migraine_heaD
    Регистрация
    30.05.2008
    Адрес
    Окрестности Кремля, ООО "Россия"
    Сообщений
    5,242
    Спасибо
    0 / 0
     *166** 199
    Ну вы парни вообще красавцы
    Opel Astra 1.8 MT
    Поспешишь - airbag распушишь!
    Прогноз

  5. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    AleXRE
    может ну его в болото этот builder и попробовать обычный Visual C++?

  6. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    Я тож подумывал над VC++, но на работе мне на нем писать будет сложно, поэтому остановлюсь пока на билдере. Сегодня выкинул все записи в файл, переделал калбак:

    typedef __stdcall void (*CallBackFuncType)(T_PDU_EVT_DATA eventType, UNUM32 hMod, UNUM32 hCLL, void *pCllTag, void *pAPITag);

    typedef struct
    {
    UNUM32 hMod;
    UNUM32 hCLL;
    bool is_updated;
    CallBackFuncType Event;
    } PDU_OBJ;

    #define num_of_obj 256
    PDU_OBJ Obj_Array[num_of_obj];


    static __stdcall void Event(T_PDU_EVT_DATA eventType, UNUM32 hMod, UNUM32 hCLL, void *pCllTag, void *pAPITag)
    {
    for(int i=0;i<num_of_obj;i++)
    {
    if (!Obj_Array[i].is_updated) continue;
    if (Obj_Array[i].hMod!=hMod) continue;
    if (Obj_Array[i].hCLL!=hCLL) continue;
    if (Obj_Array[i].Event==NULL) continue;

    Obj_Array[i].Event(eventType,hMod,hCLL,pCllTag,pAPITag);

    return;
    }
    }

    void RegisterEvent(UNUM32 hMod, UNUM32 hCLL,
    CallBackFuncType EventCallbackFunction)
    {
    if (EventCallbackFunction!=NULL)
    {
    for(int i=0;i<num_of_obj;i++)
    {
    if (Obj_Array[i].is_updated) continue;
    Obj_Array[i].hMod=hMod;
    Obj_Array[i].hCLL=hCLL;
    Obj_Array[i].Event=EventCallbackFunction;
    Obj_Array[i].is_updated=true;
    return;
    }
    }
    else
    {
    for(int i=0;i<num_of_obj;i++)
    {
    if (!Obj_Array[i].is_updated) continue;
    if (Obj_Array[i].hMod!=hMod) continue;
    if (Obj_Array[i].hCLL!=hCLL) continue;
    Obj_Array[i].Event=0;
    Obj_Array[i].is_updated=false;
    }
    }
    }


    EXTERNC T_PDU_ERROR PDURegisterEventCallback(UNUM32 hMod, UNUM32 hCLL,
    CallBackFuncType EventCallbackFunction)
    {
    T_PDU_ERROR res;
    if (I_PDURegisterEventCallback!=NULL)
    {
    RegisterEvent(hMod,hCLL,EventCallbackFunction);
    res=I_PDURegisterEventCallback(hMod,hCLL,Event);

    }
    else return PDU_ERR_FCT_FAILED;
    return res;
    }

    И, как ни странно, все заработало. К блоку MDI подключился.

    Теперь надо подчистить вывод в файл и все должно работать, только замучался я выписывать в файл все эти структуры.
    Когда в структуре указатель на структуру, да еще надо смотреть какого типа в зависимости от другого элемента структуры.... жесть....

    Еще думал как бы связать эту DLL с другим приложением. Чтобы не в файл писать, а на форме отображалось. Форму в DLL добавить не могу, т.к. стоит режим без подчеркиваний, чтобы экспортируемые функции не _подчеркивал, а тупой билдер после этого свои же функции найти не может.

  7. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    Еще думал как бы связать эту DLL с другим приложением. Чтобы не в файл писать, а на форме отображалось. Форму в DLL добавить не могу, т.к. стоит режим без подчеркиваний, чтобы экспортируемые функции не _подчеркивал, а тупой билдер после этого свои же функции найти не может.
    Напиши форму в отдельныю DLL и приделай ее так же через LoadLibrary.


    Чего там с логом? CAN-трафик видно хоть в каком-нибудь виде?

  8. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    CoDeMasteR
    !О прикольно! а я не додумался сразу. Из своей то DLL могу звать функции как хочу. Хоть с подчеркиванием, хоть без.

  9. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    Из своей то DLL могу звать функции как хочу. Хоть с подчеркиванием, хоть без.
    только есть одни грабли - 2 виндовых event loop в одном процессе плохо уживаются

  10. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    CoDeMasteR
    Наступил я на какие-то грабли, только не могу понять где они.

    Написал я отдельную DLL, экспортнул две функции. При загрузке DLL сделал:
    Form1=new TForm1(Application->owner);
    Form1->Show();


    Но как только я вызываю экспортную функцию все виснет. Даже если функция без аргументов и ничего не делает. Если убираю Form1->Show(), то не виснет. Понимаю, что проблема стандартная, но куда копать пока не понял. Мож подскажешь?

    Добавлено спустя 35 минут 28 секунд:

    Да, про лог. Я чего-то вразумительного пока не видел, так как код был кривой. Надо все аккуратно сделать просто. Как только получу отпишу или здесь, или на почту.

  11. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    Понимаю, что проблема стандартная, но куда копать пока не понял. Мож подскажешь?
    Я C++ Builder видел всего один раз, и то первую версию под Win95. Скорее всего не запускается какой-то стартап код билдера, который обрабатывает Win32 MessageLoop. Вызов Show() в конечном счете выдает Win32 ShowWindowEx() который выдает в очередь соответствующий WM_SHOW, либо не в ту очереж, либо очередь ни кто не слушает. Как это победить - не знаю.

    Вообще мысль соместить формы Tech2Win и монитора D-PDU API в одном процессе не очень мне нравится. Будет много гемора и сайд эффектов

    Может проработать формат записи лога? А если надо видеть что происходит "на лету", то заменить файл на виндовый PIPE или MAILBOX и читать оттуда в форму.

    Добавлено спустя 3 минуты 46 секунд:

    Цитата Сообщение от AleXRE
    Да, про лог. Я чего-то вразумительного пока не видел, так как код был кривой. Надо все аккуратно сделать просто. Как только получу отпишу или здесь, или на почту.
    Мне бы примерчик работы с живым блоком. Первым этапом на его основе надо сделать заглушку, которая будет работать с Tech2Win без MDI. На ее основе уже можно вычленять трафик в CAN и прочие команды типа выбора шины.

  12. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    Ладно, попробую тогда все же разобраться с записью в файл. Перепишу все заново. Теперь то я знаю с какими трудностями могу столкнуться и на след неделе, я думаю, у нас будет полный лог работы T2W, если я окончательно не разболеюсь

  13. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    Ладно, попробую тогда все же разобраться с записью в файл.
    В файл можно писать HexDump структур в памяти целиком, потом то же самое для каждого поля-указателя. Потом читать файл в отдельное приложение. Это позволит один и тот же прогон Tech2Win на железе анализировать разными методами (в GUI рисовать, в человеко-читаемый текст конвертить, считать статистику по вызовам и т.д.)

    В имя файла можно добавить время и дату когда загрузилась DLL, что бы файлы от разных попыток не переписывали друг друга.

  14. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    Не понял насчет HexDump. Как можно писать всю структуру, если не известно заранее размер данных, на которые ссылаются ее элементы-указатели. Приходится интерпретировать каждую структуру отдельно, так как там даже тип элементов меняется в зависимости от другого элемента. К примеру, смотри структуру PDU_PARAM_ITEM - очень злая.

  15. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    К примеру, смотри структуру PDU_PARAM_ITEM - очень злая.
    это классический пример объектно-ориентированного программирования на языке который его не поддерживает (простой Си, без ++)

    попробую скелет написать вывода в log, позже скину на почту

  16. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    Описал я вывод всех структур в лог файл. Пока не понял что делать с тагами (см. 225 стр. PDF) и не вкурил вот это:

    PDU_PT_BYTEFIELD
    PDU_PT_STRUCTFIELD
    PDU_PT_LONGFIELD

    Теперь надо все аккуратно прикрутить к вызовам функций

  17. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    PDU_PT_BYTEFIELD
    PDU_PT_STRUCTFIELD
    PDU_PT_LONGFIELD
    их я сделал

    Это векторы + структура-обертка с текущей и макс.длиной. Присылай исходник, попробую добавить их...

    Цитата Сообщение от AleXRE
    Пока не понял что делать с тагами
    Их можно заюзать вместо таблицы CallBack, это увеличит производительность. А вообще на тэги можно забить до момента написания своей DLL для самодельного железа.

  18. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    отправил.

    Я понял, что таги можно вместо калбаков использовать, вот только как их отследить не понятно. Сделать такую же таблицу для них?

  19. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    как их отследить не понятно. Сделать такую же таблицу для них?
    какие значения hMod, hCLL возвращает оригинальная DLL? на что они больше похожи? на 1, 2, 3... или на адреса в памяти? от этого сильно зависит как делать callback.

    Добавлено спустя 11 минут 55 секунд:

    код для PDU_PT_BYTEFIELD, PDU_PT_STRUCTFIELD, PDU_PT_LONGFIELD выглядит примерно так:

    Код:
    case PDU_PT_BYTEFIELD:
                    {
                        PDU_PARAM_BYTEFIELD_DATA *param1 = (PDU_PARAM_BYTEFIELD_DATA *)param;
                        int i;
                        w_UNUM32(param1->ParamMaxLen,tab,name + ".ParamMaxLen");
                        w_UNUM32(param1->ParamActLen,tab,name + ".ParamActLen");
                        for(i = 0; i< param1->ParamActLen; ++i) {
                            w_UNUM8(value->pDataArray[i],tab,name + ".pDataArray[" + i + "]");
                        }
                    }
                    break;

  20. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    ага, спасибо за код.

    hMod равен либо, 1 (у меня один MDI всего ), либо 0xFFFFFFFF.
    hCLL это 1,2,3 и т.д. сколько открыто линков, либо 0xFFFFFFFF

  21. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    Все выходные проболел...
    Сутра прикрутил вывод лога ко всем функциям.

    Пример лога:

    PDUGetObjectId
    pduObjectType=32804 0x00008024
    pShortname="CP_P2Max"
    *pPduObjectId=13 0x0000000D
    return=0 0x00000000

    переменные со * - это возвращаемые переменные (Call-by-reference)

    Добавлено спустя 27 секунд:

    лог выслал...

  22. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    AleXRE
    Спасибо

    Есть продвижение вперед:

    Это без MDI и его эмулятора. До CANdi пока еще не допрогал...

  23. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Последние достижения:
    1. виртуальный MDI определяется
    2. CAN-канал открывается
    3. ... а дальше пока алес капут трафк пока не проходит.


  24. Местный Бакалавр АСТРАномии AleXRE скоро станет знаменитостью
    Регистрация
    01.07.2010
    Адрес
    Зеленоград
    Возраст
    43
    Сообщений
    1,321
    Спасибо
    14 / 0
    Да уже что-то. Я тут тоже параллельно копаю. А что с тэгами решил делать? Я что-то не вкурил пока как они работают.

    Добавлено спустя 1 минуту 36 секунд:

    дядя Рома MDI пока не отдает (гад). Говорит, что он там что-то кому-то делает...

  25. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от AleXRE
    А что с тэгами решил делать?
    ничего с ними не делаю, я пока Callback не наладил...
    А вообще оригинальная ETAS-VCI.DLL уже давно в корзинке лежит, все запускается исключительно на моей самопальной реализации D-PDU API. Тэги буду передавать в Callback как написано в стандарте, не разбираясь что в них записано.

    Сейчас копаюсь с вызовом Callback для CLL при переходе в статус ONLINE после PDUConnect.

  26. Местный Астравод Дмитрий 42 на верном пути
    Регистрация
    29.10.2007
    Адрес
    Кемерово, Кузбасс
    Сообщений
    152
    Спасибо
    0 / 0
    Вообще, в оригинальном теч2вин есть что-то вроде поддержки любого Ж2534 устройства. Правда ПДУ на нее не доделаны.

    У меня где-то лежит поломаный теч2вин, который показывает окно выбора Ж2534 устройств, но работать корректно с ними не хочет.

    Вы пошли путем подмены МДИ, а ребята которые ломали теч2вин просто пытались открыть в нем возможность работы с любым пасстру.
    Прошивка Евро2. Ремонт CIM

  27. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Дмитрий 42
    J2534 мы тоже пробовали, не работает Похоже поддержка этих устройств не доделана в Tech2Win. Известно что Tech2Win Toyota работает через J2534, но его найти пока не удалось.

  28. Местный Астравод Дмитрий 42 на верном пути
    Регистрация
    29.10.2007
    Адрес
    Кемерово, Кузбасс
    Сообщений
    152
    Спасибо
    0 / 0
    С арендой лицензий с ТИС тоже разобрались ?

    Так 2 варианта. Ломаный Теч2вин или переводить дату на компе назад.

    Добавлено спустя 1 минуту 34 секунды:

    Не понял, насчет Теч2вин Тойота ...это что ?

    У тойоты сейчас Teachstream ..это совсем другая прога и она работает через любое Ж2534. Но она реально чисто тойотовская.

    Если нужна - могу скинуть.
    Прошивка Евро2. Ремонт CIM

  29. Монстр астраколхозинга Заслуженный флудер CoDeMasteR Астранафт Аватар для CoDeMasteR
    Регистрация
    17.01.2008
    Адрес
    Москва ЗАО
    Сообщений
    6,358
    Спасибо
    88 / 2
     0реlац т0й
    Цитата Сообщение от Дмитрий 42
    Так 2 варианта. Ломаный Теч2вин или переводить дату на компе назад.
    еще варианты:
    3. Залить карту Tech2Win через GlobalTIS, дает лицензию 30 дней, кол-во заливок не ограничено.
    4. Правка файла лицензии руками, как ни странно мне удалось с первого раза сделать 250 дней
    4a. Генератор лицензии для Tech2Win пишется за 5 мин.

    Лицензия на Tech2Win - не проблема ни разу, проблема - заставить его работать с машиной без дорогостоящего MDI.

  30. Местный Астравод Дмитрий 42 на верном пути
    Регистрация
    29.10.2007
    Адрес
    Кемерово, Кузбасс
    Сообщений
    152
    Спасибо
    0 / 0
    Про лицензию понял. Просто поинтересовался.

    Добавлено спустя 3 минуты 21 секунду:

    Про Тойоту то еще актуально или нет ? Нужен вам этот Techstream или вопрос отпал ?
    Прошивка Евро2. Ремонт CIM

Страница 2 из 5 ПерваяПервая 1 2 3 4 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)