Moduł komfortu - konfiguracja, pidy, ustawienia

Modyfikacje dla Zafiry B
Wiadomość
Autor
Awatar użytkownika
Ostap
Zafiromaniak
Posty: 1675
Rejestracja: 15 lip 2017, 21:52
Imię: Łukasz
Lokalizacja: Wwa
Auto: Zafira
Model: B
Oznaczenie silnika: Z19DT
Gender:

Moduł komfortu - konfiguracja, pidy, ustawienia

#1 Post autor: Ostap »

Witam

W tym wątku wpisujemy swoje własne akcje i konfigurację DPF monitora od LWPM.
Akcje które coś robią w naszych ZB, dokładnie je opisujemy i nie dyskutujemy o nich w tym wątku.

W ramach przypomnienia:

"Do konfiguracji wpisujemy:

key.action[1] = 61 02 90 0003
każda taka akcja (a może być ich od 1 do 16]) składa się z czterech liczb (wszystkie zapisane szesnastkowo!), liczby oznaczają po kolei:
61 - przycisk, który wywołuje jakąś akcję, np 61: przycisk otwierania drzwi na pilocie
02 - ilość naciśnięć lub czas przytrzymania guzika, w tym wypadku 2 naciśnięcia guzika
gdy ustawiony jest sterowanie przyciskiem np na radio, to wpisujemy tutaj czas z dokładnością do 100ms (czyli np 10 oznacza czas 1,6s [10 szesnastkowo to 16 dziesiętnie])
90 - numer akcji do wykonanie. w tym wypadku 90 to zapalenie wszystkich świateł zewnętrznych auta
0003 - czas trwania/ilość powtórzeń, w tym wypadku będą to 3 sekundy, potem światła zgasną. Istotne w zasadzie tylko w przypadku sterowania elektroniką... w innym przypadku ignorowane


Dostępne przyciski:
01 - numer 0 na radio
02 - numer 1 na radio
03 - numer 2 na radio
04 - numer 3 na radio
05 - numer 4 na radio
06 - numer 5 na radio
07 - numer 6 na radio
08 - numer 7 na radio
09 - numer 8 na radio
0A - numer 9 na radio
0B - SETTINGS na radio
0C - MAIN na radio, lub CD/FM/AM w zależności od posiadanego radia
0D - BC na radio
0E - rolka na radio (w radiu z nawigacją)
0F - strzałka w prawo na radio CD30/CD30 MP3
10 - strzałka w lewo na radio CD30/CD30 MP3
11 - przycisk OK na radio (CD30)
12 - lewy górny przycisk na kierownicy
13 - lewy dolny przycisk na kierownicy
14 - lewa rolka w górę na kierownicy
15 - lewa rolka wsiśnięta na kierownicy
16 - lewa rolka w dół na kierownicy
17 - prawy górny przycisk na kierownicy
18 - prawy dolny przycisk na kierownicy
19 - prawa rolka w górę na kierownicy
1A - prawa rolka w dół na kierownicy
61 - przycisk otwierania drzwi z pilota
62 - przycisk zamykania drzwi z pilota
80 - dodajemy to do numeru przycisku, jeśli akcja ma się wykonać już w trakcie trzymania przycisku. Normalnie wywoła się dopiero po puszczeniu przycisku
UWAGA: nie wszystkie przyciski zadziałają u każdego, nie wszystkie zadziałają z flagą 80.


Dostępne akcje:
01 - otwieranie bagażnika
02 - opuszczenie szyb
03 - podnoszenie szyb
04 - włączenie/wyłączenie trybu SPORT
05 - usunięcie błędów z modułu/modułów na LSCAN
06 - usunięcie błędów z modułu/modułów na MSCAN
07 - usunięcie błędów z modułu/modułów na HSCAN
08 - DDS - sprawdzenie ciśnienia w oponach
20 - otwórz menu modułu
21 - ustawienia modułu
22 - otwórz ekran silnika
23 - otwórz ekran DPF
24 - otwórz ekran PAS
25 - otwórz ekran z dodatkowymi informacjami o silniku/samochodzie
26 - otwórz ekran z informacjami z OBD-II
80 - 8F - własne, zdefiniowane przez siebie akcje
definiowanie własnych akcji to na razie wyższa szkoła jazdy, więc nie będę się tutaj rozpisywał na ten temat na razie
A0 - AF - akcje wbudowane w moduł, w tej chwili dostępne:
A0 - włączenie wszystkich świateł zewnętrznych
A1 - animacja świateł z tyłu
A2 - animacja świateł z przodu
A3 - klakson (przez 10ms)
A4 - halogeny przednie
co będzie na innych pozycjach, zależy od was - potrzebny jakiś pomysł :)
UWAGA: akcje sterowania 80-AF wstrzymują działanie modułu, tj monitorowanie temperatury, DPF itp. Zrobione jest to po to, by animacje były płynne i przede wszystkim z powodu tego jednego CANa... Po zakończeniu akcji wszystko wróci do normy. Zakończenie akcji następuje po określonym czasie, lub po naciśnięciu guziku pilota lub użycia dowolnego guzika/rolki na kierownicy.
najważniejsze akcje, które standardowo są tworzone, jeśli nie ma żadnej akcji wpisanej w konfiguracji:
key.action[1] = 8D 0F 20 0000
key.action[2] = 0B 00 21 0000
key.action[3] = 12 00 22 0000
key.action[4] = 13 00 23 0000
co one robią to proponuję samemu rozszyfrować, aby zrozumieć na czym polega konfiguracja tego wszystkiego :)"


Dam przykład jak na przycisk dolny lewy kierownicy można utworzyć action i key.action

