Obsługa drukarki pod LPT

0

Chcę napisać program drukujący na drukarce na LPT.
Program ma wydrukować jakiś tekst, ale nie chcę wykorzystywać WinApi.

Wiem że bezpośrednie odwołanie do portu jest zakazane w Windows, ale może jest jakaś biblioteka, która pozwoli "emulować" dostęp bezpośredni ?

Nie wiem czy dobrze zrozumiecie "emulować"

Chciałbym pisać tak jak w dosie np: Port[$378]:=1
A biblioteka ta przetłumaczyłaby to na własne funkcje.

0

biblioteka inpout32 spokojnie styknie. Wszystkie potrzebne informacje o inpout32 znajdziesz na googlach.

0

A dlaczego WINAPI użyć nie chcesz? I na kij tyle kopii tego tematu?

0

deus przyznam, że nie wiem co za różnica czy winapi czy nie, jak i tak biblioteka inpout32 korzysta z winapi. Jest "nakładką" i muszę przyznać, że jeśli chodzi o LPT to dość przyjemną :), bo pięknie udostępnia dwie funkcje Inp32 i Out32, więc ja osobiście korzystam z tej biblioteki z przyjemnością.

PS. dostępny jest też kod źródłowy tej bibioteki, więc można poczytać i zobaczyć jak się robi poszczególne rzeczy.

Oczywiście jeszcze dodam, że najlepszym sposobem gadania z drukarką LPT jest po prostu otwarcie pliku "LPT" i pisanie do niego. Własna implementacja gadania z drukarką jest zupełnie zbędna, aczkolwiek przydatna, jeśli myślimy o własnym urządzeniu podpiętym pod drukarkę.

Poprawcie jeśli się mylę z tym plikiem.

0

Witam.

Czy chesz drukawać czy sterować jakimś urządzeniem?
A to są dwie różne rzeczy.

0

Do LPT można się odwołać przez sterownik systemowy np. inpout32. Ale każda drukarka inaczej się komunikuje przez LPT. Opis tej komunikacji jest zapisany w sterowniku drukarki instalowanym w windowsie. Jeśli chcesz sterować drukarką prosto przez LPT to będzie to nie łatwe zadanie. Największą trudnością będzie rozgryzienie sposobu komunikacji z drukarką, czyli to co robi sterownik. No i będzie to dotyczyć tylko jednego konkretnego modelu drukarki. Na pewno o to ci chodzi ? Po co samemu pisać sterownik do drukarki (bo na to wychodzi), skoro producent dostarczył sterownik działający i sprawdzony (którym się można posługiwać przez standardowe funkcje WinAPI)

0

W szkole mam takie zadanie. Trzeba napisać własną obsługę drukarki, przy czym najważniejsze jest tam, żeby nauczyć sie programować port a nie po prostu użyć gotowej funkcji !

0

Wykładowca powinień zweryfikować swój program nauczania.

Pod dosem obsługiwałem drukarę bezpośrednio przez port, byłem w stanie nawet strwierdzić czy drukarka ma papier a nawet czy jest włączona do prądu. Pod 98 straciłem część funkcji.
Pod XP straciłem kontakt całkowicie z portem. Może przy porządnym mieszaniu z wystemie da się to zrobić.

A jeżeli drukarka nie posiada LPT a jest to większość drukarek obecnie produkowanych czy jest sens uczyć się tego?

Napisz jak znajdę jeszcze coś w starociach to mogę Ci podesłać.

0
RR napisał(a)

deus przyznam, że nie wiem co za różnica czy winapi czy nie, jak i tak biblioteka inpout32 korzysta z winapi. Jest "nakładką" i muszę przyznać, że jeśli chodzi o LPT to dość przyjemną :), bo pięknie udostępnia dwie funkcje Inp32 i Out32, więc ja osobiście korzystam z tej biblioteki z przyjemnością.

PS. dostępny jest też kod źródłowy tej bibioteki, więc można poczytać i zobaczyć jak się robi poszczególne rzeczy.

Oczywiście jeszcze dodam, że najlepszym sposobem gadania z drukarką LPT jest po prostu otwarcie pliku "LPT" i pisanie do niego. Własna implementacja gadania z drukarką jest zupełnie zbędna, aczkolwiek przydatna, jeśli myślimy o własnym urządzeniu podpiętym pod drukarkę.

Poprawcie jeśli się mylę z tym plikiem.

No wiec nie jest do konca nakladka (ta biblioteke, ktora znam), ona z zasobow kopiuje sterownik (hwinterface.sys) i dopiero na nim dziala (zatem nie bezposrednio bez niczego z samym WinAPI a dojscie do jadra - pytanie co rozumiemy przez winapi - teoretycznie obsluga/tworzenie sterownikow tez sie tu zalicza). Tu chodzi mi bardziej o przywileje. Bo np.

  1. Mamy dostep do LPT, nie mamy innych praw zwiazanych ze startem sterownikow - CreateFile wystarczy, inpout32 niezadziala
  2. Mamy dostep do instalacji sterownikow - inpout32 zadziala i LPT zadziala

Istotnie najlepiej bedzie z portem rozmawiac otwierajac LPT za pomoca CreateFile (dostepne elementy dla drukarek), zostaje jescze DeviceIoControl (co prawda testowalem tylko dla RS'a).

duzo o
http://www.lvr.com/parport.htm

emulowac w taki sposob:
Port[$378]:=1
moze byc trudno, latwiej w klase ubrac i
Port.Port[$378]:=1
cos na ksztalt np. Canas.Pixels[x,y] = czerwony

i wtedy dodac do klasy funkcje z inpout32 (ale to bez sensu, tylko dla zapisu ...).

Duzo odwagi u wykladowcy :) ja bym co najwyzej poswiecil komplet ledow ... chyba ze drukarka warta tyle co dwubarwny LED.

A wlasciwie jak nie zakazuje to przynies dyskietke/cd/flasha/... z freedosem i programem w TP

1 użytkowników online, w tym zalogowanych: 0, gości: 1