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

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

Offline adi-edu

  • Wiadomości: 3
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: MaSzyna z portem COM
« Odpowiedź #30 dnia: 10 Lipca 2018, 14:50:28 »
Jestem za, bo z punktu widzenia nowicjusza w temacie jest trochę namieszane ;)

P.S. PANOWIE - wielkie dzięki za kawał dobrej roboty!!! :D

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM
« Odpowiedź #31 dnia: 12 Lipca 2018, 09:56:20 »
Wracam do domu 6.08.br. i będę skrobał całość jeszcze raz. W pierwszym poście zrobię edit jak się da i napiszę jeszcze raz wszystko przejrzyście.
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline Łakasabasz

  • Wiadomości: 25
    • Zobacz profil
  • Otrzymane polubienia: 6
Odp: MaSzyna z portem COM
« Odpowiedź #32 dnia: 12 Lipca 2018, 18:38:10 »
O i dobrze

Offline adi-edu

  • Wiadomości: 3
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: MaSzyna z portem COM
« Odpowiedź #33 dnia: 26 Sierpnia 2018, 19:03:25 »
I  jak Panowie, ruszyło się coś w temacie?
Dodatkowo pytanie o wasze sposoby na fizyczny nastawnik jazdy np EN57? Tzn. Jak sczytujecie położenie do mikrokontrolera?

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM
« Odpowiedź #34 dnia: 27 Sierpnia 2018, 16:06:53 »
Troszkę cierpliwości. Mam teraz trochę pracy. Kilka osób już pracuje nad kodem dla Arduino. W dziale "Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty" można poczytać co nieco na ten temat. Postaram się szybko naskrobać coś sensownego choć może być mało jasne ;)
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline skorakora

  • Wiadomości: 68
    • Zobacz profil
  • Otrzymane polubienia: 34
Odp: MaSzyna z portem COM
« Odpowiedź #35 dnia: 09 Grudnia 2018, 19:52:13 »
Gdzie jest ta dokumentacja ?
Bo nigdzie znaleźć nie mogę

Offline deletet

  • Wiadomości: 11
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: MaSzyna z portem COM
« Odpowiedź #36 dnia: 04 Maja 2019, 23:29:47 »
Witam, jakieś nowości odnośnie projektu?

Offline kuba_mk

  • Wiadomości: 7
    • Zobacz profil
  • Otrzymane polubienia: 3
Odp: MaSzyna z portem COM
« Odpowiedź #37 dnia: 27 Maja 2019, 21:39:14 »
Witam i przyłączam się do pytania.
Czy w ostatniej wersji symulatora 19.04 komunikacja przez uart odbywa się bez problemów?
I gdzie można znaleźć dokumentację odnośnie wymiany danych?

Bo generalnie plik moich marzeń linkowany w tym wątku - http://pliki.pwsztar.edu.pl/~m_witek/maszyna/ - jest 503 forbidden
Da się coś z tym zrobić? Albo może ktoś sobie zapisał?
« Ostatnia zmiana: 28 Maja 2019, 22:38:20 wysłana przez kuba_mk »

Offline kuba_mk

  • Wiadomości: 7
    • Zobacz profil
  • Otrzymane polubienia: 3
Odp: MaSzyna z portem COM
« Odpowiedź #38 dnia: 06 Lipca 2019, 23:00:28 »
Jestem po testach metodą prób i błędów, zbudowaniu testowego pulpitu i mogę odpowiedzieć sobie na pytania. Może ktoś skorzysta...

Tak, komunikacja przez uart z Maszyną w wersji 19.04 działa.
Generalnie komunikacja odbywa się wg schematu opisanego w pierwszym poście tego wątku (te poskreślane). Poza jednym wyjątkiem - sygnał z nastawnika, bocznika i hamulców trzeba wysyłać o jeden bajt wcześniej.

Pojawiły się za to nowe pytania. Ktoś wie w którym miejscu Maszyna oczekuje od kontrolera pozycji nawrotnika??

No i po raz kolejny apeluję o udostępnienie dokumentacji dot. komunikacji z Maszyną po uart, jeśli ktoś posiada.

Offline Milek7

  • Administrator
  • Wiadomości: 1047
    • Zobacz profil
  • Otrzymane polubienia: 902
Odp: MaSzyna z portem COM
« Odpowiedź #39 dnia: 06 Lipca 2019, 23:09:41 »
Cytuj
Pojawiły się za to nowe pytania. Ktoś wie w którym miejscu Maszyna oczekuje od kontrolera pozycji nawrotnika??
Nie ma obecnie wyciągniętego osobnego parametru. Można podpiąć sterowanie pod polecenia reverserincrease i reverserdecrease w konfiguracji eu07_input-uart.ini
Do informacji jak działa komunikacja można popatrzeć do kodu:
https://github.com/eu07/maszyna/blob/master/uart.cpp
https://github.com/eu07/maszyna/blob/master/uart.h

