Autor Wątek:  MaSzyna z portem COM (SerialPort)  (Przeczytany 53023 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2349
Odp: MaSzyna z portem COM
« Odpowiedź #60 dnia: 17 Kwietnia 2020, 00:40:29 »
ale może poczekam na obsługę (enable/disable) zaworu trójdrogowego... Jest szansa?
Szansa zawsze jest :>

(komendy sa obslugiwane od wersji 20.416)

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM
« Odpowiedź #61 dnia: 12 Maja 2020, 21:36:09 »
ale może poczekam na obsługę (enable/disable) zaworu trójdrogowego... Jest szansa?
Szansa zawsze jest :>
Jakbyście coś modyfikowali to dajcie znać na PW to będę czuwał nad aktualizacją plików ;)

EDIT: nie macie wrażenia, że jest trochę bałagan w ułożeniu bitów w bajtach wskaźników? Co o tym myślicie?
« Ostatnia zmiana: 26 Maja 2020, 19:54:03 wysłana przez maciek001 »
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2349
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #62 dnia: 02 Lipca 2020, 21:15:04 »
Aktualny uklad zawartosci ramki, dla wersji 20.701

std::array<uint8_t, 52> buffer {
//preamble
0xEF, 0xEF, 0xEF, 0xEF,
//byte 0-1 (counting without preamble)
SPLIT_INT16(tacho),
//byte 2
(uint8_t)(
        trainstate.epbrake_enabled << 0
        | trainstate.ventilator_overload << 1
        | trainstate.motor_overload_threshold << 2),
//byte 3
(uint8_t)(
        trainstate.coupled_hv_voltage_relays << 0),
//byte 4
(uint8_t)(
        trainstate.train_heating << 0
        | trainstate.motor_resistors << 1
        | trainstate.wheelslip << 2
        | trainstate.alerter << 6
        | trainstate.shp << 7),
//byte 5
(uint8_t)(
        trainstate.motor_connectors << 0
        | trainstate.converter_overload << 2
        | trainstate.ground_relay << 3
        | trainstate.motor_overload << 4
        | trainstate.line_breaker << 5
        | trainstate.compressor_overload << 6),
//byte 6
(uint8_t)(
        m_trainstatecab << 2
        | trainstate.recorder_braking << 3
        | trainstate.recorder_power << 4
        | trainstate.radio_stop << 5
        | trainstate.springbrake_active << 6
        | trainstate.alerter_sound << 7),
//byte 7-8
SPLIT_INT16(brake_press),
//byte 9-10
SPLIT_INT16(pipe_press),
//byte 11-12
SPLIT_INT16(tank_press),
//byte 13-14
SPLIT_INT16(hv_voltage),
//byte 15-16
SPLIT_INT16(current1),
//byte 17-18
SPLIT_INT16(current2),
//byte 19-20
SPLIT_INT16(current3),
//byte 21-22
SPLIT_INT16((time.wYear - 1) * 12 + time.wMonth - 1),
//byte 23-24
SPLIT_INT16((time.wDay - 1) * 1440 + time.wHour * 60 + time.wMinute),
//byte 25-26
SPLIT_INT16(time.wSecond * 1000 + time.wMilliseconds),
//byte 27-30
SPLIT_INT16((uint16_t)odometer), SPLIT_INT16((uint16_t)(odometer >> 16)),
//byte 31-32
SPLIT_INT16(lv_voltage),
//byte 33
(uint8_t)trainstate.radio_channel,
//byte 34-48
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
Jesli jest zapotrzebowanie na zmiane ukladu, prosze zglaszac.

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #63 dnia: 03 Lipca 2020, 14:41:32 »
A ja mam takie pytanie bo zrobiłem sobie "atrapę" przedziału maszynowego i wszystko fajnie bo nie muszę bawić się z klawiaturą podczas przechodzenia między kabinami ale niestety nie do końca. Po wejściu do drugiej kabiny stoimy sobie na środku i trzeba użyć myszy, żeby usiąść zanastawnikiem. Czy jest jakaś metoda, żeby te kliknięcia myszą również zrealizować w komunikacji szeregowej?
Historia budowy pulpitu lokomotywy serii EU07.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2349
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #64 dnia: 11 Lipca 2020, 19:04:03 »
Obawiam sie ze nie bardzo, przynajmniej na razie -- zmiana polozenia kamery przypisana jest na sztywno w exe do przyciskow myszy i nie wykorzystuje systemu komend ktory steruje urzadzeniami pojazdu.

Jakims tam bieda-rozwiazaniem moze byc teoretycznie szamysntwo w postaci edycji pliku mmd pojazdu, i wpisanie tam takich samych parametrow dla driverXpos: i driverXsitpos: W takiej aranzacji kamera po wejsciu do kabiny bedzie umieszczona w tej samej pozycji w jakiej znajduje sie gdy "siadamy" uzywajac prawego przycisku.
« Ostatnia zmiana: 11 Lipca 2020, 19:07:44 wysłana przez tmj »

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #65 dnia: 15 Lipca 2020, 13:30:30 »
To mam jeszcze jedno pytanie w kwestii komunikacji szeregowej. Dlaczego po uruchomieniu symulacji i zainicjowaniu komunikacji stany przełączników nie są od razu zgodne z tym co fizycznie na pulpicie jest tylko trzeba przeklikać hebelek lub przełącznik? Przykładowo rodzaj hamulca zgłasza się domyślnie jako osobowy nawet jeśli przełącznik jest w innej pozycji. Dopiero przełączenie go na pulpicie powoduje przestawienie w symulatorze. Wydaje mi się, że bity są transmitowane na bieżąco i spodziewałbym się, że od razu po przesłąniu pierwszej ramki stan przełączników symulatora powinien odpowiadać fizycznemu położeniu tych przełączników na pulpicie.
Historia budowy pulpitu lokomotywy serii EU07.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2349
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #66 dnia: 16 Lipca 2020, 19:39:56 »
Ma to zwiazek z tym, ze stan przyciskow w danej kabinie ustawiany jest w momencie "wejscia" do niej, na podstawie lokalnego stanu pojazdu. Komendy obslugi urzadzen generowane sa jednorazowo przy stanie zmianu urzadzenia na pulpicie, dlatego tez dopoki taka zmiana nie ma miejsca, symulator w efekcie utrzymuje swoj "stan biezacy".

Offline miko22

  • Wiadomości: 616
  • Powoli wracam z "promocją"...
    • Zobacz profil
    • Nasze-Symulatory.pl
  • Otrzymane polubienia: 196
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #67 dnia: 01 Września 2020, 23:09:51 »
Mi to już od dawna działa dobrze, również na najnowszym (200824) exe @tmj, tzn. jeśli na fizycznym pulpicie przełącznik hamulca jest ustawiony np. na pospieszny, to po wczytaniu symulacji w MaSzynie też ten przełącznik od razu przestawia się na tą pozycję. Przy czym w eu07_input-uart nie używam komend powodujących przełączenie o jedną pozycję w którąś ze stron, ale ustawiających przełącznik w konkretnej pozycji:
toggle brakeactingspeedsetrapid // wybor trybu hamulca dla pociagu pospiesznego
toggle brakeactingspeedsetpassenger // wybor trybu hamulca dla pociagu osobowego
toggle brakeactingspeedsetcargo // wybor trybu hamulca dla pociagu towarowego
« Ostatnia zmiana: 01 Września 2020, 23:14:41 wysłana przez miko22 »

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #68 dnia: 03 Września 2020, 12:19:36 »
No to dziwne, ja w eu07_input-uart.ini też tak mam
35 toggle brakeactingspeedsetcargo
36 toggle brakeactingspeedsetpassenger
37 toggle brakeactingspeedsetrapid
Po uruchomieniu symulacji startuje na osobowym, tak jak jest bez pulpitu i muszę coś ruszyć, żeby się przestawiło.
Historia budowy pulpitu lokomotywy serii EU07.

Offline marcinn

  • Wiadomości: 65
    • Zobacz profil
  • Otrzymane polubienia: 86
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #69 dnia: 13 Września 2020, 14:43:49 »
Dzień dobry.

Panowie, może ślepy jestem, ale gdzie znajdę opis ramki wejściowej (z kontrolera do PC)? Pcham obecnie zera i nie mogę sterować z klawiatury. Patrzenie na LED od SHP już mi się znudziło ;)

