logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak napisać program do generowania stanów logicznych na porcie LPT?

darkonel 03 Lut 2007 23:49 1692 9
REKLAMA
  • #1 3525384
    darkonel
    Poziom 19  
    Posty: 431
    Pomógł: 16
    Ocena: 38
    Witam. Mój problem polega na tym, iż ów generator jest tematem mojej pracy inżynierskiej, a na dzień dzisiejszy nie posiadam dostatecznej wiedzy by go zrealizować.
    Myślę, że niezłym rozwiązaniem byłoby napisanie jakiegoś programu, który generowałby stany logiczne bezpośrednio na porcie LPT odtwarzane z graficznie narysowanych przebiegów prostokątnych w programie, tylko skąd go wziąć albo jak się do niego zabrać? pomóżcie

    Moderowany przez jankolo:

    Przeniosłem z działu Komputery Software

  • REKLAMA
  • #2 3525821
    tomaszdjt
    Poziom 20  
    Posty: 367
    Pomógł: 44
    Ocena: 55
    witam
    jak znasz visualbasica to ci mogę pomóc robiłem coś podobnego
  • #3 3526088
    darkonel
    Poziom 19  
    Posty: 431
    Pomógł: 16
    Ocena: 38
    Jeżeli chodzi o programowanie to tylko znam język C, który wykorzystuję w VisualStudio. Niestety ograniczam się jedynie do tworzenia prostych aplikacji wprowadzania i wyprowadzania danych znakowych. Nie mam pojęcia o tworzeniu grafiki. Może jakieś namiary na cos dobrego? nie wiem jak się do tego zabrać. Bardzo proszę o podanie czegokolwiek (linki, propozycje, słowa kluczowe itp) co mogłoby mi pomóc opanować temat i praktycznie zabrać się za realizację generatorka.
    :arrow:tomaszdjt jeśli znacz zarysy tematu to mile widziane tutaj Twoje posty.
  • REKLAMA
  • #4 3526461
    Faust
    Poziom 17  
    Posty: 135
    Pomógł: 22
    Ocena: 4
    Temat nie wydaje się skomplikowany. Jeśli chodzi o grafikę, to gdi (największy opis po polsku znajdziesz na http://www.gamedev.pl/ w dziale tutoriale => Windows API => Windows GDI) do tego celu na pewno wystarczy. W sumie do samego LPT potrzebujesz tylko tablicy stanów z czasami ile poszczególne stany mają trwać. Główny problem to chyba precyzja odmierzania czasu, pod windowsem.
  • #5 3526536
    SylwekMx
    Poziom 12  
    Posty: 18
    Ocena: 1
    http://maxlam.webpark.pl/lpt007.rar

    Kiedyś jak jeszcze bawiłem się kompilatorem to wykonałem taki programik na lpt może ci się przyda są źródła więc możesz sobie obejrzeć o ile dobrze pamiętam (nie chce mi się przeglądać źródła a było to dobrych kilka lat temu) to odwołania do lpt są w ASM po uprzednim pobraniu z bios informacji o adresie gdyż może się różnić, tak, więc powinno działać w większości komputerów. Kompilowane w Borlandzie jeśli dobrze pamiętam bo dopiero potem przerzuciłem się na Visuala.
  • REKLAMA
  • #6 3526876
    darkonel
    Poziom 19  
    Posty: 431
    Pomógł: 16
    Ocena: 38
    Cytat:
    http://maxlam.webpark.pl/lpt007.rar

    niestety po otwarciu pliku exe wyrzuca mi co sekundę błąd krytyxzny (pracuje na XP) i nie mam możliwosci oceny stopnia jego przydatności.
    Cytat:
    Temat nie wydaje się skomplikowany. Jeśli chodzi o grafikę, to gdi (największy opis po polsku znajdziesz na http://www.gamedev.pl/ w dziale tutoriale => Windows API => Windows GDI)

    wszystko pieknie opisane, tylko jak grafikę powiązać teraz ze sterowaniem portu LPT? może ktoś rozgryzał kiedyś podobny problem?

    Chodzi mi dokładnie o stworzenie takiej aplikacji, w której oknie po otwarciu możnaby narysować prostokątne przebiegi niezależne na przykłąd dla 4 wyjsć (Q0, Q1, Q2, Q3) a czas trwania jednego umownego cyklu możnaby ustawić jakąś liczbą (0 ÷ 255) co dawałoby fizycznie czas w granicach od kilku ms do np. jednej sekundy na pojedynczy cykl (gdyby w oknie programu zastosować siatkę po której możnaby rysować te przebiegi, to 1 cykl reprezentowałby przesunięcie o jedną kratkę)
  • REKLAMA
  • #7 3527724
    tomaszdjt
    Poziom 20  
    Posty: 367
    Pomógł: 44
    Ocena: 55
    witam
    proponowałbym tak najpierw wporowadzasz dane np czas trwania 1 potem czas trwania 0 znowu czas trwania 1 itd następnie program by narysował przebieg trochę od innej strony ale łatwiej
  • #8 3528393
    SylwekMx
    Poziom 12  
    Posty: 18
    Ocena: 1
    darkonel napisał:
    Cytat:
    http://maxlam.webpark.pl/lpt007.rar

    niestety po otwarciu pliku exe wyrzuca mi co sekundę błąd krytyxzny (pracuje na XP) i nie mam możliwosci oceny stopnia jego przydatności.


    Program był kompilowany dla win98 nigdy go nie testowałem na xp jak go robiłem to o xp nie było mowy ;-) możesz spróbować go przekompilować lub zainstaluj sobie win98 i zobacz tak wygląda zrzut ekranu:

    Jak napisać program do generowania stanów logicznych na porcie LPT?

    W źródle możesz sobie prześledzić jak wygląda implementacja obsługi portu w asm według mnie jest to najbardziej naturalny sposób portów i najszybszy;-)

    Tak na marginesie widać jak Bill dba o kompatybilność wstecz ;-)
  • #9 3529701
    PiRoman2
    Poziom 20  
    Posty: 337
    Pomógł: 22
    Ocena: 15
    poszukaj UserPort (odblokowuje odwołania do portów pod Win2K i XP)
  • #10 3532352
    Faust
    Poziom 17  
    Posty: 135
    Pomógł: 22
    Ocena: 4
    Jeśli chodzi o relacje grafika <=>reszta, to w sumie są 2 oddzielne rzeczy. Grafika jest to tylko pomoc dla użytkownika. Po prostu jak będziesz klikał myszką, w okienku, to musisz pobierać współrzędne kursora zamienić je i zapisać to jakoś, np. do jakiejś tablicy np. int tab[czas]. Siatka to bardzo dobry pomysł, ale trzeba by pomyśleć o jej skalowaniu (dla osi czasu), jakiś przycisk, albo klawisz.
    Czyli sumując wyglądało by to tak, że klikasz gdzieś w układzie współrzędnych, konwertujesz współrzędne kursora na współrzędne twojego układu i zapisujesz do tablicy struktur zmiana[numer]. Gdzie ta struktura wygląda tak:
    struct zmiana
    {
    bool stan; //stan logiczny
    unsigned int czas; //”początek stanu”
    };
    Ja bym kombinował coś w tym kierunku.