key.action[6] = 93 10 80 0002
[6] - nie ma znaczenia to tylko nazwa key action
93 - to własna akcja, 13 to przycisk dolny kierownicy i dodajemy do niego 80 jako przytrzymanie a nie wciśnięcie
10 - to długość przytrzymania przycisku zapisana szesnastkowo czyli 1,6s
80 - od 80 do 8F są to własne akcje i tu już musimy wiedzieć jedną rzecz
(80 startuje action[1], 81 startuje action[2] itd i np. 8F startuje action 16) zawsze druga cyfra bądź litera po 8 staruje action o jeden większą)
0002 - tu zapis szesnastkowy ile ma być powtórzeń action[x] tu są 2 powtórzenia

key.action[6] = 93 10 80 0002
action[1] = 0000 00 0E 50050200000000 51050100000000 03 5002023F3F1F1F 510501FCFC0707 0103E8 jak widać akcja trwa 1s
Taki zapis wystartuje action[1] przy przytrzymaniu lewego dolnego klawisza na kierownicy

key.action[7] = 93 10 810002
action[2] = 0000 00 0E 50050200000000 51050100000000 03 5002023F3F1F1F 510501FCFC0707 0103E8 jak widać akcja trwa 1s
Tu będzie to samo tylko pod inną nazwą action

Action trwa 1s a my daliśmy 2x powtórzenia więc będzie to trwało 2s

Chcemy 15s?

key.action[7] = 93 10 81 000F zmieniamy na F bo F to szesnastkowo 15 :)
action[2] = 0000 00 0E 50050200000000 51050100000000 03 5002023F3F1F1F 510501FCFC0707 0103E8 jak widać akcja trwa 1s

Myślę, że to trochę rozjaśni :)




Moje akcje gdzie x oznacza numer akcji:
action[x] = 0000000E50050200000000510501000000000350050200001010510501303002020103E8 - długość 1000ms, włącza halogeny przód + tylne światła wsteczne + podświetlenie tablicy tył
action[x] = 0000000E50050200000000510501000000000350050200001010510501303000000103E8 - długość 1000ms, włącza halogeny przód + tylne światła wsteczne
action[x] = 000000075105020000000002510502030300000103E8 - długość 1000ms, włącza oświetlenie wewnątrz I rząd, II rząd i III rząd

pidy do 19DT
ecm.available_pids = 01 04 05 07 08 0B 0C 0D 0F 10 1C 21 23



Śmiało Panowie udostępniamy akcje, może ktoś ma fajniejsze ;)
Ostatnio zmieniony 09 sty 2018, 12:18 przez rafant4011, łącznie zmieniany 3 razy.
Obrazek


Chciałeś Panią?! Zapier.... na nią! :luz:

LWPM
Zafiromaniak
Posty: 592
Rejestracja: 06 kwie 2017, 11:51
Imię: Łukasz
Lokalizacja: Wrocław
Auto: Opel Zafira B 1.7 CDTi 111
Model: ZB
Oznaczenie silnika: Z17DTJ
Gender:

#2 Post autor: LWPM »

wszystkie kierunkowskazy (1000ms):

Kod: Zaznacz cały

action[x] = 0000 00 0E 50050200000000 51050100000000 03 50050200000F0F 510501C0C00000 0103E8
wszystkie możliwe światła zewnętrzne (1000ms):

Kod: Zaznacz cały

action[x] = 0000 00 0E 50050200000000 51050100000000 03 5002023F3F1F1F 510501FCFC0707 0103E8
animacja tylnych swiateł

Kod: Zaznacz cały

action[x] = 0000 00 07 51050100000000 18 510501FC100600 0090 510501FC400600  0090 510501FC040600 0090 510501FC000604 0090 510501FC080600 0090 510501FC800600 0090 510501FC200600  0090 510501FC800600 0090 510501FC080600 0090 510501FC000604 0090 510501FC040600 0090 510501FC400600 0090
jest to jedna z akcji wbudowanych w moduł, trochę długa... każde 0090 tutaj to jest czas świecenia jednej żarówki (tutaj 144ms) , jak ktoś ma ochotę może zmienić na inną wartość, poeksperymentować przy jakiej szybkości to wygląda ładnie (wg mnie trochę za wolno teraz jest) - poprawię w module na krótszy czas

Parę innych przykładów (możliwe, że będą wymagać aktualizacji softu - u mnie działa, ale muszę najnowszy soft przygotować, bo może coś nie działać jeszcze u was)
np takie coś: dźwięk po przekroczeniu 90km/h

Kod: Zaznacz cały

car.action_at_speed[1].id = 0x0A
car.action_at_speed[1].speed = 90
car.action_at_speed[1].count = 4
w .count wpisujemy numer dźwięku (od 1 do 7 o ile dobrze pamiętam). Flora miał gdzieś na swojej stronie nagrane te dźwięki, ale coś strona nie działa już (dźwięki z CIM)

zamknięcie okien po przekroczeniu 70km/h

Kod: Zaznacz cały

car.close_windows_at_speed = 70
automatyczne światła do jazdy dziennej (pokrętło na pozycji AUTO, gdy jest czujnik zmierzchu i jest dzień, lub pozycja 0, gdy nie ma czujnika zmierzchu (przykładowa konfiguracja):

Kod: Zaznacz cały

# Światła dzienne - numer akcji używanej jako światła dzienne.
car.daylight.action = <numer akcji ze światłami>
# Światła dzienne - czekaj na ruszenie z miejsca przed włączeniem świateł.
car.daylight.wait_for_move = true
# Światła dzienne - wykorzystaj stan czujnika zmierzchu.
car.daylight.use_light_sensor = false
nie każda akcja się tutaj nadaje, czas trwania musi być możliwie jak najkrótszy, czyli bez opóźnień.

później to wszystko pozbieram osobiście i zrobię z tego ładny spis :)
Ostatnio zmieniony 12 gru 2017, 10:46 przez LWPM, łącznie zmieniany 6 razy.

Awatar użytkownika
scooter
Bywalec
Posty: 105
Rejestracja: 07 gru 2016, 22:21
Imię: Rafał
Lokalizacja: Gorzów Wielkopolski
Auto: Opel Zafira B 1.7 CDTI
Model: ZB
Oznaczenie silnika: A17DTR
Gender:

#3 Post autor: scooter »

światła mijania przód (1000ms)

Kod: Zaznacz cały

action[x] = 0000000750050200000000025005023F0C0F000103E8
PIDy A17DTR

Kod: Zaznacz cały

ecm.available_pids = 0104050B0C0D0F10131C1F2123242C2D2F30313334424446494A4C4D4E51
Ostatnio zmieniony 12 gru 2017, 17:57 przez scooter, łącznie zmieniany 3 razy.

Deleted User 21664

#4 Post autor: Deleted User 21664 »

Ja mam tak:

### USTAWIENIA ###

# SETTINGS na radio ###
key.action[1] = 0B 00 21 0000

# wejscie do menu przez BC (1.5 sekund) ###
key.action[2] = 8D 0F 20 0000

### KLAWISZE NA KIEROWNICY ###

# lewy gorny klawisz na kierownicy = animacja z tylu ###
key.action[3] = 12 00 A1 0003

# lewy dolny klawisz na kierownicy = otworz ekran DPF ###
key.action[4] = 13 00 23 0000

### PILOT OTWIERANIE ###

# przycisk otwierania drzwi 2x = opuszczanie szyb ###
key.action[5] = 61 02 02 0000

# przycisk otwierania drzwi 3x = animacja swiatel z tylu ###
key.action[6] = 61 03 A1 0003

# przycisk otwierania drzwi 4x = wlaczanie wszystkich swiatel (na 15 sekund) ###
key.action[7] = 61 04 A0 000F

# przycisk otwierania drzwi 5x = animacja swiatel z przodu (5 sekund) ###
key.action[8] = 61 05 A2 0005

### PILOT ZAMYKANIE ###

#przycisk zamykania drzwi z pilota 2x = podnoszenie szyb ###
#key.action[9] = 62 02 03 0000

# przycisk zamykania drzwi 3x = animacja swiatel z tylu ###
key.action[10] = 62 03 A1 0003

# przycisk otwierania drzwi 4x = wlaczanie wszystkich swiatel (na 15 sekund) ###
key.action[11] = 62 04 A0 000F

# przycisk zamykania drzwi 5x = animacja swiatel z przodu (5 sekund) ###
key.action[12] = 62 05 A2 0005

# Zamknij okna po zamknięciu drzwi z piliota.
car.on_doors_close.close_windows = true

ecm.screens_visible = 1
ecuinfo.screens_visible = 1
ecuinfo.status_idle[1] = 0x01

ecm.refresh_timeout = 1000

# Identyfikatory dostępne do wyboru z poziomu widoku ECM (maksymalnie 32 PIDy).
ecm.available_pids = 01 04 05 07 08 0B 0C 0D 0F 10 1C 21 23
# Identyfikator PID 1 informacji do wyświetlenia z systemu OBD w trybie gotowości.
ecm.pid_idle[1] = 0x0C
# Identyfikator PID 2 informacji do wyświetlenia z systemu OBD w trybie gotowości.
ecm.pid_idle[2] = 0x0D
# Identyfikator PID 3 informacji do wyświetlenia z systemu OBD w trybie gotowości.
ecm.pid_idle[3] = 0x04
# Identyfikator PID 4 informacji do wyświetlenia z systemu OBD w trybie gotowości.
ecm.pid_idle[4] = 0x05
# Identyfikator PID 5 informacji do wyświetlenia z systemu OBD w trybie gotowości.
ecm.pid_idle[5] = 0x0F
# Identyfikator PID 6 informacji do wyświetlenia z systemu OBD w trybie gotowości.
ecm.pid_idle[6] = 0x10

:)

LWPM
Zafiromaniak
Posty: 592
Rejestracja: 06 kwie 2017, 11:51
Imię: Łukasz
Lokalizacja: Wrocław
Auto: Opel Zafira B 1.7 CDTi 111
Model: ZB
Oznaczenie silnika: Z17DTJ
Gender:

#5 Post autor: LWPM »

gdy zwykły needle-sweep jest zbyt banalny, robimy np coś takiego:
https://youtu.be/wuzFvGqTqCk

Jak to zrobić?

Kod: Zaznacz cały

action[1] = 0000 03 010300 2A 550406000000 5503080000 550407000000 5503010000 5503020000 5503030000 5503040000 5503050000 30 550301FF00 550302FF00 550303FF00 550304FF00 550305FF00 550406017D00 55030801C8 550407015DC0 550304FF10 0040 550301FF10 0040 550301FF30 0040 550301FF32 0040 550304FF12 0040 550302FF08 0040 550302FF18 0040 550302FF58 0040 550302FFD8 0040 550406000000 5503080000 550407000000 550302FF58 0040  550302FF18 0040 550302FF08 0040 550302FF00 0040 550304FF10 0040 550301FF30 0040 550301FF10 0040 550301FF00 0040 550304FF00 0040 010500
i podpinamy do:

Kod: Zaznacz cały

engine.on_detect.action.id = 0x80
engine.on_detect.action.count = 1
PS: może trochę nie wyrównana szybkość wskazówki z ikonkami, ale wiadomo o co chodzi :)

Awatar użytkownika
Ostap
Zafiromaniak
Posty: 1675
Rejestracja: 15 lip 2017, 21:52
Imię: Łukasz
Lokalizacja: Wwa
Auto: Zafira
Model: B
Oznaczenie silnika: Z19DT
Gender:

#6 Post autor: Ostap »

Nie wiem dlaczego nie mogę edytować pierwszego to daję kolejny post.


Animacja świateł tył + kontrolka PEPS na zegarach - długość 1x

Kod: Zaznacz cały

action[x] = 0000 05 5503041010 0C 51050100000000 5503040000 18 510501FC100600 0090 510501FC400600 0090 510501FC040600 0090 510501FC000604 0090 510501FC080600 0090 510501FC800600 0090 510501FC200600 0090 510501FC800600 0090 510501FC080600 0090 510501FC000604 0090 510501FC040600 0090 510501FC400600 0090
Obrazek


Chciałeś Panią?! Zapier.... na nią! :luz:

Awatar użytkownika
Ostap
Zafiromaniak
Posty: 1675
Rejestracja: 15 lip 2017, 21:52
Imię: Łukasz
Lokalizacja: Wwa
Auto: Zafira
Model: B
Oznaczenie silnika: Z19DT
Gender:

#7 Post autor: Ostap »

Na życzenie moja konfiguracja.

Akcje indywidualne są już opisane wyżej, przyciski można odczytać według instrukcji wyżej ;)


Proszę - konfiguracja


# DPF Monitor v0.2b10 - konfiguracja
# Firmware: 2017-12-29/dpf/84fc779

# Identyfikator akcji do wykonania po zamknięciu drzwi z pilota.
car.on_doors_close.action.id = 0xA3
# Liczba powtórzeń akcji do wykonania po zamknięciu drzwi z pilota.
car.on_doors_close.action.count = 1
# Kanał komunikacyjny modułu. Wpisz 7 dla UHP, 8 dla ECC, 2 dla wolnego kanału.
communication.channel = 0x02
# Moduł pod jaki podszywa się urządzenie. Wpisz 7 dla UHP, 10 dla ECC, 2 dla własnego urządzenia.
communication.module = 0x02
# Czas pomiędzy odczytaniem typu silnika, a pierwszym odczytem parametrów
# Przydatne dla starszych typów licznika, gdzie kody ECN nie przestają się pojawiać.
# Dla nowszych liczników można wpisać 0.
engine.first_read_after_init = 0
# Typ czujników parkowania:
# 0 - brak, czujniki nie będą monitorowane
# 1 - przód
# 2 - tył
# 3 - przód + tył
pas.type = 3
# Światła dzienne - numer akcji używanej jako światła dzienne.
car.daylight.action = 0xAF
# Światła dzienne - czekaj na ruszenie z miejsca przed włączeniem świateł.
car.daylight.wait_for_move = true
# Światła dzienne - wykorzystaj stan czujnika zmierzchu.
car.daylight.use_light_sensor = true
# Użyj zakładki NAVI do wyświetlania stanu DPF/chłodzenia.
navi.use_tab = true
# Aktywuj 'needle-sweep' - funkcja znana z OPC.
needle_sweep.enabled = true
# Zapal wszystkie kontrolki przy needle-sweep.
needle_sweep.controls = true
# Czas jak długo ma trwać needle-sweep.
needle_sweep.timeout = 800
# Opóźnienie w uruchomieniu needle-sweep. Czas od wykrycia typu silnka do startu needle-sweep (w ms)
needle_sweep.start_delay = 50
# Użyj pól przypisanych do klimatyzacji do wyświetlacnia stanu DPF Monitora.
ecc.use_box = true
# Wartość wyświetlana na dwóch lewych polach ECC. Możliwe wartości:
# 0 - brak wartości
# 1 - temperatura chłodzenia
# 2 - napięcie ładowania
# 3 - prędkość pojazdu
# 4 - stan DPF
ecc.value1 = 1
# Wartość wyświetlana na dwóch prawych polach ECC. Możliwe wartości:
# 0 - brak wartości
# 1 - temperatura chłodzenia
# 2 - napięcie ładowania
# 3 - prędkość pojazdu
# 4 - stan DPF
ecc.value2 = 3
# Określa, czy samochód jest wypozażony w REC (tylna skrzynka bezpieczników). Pewne funkcje mogą nie działać prawidłowo bez REC.
car.has_rec = true
# Ilość dostępnych ekranów z dodatkowymi informacjami o silniku. Wpisz 0, by ukryć informacje.
ecuinfo.screens_visible = 1
# Identyfikator 1 informacji do wyświetlenia w trybie gotowości.
ecuinfo.status_idle[1] = 0x03
# Identyfikator 2 informacji do wyświetlenia w trybie gotowości.
ecuinfo.status_idle[2] = 0x04
# Identyfikator 3 informacji do wyświetlenia w trybie gotowości.
ecuinfo.status_idle[3] = 0x02
# Identyfikator 4 informacji do wyświetlenia w trybie gotowości.
ecuinfo.status_idle[4] = 0x01
# Identyfikator 5 informacji do wyświetlenia w trybie gotowości.
ecuinfo.status_idle[5] = 0x05
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (1).
key.action[1] = 8D0F200000
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (2).
key.action[2] = 0B00210000
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (3).
key.action[3] = 0C00810002
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (5).
key.action[5] = 6102A10002
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (6).
key.action[6] = 9208250000
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (7).
key.action[7] = 93058F000F
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (8).
key.action[8] = 6203A10002
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (11).
key.action[11] = 610380001E
# Akcja do wykonania po naciśnięciu przycisku pilota/przycisku w aucie (12).
key.action[12] = 620280001E
# Ilość dostępnych ekranów z informacjami z OBD. Wpisz 0, by ukryć informacje.
ecm.screens_visible = 3
# Identyfikator PID 1/1 informacji do wyświetlenia z systemu OBD w trybie szybkiego odczytu.
ecm.pid[1][1] = 0x0F
# Identyfikator PID 1/2 informacji do wyświetlenia z systemu OBD w trybie szybkiego odczytu.
ecm.pid[1][2] = 0x05
# Identyfikator PID 1/3 informacji do wyświetlenia z systemu OBD w trybie szybkiego odczytu.
ecm.pid[1][3] = 0x0B
# Identyfikator PID 1/4 informacji do wyświetlenia z systemu OBD w trybie szybkiego odczytu.
ecm.pid[1][4] = 0x23
# Identyfikator PID 1/5 informacji do wyświetlenia z systemu OBD w trybie szybkiego odczytu.
ecm.pid[1][5] = 0x10
# Identyfikator PID 1/6 informacji do wyświetlenia z systemu OBD w trybie szybkiego odczytu.
ecm.pid[1][6] = 0x04
# Identyfikatory dostępne do wyboru z poziomu widoku ECM (maksymalnie 32 PIDy).
ecm.available_pids = 010203040507080B0C0D0F101C2123
# Definicja własnej akcji do wykonania (1).
action[1] = 0000000E50050200000000510501000000000350050200001010510501303002020103E8
# Definicja własnej akcji do wykonania (2).
action[2] = 00000555030410100C51050100000000550304000018510501FC1006000090510501FC4006000090510501FC0406000090510501FC0006040090510501FC0806000090510501FC8006000090510501FC2006000090510501FC8006000090510501FC0806000090510501FC0006040090510501FC0406000090510501FC4006000090
# Definicja własnej akcji do wykonania (16).
action[16] = 000000075105020000000002510502030300000103E8
# Licencja modułu
license = 3DFE11C905E6DA71061173C80FF2A7CE7C4C92DD937239A965EB9075C9F3C8B9494ADD20CCDDAD970D26A5DE797225B576DA174411F0A1
Obrazek