Dzięki za snippety w tym wątku - dużo pomogły, bo dokumentacja jest bardzo skromna.

Czy jest gdzieś dostępna ta biblioteka dla arduino? Jakiś GitHub? Zamierzam zbudować pulpit dla dzieciaka i parę wierszy mógłbym do kodu dołożyć.

EDIT:
Odpowiadam sobie po części - zdaje się, że pierwsze bajty zamapowane są wg eu07_input-uart.ini

EDIT 26/05/2021
Aby obsłużyć więcej przełączników na moim Uno w celu testowania proponowanej przeze mnie obsługi świateł, musiałem dołożyć  multipleksery do hardware. Kod dla Arduino nieco się skomplikował, zrobił się nieczytelny i przestałem czerpać przyjemność z eksperymentów. A ponieważ będę dokładał więcej klamotów, to nadszedł czas na przygotowanie solidnych fundamentów.

Z tego powodu przerobiłem te moje próby na zalążek biblioteki dla Arduino, do obsługi całego pulpitu (a nawet wielu pulpitów - zależnie od limitów i koncepcji sprzętowych). Kod biblioteki wrzuciłem na Githuba: https://github.com/marcinn/maszynaduino

Biblioteka jest w fazie mocnego rozwoju i przewiduję zmiany w API (szczególnie w kontekście muxów). Głównym celem jest prostota użycia i czytelność kodu, bowiem wszelkie eksperymenty czy testy wymagają skupienia się, a warto skupiać się na "mięchu" a nie na wszystkich "bebechach", szczególnie kiedy ma się bardzo mało czasu na hobby.