Podsumowanie tematu

✨ Dyskusja dotyczy stworzenia programu do generowania stanów logicznych na porcie LPT, który odtwarzałby przebiegi prostokątne narysowane graficznie w aplikacji. Autor poszukuje wskazówek dotyczących implementacji, zwłaszcza integracji grafiki z kontrolą portu LPT. Proponowane rozwiązania obejmują wykorzystanie języka C w Visual Studio oraz Windows GDI do obsługi grafiki, z podkreśleniem problemu precyzyjnego odmierzania czasu pod systemem Windows. Udostępniono przykładowy program napisany w Borlandzie z obsługą portu LPT w asemblerze, jednak wymaga on dostosowania do Windows XP lub uruchomienia pod Windows 98. Sugerowano użycie sterownika UserPort do odblokowania dostępu do portów w Windows 2000 i XP. W kwestii interfejsu graficznego rekomendowano implementację siatki czasowej, konwersję współrzędnych kliknięć myszy na tablicę stanów logicznych z czasem trwania, reprezentowaną strukturą zawierającą stan i czas początku stanu. Propozycje obejmują także wprowadzanie danych czasowych sekwencyjnie, co ułatwiłoby generowanie przebiegów. Całość wskazuje na potrzebę połączenia niskopoziomowej obsługi portu LPT z graficznym interfejsem użytkownika do rysowania i definiowania przebiegów logicznych.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA