Перейти к содержанию

Примеры скриптов. Скачать скрипты для блоков SRS


Гость Anonymous

Рекомендуемые сообщения

SUZUKI SX4 (cтирание crash)

Вашему вниманию скрипт для стирания крэша в airbag SUZUKI SX4. Скрипт позволяет вычитывать дамп блока Airbag, проверять на присутствие креша, стирать по необходимости. Ниже приведена часть кода, которая отвечает за проверку и стирание.


Menu
    Read
,Read,0,F3
    Read status register
,read_sr,,F9
    
-
    Write,Write,1,F2
    Write changes
,WriteC,2,F4
    
-
    Verify,Verify,3,F5
EndMenu

Window
(C="Suzuki Airbag";w=630;h=285;a=h)
{
 group(= "Память 25160"; l = 10; t = 10; w = 320; h = 185)
    {
  list(c="VCC = ";left=60;top=35; w=60;value=0;name=vcc;items="5.0V","4.3V","3.8V","3.4V","3.1V","2.9V","2.8V","2.6V")
  checkbox(c="Cтраничная запись";l=160;top=32;name=page_mode)
  checkbox(c="Пин тестер";l=160;top=60;name=pin_tester;value = 1)
 
  group
(= "Защита от записи"; l = 10; t = 90; w = 300; h = 85)
  {
   list(c=" ";left=50;top=28;w=200;items = "Нет защиты от записи",
              "Адреса 0х600-0х7FF - только чтение",
              "Адреса 0х400-0х7FF - только чтение",
              "Вся микросхема - только чтение";name=sr_value)
   button(c="Прочитать";l=50;w=99;t=53;h=22;proc = read_sr)
   button(c="Записать";l=151;w=99;t=53;h=22;proc = write_sr)
  }
 }
 group(= "Дамп"; l = 10; t = 205; w = 320; h = 70)
    {
  Label(= "Состояние:"; name = lbState; left = 50; top = 30; width = 100; height = 20)
  Label(= "Нет"; name = lbDumpState; left = 115; top = 30; width = 100; height = 20)
  button(c="Проверить"; l=210; w=100; t=15; h=22; proc = on_dump_check_crash)
        button(c="Стереть CRASH"; l=210; w=100; t=40; h=22; proc = on_dump_clear_crash)
 }
 
 group
(c="Внешний вид";= 350; t = 10; w = 285; h = 265)
    {
  picture(c="Suzuki_SX4_Airbag.jpg"; l = 25; t = 25; w = 0; h = 0)
 }
}
        

Editor
{
 (C="EEPROM";size=2048;mode=8;bytes=16)
}

$HOST

export Read
,Write,WriteC,Verify;


#define MEM_SIZE        2048         // размер памяти микросхемы в байтах
#define BLOCK_SIZE      64          // размер блока для обмена между компьютером и программатором
                                    // блоковая передача применяется для ускорения обмена
                                    // передача одиночных байт туда-сюда через USB сильно замедляет обмен
                                    // для микросхем с объемом более 1024 байт торможение будет недопустимым    
#define WRITE_PAGE_SIZE 8

emem fbuf=0,fsel=2;                 // объявляем буфера
                                    // fbuf - то, что видно на экране программы
                                    // fsel - для включения-выключения подсветки байт или слов                
byte buf[BLOCK_SIZE];               

string s1
;

proc on_dump_check_crash()
{
 var v1, addr, dump_error;
 
 
 dump_error 
= 0;
 if(fbuf[0x260] = 0xFF){ dump_error = 1; }
 if(fbuf[0x261] = 0xFF){ dump_error = 1; }
 
 if
(dump_error = 1)
 {
  lbDumpState = "Ошибка дампа!";
  print("\n..Ошибка! Неверный дамп!");
 }
 else
 
{
  addr = 0x20; v1 = 0; 
        while
(addr != 0x21)
        {
   v1 = v1 | fbuf[addr]; addr = addr + 1;
        }
  
  if
(v1 != 0xff) 
  
{
   lbDumpState = "CRASH!";
   print("\n..обнаружен CRASH!");
  }
  else
  
{
   lbDumpState = "Чистый";
   print("\n..дамп чистый");
  }
 }
}

proc on_dump_clear_crash()
{
 var addr, dump_error;
 
 dump_error 
= 0;
 if(fbuf[0x260] = 0xFF){ dump_error = 1; }
 if(fbuf[0x261] = 0xFF){ dump_error = 1; }
 
 if
(dump_error = 0)
 {
  print("\nЗатирание CRASH...");
  addr = 0x20;
  while(addr != 0xA0)
  {
   fbuf[addr] = 0xFF; fsel[addr] = 2; addr = addr + 1;
  }
  
  addr 
= 0x2B0;
  while(addr != 0x800)
  {
   fbuf[addr] = 0xFF; fsel[addr] = 2; addr = addr + 1;
  }
  print("\n..ОК!");
 }
 else
 
{
  print("\n..Ошибка! Неверный дамп!");
 }
}
 

кому нет желания разбираться в исходниках - ниже готовый к употреблению архив, нужно его только распаковать в Scripts/Car/SRS/

Suzuki.zip

Ссылка на комментарий
Поделиться на другие сайты

  • 2 года спустя...

Что то я присел аж с объема скрипта. Только где там основная часть поиска и удаления краша я не увидел))

Ссылка на комментарий
Поделиться на другие сайты

Надо бы немного пояснить кое какие вещи

к примеру - кто такие (dword w0, w1, w2;) и откуда они берутся, кто их назначил какой функцией.

И что то не вижу привычную кнопку "применить"

Ты бы мне отдельно, от линии до линии чирикнул бы пояснялку, а?

Ссылка на комментарий
Поделиться на другие сайты

Надо бы немного пояснить кое какие вещи

к примеру - кто такие (dword w0, w1, w2;) и откуда они берутся, кто их назначил какой функцией.

И что то не вижу привычную кнопку "применить"

Ты бы мне отдельно, от линии до линии чирикнул бы пояснялку, а?

Роман там много чего не ивестно

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

Ссылка на комментарий
Поделиться на другие сайты

Было бы круто сделать следующий скрипт -

Выбираем нужный авто из списка кальков, нужную модель, блок по номеру-

тест микросхемы

чтение

верификация

автоматическое сохранение в заранее установленное по списку место (к примеру- заранее создан текстовой файл с указанием мест расположения архивов с дампами пользователя - сортировка маркам, по моделям - в настройках)

или если за ранее не определено в настройках -

вывод окна с запросом сохранения дампа (куда сохранять и под каким именем) // к примеру выводится список марок- выбираем, потом выводится список моделей - выбираем, потом выводится год выпуска - выбираем или игнорируем, потом предложение ввести номер блока - вписываем.

Дамп в итоге должен сохраняться в нужную папку с маркой, моделью, номером, микросхема после чтения уже по идее известна - значит и с указанием микросхемы. Всё это в следующем виде приблизительно (SRS_Toyota_Avensis_2007_89170-05220_25040_Crash.bin (Соответственно если каль обнаружил краш при проверке, то может подставить состояние дампа)

После указания места сохранения - дамп автоматом сохраняется и выходит окно с запросом почистить.

После чистки вопрос - записать? Если жмем кнопку записать полностью или только изменения - пишет, автоматом верификация и автоматом сохранение в папку рядом с крашнутым дампом с состоянием дампа в конце _Clear.bin

При сохранении первого дампа - Crash , что бы в папке по примеру - тоёта- авенсис- создавалась автоматом папка с названием похожим на название дампа SRS_Toyota_Avensis_2007_89170-05220_25040. В неё будут складываться два этих дампа.

Если там такая папка уже существует (часто с таким сталкиваюсь) то можно поправить при создании папки имя самостоятельно. К примеру я делаю какую нибудь букву в другом регистре.

Как то так я вижу это. Это не идеал конечно, но очень продвинуто - мне так кажется.

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

Кстати интересная идея в начале калька сделать запрос, откуда брать дамп - из файла или читать из микросхемы. Посмотрено в кальках к упе от Влада. Считаю очень удобной функцией.

У кого есть критика или свои мысли в дополнение. А так же рассуждения о возможности или отсутствия таковой - Пишите!

Мы когда то эту тему должны разжевать и поставить точку.

Ссылка на комментарий
Поделиться на другие сайты

Все великолепно! Но вот только до всего этого надо определиться в какой карман капусту надо будет положить!:)