Jeśli to kogoś zainteresuje, to zachęcam do zgłaszania sugestii najlepiej przez https://github.com/marcinn/maszynaduino/issues
Opis z przykładem jest w readme dostępnym z pierwszego odnośnika.

Aktualnie pracuję (w miarę możliwości czasowych) nad Maszynaduino v0.2. Będą większe zmiany:
- monitor do diagnostyki po UART (dedykowany program),
- wsparcie dla rejestrów przesuwnych do sterowania kontrolkami (wyjścia),
- ulepszona komunikacja UART z MaSzyną, wraz z synchronizacją i wyeliminowanym opóźnieniem związanym z oczekiwaniem na dane z PC (serial timeout),
- uporządkowana obsługa analogowych multiplekserów (wejścia).


Cytuj
Nie prościej jakieś ekspandery na I2C albo PISO i SIPO i komunikować przez SPI?

W kolejnych wersjach rozważam wsparcie dla układów typu MCP23017. Dotychczas I2C/SPI uważałem za "armatę na muchę", a mój prototyp powstaje w oparciu o rejestry 74595 w szeregu dla wyjść (kontrolki) i mux 74HC4067 dla wejść (przyciski, przełączniki).
« Ostatnia zmiana: 27 Maja 2021, 01:18:10 wysłana przez marcinn »

Offline miko22

  • Wiadomości: 616
  • Powoli wracam z "promocją"...
    • Zobacz profil
    • Nasze-Symulatory.pl
  • Otrzymane polubienia: 196
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #70 dnia: 13 Września 2020, 16:50:21 »
Tak, to tego pliku można sobie samemu wstawiać wpisy komend z eu07_input-keyboard we własnej kolejności i te, które są potrzebne. A nastawnikami i kranami powinno dać się sterować z klawiatury po zmianie w eu07.ini:
//uartfeature <nastawnik> <bocznik> <hamulec> <hamulec lokomotywy>
uartfeature yes yes yes yes
na:
//uartfeature <nastawnik> <bocznik> <hamulec> <hamulec lokomotywy>
uartfeature no no no no
ale od dłuższego czasu ta funkcja wyłączania obsługi nastawników i kranów nie działa. Pozostałymi urządzeniami zawsze powinno dać się sterować z klawiatury, nawet przy aktywnej komunikacji UART.

Offline marcinn

  • Wiadomości: 65
    • Zobacz profil
  • Otrzymane polubienia: 86
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #71 dnia: 30 Kwietnia 2021, 14:23:12 »
Cześć.

Czy aby nie brakuje poleceń enable/disable dla tylnych świateł?
Zdefiniowane polecenia to:


    headlighttogglerearleft,
    headlighttogglerearright,
    headlighttogglerearupper,
    redmarkertogglerearleft,
    redmarkertogglerearright,

 
Jak włączacie tylne światła hebelkami z pulpitu?

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #72 dnia: 30 Kwietnia 2021, 15:37:11 »
No raczej z jednego pulpitu to ciężko sensownie obsłużyć obie kabiny. Ja osobiście ignoruję oświetlenie tyłu. Można też przechodzić między kabinami i załączać co tam potrzeba. To nawet bardziej realne bo w realu raczej nie ma możliwości osygnalizowania obu stron z jednej kabiny. Trochę to dziwnie wygląda, bo trzeba wejść do kabiny, włączyć światła, przejść do drugiej kabiny, wyłączyć hebelki i włączyć znowu ten drugi koniec. W sumie można wyłączyć hebelki podczas przechodzenia, będąc jeszcze w przedziale maszynowym. To powinno zadziałać bo tam hebelki nie zareagują na światła.
Historia budowy pulpitu lokomotywy serii EU07.

Offline marcinn

  • Wiadomości: 65
    • Zobacz profil
  • Otrzymane polubienia: 86
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #73 dnia: 30 Kwietnia 2021, 16:26:09 »
Ok, rozumiem. Dzięki za wyjaśnienia!
Robię pulpit do stonki (custom, nie replika), a wszystkie heble od świateł są w niej na jednym pulpicie. 

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #74 dnia: 30 Kwietnia 2021, 16:34:01 »
No tak, przy tych jednokabinowych lokach to inna bajka :)
Historia budowy pulpitu lokomotywy serii EU07.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #75 dnia: 10 Maja 2021, 22:09:24 »
Aby obsłużyć więcej przełączników na moim Uno w celu testowania proponowanej przeze mnie obsługi świateł, musiałem dołożyć  multipleksery do hardware.
Nie prościej jakieś ekspandery na I2C albo PISO i SIPO i komunikować przez SPI?
Edit: I jak możesz to scal Swoje wpisy;)

PS: nowa wersja programu do testowania. Na razie nie przejmujcie się komunikatem o linijce kodu w dole aplikacji. Zapomniałem go usunąć ;)
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #76 dnia: 24 Maja 2021, 09:48:55 »
Szczerze? Nie wiem jak. Najchętniej usunąłbym większość nic nie wnoszących.
Przycisk "Modyfikuj" w prawym górnym rogu wypowiedzi, obok "Cytuj" ;)
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
Odp:  MaSzyna z portem COM (SerialPort)
« Odpowiedź #77 dnia: 15 Września 2021, 23:05:15 »
Czy w protokole byłoby miejsce na dodatkowe wyjścia cyfrowe na potrzeby ezetów/szynobusów? Przede wszystkim brakuje tu kwestii związanych z zezwoleniami i stanem otwarcia drzwi, ale przydałoby się również podświetlenie wybranego kierunku (tu ogólniej pod asynchrony).
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #78 dnia: 19 Października 2021, 15:34:40 »
Tak, jest na to przewidziane miejsce. Są puste bajty. Pasowałoby kiedyś siąść i zrobić porządek, dodać wszystkie aktualne ficzery itp.
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline marcinn

  • Wiadomości: 65
    • Zobacz profil
  • Otrzymane polubienia: 86
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #79 dnia: 19 Października 2021, 15:58:26 »
Pasowałoby kiedyś siąść i zrobić porządek, dodać wszystkie aktualne ficzery itp.

Mogę się tym zająć.

Offline Pawel1995

  • Wiadomości: 3
    • Zobacz profil
  • Otrzymane polubienia: 3
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #80 dnia: 08 Kwietnia 2023, 16:35:10 »
Witajcie, wraz z kolegą podjąłem sie budowy pulpitu, dla państwa symulatora, opierając się na Arduino. Jako że samo zrozumienie ramki do i z Arduino, zajęło dużo nam czasu, to chciałbym podsumować swoją wiedzę i prosiłbym o wskazanie gdzie czegoś nie zrozumiałem, albo pomyliłem. Naturalnie o kilka spraw chciałbym też dopytać.

Przeglądałem państwa wikipedię, ale zatrzymała sie na LPT, o uarcie nic nie widziałem:
https://wiki.eu07.pl/index.php/Informacje_zwrotne

Może na początek mały błąd: że świeżo po zainstalowaniu MaSzyny nie ma w eu07.ini linijek uarttune, uartfeature, uartdebug i program startowy nie potrafi ich dopisać, w sensie nie zapisuje tego co tam wpiszę. Ale po dopisaniu stosownych lini,  już zmiana poprzez program startowy działa.

Brakujące linijki wziąłem od p. Maćka:
https://baur.pl/soft-do-zmiany/

uart COM3 115200 0.03 0.03
uarttune 26 225 71 236 1.4 255 0.8 255 0.8 255 0.8 255 4000 255 800 255 150 255
uartfeature yes yes yes yes
uartdebug no

Pierwszą rzeczą o którą chciałem dopytać jest "0.03 0.03" w poprzednim poście państwo wspomnieli że to <częstość wysyłania danych (czas)>. Rozumiem że "0.03" to 30ms.
W kodzie programu znalazłem ">> uart_conf.updatetime;", dlatego też nie rozumiem dlaczego "0.03" jest dwa razy. Kiedy wpisałem "0.03" jeden raz program działał tak samo.

uarttune jest skalowaniem wartości, z COM do PC(dla hamulców) i z PC do COM(dla manometrów i mierników) żebym w mikrokontrolerze nie zużywał niepotrzebnie zasobów, na skalowanie wartości.

Czyli p. Maciek ustawił kolejno:
>> uart_conf.mainbrakemin = 26       // Hamulec główny (Train brake)
>> uart_conf.mainbrakemax = 225
>> uart_conf.localbrakemin = 71    // Hamulec dodatkowy (Independent brake)
>> uart_conf.localbrakemax = 236
>> uart_conf.tankmax = 1.4      // Trzeci okrągły manometr - Ciśnienie w zbiorniku głównym(Tank press)
>> uart_conf.tankuart = 255
>> uart_conf.pipemax = 0.8       // Drugi okrągły manometr - Ciśnienie w przewodzie głównym(Pipe press)
>> uart_conf.pipeuart = 255
>> uart_conf.brakemax = 0.8       // Pierwszy okrągły manometr - Ciśnienia hamulców (Break press)
>> uart_conf.brakeuart = 255
>> uart_conf.pantographmax = 0.8   // (Domyślam się, nie sprawdziłem) Ciśnienie pantografu (pantograph press)
>> uart_conf.pantographuart = 255
>> uart_conf.hvmax = 4000       // Piąty prostokątny miernik - Napięcie od pantografu (HV voltage)
>> uart_conf.hvuart = 255
>> uart_conf.currentmax = 800       // Trzeci i czwarty prostokątny miernik - Prąd silników (HV current 1 oraz HV current 2)
>> uart_conf.currentuart = 255
>> uart_conf.lvmax = 150       // Drugi prostokątny miernik - Napięcie baterii (LV voltage)
>> uart_conf.lvuart = 255

W okrągłych nawiasach jest nazwa z opisu ramki danych "20220910 Maszyna UART.xlsx" z pierwszego wpisu.

Niestety ciśnienia pantografu nie sprawdziłem, próbowałem, ale te wskazanie ani drgnęło podczas testowej jazdy.

Czyli w ramach hamulców głównego(mainbrake) i lokomotywy(localbrake):
jeżeli mój potencjometr daje wartości od 70 do 180 to ustawię:
>> uart_conf.mainbrakemin = 70      // <- minimalna pozycja hamulca
>> uart_conf.mainbrakemax = 180    // <- maksymalna pozycja hamulca
a MaSzyna sama przelicza ile powinna ustawić, na podstawie otrzymanej wartości.

Z kolei tank, pipe, brake, pantograph, hv, current, lv to prostokątne i okrągłe mierniki na symulacji.
I działa to tak że '***uart' to skala górna jaką mamy na mierniku fizycznym, a '***max' to największa liczba jaką wpisuje np. jako wypełnienie PWM w Arduino.
Czyli jak dla prądu pierwszego zestawu silników (HV current 1) mam skale 1200A,
a maksymalne wypełnienie PWM w Arduino mam 65535(to tylko przykład, normalnie jest 255) to wpiszę:
>> uart_conf.currentmax = 1200
>> uart_conf.currentuart = 65535
i dostanę od maszyny liczbe "gotową" wyskalowaną wartość, którą nie musze przekształcać i wpisuje bezpośrednio do wypełnienia PWM.

uartfeature <nastawnik> <bocznik> <hamulec> <hamulec lokomotywy>
jest prosty: jeżeli jest "yes" to wartość wysłana z Arduino do MaSzyny jest wiodąca i nie można ustawić z klawiatury bo ta nastawa będzie nadpisywana. Jeżeli "no" to wartości z Arduino nie będą brane pod uwagę i sterowanie wiodące jest z klawiatury(w przypadku nastawnika i bocznika jeszcze można sterować za pomocą "Switch group", wtedy też jest na "no" w uartfeature).

Wspomniane cztery nastawy wysyłamy zgodnie z "20220910 Maszyna UART.xlsx" -> Data from pulpit to MaSzyna
<nastawnik> -> Master controller: podajemy liczbe od 0 do 43 i jest to aktualna pozycja.
<bocznik> -> Second controller: podajemy liczbe od 0 do 7 i jest to aktualna pozycja.
<hamulec> -> Train brake: podajemy odczytaną wartość analogową, MaSzyna sama ją wyskaluje za pomocą uarttune.
<hamulec lokomotywy> -> Independent brake: podajemy odczytaną wartość analogową, MaSzyna sama ją wyskaluje za pomocą uarttune.

Wspomniane wcześniej "Switch group" koreluje z "eu07_imput-uart.ini"

Switch group to 48 bitów sterujących(Z arduino DO MaSzyny) gdzie w "eu07_imput-uart.ini" wpisujemy numer bitu, rodzaj akcji, akcje. Akcja jest taka same jak w "eu07_input-keyboard.ini", więc wysłanie ustalonego bitu z Arduino do MaSzyny wywołuje akcję, którą normalnie możemy zrobić skrótem klawiszowym.

Rodzaje akcji są dwie impulse(guzik) oraz toggle(przełącznik). Po "impulse" dajemy jedną akcje, po "toggle" dwie akcje, pierwsza będzie wykonana kiedy bit jest '1', druga kiedy bit jest '0';

Na podstawie przykładu programu z wcześniejszego wpisu napisałem program na kilka podstawowych kontrolek/przełączników, oraz nastawnik i bocznik, na Arduino:
https://github.com/kaczor112/SterownikKontrolekMaSzyna
Niestety nie wiem dlaczego działa mi tylko dla prędkości 9600.

Nie potrafię sie komunikować z MaSzyną dla innych prędkości nawet 19200,
jeżeli ktoś z państwa ma na to radę to bardzo bym prosił o pomoc!

Niestety nie znam za dobrze angielskiego i przy czytaniu "20220910 Maszyna UART.xlsx" brakowało mi go.
Jeżeli mają państwo jakąś rozpiskę co jest czym, angielsko - polską to bardzo bym prosił.
Chodzi mi wyłącznie o "Indicator group 0-4", bo do pozostałych, jak widać wyżej już doszedłem(Hasler to 'Tacho').
Na chwilę obecną wiem że:
alerter - czuwak
line breaker - lampa wyłącznika szybkiego
motor resistors - lampa jazdy na oporach
Jeżeli ma ktoś z państwa rozpisane te bity również po polsku, to ułatwiłoby to nam zadanie!

Zdaje sobie sprawę że moja wiadomość nie wnosi nic nowego.
Może jedynie stanowić małe ułatwienie dla przyszłych nowicjuszy jak ja.
A ja będę miał zysk taki że upewnię sie czy wszystko dobrze zrozumiałem,
naturalnie proszę o podpowiedź gdzie coś sknociłem.

Brakuje mi jeszcze do pierwszego prostokątnego miernika(prąd ładowania akumulatora z przetwornicy), wiedzieć który sygnał(Data from MaSzyna) od MaSzyny jest właśnie dla niego.

Bardzo dziękuję za wszelką podpowiedź!

Offline Hirek

  • Wiadomości: 296
  • ugułem to siemens fajne wozy robi
    • Zobacz profil
    • Kanał YT
  • Otrzymane polubienia: 213
Odp: MaSzyna z portem COM (SerialPort)
« Odpowiedź #81 dnia: 11 Kwietnia 2023, 18:41:45 »
Wpisy uart do eu07.ini można wygenerować MVD SerialPort Testerem.

Odnośnie tłumaczenia arkusza to na szybko machnąłem na podstawie tamtej anglojęzycznej wersji to:
https://docs.google.com/spreadsheets/d/1Vfiz9cuiguorj52YouhP_floWe6zszJxulRkOrARFt4/edit?usp=sharing

Odnośnie danych z pulpitu do symulatora to funkcje przypisujemy w pliku eu07-input_uart.ini. Polecenia można zaczerpnąć z eu07-input_keyboard.ini (tam są opisane). Składnia wygląda nastepująco
(numer bitu z grup) (impulse/toggle) (komenda) [komenda alternatywnie w przypadku toggle]Numer bitu z grup można również odnaleźć w MVD SerialPort Testerze.

Cytuj
Niestety nie wiem dlaczego działa mi tylko dla prędkości 9600.
Wystarczy w tej linijce zmienić prędkość transmisji i powinno zatrybić.

Jakbyś potrzebował pomocy z czymś więcej, to możesz do mnie uderzyć śmiało na prywatnej wiadomości - najwyżej się wymienimy jakimś bardziej "chatowym" kontaktem to pomogę, na ile będę potrafił.
Z maszyną od PC 08.13
Tak, to ten furas co wydał MaSzynę xD