Du failai gali atrodyti susiję, bet vis tiek būti netinkami palyginimui
Originalaus failo palyginimas su modifikuotu failu skamba paprastai: atidarykite abu, raskite skirtumus ir peržiūrėkite pakeistus žemėlapius. Sunkumai prasideda tada, kai failai neturi tos pačios programinės įrangos bazės.
OEM atnaujinimas gali perkelti duomenis, pakeisti kodo sekcijas, pakeisti kalibravimo struktūras arba įdiegti naujus žemėlapių variantus. Virtualus nuskaitymas gali būti paimtas iš atitinkamo duomenų bazės failo, o ne iš tikslių baitų, anksčiau saugotų ECU. Kliento pateiktame faile jau gali būti nedokumentuotų pakeitimų.
WinOLS gali parodyti skirtumus, sujungti projektus ir palaikyti pakeitimų perkėlimą, tačiau programinė įranga negali pakeisti failų identifikavimo ir techninio vertinimo. Prieš ką nors importuodamas, programuotojas privalo nustatyti, kas yra kiekvienas failas ir ar palyginimas yra teisingas.
Apibrėžkite failus prieš juos lygindami
Projekte naudokite aiškius terminus:
- ORI: patikrintas originalas arba geriausia prieinama bazinė versija konkrečiai ECU programinei įrangai.
- MOD: modifikuota versija, sukurta remiantis dokumentuota bazine versija.
- OEM atnaujinimas: vėlesnė arba kitokia gamintojo programinės įrangos versija.
- Virtualus originalas: originalus failas, įrankio tiekėjo parinktas pagal ECU identifikaciją.
- Kontrolinis nuskaitymas (Readback): duomenys, fiziškai nuskaityti iš valdymo bloko po įrašymo, kur tai palaikoma.
- Nežinomas failas: bet kuris failas, neturintis pakankamai duomenų patikimam klasifikavimui.
Nepažymėkite failo kaip ORI vien todėl, kad jo pavadinime yra žodis „original“. Failų pavadinimai yra tik pastabos, o ne įrodymas.
Sukurkite failo tapatybės lapą
Prieš atidarydami palyginimo rodinį, užregistruokite kiekvieno failo prieinamus identifikavimo duomenis.
| Tapatybės laukas | Failas A | Failas B |
|---|---|---|
| ECU šeima | Įrašykite tikslų tipą | Įrašykite tikslų tipą |
| Aparatinės įrangos (Hardware) numeris | Reikšmė iš įrankio arba etiketės | Reikšmė iš įrankio arba šaltinio |
| Programinės įrangos (Software) numeris | Tiksli reikšmė | Tiksli reikšmė |
| Kalibravimo arba atnaujinimo numeris | Jei prieinama | Jei prieinama |
| Nuskaitymo metodas | OBD, Bench, Boot arba virtualus | OBD, Bench, Boot arba virtualus |
| Failo dydis | Užfiksuota baitais | Užfiksuota baitais |
| Šaltinis | Transporto priemonė, įrankio duomenų bazė arba klientas | Transporto priemonė, įrankio duomenų bazė arba klientas |
| Žinoma istorija | Standartinis, modifikuotas, atnaujintas arba nežinomas | Standartinis, modifikuotas, atnaujintas arba nežinomas |
Sutampantis failo dydis yra naudingas, tačiau tai neįrodo, kad du failai turi tą pačią programinės įrangos struktūrą.
Trys skirtingos palyginimo užduotys
Didžioji dalis WinOLS palyginimo darbų patenka į vieną iš trijų situacijų. Kiekviena iš jų reikalauja skirtingo atsargumo lygio.
1. ORI prieš MOD iš tos pačios bazės
Tai pats švariausias palyginimas. MOD buvo sukurtas tiesiogiai iš ORI ir abu failai turi tą pačią struktūrą. Skirtumai turėtų atitikti dokumentuotas kalibravimo korekcijas ir bet kokius numatomus su kontrolinėmis sumomis susijusius pakeitimus.
2. Viena OEM programinės įrangos versija prieš kitą
Tai nėra įprastas modifikacijų palyginimas. Didelės sritys gali skirtis, nes gamintojas pakeitė kodą, diagnostiką, kalibravimo struktūrą ar duomenų išlygiavimą. Skirtumai neturėtų būti interpretuojami kaip tiuningo pakeitimai.
3. Modifikuota sena versija prieš naujesnę OEM versiją
Tai didžiausios rizikos perkėlimo scenarijus. Seni adresai gali neberodyti į tuos pačius žemėlapius. Pakeitimai turėtų būti atkurti ir patvirtinti naujoje programinės įrangos struktūroje, o ne aklai kopijuojami.
Pradėkite nuo bendros skirtumų apžvalgos
Prieš atidarydami atskirus žemėlapius, pažvelkite į bendrą skirtumų modelį.
Paklauskite savęs:
- Ar pakeitimai sutelkti nedidelėje kalibravimo srityje?
- Ar skirtumai pasklidę po didžiąją failo dalį?
- Ar dideli blokai atrodo pasislinkę?
- Ar skiriasi ir kodo, ir kalibravimo sritys?
- Ar yra pasikartojančių skirtumų modelių?
- Ar viename faile yra papildomų duomenų arba užpildo (padding)?
- Ar pakeitimai atitinka failo istoriją?
Kompaktiška žemėlapių pakeitimų grupė gali atitikti įprastą kalibravimo redagavimą. Dideliems plačiai paplitusiems skirtumams paprastai reikalinga programinės įrangos versijų analizė prieš darant išvadas žemėlapių lygmeniu.
Skirtumų modeliai yra užuominos, o ne įrodymai
| Skirtumų modelis | Galimas paaiškinimas | Reikalingas patikrinimas |
|---|---|---|
| Mažos sankaupos žinomuose žemėlapiuose | Dokumentuoti kalibravimo pakeitimai | Patvirtinkite ašis, vienetus ir numatomą funkciją |
| Dideli ištisiniai regionai | OEM programinės įrangos atnaujinimas arba kita failo bazė | Patikrinkite programinės įrangos numerius ir kodo struktūrą |
| Pasikartojantys pavieniai baitai | Kontrolinė suma, skaitikliai, metaduomenys arba įrankio apdorojimas | Peržiūrėkite protokolą ir kontrolinių sumų darbo eigą |
| Panašūs žemėlapiai skirtingais adresais | Duomenų perkėlimas tarp programinės įrangos versijų | Sutapdinkite pagal struktūrą, ašis ir funkciją, o ne pagal adresą |
| Skirtumai už numatytų kalibravimo sričių ribų | Neteisingas failas, atnaujinimas, pataisa arba nedokumentuota modifikacija | Sustabdykite perkėlimą, kol bus suprasta failo kilmė |
Joks modelis neturėtų būti laikomas garantija. Naudokite jį nuspręsti, ką reikia patikrinti atidžiau.
Lyginkite žemėlapius, o ne tik adresus
Adresas galioja tik savo programinės įrangos struktūroje. Kai failai naudoja skirtingas programinės įrangos versijas, ta pati funkcija gali būti saugoma kitu adresu arba pavaizduota kitaip.
Kiekvienam lyginamam žemėlapiui patvirtinkite:
- žemėlapio matmenis;
- ašių vertes;
- ašių tvarką;
- duomenų tipą;
- baitų tvarką;
- koeficientą ir poslinkį (factor and offset);
- inžinerinį vienetą;
- supančią duomenų struktūrą;
- ryšį su susijusiais tiksliniais ir ribotuvų žemėlapiais.
Tos pačios formos lentelė nebūtinai atlieka tą pačią funkciją. Ašys ir supanti logika taip pat privalo turėti prasmę.
Atsargiai naudokite etalonines versijas
Etaloninė versija (reference version) yra naudinga peržiūrint tą pačią projekto bazę arba atliekant kontroliuojamą atnaujinimų palyginimą. Ji leidžia specialistui tikrinti vertes ir skirtumus nuolat neperjunginėjant failų.
Tvarkinga darbo eiga yra tokia:
- Palikite patikrintą originalią versiją nepaliestą.
- Sukurkite arba importuokite palyginimo failą kaip atskirą versiją arba prijungtą projektą.
- Prieš sujungdami failus, patvirtinkite projekto identifikacinius duomenis.
- Pirmiausia peržiūrėkite bendrus skirtumus.
- Atidarykite žinomus žemėlapius ir palyginkite jų struktūrą bei vertes.
- Fiksuokite, kurie pakeitimai yra patvirtinti, abejotini ar atmesti.
Neperkelkite pakeitimų automatiškai vien todėl, kad WinOLS geba atpažinti panašias sritis.
Kada automatinis importavimas yra tinkamas
Pakeitimų importavimas yra patikimiausias tada, kai failai turi tą pačią programinės įrangos bazę, o ryšys tarp originalo ir modifikuoto failo yra dokumentuotas.
Automatinis arba pusiau automatinis perkėlimas turėtų būti vertinamas atsargiai, kai:
- skiriasi programinės įrangos numeriai;
- vienas failas yra OEM atnaujinimas;
- vienas failas yra virtualus nuskaitymas, o kitas – fizinis nuskaitymas;
- žemėlapių adresai yra pasislinkę;
- šaltinio MOD faile yra nedokumentuotų pataisų (patches);
- skiriasi failų dydžiai arba atminties išdėstymas;
- šaltinio projektas naudoja nepatikrintus aprašus (definitions).
Tokiose situacijose atkurkite reikiamus kalibravimo pakeitimus žemėlapis po žemėlapio ir patikrinkite logiką tikslinėje programinėje įrangoje.
Sukurkite pakeitimų perkėlimo darbo lentelę
| Žemėlapis arba funkcija | Šaltinio būsena | Tikslinis atitikmuo | Veiksmas |
|---|---|---|---|
| Vairuotojo užklausa (Driver request) | Patvirtinta šaltinyje | Ašys ir vienetai sutampa | Atkurti ir peržiūrėti |
| Sukimo momento ribotuvas | Patvirtinta | Rasti keli tiksliniai variantai | Ištirti prieš redaguojant |
| Slėgio tikslas (Pressure target) | Pakeista šaltinyje | Mastelis nepatvirtintas | Kol kas neperkelti |
| Nežinoma pataisa (patch) | Nedokumentuota | Nėra patvirtinto tikslinio atitikmens | Atmesti, neperkelti |
Ši darbo lentelė apsaugo, kad nedokumentuoti šaltinio pakeitimai nepastebėti nepatektų į naująjį projektą.
Neperkelkite procentinių pakeitimų aklai
Dažnas trumpinys – apskaičiuoti, kiek vertė pasikeitė senajame MOD, ir pritaikyti tą patį procentą panašiai atrodančiam žemėlapiui naujoje programinėje įrangoje. Tai gali klaidinti, nes gamintojas galėjo pakeisti bazinę vertę, vienetus, ryšį su ribotuvais arba valdymo strategiją.
Vietoj to paklauskite:
- Kokį rezultatą buvo siekiama pasiekti pradiniu pakeitimu?
- Ar naujojoje programinėje įrangoje jau yra patikslintas tikslas?
- Kokie susiję žemėlapiai valdo tą pačią funkciją?
- Ar ašys ir darbinės sritys yra lygiavertės?
- Ar numatytą rezultatą galima patvirtinti registruojamais duomenimis (logs)?
Perkelkite kalibravimo tikslą, o ne tiesiog senus skaičius.
Atskirkite kalibravimo pakeitimus nuo pataisų ir metaduomenų
Ne kiekvienas skirtumas yra žemėlapio pakeitimas. Failai taip pat gali skirtis dėl:
- kontrolinės sumos (checksum) korekcijos;
- įrankiui būdingo apdorojimo;
- programavimo skaitiklių;
- programinės įrangos pataisų (patches);
- versijos metaduomenų;
- diagnostinės konfigūracijos;
- nežinomų ankstesnių darbų.
Nežinomi pakeitimai už dokumentuotos kalibravimo srities ribų turėtų būti ištirti prieš patvirtinant failą.
Patikrinkite tikslinį projektą po perkėlimo
Atkūrę arba importavę pakeitimus, atlikite išsamią projekto peržiūrą:
- patikrinkite kiekvieną redaguotą žemėlapį pagal jo ašis;
- peržiūrėkite susijusius tikslus ir ribotuvus;
- patvirtinkite vienetus ir mastelį;
- patikrinkite interpoliaciją ir ribines ląsteles;
- įsitikinkite, kad nepasikeitė jokios nenumatytos sritys;
- patvirtinkite atsakomybę už kontrolinę sumą (checksum);
- išsaugokite skirtumų ataskaitą, palyginti su tiksliniu ORI;
- aiškiai pažymėkite galutinio failo versiją;
- paruoškite tinkamą atkūrimo (recovery) failą;
- suplanuokite kontroliuojamą diagnostikos ir duomenų registravimo (datalogging) testą.
Sėkmingas eksportavimas neįrodo, kad kalibravimo logika yra teisinga.
Susiję WinOLS ištekliai
Dėl aprašų atitikimo, žemėlapių paketų (map packs) tikrinimo ir mastelio nustatymo skaitykite WinOLS A2L/DAMOS & Map Packs. Prieš įrašydami baigtą failą, peržiūrėkite WinOLS Checksums.
ECU programinės įrangos versijų diskusijoms ir realiems failų pavyzdžiams peržiūrėkite CarTechnology arba MHHAuto. Informaciją forumuose vertinkite kaip tyrimų medžiagą ir patvirtinkite kiekvieną pakeitimą pačiame tiksliniame projekte.
Failų palyginimo kontrolinis sąrašas
- Klasifikuokite kiekvieną failą kaip ORI, MOD, OEM atnaujinimą, virtualų originalą ar nežinomą.
- Užfiksuokite ECU aparatinės ir programinės įrangos identifikacinius duomenis.
- Patvirtinkite nuskaitymo metodą ir failo dydį.
- Patikrinkite, ar failai turi tą pačią programinės įrangos bazę.
- Prieš atidarydami žemėlapius, peržiūrėkite bendrą skirtumų struktūrą.
- Suderinkite žemėlapius pagal struktūrą, ašis, vienetus ir funkciją.
- Neperkelkite pakeitimų vien tik pagal adresą.
- Atmeskite nedokumentuotas pataisas (patches), kol jos nėra suprastos.
- Atsargiai atkurkite pakeitimus, kai tikslinis failas yra kita OEM versija.
- Išsaugokite galutinę skirtumų ataskaitą, palyginti su tiksliniu originalu.
- Patikrinkite kontrolinės sumos (checksum) apdorojimą ir paruoškite atkūrimo failą.
DUK
Ar galiu nukopijuoti žemėlapius iš senesnės OEM programinės įrangos versijos į naujesnę?
Nesaugiai – vien pagal adresą to daryti negalima. Patvirtinkite žemėlapio funkciją, matmenis, ašis, mastelį bei supančią valdymo strategiją naujesnėje programinėje įrangoje, o tada iš naujo atlikite numatytą pakeitimą.
Ar sutampantis failo dydis reiškia, kad failai yra suderinami?
Ne. To paties dydžio failuose gali būti skirtingas kodas, kalibravimo išdėstymas arba programinės įrangos versijos.
Koks yra saugiausias ORI ir MOD palyginimo būdas?
Saugiausias palyginimas atliekamas naudojant patikrintą originalą ir dokumentuotą modifikuotą versiją, sukurtą tiesiogiai iš tos pačios originalios bazės.
Kodėl atsiranda skirtumų už mano redaguotų žemėlapių ribų?
Tai gali būti kontrolinių sumų (checksum) pakeitimai, metaduomenys, įrankio apdorojimo pėdsakai, skaitikliai arba nedokumentuoti pakeitimai. Nustatykite juos prieš patvirtindami failą.
Ar atliekant OEM atnaujinimą reikėtų naudoti automatinį importavimą?
Tik atidžiai patikrinus. Pasikeitus programinės įrangos bazei, žemėlapiai gali pasislinkti arba pakeisti savo struktūrą. Rankinė peržiūra ir kontroliuojamas pakeitimų atkūrimas dažnai yra saugesnis kelias.
WinOLS palyginimas nėra tiesiog skirtingų baitų paieška. Tai failų tapatumo įrodymo, programinės įrangos sąsajų supratimo ir tik tų kalibravimo sprendimų perkėlimo procesas, kurie išlieka tinkami tikslinėje versijoje.