Chciałeś Panią?! Zapier.... na nią! :luz:

Awatar użytkownika
Frozzer
Debiutant
Posty: 28
Rejestracja: 17 mar 2017, 22:47
Imię: Kamil
Lokalizacja: Wrocław
Auto: Opel Zafira B
Model: ZB
Oznaczenie silnika: Z19DT
Gender:

#8 Post autor: Frozzer »

Ostatnio było mi dane pogrzebać trochę w konfiguracji modułu i rozumiem zamysł key action i PID. Natomiast tworzenie własnych Action[x] jest dla mnie zupełną magią. Nic z tych cyferek nie rozumiem :( mogę prosić o pomoc/poradnik ? :)

Deleted User 21664

#9 Post autor: Deleted User 21664 »

Instrukcja jest w wątku o module 3 lub 4 strony od końca :ok:
Ostatnio zmieniony 04 sty 2018, 07:39 przez Deleted User 21664, łącznie zmieniany 1 raz.

LWPM
Zafiromaniak
Posty: 592
Rejestracja: 06 kwie 2017, 11:51
Imię: Łukasz
Lokalizacja: Wrocław
Auto: Opel Zafira B 1.7 CDTi 111
Model: ZB
Oznaczenie silnika: Z17DTJ
Gender:

#10 Post autor: LWPM »

przenoszę tutaj opis konfiguracji/tworzenia akcji dla chętnych - poprawione i uzupełnione :)

z grubsza tak to wygląda (wszystkie wartości szesnastkowo)
Każda akcja ma postać

Kod: Zaznacz cały

<ilość powtórzeń> <początek> <koniec> <pętla>
gdzie:
  • ilość powtórzeń (dwa bajty) - domyślna ilość powtórzeń poleceń w pętli. 0000 oznacza powtarzanie bez końca
  • początek - polecenia wykonywane na początku akcji (przed właściwymi elementami do powtórzenia), czyli np jedno piknięcie klaksonu przed właściwą pętlą animacji świateł
  • koniec - polecenia wykonywane przy zakończeniu akcji - czyli wyłączenie kontroli nad światłami, tak by auto mogło sobie samo nimi sterować.
  • pętla - właściwa pętla poleceń, czyli to co będzie powtarzane określoną ilość razy
początek i koniec mają następujący format:

Kod: Zaznacz cały

<długość> <dane>
gdzie
  • długość (1 bajt) - długość danych w bajtach lub 00 jeśli na początku/końcu akcji nic się nie dzieje
  • właściwe dane - polecenia dla modułu do wykonana
pętla:

Kod: Zaznacz cały

<ilość poleceń> <dane>
gdzie
  • ilość poleceń (1 bajt) - ilość poleceń dla modułu. W odróżnieniu od początku i końca, tutaj jest ilość poleceń, a nie rozmiar w bajtach (!)
  • dane - polecenia do wykonania
Poleceń dla modułu jest wiele, to te najważniejsze:
  • 00 xx - czekaj xx ms (pauza max 255ms)
  • 01 xxxx - czekaj xxxx ms (dłuższa pauza), np 01 03E8 - pauza 1000ms (1 sekunda)
  • 50 xx yy...yy - sterowanie jakimś układem w UEC, gdzie:
    • xx - ilość bajtów - długość danych yy...yy
    • yy...yy - dane do wysłanie do UEC
  • 51 xx yy...yy - jak wyżej, tylko że dla RECa
  • 55 xx yy...yy - jak wyżej, tylko że dla IPC (licznik)
Teraz weźmy przykładową akcję:

Kod: Zaznacz cały

0000 00 0E 50050200000000 51050100000000 03 5005023F3F1F1F 510501FCFC0707 0103E8
właściwe bloki/polecenia są już podzielona na logiczne części. I widzimy tutaj:
  • 0000 - domyślnie powtarzaj bez końca
  • 00 - brak początku akcji
  • 0E - koniec akcji tutaj 14 bajtów, dwa polecenia po 7 bajtów
  • 03 - ilość poleceń w pętli
  • polecenia w pętli
przykładowo: pierwsze polecenie w pętli:

Kod: Zaznacz cały

5002023F3F1F1F ==> 50 05 023F3F1F1F
jak widać wysyłamy 5 bajtów do UEC (sterowanie). w praktyce przekłada się to na wysłanie na LSCAN następującego pakietu (i czekanie na odpowiedź)

Kod: Zaznacz cały

250#06AE023F3F1F1F
gdzie
  • 06 - długość danych
  • AE - to żądanie sterowania jakimś wyjściem UEC
    przyda się delikatna znajomość GMLan by to zrozumieć, ew. można przyjąć, że tak po prostu musi być :)
  • 02 - "zestaw wyjść" którym chcemy sterować
  • dalej faktyczne parametry sterowania, tutaj: 3F 3F - maska bitowa wyjść, którymi chcemy sterować + wartości na tych wyjściach, tak samo 1F 1F