Offline kuba_mk

  • Wiadomości: 7
    • Zobacz profil
  • Otrzymane polubienia: 3
Odp: MaSzyna z portem COM
« Odpowiedź #40 dnia: 20 Lipca 2019, 02:09:39 »
Dzięki za odpowiedź. Nawrotnik ogarnięty.

Ale pojawił się problem z nastawnikiem.
Odczytuję jego pozycję z potencjometru, mapuję z zakresu przetwornika 0-1023 na 0-42 i wysyłam: 
TablicaDoPC[6] = map(analogRead(A1), 0, 1023, 0, 42);Po uruchomieniu symulatora wygląda obiecująco. Koło nastawnika wirtualnej kabiny obraca się razem z moim potencjometrem w całym zakresie. Tylko po uruchomieniu lokomotywy nie ma jazdy. Zadaję pozycję i... nic się nie dzieje. Problem nie występuje po "odłączeniu" nastawnika w pliki eu07.ini i sterowaniu klawiaturą. Moja idea chyba nie jest zła bo identycznie mam zrealizowany bocznik (tylko w zakresie pozycji 0-6) i działa. Problem nie jest sprzętowy, bo zamieniałem je miejscami. Z bocznikiem działa, z nastawnikiem nie. Co ciekawe, kiedy mapuję nastawnik tylko na 6 pozycji, to mogę ruszyć. Co więc robię źle? Jest jakiś warunek, którego nie spełniam, że nie mogę ruszyć? Dlaczego jeśli wysłam liczbę z zakresu 0-6 to jadę, a jeśli z zakresu 0-42 to nie? Nawet jeśli pozycję nastawnika mam zmapowaną dla przedziału 0-42, a potem podaję nawet pierwszą pozycję, to też nie mogę ruszyć.

Niestety nie jestem przesadnie biegły w programowaniu, stąd może głupie pytania...  Ze znalezieniem w kodzie informacji, że coś "idzie" na szóstym bajcie, a nie na siódmym sobie poradziłem. A tego nie mogę ugryźć.

Offline kuba_mk

  • Wiadomości: 7
    • Zobacz profil
  • Otrzymane polubienia: 3
Odp: MaSzyna z portem COM
« Odpowiedź #41 dnia: 21 Lipca 2019, 13:05:07 »
Przypadkiem wpadłem na genialne w swojej prostocie rozwiązanie problemu. Zwyczajnie nie mogą być jednocześnie włączone programy ArduinoIDE i Maszyna, bo się gryzą i powstaje taki oto efekt.  Nie było pytania. Jadę dalej...

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM
« Odpowiedź #42 dnia: 14 Sierpnia 2019, 16:44:11 »
Pytanie do EXEkoderów. Chciałbym się przymierzyć do podłączenia rysików Haslera i widziałem, że są zarezerwowane bity na tę okoliczność (bajt 6 bity od 0 do 4). W tej chwili mam wrażenie, że tylko jazda pod prądem (B6b4) oraz hamowanie, ciśnienie w cylindrze hamulcowym (B6b3) są wyprowadzone. Ktoś mógłby to potwierdzić i jeśli tak to jest to czy pozostałe wyjścia można byłoby dopisać? Wg dokumentacji możliwości jest sporo ale ja dla przykładu mam Haslera z 5 dodatkowymi zapisami (1 pojedynczy i 2 podwójne opisane jako 5 ELR). W takiej konfiguracji można zapisać poza jazdą pod prądem/bez prądu oraz hamowanie (to co jest teraz), także przejechanie nad rezonatorem SHP z rozróżnieniem kierunku jazdy oraz kasowanie CA. W zasadzie kasowanie CA mogę ogarnąć poza symulacją, przejechanie nad rezonatorem SHP trochę trudniej ale też raczej mogę choć nie bardzo mogę ustalić, z której kabiny jest jazda bo to jest chyba rejestrowane przy SHP.
Historia budowy pulpitu lokomotywy serii EU07.

Offline Milek7

  • Administrator
  • Wiadomości: 1047
    • Zobacz profil
  • Otrzymane polubienia: 902
