yurick
Aug 17 2016, 05:00
Собственно вот. Нашел этот ресурс и украл пару ссылок. Начну с предистории:
собственно диагностикой занимаюсь уже более 10 лет, программированием больше, с переменным успехом. Тут зародилася мысля сделать свой диагностический комплекс, порыл инфу и начал делать. Скажу сразу - получается. Не всегда как надо, но процесс идет.
Что я хочу от сей приблуды:
1. Проект будет коммерческим, но простейшие функции чтения-удаления ошибок, просмотра информации free. На данный момент, проект чисто интеллектуальный из раздела "я могу". Ни о какой коммерции я сейчас вопрос не ставлю.
2. Проект не будет привязан к шнурку. На данный момент программа работает с оборудованием по ISO22900.
3. Т.к. для работы с одним блоком иногда требуются разные шнурки для работы (вырвать ПИН, сделать сброс, перенести инфу из одного блока в другой, чтение FLASH EEPOM и т.д.), то хочу сделать все в одном месте.
А чего это я тут расписался?
Да просто так. Делаю в свободное время, вопросы по программированию, протоколам возникают постоянно. Кому задать эти вопросы - не знаю. Если тут кто есть, кто сможет ответить на них - приму любую помощь.
А помощь надо.
3 месяца пилил протоколы, чтобы писать проект на C#. Из-за проблемм с маршалингом отказался. Сейчас переделал на MFC. То что сделал - работает. Пока реализовал iso14230. Дальше - больше.
На данный момент проект работает с оборудованием GM MDI. Работу с мелкими шнурками, которые не поддерживают в полной мере ISO22900 работу вести не буду. Возможно потом добавлю J2534.
Сейчас интересует вопрос по 14230 - чтение параметров. Принять пакет данных - принял. Где взять инфу о том, какие это данные и какие формулы нужны, чтобы привести их читабельный вид (напряжение батареи, кол-во оборотов и т.д.)
jorikdima
Aug 17 2016, 20:56
Цитата(yurick @ Aug 16 2016, 22:00)

3 месяца пилил протоколы, чтобы писать проект на C#. Из-за проблемм с маршалингом отказался. Сейчас переделал на MFC. То что сделал - работает. Пока реализовал iso14230. Дальше - больше.

Не по теме, но вот это зря. Вы эксгумировали разложившийся труп. Для протоколов может и правда С# не лучший путь, но С++ без всяких MFC отработал бы как надо. Вся обработка протоколов в отдельной С++ длл. А вот весь ГУИ на C# (да или на чем угодно современном) с вызовом функций той самой длл.
alexunder
Aug 17 2016, 22:04
Цитата(jorikdima @ Aug 17 2016, 22:56)


Не по теме, но вот это зря. Вы эксгумировали разложившийся труп. Для протоколов может и правда С# не лучший путь, но С++ без всяких MFC отработал бы как надо. Вся обработка протоколов в отдельной С++ длл. А вот весь ГУИ на C# (да или на чем угодно современном) с вызовом функций той самой длл.
Поддерживаю: mfc ради GUI изжила себя, хотя гарантированно работать будет даже под windows 2000, а если собрать в MSVS2005 то и в Windows 98SE, если кому-то интересна совместимость с этими динозаврами.
yurick
Aug 18 2016, 04:27
Фокус в том, что интерфейс работы с драйвером оборудования написан на С. И если писать изначально под шарпом, все функции вызываются прекрасно. Траблы начинаются при маршалинге параметров. Когда у тебя в параметрах указатель на структуру, в которой структура с указателями на массив структур, то маршалинг ломается как железный человек в последней части.
А так, есть рабочая версия, которая там ошибки читает, но она рабочая. Надо пробовать как-то переделывать под шарп, не спорю.
alexunder
Aug 18 2016, 08:22
Цитата(yurick @ Aug 18 2016, 06:27)

Траблы начинаются при маршалинге параметров. Когда у тебя в параметрах указатель на структуру, в которой структура с указателями на массив структур, то маршалинг ломается как железный человек в последней части.
Возможно, стоит изменить модель передаваемых данных? Год назад сталкивался с аналогичной задачей: сделать обертку как раз для сишной библиотеки (от клиента) для работы с их "железом", но передаваемые данные были проще организованы чем у Вас.
Нажмите для просмотра прикрепленного файла
yurick
Aug 18 2016, 12:10
С такими данными я бы изначально на шарпе сделал. У меня половина данных идет типа структура, в структуре uint определяет какой тип второго параметра. Второй параметр void*.
А там может быть структура, массив структур, просто массив, просто число, структура структур в которых массив из структур. В довесок ко всему еще функция обратного вызова драйвера и работа на два потока по ISO. Кароч, сломал маршалинг, а остатками сломал мозг.
Пока сделал так, на MFC есть рабочая обертка для драйвера. Можно отрабатывать алгоритмы работы со сканером и блоком управления. Сделал класс c++/cli обертку для драйвера, чтобы там применять эти алгоритмы. И на шарпе уже интерфейс будет. Из-под cli функции драйвера работают и маршалинг не ломается, но из-за проблем с отладкой я не вижу неуправляемую память, а там такие косяки вылазят, что пипец.
Как-то так....
Но пока все получается и это радует.
вообще, посмотрел на "родной" софт для этого сканера. А софт этот разрабатывал Бош. Так вот, я думал, что это у меня получается игла в утке, утка в зайце. А там вообще пипец. Софт сделанный Бошем для Мерседеса (XENTRY OPEN SHELL) это такой тихий ужас. Там программа - грибная солянка из С++, JAVA, .NET, вешается сервак Appache и все это написано под Eclipce.
То же самое с VAG. Но самый лютый писец - это DiagBox от PSA.
Потом узнал, что Бош для сторонних клиентов пишет программы от имени своей индийской дочки. Видел фотку - 200 сотрудников, все в чалмах.
alexunder
Aug 18 2016, 14:12
С diagbox работал - тихий ужас. Peugeot Planet ещё терпимо, но за диагбокс создателей нужно долго бить ногами по лицу.
Ну, все. Проблему маршалинга решил. Теперь все работает на чистом шарпе.
у кого-нить есть таблица идентификаторов блоков управления Мерса?
А то к Опелю коннект вижу, читаю, а к Мерсу нифига. Вроде как и тайминги и адресация должны быть одинаковые.
alexunder
Sep 2 2016, 12:03
Цитата(yurick @ Sep 2 2016, 08:03)

Ну, все. Проблему маршалинга решил. Теперь все работает на чистом шарпе.
у кого-нить есть таблица идентификаторов блоков управления Мерса?
А то к Опелю коннект вижу, читаю, а к Мерсу нифига. Вроде как и тайминги и адресация должны быть одинаковые.
Поздравляю. Поделитесь решением пожалуйста.
По поводу таблиц, на форуме есть некто Vasily_, попробуйте узнать у него.
Привет yurick!
Какаю платформу (железо) планируешь использовать для своего сканера?
Могу предложить мобильную платформу для твоего софта.
Будет подключаться непосредственно к ГУ авто и работать как встроенный сканер.
YanAlexandrov
Sep 7 2017, 14:54
Добрый день. Есть какие-нибудь подвижки со сканером? Чем все закончилось? Наверно, пора в массы нести...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.