Slava.Vrn

Пользователи
  • Content Count

    88
  • Joined

  • Last visited

Community Reputation

31 Вхожу в коллектив

2 Followers

About Slava.Vrn

  • Rank
    Активный участник

Старые поля

  • Имя
    Слава
  • Автомобиль
    Laguna 2

Uncategorized

  • Город
    Воронеж

Recent Profile Visitors

1094 profile views
  1. Ахтунг! В последней версии скрипта закрался баг - при включенной опции -csv_only скрипт падает на экране записи параметров. (судя по отсутствию фидбэка, никто эту опцию еще не пользовал) В mod_ecu.py в строках 378-380 if n>0 and n<=(pages+1): page = n-1 continue надо переделать условие if (not mod_globals.opt_csv_only) and n>0 and n<=(pages+1): иначе скрипт падает от неинициализированной переменной pages
  2. У кого проблемы с чтением по К-линии еще ноутбук может быть виноват. Я с DDT2000 с простым K-Line адаптером в свое время мучался - на большинстве современных ноутбуков не видит многие блоки из-за упрощенной реализации USB-порта! Чаще всего отваливался впрыск, АБС, подушки. АКПП и ЦЭКБ видел всегда. Соответственно, если в вашем китайском ELM не очень удачное схемотехническое решение для К-линии, то тоже возможно отваливание по этой причине. Попробуйте взять старый ноутбук (которому лет так 10) и попробуйте с ним.
  3. Еще раз прошу, кто в теме, посетите http://rdiag.kotpusk.ru/, внесите свою лепту! в разделе http://rdiag.kotpusk.ru/index.php/Pyren будем писать все про скрипт.
  4. Внес изменения в скрипт. Теперь в дополнение к опции --csv есть опции --csv_only - отключает вывод данных на экран, все данные пишутся только в csv-файл, нужно это для ускорения чтения данных --csv_human - включает вывод в csv-файл в расшифрованном виде - все названия и значения параметров и состояний пишутся текстом Обновленные файлы лежат тут: https://yadi.sk/d/kNs55A01vR4R4 pyren_upd.zip - распаковать в папку со скриптом (если при распаковке будет спрашивать, заменить ли существующие файлы - значит все правильно делаете, заменяйте. Если же не спрашивает о замене - значит распаковываете не туда pyren_4a_launcher.zip - естественно, распаковать и заменить им исходный pyren_4a_launcher.py В pyren_4a_launcher.py параметры csv_only и csv-human уже включены. Shr-lnm, вносил изменения в версию pyren-v0994-beta. Если мои изменения принимаются, смерджите версии сами, плз. Я на питоне "пишу" со вчерашнего дня, так что пока боюсь коммитить самостоятельно
  5. О, спасибо большое! Не обратил внимания на этот кусок кода. Ща внесу его внутрь условия.
  6. В лог-файл пишутся "сырые" данные с адаптера. Чтобы получить данные для графика - нужно включить опцию --csv. Но она будет записывать данные почти так же, как это делает Clip, т.е. не в "человеческом" виде, а в виде своих внутренних кодов. Поэтому чтобы получить данные для анализа и графиков в "человеческом" виде, лучше скачать архив с 3-мя файлами, которые я выкладывал чуть выше. Я в своей версии скрипта отрубил вывод параметров на экран, если включена опция --csv. Это сразу же сократило время обработки, теперь между запросами не 0.8 сек, а 0.3-0.5 сек на андроиде и 0.2-0.4 сек на ноуте, что уже более приемлемо. Не очень понятен такой разброс скорости, надо смотреть профайлером питона причину задержек. Я пока с ним не разобрался.
  7. Графики и раньше можно было строить из CSV-файлов. Только знаячения и названия параметров/состояний были нерасшифрованные. Сейчас я сделал, чтобы они записывались в расшифрованном "человечесвом" виде. Но надо код подчистить и сделать красиво.
  8. Знач, в итоге так. Я понимаю, что я щас быдлокодю ради быстрого результата, но пока это работает. Вот 3 файла, которые я поменял в скрипте: https://yadi.sk/d/BlGzN3dhvQ7do Вопрос к знатокам питона: С точки зрения быстродействия, различные варианты формирования CSV-файла лучше сделать условиями в коде (традиционный подход), перезагрузкой методов (для каждого варианта своя функция) или подсовыванием модулей? Дело в том, что у меня пока адово медленное быстродействие. На запись примерно 30 параметров, получаемых одним-единственным запросом, уходит 800 миллисекунд. Это очень много. Поэтому сейчас хотелось бы оптимизировать код. Правда, это на андроиде. Надо с компа попробовать
  9. Вроде что-то получилось, только эксель кракозяблы показывает при открытии непосредственно CSV-файла. Если делать импорт данных из текстового файла - определяет нормально кодировку UTF-8 и показывает нормально: time НАПРЯЖЕНРР• РџРРўРђРќРРЇ КОМПЬЮТЕРА(PR008) РџРћР›,РЫЧ,ПЕР,ПЕРЕДАЧ(ET012) ВКЛЮЧЕННОЕ ПЕРЕДАТОЧНОЕ РћРўРќРћРЁ,(ET013) ПЕДАЛЬ РўРћР РњРћР—Рђ(ET018) ПОЛОЖЕНРР• ПЕДАЛРАКСЕЛЕРАТОРА(PR022) РЕЖРРњ ДВРГАТЕЛЯ(PR006) ВХОДНОЙ РЕЖРРњ КОРОБКР(PR014) РЕЖРРњ РќРђ ВЫХОДЕ КОРОБКР(PR005) РЎРљРћР РћРЎРўР¬ РђР’РўРћРњРћР‘РЛЯ(PR105) ТЕМПЕРАТУРА МАСЛА КОРОБКРПЕРЕДАЧ(PR004) ТЕМПЕРАТУРА ВОДЫ(PR001) 51:25,8 0 P Р’Рћ ОТПУЩЕНА 0 0 0 0 0 -50 -40 52:32,8 0 P Р’Рћ ОТПУЩЕНА 0 0 0 0 0 -50 -40 52:40,1 0 P Р’Рћ ОТПУЩЕНА 0 0 0 0 0 -50 -40 52:43,1 0 P Р’Рћ ОТПУЩЕНА 0 0 0 0 0 -50 -40 52:46,6 0 P Р’Рћ ОТПУЩЕНА 0 0 0 0 0 -50 -40 Вот от этого бы сейчас избавиться... А потом я допилю нормально, чтобы это через опции выбиралось, в каком формате CSV сохранять Фух. Вроде получилось все.
  10. Ага. Время будет - попробую разобраться с SG. Спасибо. А сейчас такой вопрос возник. Если включить логирование в CSV, скрипт пишет так же как клип - параметры/состояния в виде их кодов (PR001,E012 и т.п.). Это не очень удобно, поскольку я наизусть их не помню, а копировать каждый раз в экселевский файл из документации очень долго. Кроме того, значения состояний/параметров храняться в виде кодов, а не в виде "человеческих" значений. Я попытался переделать код немного. В mod_ecu_state в функцию get_state внес изменения: if mod_globals.os=='android': csv_val = st.value st.value = " "*(8-len(st.value)/2) + st.value #return "%-6s %-50s %-20s"%(st.codeMR,st.label,st.value), st.helps, tmp_val return "%-6s %-41s %-16s"%(st.codeMR,st.label,st.value), st.helps, csv_val else: csv_val = st.value st.value = " "*(16-len(st.value)/2) + st.value #return "%-6s %-50s %-20s"%(st.codeMR,st.label,st.value), st.helps, tmp_val return "%-6s %-50s %-20s"%(st.codeMR,st.label,st.value), st.helps, csv_val Т.е. попробовал подменить значение, которое пойдет в CSV. Вместо кода значения в CSV будет передаваться "расшифрованное" значение. В mod_ecu внес изменения, чтобы заголовки столбцов писались "человеческие": if mod_globals.opt_csv: # prepare to csv save csvline = u"time" nparams = 0 for dr in datarefs: if dr.type=='State': #csvline = csvline + ";" + self.States[dr.name].codeMR csvline = csvline + ";" + self.States[dr.name].label + "(" + self.States[dr.name].codeMR + ")" nparams += 1 if dr.type=='Parameter': #csvline = csvline + ";" + self.Parameters[dr.name].codeMR csvline = csvline + ";" + self.Parameters[dr.name].label + "(" + self.Parameters[dr.name].codeMR + ")" nparams += 1 if nparams: csv_filename = datetime.now().strftime("%y_%m_%d_%H_%M_%S_") #csv_filename = csv_filename+self.ecudata['ecuname']+'_'+path+".csv" csv_filename += ".csv" #csv_filename = csv_filename.replace('/','_') #csv_filename = csv_filename.replace(' : ','_') #csv_filename = csv_filename.replace(' -> ','_') csvf = open("./csv/"+csv_filename, "wt") Тут сразу пришлось отказаться от дефолтного наименования файла - у меня скрипт падал на андроиде. Фиг понял почему, скорее всего, из-за наличия русских буков. Поэтому сократил имя файла только до даты. При записи заголовка скрипт тоже падал. Чисто наобум внес изменение - заработало: if mod_globals.opt_csv and csvf!=0: csvline = csvline + "\n" csvline = csvline.replace('.',',') #csvf.write( csvline ) csvf.write( pyren_encode(csvline) ) csvf.flush() csvline = datetime.now().strftime("%H:%M:%S.%f") Но поскольку я не питонщик, словил еще падение скрипта при записи CSV в файл и уже не пойму, что тут надо сделать. Я так понимаю, тоже из-за русских букв if mod_globals.opt_csv and csvf!=0 and (dr.type=='State' or dr.type=='Parameter'): csvline = csvline + ";" + str(csvd) Сейчас пойду учить науку о сторках и прочих юникодах в питоне, но если кто сразу видит, где ошибка - скажите, плз
  11. 1. Да, чет я тупанул. В сервисах не все приходящие байты описаны, есть какие-то служебные или неиспользуемые. 2. Я не нашел, где в файлх прописаны сервисы. Параметры, идентификаторы, ошибки, состояния - они в FG*.xml. А сервисы не видел, только скриптом mod_optfile выгружал. 3. Ну, я думаю, мне надо просто додебажить до загрузки SG*.xml. Пока не добрался еще... 4. А я вот даже не помню, натыкался я где-нибудь на такое или нет... Поэтому я и хочу собрать FAQ. Только сам я все страницы этой темы не осилю... Поможите, пожалуйста, хотя бы начало положить - создать недостающе страницы http://rdiag.kotpusk.ru/index.php/Pyren. Википедией все умеют пользоваться? Тут движок точно такой же, ничего сложного.
  12. Из-за ограничений форума по редактированию сообщений, тут вести ФАК невозможно (если ты не модератор), поэтому я сделал WIKI по диагностике Рено http://rdiag.kotpusk.ru/ Прошу всех знатоков поучаствовать в наполнении! Сейчас редактирование доступно всем, но я прошу всех редакторов зарегистрироваться. Если будут какие-то неудобства или вопросы - задавайте вопросы здесь или в личку!
  13. Кто сказал ФАК? Друзья-коллеги, я сделаль Из-за ограничений форума по редактированию сообщений, тут сделать это невозможно (если ты не модератор), поэтому я сделал WIKI по диагностике Рено - http://rdiag.kotpusk.ru/ Прошу всех знатоков поучаствовать в наполнении! Сейчас редактирование доступно всем, но я прошу всех редакторов зарегистрироваться. Если будут какие-то неудобства или вопросы - задавайте в теме ФАКа по диагностике: http://www.club-renault.ru/forum/topic/71984-faq-по-самостоятельной-диагностике/!