Odp: MaSzyna z portem COM
« Odpowiedź #43 dnia: 14 Sierpnia 2019, 16:53:42 »
Obecnie jest: ciśnienie w cylindrze, prąd na silnikach, aktywny radiostop i mruganie/buczenie ca/shp.

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM
« Odpowiedź #44 dnia: 14 Sierpnia 2019, 17:00:24 »
Hmm to ciekawe, bo ciśnienie i prąd udało mi się zaobserwować ale pozostałych to już nie bardzo. Czy to na wspomnianych bitach bajtu 6 jest czy inaczej?
W sumie to te opcje nie są potrzebne bo kasowanie CA mam skąd wziąć i od biedy najechanie na rezonator (czyli zapalenie lampki SHP) wystarczy. Jedynie problemem jest rozpoznanie z której kabiny jadę, bo tego niestety nie mam jak rozpoznać. Da radę to wyprowadzić na COM, żeby było wiadomo czy jadę z A czy z B?
« Ostatnia zmiana: 14 Sierpnia 2019, 17:52:46 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM
« Odpowiedź #45 dnia: 08 Kwietnia 2020, 18:42:43 »
Sama komunikacja trochę ewoluuje i aktualne moje prace związane są bardziej z tą modyfikacją @Milek7.
Postaram się to wszystko odświeżyć i opracować. Mam dużo pracy więc proszę o cierpliwość. Jeżeli ktoś jest ciekawy co jest przesyłane, polecam zobaczyć pliki UART.c na repozytorium.

@Tmj i @Milek7 czy możemy ramkę danych ujednolicić?
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2351
Odp: MaSzyna z portem COM
« Odpowiedź #46 dnia: 08 Kwietnia 2020, 20:12:54 »
Postaram sie wrzucic milkowa wersje uart.h/cpp do nastepnej aktualizacji, jesli nic sie przy okazji nie zbobczy.

Offline miko22

  • Wiadomości: 616
  • Powoli wracam z "promocją"...
    • Zobacz profil
    • Nasze-Symulatory.pl
  • Otrzymane polubienia: 196
Odp: MaSzyna z portem COM
« Odpowiedź #47 dnia: 09 Kwietnia 2020, 03:03:03 »
U Milka nie ma chyba tych dodatków, które Ty wprowadzałeś, np. bit przebywania w kabinie A/B.

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM
« Odpowiedź #48 dnia: 09 Kwietnia 2020, 09:32:21 »
Wydaje mi się, że zmiana kabiny jest u Milka. Częściej korzystam z jego exe i mam poprawny zapis na taśmie.
Historia budowy pulpitu lokomotywy serii EU07.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2351
Odp: MaSzyna z portem COM
« Odpowiedź #49 dnia: 09 Kwietnia 2020, 17:38:40 »
Nie wiem jak na (starszej) paczkowej, ale w biezacej galazce /sim informacja o kabinie jest podawana, to tylko u mnie brakuje dodatkowych elementow :>

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM
« Odpowiedź #50 dnia: 10 Kwietnia 2020, 09:26:42 »
A dodana jest obsługa lampki przekaźnika różnicowego obwodu głównego? Jest na nią miejsce na 5 Bajcie 3 bicie, między między nadmiarowy przetwornicy a nadmiarowy silników trakcyjnych.

Milek7 ma prędkość na 16 bitach ale bez wartości po przecinku. Co myślicie o tym, aby zwiększyć dokładność prędkości do 0,1km/h? 4 młodsze bity na wartości po przecinku lub prędkość mnożyć x10 i pulpit by już sobie to dekodował.
Aby zachować kompatybilność wsteczną z 8bitową prędkością można zrobić wpis do eu07.ini do parametru uartfeature na koniec z defaultową wartością no. Osobiście twierdzę, że prościej jest mnożyć prędkość x10 i w takiej formie przesyłać bez kombinacji z przesuwaniem bitów.
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline miko22

  • Wiadomości: 616
  • Powoli wracam z "promocją"...
    • Zobacz profil
    • Nasze-Symulatory.pl
  • Otrzymane polubienia: 196
Odp: MaSzyna z portem COM
« Odpowiedź #51 dnia: 10 Kwietnia 2020, 16:05:25 »
W exe Milka jest dostępny parametr uarttachoscale do wpisania w ini. Podanie mu wartości 10.0 daje takie właśnie rezultaty, jak opisałeś, czyli prędkość jest mnożona razy 10 i dzięki temu podawana z dokładnością do 0,1km/h.

Offline Milek7

  • Administrator
  • Wiadomości: 1047
    • Zobacz profil
  • Otrzymane polubienia: 902
