Moduł komfortu do Zafiry B

Modyfikacje dla Zafiry B
Wiadomość
Autor
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:

#271 Post autor: LWPM »

nie bardzo wiem o czym piszecie :)
action[] i key.action[] to zupełnie inne sprawy.
action[] określa CO moduł ma zrobić, a key.action[] określa KIEDY to ma być zrobione

Kod: Zaznacz cały

key.action[x] = 00 11 22 3333
gdzie:
00 - numer przycisku
11 - czas przytrzymania (dla przycisków wewnątrz auta) / ilość naciśnięć (dla pilota)
22 - numer akcji, dla własnych akcji jest to 80 - 8F (action[1] - action[16])
3333 - ilość powtórzeń wykonania akcji
Makary pisze:Swoją drogą komenda z przykładu który wkleiłem różni się trochę od standardowych
pokaż co wkleiłeś, ale key.action MUSI być w tej postaci jak wyżej

Deleted User 21664

#272 Post autor: Deleted User 21664 »

Jak ustawić key.actions to przerabialiśmy :)

Ale chodzi mi jak ma zadziałać np.to (z konfigu kol. palibrzucha)

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

Jak aktywować? Jak wywołać żeby działało?
Ostatnio zmieniony 12 gru 2017, 18:18 przez Deleted User 21664, łą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:

#273 Post autor: Ostap »

To zależy czym chcesz ją wywołać :)

Dam Ci przykład jak na przycisk dolny lewy kierownicy

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 :)
Obrazek


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

Deleted User 21664

#274 Post autor: Deleted User 21664 »

Teraz już wiem o co chodzi i skąd się wzięło :)
A sam kod do działania action to pewnie Łukasz generuje co? :>

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:

#275 Post autor: Ostap »

Dokładnie ;) choć nie ukrywam, że też chciałbym ;)
Obrazek


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

Deleted User 21664

#276 Post autor: Deleted User 21664 »

Nie Ty jeden :lol:

Ja cały czas czekam na na możliwość wyświetlania w OBDII poziomu paliwa i ładowania aku (nasze pidy tego nie ogarniają) ;)
Ostatnio zmieniony 12 gru 2017, 21:00 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:

#277 Post autor: LWPM »

cieszę się, że ktoś to wyjaśnił w zrozumiały sposób... jako, że jestem programistą, to moje tłumaczenia są... ciężkie dla nie-programistów :)
ważne że ktoś przetłumaczył z mojego na ludzki język :)

skoro tak bardzo chcecie tworzyć własne akcje, to opiszę z grubsza jak to wygląda (wszystkie wartości szesnastkowo)
A wiec tak, 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
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ż temat na później :)
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ść :)
Jeśli nie przeraziliście się tym opisem i jest w miarę zrozumiały i nadal chcecie pisać własne akcje... to jutro mogę opisać niektóre bloki, co w nich jest i jak ich użyć to stworzenia własnej animacji :)
Nie mówię, że opis tych bloków to jakaś tajna wiedza, ale nigdzie w internecie jej nie znajdziecie :) ale godziny/dni spędzone w aucie pozwolą na uzyskanie całkiem pokaźnej listy - mogę się podzielić częścią moich zapisków :)
Ostatnio zmieniony 12 gru 2017, 23:01 przez LWPM, łącznie zmieniany 3 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:

#278 Post autor: Ostap »

Teraz to tłumacz będzie potrzebny konkretny ;)

Muszę na spokojnie się w to wczytać.



Czy jeden key.action potrafi wystartować dwa action? Czy trzeba to właśnie zmieniać w action?
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:

#279 Post autor: LWPM »

palibrzuch pisze:Teraz to tłumacz będzie potrzebny konkretny ;)
mówiłem, że nie będzie łatwo :)
palibrzuch pisze:Czy jeden key.action potrafi wystartować dwa action? Czy trzeba to właśnie zmieniać w action?
na razie nie da się tak. Trzeba zrobić własne action połączone z tych dwóch. Zrobiłbym możliwość wywołania akcji w akcji... ale ilość pamięci RAM mnie tutaj ogranicza niestety

UPDATE: wrzuciłem nową wersję softu, niestety po raz kolejny beta :) Beta się skończy po zmianie nazwy, dlatego zapraszam tutaj - wybór nowej nazwy.

Co nowego w oprogramowaniu:
  • automatyczne światła do jazdy dziennej
    powinno działać także z czujnikami zmierzchu... niestety u mnie ciągle czujnik twierdzi, że jest noc, więc w praktyce tego nie sprawdziłem
  • sterowanie szybami poprawione
    automatyczne zamykanie po przekroczeniu określonej prędkości już powinno działać
  • wiele akcji, które były już wcześniej w konfiguracji działa tak jak powinno.
    Przykładowe miejsca, gdzie można podpiąć własną akcję:
    • engine.on_start.action
    • engine.on_stop.action
    • car.on_doors_close.action
    • car.action_at_speed[1-3]
jak zwykle, zalecam użycie najnowszego dpf_config.exe :)
Ostatnio zmieniony 13 gru 2017, 09:48 przez LWPM, łącznie zmieniany 1 raz.

ksz999
Świeżak
Posty: 7
Rejestracja: 31 maja 2017, 08:34
Imię: Krzysztof
Lokalizacja: Gdańsk
Auto: Opel Vectra C 1.9 CDTI
Model: VC
Oznaczenie silnika: Z19DTH
Gender:

#280 Post autor: ksz999 »

jak poprawnie skonfigurować światła mijania żeby włączały się w dzień, a w nocy włączało się podświetlenie deski itp (przełącznik w pozycji auto + sensor zmierzchu), ponizszy kod bedzie ok?