Ссылка на комментарий
Поделиться на другие сайты

Было бы круто сделать следующий скрипт -

Выбираем нужный авто из списка кальков, нужную модель, блок по номеру-

тест микросхемы

чтение

верификация

автоматическое сохранение в заранее установленное по списку место (к примеру- заранее создан текстовой файл с указанием мест расположения архивов с дампами пользователя - сортировка маркам, по моделям - в настройках)

или если за ранее не определено в настройках -

вывод окна с запросом сохранения дампа (куда сохранять и под каким именем) // к примеру выводится список марок- выбираем, потом выводится список моделей - выбираем, потом выводится год выпуска - выбираем или игнорируем, потом предложение ввести номер блока - вписываем.

Дамп в итоге должен сохраняться в нужную папку с маркой, моделью, номером, микросхема после чтения уже по идее известна - значит и с указанием микросхемы. Всё это в следующем виде приблизительно (SRS_Toyota_Avensis_2007_89170-05220_25040_Crash.bin (Соответственно если каль обнаружил краш при проверке, то может подставить состояние дампа)

После указания места сохранения - дамп автоматом сохраняется и выходит окно с запросом почистить.

После чистки вопрос - записать? Если жмем кнопку записать полностью или только изменения - пишет, автоматом верификация и автоматом сохранение в папку рядом с крашнутым дампом с состоянием дампа в конце _Clear.bin

При сохранении первого дампа - Crash , что бы в папке по примеру - тоёта- авенсис- создавалась автоматом папка с названием похожим на название дампа SRS_Toyota_Avensis_2007_89170-05220_25040. В неё будут складываться два этих дампа.

Если там такая папка уже существует (часто с таким сталкиваюсь) то можно поправить при создании папки имя самостоятельно. К примеру я делаю какую нибудь букву в другом регистре.

Как то так я вижу это. Это не идеал конечно, но очень продвинуто - мне так кажется.

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

Кстати интересная идея в начале калька сделать запрос, откуда брать дамп - из файла или читать из микросхемы. Посмотрено в кальках к упе от Влада. Считаю очень удобной функцией.

У кого есть критика или свои мысли в дополнение. А так же рассуждения о возможности или отсутствия таковой - Пишите!

Мы когда то эту тему должны разжевать и поставить точку.

Почти все что тут описано можно сделать.

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

В скриптах используется язык С, С++

Ссылка на комментарий
Поделиться на другие сайты

Парни, ну это всё для удобства в первую очередь. К тому же сейчас море прогеров с кальками. А вот как раз удобства и упрощение процесса дают большую привлекательность к прогеру и калькам.

Кстати - возможность перетаскивать мышкой дамп из папки в поле редактора, это ваааще писк :a_g_a:

Ссылка на комментарий
Поделиться на другие сайты

Все великолепно! Но вот только до всего этого надо определиться в какой карман капусту надо будет положить!:)

Ну кто то же сделал пример в начале темы. И что, кто то просит в свой карман что то? С таким подходом в принципе можно и хыпрогом китайским еепромки читать и писать, складывать самому в папки, из папок открывать в кальках к другому прогеру и таким образом работать.

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

У меня много прогеров, кальки есть кним. Есть кальки к старому TTSmart, которые я научился редактировать и делать на образе одного - другие. Кстати Володя научил - ему респект!! Я могу и этими кальками пользоваться без проблем, но я решил изложить мысль, от реализации которой я бы лично тащился от таких кальков))

Это пипец, если все что наработано перевестив скрипты, на еще и красивыми сделать. Это очень много времени и труда надо

Ссылка на комментарий
Поделиться на другие сайты

Вон еще один пример для Acura.

Только калькуляторная часть.

Может кому то поможет разобратся что и как. :men:

77960 S0K-A11-M1 - 24c02.blr

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...
  • 4 недели спустя...
В 17.11.2015в00:28, GROMOV сказал:

Стоит ли доводить до ума, добавить чтение?

PSA NEC и Hyundai NEC

 

https://youtu.be/W2bGKkd5pBw

Есть блок PSA - тоже хотел почитать

Ссылка на комментарий
Поделиться на другие сайты

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...