Odp: MaSzyna z portem COM
« Odpowiedź #52 dnia: 10 Kwietnia 2020, 16:37:45 »
xD
Już sam zapominam co dodawałem..

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM
« Odpowiedź #53 dnia: 10 Kwietnia 2020, 17:27:46 »
W exe Milka jest dostępny parametr uarttachoscale do wpisania w ini. Podanie mu wartości 10.0 daje takie właśnie rezultaty, jak opisałeś, czyli prędkość jest mnożona razy 10 i dzięki temu podawana z dokładnością do 0,1km/h.
Dobrze wiedzieć. Dodam do programu zaraz :)
Milek7 jest więcej takich niespodzianek? ;)
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline miko22

  • Wiadomości: 616
  • Powoli wracam z "promocją"...
    • Zobacz profil
    • Nasze-Symulatory.pl
  • Otrzymane polubienia: 196
Odp: MaSzyna z portem COM
« Odpowiedź #54 dnia: 10 Kwietnia 2020, 19:40:44 »
Na wyższych bajtach jest też data, godzina, przebyty dystans w decymetrach i numer wybranego kanału radiowego, ale co na którym i jak, to nie pamiętam. Na pierwszych czterech dostaje się 0xEF i tak samo trzeba wysyłać na pierwszych czterech 0xEF. Tylko to jeszcze chyba zależy, które exe. Ja używam w zasadzie tylko simowego, tylko z kolei shadery do niego nie są dostosowane do paczki 20.01, no i nie ma wielu zmian od tmj (choćby zrzucanie powietrza z PG przy wyłączonej baterii).

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2351
Odp: MaSzyna z portem COM
« Odpowiedź #55 dnia: 11 Kwietnia 2020, 01:58:56 »
Wersja 20.410 dostala przeszczep modulu komunikacji uart, powinna dzialac tak samo jak galazka sim. Doszla przy okazji sygnalizacja stanu lampki przekaznikow roznicowych (bajt 5, bit 3)

Aktualna zawartosc ramki:

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.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
};
« Ostatnia zmiana: 11 Kwietnia 2020, 02:02:29 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
« Odpowiedź #56 dnia: 11 Kwietnia 2020, 11:44:40 »
Przetestowane i jest git. Mogę zrezygnować z przełącznika wersji exe i dostosowania się do ramki danych :)
Teraz tylko muszę przerobić kod w Arduino żeby uwzględnić obsługę lampki obwodu głównego z symulatora... ale może poczekam na obsługę (enable/disable) zaworu trójdrogowego... Jest szansa?
I jeszcze pytanie czy lampka przekaźników różnicowych działa tylko na 4E czy też na 303E? Bo mam wrażenie, że na 303E nie świeci.
« Ostatnia zmiana: 12 Kwietnia 2020, 17:49:50 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2609
Odp: MaSzyna z portem COM
« Odpowiedź #57 dnia: 12 Kwietnia 2020, 20:23:30 »
W sensie nie wysyła sygnału na port, czy w którymś modelu kabiny coś skopane? Wszystko jest siódemką, to 4e od 303e nie powinny się absolutnie niczym różnić pod kątem zwracanych danych.
Mój kanał youtube

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: MaSzyna z portem COM
« Odpowiedź #58 dnia: 12 Kwietnia 2020, 20:38:35 »
To muszę jeszcze raz dokładnie porównać bo na 4E różnicowy działa jak na filmie, a mam wrażenie, że na 303E nie zapala się lampka po popełnieniu. Może coś przegapiłem bo szybko testowałem. Nie było reakcji na symulacji i w związku z tym na pulpicie też się nie zapaliła więc pomyślałem, że 303E ma inaczej niż 4E.
Update. Rzeczywiście to moje niedopatrzenie. Zrobiłem testy jeszcze raz i rzeczywiście różnicowy działa w obu przypadkach.
« Ostatnia zmiana: 12 Kwietnia 2020, 22:50:28 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: MaSzyna z portem COM
« Odpowiedź #59 dnia: 13 Kwietnia 2020, 13:06:43 »
Na wyższych bajtach jest też data, godzina, przebyty dystans w decymetrach i numer wybranego kanału radiowego, ale co na którym i jak, to nie pamiętam. Na pierwszych czterech dostaje się 0xEF i tak samo trzeba wysyłać na pierwszych czterech 0xEF. Tylko to jeszcze chyba zależy, które exe. Ja używam w zasadzie tylko simowego, tylko z kolei shadery do niego nie są dostosowane do paczki 20.01, no i nie ma wielu zmian od tmj (choćby zrzucanie powietrza z PG przy wyłączonej baterii).
W arkuszu kalkulacyjnym są rozpisane ramki w dwie strony.
@Tmj: dorzucam link do Twojego exe.
Wszystko da się zrobić tylko jeszcze nie wiem jak.