action[1] = 0000000750050200000000025005023F0C0F000103E8 - światła mijania przód (1000ms) z konfiguracji od scooter
car.daylight.action = 1
car.daylight.wait_for_move = false
car.daylight.use_light_sensor = false

i drugie pytanie, do domykania szyb po zamknięciu auta z pilota wystarczy ta linijka czy coś jeszcze trzeba dodać
car.comfort_windows_closing = true

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:

#281 Post autor: LWPM »

w Twoim przypadku:

Kod: Zaznacz cały

action[1] = 0000 00 07 50050200000000 01 5005020C0C0000
car.daylight.action = 0x80
car.daylight.wait_for_move = false
car.daylight.use_light_sensor = true
ta akcja od scootera jest jakaś dziwna, bo steruje nie tylko światłami mijania, a raczej włącza światła mijania a wyłącza wszystko inne (łącznie z kierunkowskazami, a te raczej by się przydały :) )
numer akcji: 0x81, ewentualnie można użyć dwóch nowych wbudowanych akcji:
  • 0xAE - światła mijania z przodu
  • 0xAF - halogeny
obie akcje nie mają określonego czasu trwania, więc nadają się do akcji dla świateł do jazdy dziennej. Jeśli to odpowiada, to proponuję używać akcji wbudowanych niż własnych

światła do jazdy dziennej w żaden sposób nie wpływają na światła nocne. Działają tylko w dzień - w nocy nie robią zupełnie nic

zamykanie okien po zamknięciu drzwi to:

Kod: Zaznacz cały

car.on_doors_close.close_windows = true
natomiast

Kod: Zaznacz cały

car.comfort_windows_closing = true
to sterowanie oknami z pilota - to samo co można włączyć w REC, jeśli ktoś z jakiegoś powodu tego nie może tego włączyć w REC. Zalecam jednak korzystanie z RECa niż z modułu jeśli to możliwe
Ostatnio zmieniony 13 gru 2017, 13:03 przez LWPM, łącznie zmieniany 2 razy.

ksz999
Świeżak
Posty: 7
Rejestracja: 31 maja 2017, 08:34
Imię: Krzysztof
Lokalizacja: Gdańsk
Auto: Opel Vectra C 1.9 CDTI
Model: VC
Oznaczenie silnika: Z19DTH
Gender:

#282 Post autor: ksz999 »

ok dzieki, wyprobuje w najblizszym czasie :)

Dodano po 2 godzinach 58 minutach 27 sekundach:
LWPM pojawily sie nowe parametry mozesz powiedziec do czego sluza i jakich jednostek uzyć?

# Światła dzienne - częstotliwość sprawdzania stanu stanu świateł.
# car.daylight.check_timeout =
# Szyby - czas na pełne otwarcie/zamknięcie okna.
# car.windows.full_move =

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:

#283 Post autor: scooter »

ta akcja od scootera jest jakaś dziwna,
no taką mi napisałeś:) do tej pory włączyłem sobie tak światła jako odprowadzanie do domu
Ostatnio zmieniony 14 gru 2017, 12:40 przez scooter, łącznie zmieniany 3 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:

#284 Post autor: Ostap »

Dziwi mnie trochę cisza w temacie ;)

Nikt nie udostępnia akcji w innym temacie które robił kolega LWPM.

Może Łukasz będzie mógł je udostępnić?


Ja ciągle nie mam czasu aby tym linuksem zgrać pakiety.

Chodzi mi o tą kontrolkę przy wciśniętym sprzęgle.
Widzę, że i cim można zmusić do wydawania dźwięku.

Chciałbym aby kontrolka włączała się po wciśnięciu a po np 10s jak nie odpuszczę to cim niech gra ;) całość ma startować powyżej 10km/h aby w korkach mi nie jęczało ;D

Nie wiem jak mam się za to zabrać.

Czy w module jest przypisany już przycisk tzn czy ma swój numer ten koło zera z prawej strony w cd70? U mnie on nic nie robi i można byłoby go wykorzystać do czegoś.
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:

#285 Post autor: LWPM »

ksz999 pisze: 13 gru 2017, 16:08LWPM pojawily sie nowe parametry mozesz powiedziec do czego sluza i jakich jednostek uzyć?

# Światła dzienne - częstotliwość sprawdzania stanu stanu świateł.
# car.daylight.check_timeout =
# Szyby - czas na pełne otwarcie/zamknięcie okna.
# car.windows.full_move =
pierwsze to szybkość przełączani świateł dziennych
drugie to czas potrzebny na pełne otwarcie/zamknięcie szyb (jedno i drugie w milisekundach)
generalnie wartości domyślne zupełnie wystarczają, nie trzeba zmieniać
palibrzuch pisze:Chciałbym aby kontrolka włączała się po wciśnięciu a po np 10s jak nie odpuszczę to cim niech gra ;) całość ma startować powyżej 10km/h aby w korkach mi nie jęczało ;D
to już nie taka prosta sprawa - w wolnej chwili można się tym zająć, na pewno istniejącymi akcjami tego nie załatwisz - wymagana modyfikacja oprogramowania
palibrzuch pisze:Czy w module jest przypisany już przycisk tzn czy ma swój numer ten koło zera z prawej strony w cd70? U mnie on nic nie robi i można byłoby go wykorzystać do czegoś.
oczywiście, że ten przycisk coś robi :) powtarza ostatni komunikat nawigacji.
Niestety użyć go nie można, bo nie wysyła nic po CANie, jest do użycia tylko przez radio/nawigację.

ODPOWIEDZ

Wróć do „Zafira B”