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.

UMT 01 - tester materiałów

Gloomwing 21 Sty 2014 15:59 906 2
  • #1 21 Sty 2014 15:59
    Gloomwing
    Poziom 17  

    Witam!

    na początku chciałbym przeprosić, jeśli trafiłem do złego działu, ale to jest miejsce, które najmniej nie pasuje...

    Od paru godzin męczę się z odczytem danych z powyższego urządzenia.
    Posiadam takie urządzenie "tester materiałów UMT 01", które podłączone było do średniowiecznego komputera (na tzw. duże dyskietki). Na owym komputerze zainstalowany był program do obsługi tego sprzętu. Niestety, oprogramowanie to jest bezużyteczne na nowszych systemach (chociaż nie próbowałem instalować Windowsa 9x).

    Urządzenie posiada wyprowadzenia na LPT i COM oraz lampkę sygnalizującą transmisję.

    Posiadam kabel null-modem na COM oraz oryginalny kabel LPT.
    Po podłączeniu urządzenia przez COM urządzenie NIE sygnalizuje transmisji i nie potrafię go do tego w żaden sposób zmusić. Po podłączeniu przez LPT i zrestartowaniu komputera transmisja się rozpoczyna.

    Dziwnym objawem jest to, że bez podłączonych kabli odczyt wykonywany jest co około 1s, po podłączeniu LPT co w ogóle lub po uruchomieniu programu LPTScope* 10-15s (jakby transmisja się dławiła). Oczywiście, program ten nie podaje danych, które mogły by być dla mnie w jakikolwiek sposób użyteczne.

    *Niewiele umiem wywalczyć samodzielnie pisząc odpowiednie oprogramowanie do sterowania portem LPT (odczyt), więc po długich poszukiwaniach znalazłem program LPTScope służący do odczytu danych z konwertera AC.

    Kombinowałem z ustawieniami BIOS dot. LPT, ale niestety nic nie wywalczyłem.

    Teraz seria właściwych pytań:
    - Czym sterować (Windows XP) portem LPT i jak odczytywać z niego dane? Może putty?
    - Czy kabel null-modem może być niewłaściwym do tego zadania? Może powinienem użyć kabla 'prostego' RS232?
    - Ew. jak napisać odpowiedni program do obsługi tego sprzętu? Mam odrobinę podstaw C/C++ i C#, ale nigdy nie miałem do czynienia z dostępem do portów fizycznych.
    - Jak mogą być 'kodowane' dane z odczytu? Czy zazwyczaj są to po prostu szeregi liczb?

    Pozdrawiam!
    i dziękuję za uwagę.

    0 2
  • #2 22 Sty 2014 16:01
    Gloomwing
    Poziom 17  

    mała aktualizacja:

    uruchomiłem sprzęt używając monitora lpt, który posiada możliwość ustawiania stanów niektórych pinów. zaobserwowałem takie oto dwa zjawiska (SPP):
    - po uruchomieniu urządzenia pin ACK ustawiany jest na 1.
    - po ustawieniu pinu reset na 1, potem z powrotem na 0 urządzenie przestaje wykonywać nowe odczyty.

    czy zna ktoś sposób, aby ustawić lpt na odbiór i jak przekonać urządzenie, ze może wysyłać odczyty?

    0
  • #3 25 Sty 2014 14:55
    Gloomwing
    Poziom 17  

    Wierzę, że temat LPT jest tak stary, że niewiele osób wie jeszcze o czym mowa...

    Piszę program w pythonie (na linuksie) posiłkując się jakimiś innymi. Coś takiego daje wyniki (0 gdy urządzenie jest włączone i 'jakieś' po włączeniu i wyłączeniu (różne po cyklu)):

    Kod: pycon
    Zaloguj się, aby zobaczyć kod


    Jak teraz wysterować portami ready, ack itd?

    edit:
    Code:
    The status ports bits are as follows:
    
       7   BUSY  (note that it is inverted on input)
       6   ACK
       5   PE   (paper empty)
       4   SELECT  (NOT CONNECTED ON THIS CABLE)
       3   ERROR
       2   IRQ status (generally not used)
       1   NOT USED
       0   NOT USED

    The control port bits are as follows:
       7   NOT USED
       6   NOT USED
       5   ENABLE BI-DIRECTIONAL MODE (‘1’ => input; ‘0’ => output)
       4   ENABLE IRQ via ACK LINE  (usually 0)
       3   SELECT PRINTER  (note that it is inverted on output)
       2   INIT (initialize printer)
       1   AUTO-LINEFEED (note that it is inverted on output)
       0   STROBE (note that it is inverted on output)


    Takie informację znalazłem w sieci, ale nie do końca wiem co z tym zrobić. I nie do końca wiem od której strony liczy się bity. Czy 00000100 (4) ustawia 5ty bit czy 00100000 (32)

    0