Jak sterować wyjściami?
przede wszystkim musimy znać "blok wyjść" i ilość bajtów jaką musimy wysłać (jak wyślemy źle, to sterownik zwróci błąd. Wymaganych jest 1, 2, 3 lub 4 bajtu (zależnie od sterownika i numeru bloku).
Np: w UEC blok 2 wymaga 4 bajtów:

Kod: Zaznacz cały

<maska1> <wartość1> <maska2> <wartość2>
Co jest w którym bloku i jakiej maski użyć by włączyć np konkretną lampkę, to już opisane dalej
Kto ma ochotę, może eksperymentować... ale czasem można włączyć jakąś dziwną rzecz i czasami tylko odłączenie akumulatora pozwoli ją wyłączyć, a więc... zalecam ostrożność :)
Sterowanie UEC (przy obecnym REC)
UEC (przednia skrzynka bezpieczników)
Włączanie/wyłączanie poszczególnych świateł w UEC:
  • blok 02
    • 50 05 0201010000 - światło drogowe lewe
    • 50 05 0202020000 - światło drogowe prawe
    • 50 05 0204040000 - światło mijania lewe
    • 50 05 0208080000 - światło mijania prawe
    • 50 05 0210100000 - światło przednie postojowe lewe
    • 50 05 0220200000 - światło przednie postojowe prawe
    • 50 05 0200000101 - kierunkowskaz przedni lewy
    • 50 05 0200000202 - kierunkowskaz przedni prawy
    • 50 05 0200000404 - kierunkowskaz boczny lewy
    • 50 05 0200000808 - kierunkowskaz boczny prawy
    • 50 05 0200001010 - przednie światła przeciwmgłowe
  • blok 03
    • 55 05 0380800000 - klakson
Uwaga: istotna tutaj jest długość danych. Zestaw ten działa dla AH i ZB, dla VC jest zupełnie inaczej :)
Inaczej też to wygląda dla UEC, gdy nie ma RECa

Oczywiście poszczególne światła w ramach jednej grupy możemy ze sobą łączyć, np prawy + lewy boczny kierunkowskaz: 50 05 0100000C0C
Jeśli chcemy jakieś światło wyłączyć, to maskę ustawiamy na 1, a wartość na 0, np wyłączenie świateł mijania: 50 05 020C000000
Ustawiając maskę na 0, przestajemy sterować światłem - o tym czy światło świeci decyduje UEC

PS: nie gwarantuję ani kompletności, ani poprawności tej listy. Na moich notatkach jest trochę znaków zapytania, nie wszystko zostało dokładnie sprawdzone, ale jak ktoś chce poprawić sobie którąś z akcji, to może to mu pomóc
Sterowanie UEC (bez REC)
UEC (przednia skrzynka bezpieczników)
Włączanie/wyłączanie poszczególnych świateł w UEC:
  • blok 02
    • 50 05 0201010000 - światło drogowe lewe
    • 50 05 0202020000 - światło drogowe prawe
    • 50 05 0204040000 - światło mijania lewe
    • 50 05 0208080000 - światło mijania prawe
    • 50 05 0210100000 - światło przednie postojowe lewe / oświetlenie tablicy rejestracyjnej (?)
    • 50 05 0220200000 - światło przednie postojowe prawe / oświetlenie tablicy rejestracyjnej (?)
    • 50 05 0240400000 - światło hamowania lewe
    • 50 05 0280800000 - światło hamowania prawe
    • 50 05 0200000101 - kierunkowskaz lewy
    • 50 05 0200000202 - kierunkowskaz prawy
    • 50 05 0200002020 - tylne światła przeciwmgłowe
  • blok 03
    • 55 03 0580800000 - klakson
  • blok 05
    • 55 03 050404 - oświetlenie wnętrza
    • 55 03 051010 - kontrolka CDL
Uwaga: istotna tutaj jest długość danych. Zestaw ten działa dla AH i ZB, dla VC jest zupełnie inaczej :)
Inaczej też to wygląda dla UEC, gdy jest obecny REC

Oczywiście poszczególne światła w ramach jednej grupy możemy ze sobą łączyć, np prawy + lewy kierunkowskaz: 50 05 0100000303
Jeśli chcemy jakieś światło wyłączyć, to maskę ustawiamy na 1, a wartość na 0, np wyłączenie świateł mijania: 50 05 020C000000
Ustawiając maskę na 0, przestajemy sterować światłem - o tym czy światło świeci decyduje UEC

PS: nie gwarantuję ani kompletności, ani poprawności tej listy. Na moich notatkach jest trochę znaków zapytania, nie wszystko zostało dokładnie sprawdzone, ale jak ktoś chce poprawić sobie którąś z akcji, to może to mu pomóc
Sterowanie REC
REC (tylna skrzynka bezpieczników)
Włączanie/wyłączanie poszczególnych świateł w REC:
  • blok 01
    • 51 05 0104040000 - światło hamowania lewe
    • 51 05 0108080000 - światło hamowania prawe
    • 51 05 0110100000 - światło cofania lewe
    • 51 05 0120200000 - światło cofania prawe
    • 51 05 0140400000 - kierunkowskaz tylny lewy
    • 51 05 0180800000 - kierunkowskaz tylny prawy
    • 51 05 0100000101 - tylne światło przeciwmgłowe
    • 51 05 0100000202 - oświetlenie tablicy rejestracyjnej
    • 51 05 0100000404 - środkowe światło hamowania
  • blok 02
    • 51 05 0201010000 - lampka w bagażniku
    • 51 05 0202020000 - lampka wewnętrzna
    • 51 05 0208080000 - kontrolka CDL
Uwaga: istotna tutaj jest długość danych. Zestaw ten działa dla AH i ZB, dla VC jest zupełnie inaczej :)

