Wysyłka do NIEMIEC - proszę wybrać opcję "Dostawa przez sprzedającego"
W zestawie starter plus złącze DB9, po zakupie udostępnie schemat podłączenia złącza DB9.
Starter jest na licencji Tadeusza Klimaszewskiego (Tedi_k)
#define _NAME_ "v6.00"
#define _DATE_ "build 2022.01.14"
// "Starter" Sync3 "na stole" oraz liczników z rodziny Mondeo MK5.
// Posiada funkcję wysyłania ramek z pliku na karcie SD/microSD. W tej funkcjonalności może być używany na dowolnej platformie - nie tylko Ford.
// W funcji "startera z karty SD" możliwe jest ustawienie prędkości transmisji CAN na: 83.3, 125, 200, 250 i 500kbps.
// Prędkość CAN dla "startera z karty SD" definiuje się poprzez rozszerzenie nazwy pliku z ramkami: .083, .125, .200, .250, .500 odpowiednio.
// Karta SD/microSD może być sformatowana zarówno w systemie plików FAT32 lub exFAT (zalecane!).
// Nazwa pliku z ramkami powinna mieć długość DO 8 ZNAKÓW (ograniczenie jest zakodowane w programie i wynika z cech wyświetlacza a nie użytego FS).
// Plik zawierający sekwencję ramek, MUSI mieć ramki zapisane w formacie identycznym jak to generuje logger CAN programu UCDS (przykłady zawarte w pliku "SDcard.zip").
// W pliku z ramkami można używać znaku średnika (;) jako znaku początku komentarza. Znak ten użyty w pierwszym znaku linii powoduje, iż cała linia
// (wraz z ew. ramką CAN za znakiem średnika) jest traktowana jako komentarz. Jest to wygodna metoda dezaktywacji "ramek testowych" w pliku ramek.
//
// Do sterowabia pracą "startera z karty SD" służy plik konfiguracyjny "/starter.cfg" znajdującego się na karcie.
// W pierwszej linii tego pliku może być użyta jedna z 2 dyrektyw:
// <SELECT> - definiuje, iż na starcie startera będzie uruchomina procedura wyboru pliku z ramkami w oparciu o listę plików wkazanych w kolejnych liniach.
// Wybór pliku realizowany jest intuicyjnie za pomocą klawiszy UP i DOWN a zatwierdzenie wyboru klawiszem SELECT.
// Lista plików może liczyć do 20 pozycji. Każdy z plików ma swoje rozszerzenie i może wskazywać na plik ramek dla innej definicji prędkości CAN.
// Nazwy plików na liście muszą zawsze rozpoczynać się w pierwszym znaku linii. Za poprawną nazwą pliku, w dalszej części linii może być dowolny teks -
// jest on traktowany jako komentarz. W komentarza należy unikać używania nazw w formacie nazwy pliku, gdyż mogą one przypadkowo trafić na listę,
// co jest spowodowane uproszczeniem procedury parsowania listy (ograniczenia wynikają z małej pojemności zarówno flash jak SRAM dostępnej w UNO).
// Znak średnika (;) umieszczony w pierwszym znaku linii powoduje, iż cała linia jest komentarzem. Nazwa pliku bezpośrednio za średnikiem nie trafi
// na listę plików.
// <noSDstarter> - dyrektywa 'dezktuwująca' plik "/starter.cfg". Po użyciu tej dyrektywy starter uruchamia się tak jakby plik "/starter.cfg" nie był obecny na karcie -
// czyli starter uruchamia się w trybie pamięciowym.
// Dyrektywa może być "nadpisana" ("unieważniona") użyciem klawiatury wyświetlacza LCD.Przytrzymanie w trakcie uruchamiania startera klawisza LEFT
// powoduje wejście w procedurę wyboru liku z listy zdefiniowanej w "/starter.cfg" mimo użycia tej dyrektywy.
// W procedurze wyboru pliku z listy zawsze ostatnią pozycją do wyboru jest pozycja "<noSDstarter>", więc tak czy inaczej jest możliwość kontynuwania
// startu wersji pamięciowej startera.
// nazwa pliku - jeśli w pierszej linii pliku "/starter.cfg" znajduje się poprawna nazwa pliku z ramkami, to plik ten jest traktowany jako "domyślny" i starter
// z karty SD zawsze przechodzi do jego użycia. Stan ten także można "unieważnuić" za pomocą klawisza LEFT użytego na starcie - tak jak powyżej.
//
// W trybie "startera z karty SD" klawisze 'joystickowe' startera NIE DZIAŁAJĄ (nie jest możliwe określenie funkcji ramek CAN zawartych w pliku).
//
// Starter posiada tryb 'SETUP' pozwalający na wybór prędkości magistrali CAN dl atrybu 'pamięciowego' oraz określenie czy do sieci startera podpięty jest fizyczny ACM.
// W tryb 'setup' wchodzi się poprzez wyłączenie zasilania startera, naciśnięcie i trzymanie klawisza 'SELECT' i włączenie zasilania w naciśniętym tym klawiszem.
// Ten sam efekt można osiągnąć trzymając wciśnięty klawisz 'SELECT' i używając w tym stanie klawisza 'RESET' na klawiaturze joystickowej.
// Klawisz 'SELECT' należy trzymać naciśnięty aż na ekranie LCD ukaże się informacja o trybie 'SETUP'.
// Tryb pamięciowy startera działa na magistrali HS-CAN a klawisze 'UP i 'DOWN' i pozwalają wybrać czy obecny jest w instalacji fizyczny ACM.
// Obecność ACM oznaczona jest jako "/A". Jeśli wybierzemy taki stan, to starter pamięciowy nie będzie wysyłał ramek CAN 'symulowanego' ACM (tych z tekstem RDS
// i logiem stacji RMF FM). Pozwoli to w pełni sterować z ekranu Sync3 oraz licznika z rodziny Mondeo MK5 dołączonym fizycznym ACM.
//
// W trybie "startera z pamięci" dostępna jest opcja dodania prywatnych ramek do ramek zaprogramowanych w kodzie programu.
// W celu takiego "rozszerzenia listy wysyłanych ramek" należy na karcie umieścić plik zawierający dodatkowe ramki o nazwie "/HS_MM-extender.frm".
// Ramki zawarte w tym pliku także muszą być zapisane w formacie zgodnym z używanym przez logger programu UCDS.
// Dołączony do programu plik "/HS_MM-extender.frm" zawiera ramki komend dla licznika z rodziny Mondeo MK5. Zostały one usunięte z kodu programu
// i przeniesione do pliku "rozszerzeń". Pozwala to elastycznie dostosowywać listę ramek stertujących dla licznika do własnych potrzeb.
// Ramki z pliku pobierane są kolejno i wysyłane po 3 rammkach zaprogramowanych w kodzie (jęśli jest odpowiednia liczba ramek - tak jak ma to miejsce dla wersji HS_MM) lub
// kolejno na końcu sekwencji ramek jeśli nie ma wystarczającej liczby ramek. Następnie plik jest przewijany na początek i sekwencja generacji ramek jest powtarzana.
//
// W trybie "startera z pamięci" a także w trybie "startera z karty SD" na platformie Ford jest możliwość podania VIN auta (do rozgłaszania w generowanych ramkach CAN).
// Może to być przydatne na przykad do prac "na stole" z Sync4.
// VIN do użycia pobierany jest (pierwsze 17 znaków) z pliku o nazwie "VIN" (bez rozszerzenia) w głównym katalogu karty SD.
// Funkcjonalność ta polega na podmianie zawartości ramek o ID = 0x40A oraz pierwszym bajcie danych ramki = 0xC1 (drugi bajt równy 0, 1 lub 2 - po 6 kolejnych znaków VI).
//
// Znacznik aktywności startera (znak na końcu 2 linii wyświetlacza, wyświetlany naprzemiennie na ostatnich 2 znakach linii) ma natępujące znaczenie:
// '.' - standardowy znak aktywności (w przypadku tryby HS-CAN oznacza on wysyłanie ramek 'symulowanego' ACM)
// '*' - znak aktywności oznaczający użycie ramek uzupełniających z pliku na karcie SD oraz wysyłanie ramek 'symulowanego' ACM
// 'x' - znak aktywności startera HS-CAN z włączoną flagą obecności fizycznego ACM podpiętego do sieci startera (wyłącza to wysylanie ramek 'symulowanego' ACM)
// 'X' - analogicznie jak wyżej, ale dodatkowo z użyciem ramek uzupełniających z pliku na karcie SD.
//
// We wszystkich trybach pracy, dostępny jest wbudowany prosty funkcjonalnie logger ramek CAN.
// Na monitorze portu szeregowego (prędkość 115200) wyświetla listę ramek (po jednej ramce dla każdego napotkanego ID ramki ODEBRANEJ).
// Możliwe jest także wydrukowanie listy wszystkich ramek WYSYŁANYCH.
//
// Klawisze funkcji portu szeregowego:
// ===================================
//
// Klawisz 'o', 'O' - lista ramek WYSYŁANYCH (zawartość pliku albo zestaw zdefiowanych ramek w programie).
//
// Klawisz 'r', 'R' - lista znanych identyfikatorów ramek ODBIERANYCH (generowanych przez podłączone urządzenia).
//
// Klawisz 's', 'S' - zatzrymanie portu szeregowego (Serial.end()). Wznowienie wymaga restartu programu.
//
// Gdy żadne z urządzeń nie jest podłączone sygnalizowane jest to w monitorze komunikatem " Oczekiwanie na start/restart urządzeń... ")
// na ekranie lcd wyświetlany jest komunikat "...CAN empty"
// 2 ostatnie znaki w drugiej linii wyświetlacza lcd pełnią funkcję wskaźnika aktywności "startera" - kropki migają naprzemiennie
// co 10 wykonań głównej pętli programu.
// Cały obieg (wygenerowanie wszystkich zaprogramowanych ramek CAN) to 90 obiegów głównej pętli programu.
//
// klawiatura "joystickowa' wyświetlacza LCD nie jest w żaden sposób buforowana - toteż klawisz należy trzymać wciśnięty aż pojawi się
// potwierdzenie jego realizacji (pojawi się odpowiednia treść na wyświetlaczu LCD)
//
// Kalwiatura "joystickowa" ma setup wybranego joysticka na kierownicy - lewy jest domyślny, aby wybrać prawy (ogólniej - przełączyć aktywny joystick)
// trzeba 5 razy nacisnąć klawisz "w prawo".
// Wchodzi się w "setup" w którym klawisze "lewy" i "prawy" wybierają aktywny joystick na kierownicy a klawisze "góra" i "dół"
// pozwalają na włączenie kamery RVC ("dół") albo powrót do wyboru joysticka ("góra").
// Zatwierdzenie wyboru jest intuicyjne - klawisz "select".
//