Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak porozumieć ze sobą dwa programy

Leonisko1234 16 Wrz 2015 15:02 825 8
  • #1 16 Wrz 2015 15:02
    Leonisko1234
    Poziom 6  

    Witam,
    Chciałem połączyć ze sobą dwa programy (jeden.dll plugin do gry,który wyciąga informację i jeden java który je wyświetla i podaje do arduino leonardo)
    Ale nie wiem jak przesłać informacje z dll do javy i na odwrót.

    0 8
  • Pomocny post
    #2 18 Wrz 2015 12:34
    Rezystoreczek
    Poziom 20  

    Nie znasz ani jednej metody? :?:
    - po sieci, wysyłaj pakiety TCP/IP
    - wspólny plik tekstowy i na przemian zapis i odczyt? - trochę wiocha ale by poszło :D
    - z poziomu natywnego kodu można władować plik javy - ale dużo zabawy z tym
    napisz wiecej co to za dll.

    0
  • #3 18 Wrz 2015 12:50
    szelus
    Specjalista - Mikrokontrolery

    DLL to biblioteka, a nie samodzielny program, w sensie, że musi zostać załadowana do innego, wykonującego się programu, który z kolei musi wywołać jej funkcje.

    Natomiast do komunikacji pomiędzy procesami system operacyjny udostępnia różnego rodzaju API (funkcje) typu IPC. Trzeba sobie coś wybrać, ale oba komunikujące się programy (procesy) muszą korzystać z danego API.

    Jeżeli ta biblioteka jest pluginem do gry i służy do wyciągania informacji, to rozumiem, że powinna udostępniać te informacje korzystając z jednego z takich API (interfejs). Z kolei, jeżeli ten drugi program jest w Javie i masz do niego źródła, to wystarczy w odpowiednim miejscu skorzystać z tego interfejsu.

    Więcej bez konkretów nie jestem w stanie powiedzieć.

    0
  • #4 18 Wrz 2015 13:31
    Rezystoreczek
    Poziom 20  

    API? Ale autor nnapisał o DWÓCH PROGRAMACH, w sensie zrozumiałem że mu chodzi o osobne procesy.
    @szelus - chodzi o osobne procesy czy tylko "osobne kody" :?:

    0
  • #5 18 Wrz 2015 18:00
    szelus
    Specjalista - Mikrokontrolery

    No, ja też zrozumiałem, że chodzi o osobne procesy, stąd IPC.
    Chyba, że ta dll-ka jest zrobiona jako "plugin" do procesu klienta, który chciałby się z grą skomunikować, a nie plugin do gry i "owija" komunikację międzyprocesową.

    No a API... Powinienem był pewnie użyć słowa metoda, a API to konkretyzacja interfejsu użytkowego danej metody w danym systemie operacyjnym. Skrót myślowy.

    0
  • #6 22 Wrz 2015 14:34
    Leonisko1234
    Poziom 6  

    Ta dll'ka to plugin który ładuję gra i ten plugin zapisuje zmienne (np.prędkość jako "z")
    Chciałbym mieć tą zmienną na arduino. Myślałem ,że przez program java (już używałem do tego typu zastosowania) był by dobry.

    0
  • #7 22 Wrz 2015 15:44
    szelus
    Specjalista - Mikrokontrolery

    Ale ta dll-ka zapisuje gdzie? W pliku? W jakim formacie?
    Jak w pliku, to tak jak pisał Rezystoreczek, w swoim programie okresowo czytasz i wysyłasz.

    0
  • #8 22 Wrz 2015 17:36
    Leonisko1234
    Poziom 6  

    Kod:
    public synchronized void close() {
    x = float GetControllerValue(1, 2)
    }


    To w nawiasie odpowiada za prędkość(dane z których ma pobierać)

    0
  • #9 28 Wrz 2015 16:25
    Leonisko1234
    Poziom 6  

    Dziękuje wam za pomoc.
    Temat rozwiązałem.

    0