Oczywiście poszczególne światła w ramach jednej grupy możemy ze sobą łączyć, np prawy + lewy tylny kierunkowskaz: 51 05 01C0C00000
Jeśli chcemy jakieś światło wyłączyć, to maskę ustawiamy na 1, a wartość na 0, np wyłączenie oświetlenia tablicy rejestracyjnej: 51 05 0100000200
Ustawiając maskę na 0, przestajemy sterować światłem - o tym czy światło świeci decyduje REC

PS: nie gwarantuję ani kompletności, ani poprawności tej listy. Na moich notatkach jest trochę znaków zapytania, nie wszystko zostało dokładnie sprawdzone, ale jak ktoś chce poprawić sobie którąś z akcji, to może to mu pomóc
Sterowanie IPC
IPC (licznik)
Włączanie/wyłączanie kontrolek na IPC:
  • blok 01
    • 55 03 010101 - kontrolka ABS
    • 55 03 010202 - kontrolka Airbag
    • 55 03 010404 - kontrolka świateł drogowych
    • 55 03 010808 - kontrolka IM (wadliwego działania)
    • 55 03 011010 - kontrolka oleju
    • 55 03 012020 - kontrolka hamulców
    • 55 03 014040 - kontrolka prawego kierunkowskazu
    • 55 03 018080 - kontrolka lewego kierunkowskazu
  • blok 02
    • 55 03 020101 - kontrolka tylnych świateł przeciwmgłowych
    • 55 03 020202 - kontrolka ciśnienia oleju
    • 55 03 020404 - kontrolka serwisu (SVC)
    • 55 03 020808 - kontrolka pasów bezpieczeństwa
    • 55 03 021010 - kontrolka otwartych drzwi
    • 55 03 022020 - kontrolka zimnego silnika
    • 55 03 024040 - kontrolka ładowania akumulatora
    • 55 03 028080 - kontrolka temperatury płynu chłodzącego
  • blok 03
    • 55 03 030101 - kontrolka poziomu paliwa
  • blok 04
    • 55 03 040101 - kontrolka przednich świateł przeciwmgłowych
    • 55 03 040202 - kontrolka TC
    • 55 03 040404 - kontrolka świec żarowych
    • 55 03 040808 - kontrolka świateł mijania
    • 55 03 041010 - kontrolka PEPS
  • blok 05
    • 55 03 050101 - kontrolka PAS
    • 55 03 050202 - kontrolka AHL
    • 55 03 050404 - kontrolka CDC
    • 55 03 051010 - kontrolka AFL
    • 55 03 052020 - kontrolka tempomatu
    • 55 03 054040 - kontrolka DDS (żółta)
    • 55 03 058080 - kontrolka DDS (czerwona)
  • blok 06
    • 55 04 0601xxxx - wskazówka prędkości pojazdu (xxxx = prędkość * 128)
  • blok 07
    • 55 04 0701xxxx - wskazówka obrotów silnika (xxxx = RPM * 4)
  • blok 08
    • 55 03 0801xx - wskazówka poziomu paliwa (xx = poziom * 2) [poziom wyrażony w procentach]
Uwaga: istotna tutaj jest długość danych. Zestaw ten działa dla AH i ZB, dla VC jest zupełnie inaczej :)

Oczywiście poszczególne kontrolki w ramach jednej grupy możemy ze sobą łączyć, np prawy + lewy kierunkowskaz: 55 03 01C0C0
Jeśli chcemy jakąś kontrolkę wyłączyć, to maskę ustawiamy na 1, a wartość na 0, np wyłączenie kontrolki IM (wadliwego działania): 55 03 010800
Ustawiając maskę na 0, przestajemy sterować kontrolką - o jej stanie decyduje wtedy IPC

PS: nie gwarantuję ani kompletności, ani poprawności tej listy. Na moich notatkach jest trochę znaków zapytania, nie wszystko zostało dokładnie sprawdzone, ale jak ktoś chce poprawić sobie którąś z akcji, to może to mu pomóc
Ostatnio zmieniony 04 sty 2018, 11:18 przez LWPM, łącznie zmieniany 6 razy.

Awatar użytkownika
Ostap
Zafiromaniak
Posty: 1675
Rejestracja: 15 lip 2017, 21:52
Imię: Łukasz
Lokalizacja: Wwa
Auto: Zafira
Model: B
Oznaczenie silnika: Z19DT
Gender:

#11 Post autor: Ostap »

Witam

Jak zrobić przerwę między poleceniami o długości 00FF?

Kod: Zaznacz cały

5105010000020200FF 5105010000020200FF
Dodano po 2 godzinach 14 minutach 3 sekundach:
Chodzi mi o jakieś polecenie wysłane do rec np.
51 05 0100000404 środkowy stop

51 05 0100000404 00FF - czas świecenia

Chciałbym między jednym świeceniem a drugim zrobić przerwę aby nie świeciło non stop (ala zwolniony stroboskop)

51 05 0100000404 00FF ???? 51 05 0100000404 00FF

Co trzeba wstawić w ???? ?

Dodano po 27 minutach 10 sekundach:
Chciałbym abyś dokładnie opisał co tutaj robią każde dane :)


animacja tył ori

Kod: Zaznacz cały

action[x] = 0000 00 07 51050100000000 18 510501FC100600 0090 510501FC400600  0090 510501FC040600 0090 510501FC000604 0090 510501FC080600 0090 510501FC800600 0090 510501FC200600  0090 510501FC800600 0090 510501FC080600 0090 510501FC000604 0090 510501FC040600 0090 510501FC400600 0090


0000 - to rozumiem, że akcja bez końca
00 - akcja na początku nic innego nie wywołuje
07 - to zakończenie akcji? dlaczego akurat 7 bajtów?
51050100000000 - ??
18 - ilość poleceń w pętli?? tylko jakbym nie liczył to ich nie ma 18?? skąd dokąd jest pętla i co zawiera?
dalej wiem o co chodzi


Odpowiedź LWPM
LWPM pisze: 04 sty 2018, 23:19 wszystko co trzeba, jest opisane - dlaczego nie piszesz w tamtym temacie?

przerwę dobrze wpisałeś: 00FF - 255 ms i w sumie nic więcej nie trzeba
jeśli chcesz by światło zgasło, to wysyłasz:
51 05 0100000400, czyli: włączenie, pauza, wyłączenie, pauza - ale o tym też napisałem w tamtym temacie :)
dlaczego 07 bajtów? bo zakończenie ma 7 bajtów: 51050100000000 <- dokładnie 7 bajtów w zakończenie jest zwykle wyłączenie wszystkich świateł którymi sterujemy, po bo by auto mogło sobie samo nimi sterować. Generalnie, gdy my sterujemy, to auto nie może... chociaż zauważyłem, że np świateł hamowania nie można zgasić - stan hamulca jest ważniejszy od sterowania z modułu
poleceń jest 18, pętla zaczyna się po 18 aż do końca (18 oczywiście szesnastkowo, czyli 24 dziesiętnie) no i zawiera kolejne polecenie, ładnie podzielone są - opisane w tamtym temacie

PS: jak możesz, przenieś to wszystko do tamtego tematu :)
Ostatnio zmieniony 05 sty 2018, 06:25 przez Ostap, łącznie zmieniany 2 razy.
Obrazek


Chciałeś Panią?! Zapier.... na nią! :luz:

Awatar użytkownika
Irek_S.
Bywalec
Posty: 177
Rejestracja: 17 paź 2016, 18:53
Imię: Irek
Lokalizacja: Hajnówka
Auto: Zafira B 1.8
Model: ZB
Oznaczenie silnika: Z18XER
Gender:
Kontakt:

#12 Post autor: Irek_S. »

LWPM pisze: 04 sty 2018, 08:49 REC (tylna skrzynka bezpieczników)
Włączanie/wyłączanie poszczególnych świateł w REC:
blok 01
51 05 0104040000 - światło hamowania lewe
51 05 0108080000 - światło hamowania prawe
51 05 0110100000 - światło cofania lewe
51 05 0120200000 - światło cofania prawe
51 05 0140400000 - kierunkowskaz tylny lewy
51 05 0180800000 - kierunkowskaz tylny prawy
51 05 0100000101 - tylne światło przeciwmgłowe
51 05 0100000202 - oświetlenie tablicy rejestracyjnej
51 05 0100000404 - środkowe światło hamowania
Dlaczego te wartości są inne od tych w akcji animacji świateł tył. Z czego to wynika?

LWPM
Zafiromaniak
Posty: 592
Rejestracja: 06 kwie 2017, 11:51
Imię: Łukasz
Lokalizacja: Wrocław
Auto: Opel Zafira B 1.7 CDTi 111
Model: ZB
Oznaczenie silnika: Z17DTJ
Gender:

#13 Post autor: LWPM »

Irek_S. pisze: 05 sty 2018, 09:29Dlaczego te wartości są inne od tych w akcji animacji świateł tył. Z czego to wynika?
nie różnią się
w animacje jest jednoczesne sterowanie wieloma światłami, więc maska bitowa jest połączona, tak samo wartości, a raczej w tym przypadku: maska jest połączona (tzn sterujemy wieloma światłami), ale ustawiony w wartości jest tylko 1 bit - tylko to światło jest włączone, reszta wyłączona. Jeśli nie ustawimy maski na wszystkie światłą, to wtedy auto przejmie nad nimi kontrolę i animacja może wyglądać gorzej, bo np jedno w aucie mamy włączone halogeny, to będzie się ten halogen zawsze świecił
Czyli: każde z tych poleceń w animacji jest połączeniem rozkazu zapalenia 1 światła i rozkazów zgaszenia wszystkich pozostałych świateł
Ostatnio zmieniony 05 sty 2018, 09:33 przez LWPM, łącznie zmieniany 1 raz.

Awatar użytkownika
Ostap
Zafiromaniak
Posty: 1675
Rejestracja: 15 lip 2017, 21:52
Imię: Łukasz
Lokalizacja: Wwa
Auto: Zafira
Model: B
Oznaczenie silnika: Z19DT
Gender:

#14 Post autor: Ostap »

51 05 0104040000 - światło hamowania lewe
51 05 0108080000 - światło hamowania prawe
51 05 0110100000 - światło cofania lewe
51 05 0120200000 - światło cofania prawe
51 05 0140400000 - kierunkowskaz tylny lewy
51 05 0180800000 - kierunkowskaz tylny prawy
51 05 0100000101 - tylne światło przeciwmgłowe
51 05 0100000202 - oświetlenie tablicy rejestracyjnej
51 05 0100000404 - środkowe światło hamowania



Jak chcę wyłączyć dane światło to robię
51 05 0100000404 - środkowe światło hamowania - włączone
51 05 0100000400 - środkowe światło hamowania - wyłączone

51 05 0100000202 - oświetlenie tablicy rejestracyjnej - włączone
51 05 0100000200 - oświetlenie tablicy rejestracyjnej - wyłączone

51 05 0100000101 - tylne światło przeciwmgłowe - włączone
51 05 0100000100 - tylne światło przeciwmgłowe - wyłączone

51 05 0180800000 - kierunkowskaz tylny prawy - włączony
?????????????????????? - kierunkowskaz tylny prawy - wyłączony

Jak tu zmienić? gdzie jest ????
Obrazek


Chciałeś Panią?! Zapier.... na nią! :luz:

LWPM
Zafiromaniak
Posty: 592
Rejestracja: 06 kwie 2017, 11:51
Imię: Łukasz
Lokalizacja: Wrocław
Auto: Opel Zafira B 1.7 CDTi 111
Model: ZB
Oznaczenie silnika: Z17DTJ
Gender:

#15 Post autor: LWPM »

51 05 0180000000 - kierunkowskaz tylny prawy - wyłączony

każde z tych poleceń to:

Kod: Zaznacz cały

51 05 <numer bloku> <maska1> <wartośći1> <maska2> <wartośći2>

ODPOWIEDZ

Wróć do „Zafira B”