[C#] obsługa portu LPT w .NET

0

zainteresowałem się sterowaniem cosikiem poprzez port LPT, i mam następujące pytanie

czy w klasach .NET'a jest gdzieś klasa do tego portu, czy tez jest może możliwość, tak jak w Win32, traktowania tego portu jako pliku, chętnie tez bym oberwał jakimś przykładem =]

w MSDN szperałem ale cały czas obrywałem informacjami o LPT w systemie, a nie w .NET

( nie chce COM ani USB bo chodzi mi o te 8 linii na których można ustawiać stany binarne =D )

z góry wdzięczny za każdy bajt odpowiedzi =]

0

Z tego co mi wiadomo to w net można uzywać bibliotek niezarządzanych... Może podejdź do tego od tej strony?

0

ee, wolałbym prosto z .NETa, jeśli on nie ma to podziabie to w Delphi traktując port jako plik =( poszukam czy może nie da w .NET się traktować portu jak pliku

( widziałem programik w .NET do obsługi COMa ale ani słowa jakich klas czy czego tamu żyto )

a z bibliotekami jest taki problem że przez nie aplikacja nie będzie cała w .NET i bye bye rzucanie na inne OSy =|

0

http://support.microsoft.com/kb/823179

takie coś dopadłem ( dla VB .NET ) ale nie podoba mi się używanie Kernel32.dll, bo co z tego że zrobię w .NET jak i tak WinAPI użyje =(

wyszperałem też taką linijkę kodu
System.IO.File.Copy(strPrnFile, "Lpt1:")
co wygląda bardziej obiecująco ( może bardziej swawolne I/O pliku "Lpt1:" też działa )

tylko że tu zostaną przesłane dane i tyle ( chyba ) a mi chodzi o włączenie napięcia na danej linii do odwołana

spróbuję powtykać jakieś diodki czy silniczek do LPT'a i popatrzę czy się zaświecą czy tylko migną jak zapodam jakieś dane ale wszystko mi tu wskazuje na mignięcie =(

a, w opisach portów COM pisze że wedle specyfikacji są całkowicie bezpieczne ale nie wiem jak z LPT ( nigdzie nie wyczytałem ani o bezpieczeństwie ani o niebezpieczeństwie ), ktoś wie jak trzyma się LPT w przypadku zwarcia, przeciążenia czy innego świństwa?

0

spróbuję powtykać jakieś diodki czy silniczek do LPT'a i popatrzę czy się zaświecą czy tylko migną jak zapodam jakieś dane ale wszystko mi tu wskazuje na mignięcie =(

Lepiej zostań przy diodach.....
Jak nie będą swiecić to spróbuj dany "sygnał" nadawać np. przez 10 sekund bez przerwy. A poza tym znajdź sobie w necie jakiś dobry opis LPT.

System.IO.File.Copy(strPrnFile, "Lpt1:")

Prawde mówiącc nie wiem czy to zadziała na innych OS'ach... Jesteś pewien, ze zawsze port lpt nazywa się LPT1? Ja nie... Może pójdzie jak dodasz w kodzie warunke sprawdzający pod jakim system chodzi i odpowiednio modyfikujący to co przekażasz jako drugi parametr tej funkcji.

a, w opisach portów COM pisze że wedle specyfikacji są całkowicie bezpieczne ale nie wiem jak z LPT ( nigdzie nie wyczytałem ani o bezpieczeństwie ani o niebezpieczeństwie ), ktoś wie jak trzyma się LPT w przypadku zwarcia, przeciążenia czy innego świństwa?
Z tego co mi wiadomo to lepiej nie ryzykować ;)

0

http://www.rafal.waw.pl/wynalazki/budowa/

tu mam jak nie ryzykować =]

a co do nazwy portu to zawsze można pobierać od użyszkodnika =]
na razie poluje na kabel LPT żeby to sobie na biurku położyć a nie za skrzynią grzebać =]

jutro popróbuję jak wrócę ze szkoły ( koło 16tej bueee ) i może niedługo będzie tu gotowiec "Obsługa LPT w .NET" =D

0

koniec end fuj ble itd

.NET ma klasy do portów szeregowych ( COM ) ale nic do równoległych ( LPT ) =( może jak nowy wypuszczą to coś będzie, ale w to wątpię bo w końcu LPT nie występuje w nowych machinach

jak szczułem LPT StreamReader/Writer to wyskakiwał komunikat że ta klasa nie lubi LPT
przy kopiowaniu plików "program nie odpowiada" =|

pomęczę inpout32.dll bo są gotowce używania metod z tej biblioteki =(

PS. od kiedy są te emotki na lewo od pisadełka postów ? dopiero teraz zauważyłem O.o

0
PTwr napisał(a)

.NET ma klasy do portów szeregowych ( COM ) ale nic do równoległych ( LPT ) =(

Ameryki nie odkryłeś :)

PTwr napisał(a)

pomęczę inpout32.dll bo są gotowce używania metod z tej biblioteki

Kiedyś kumpel prosił, żebym napisał mu program, który miał zapalać diody pod LPT, też użyłem inpout32. Trudne to nie było:

using System;
using System.Runtime.InteropServices;

public class PortAccess
{
[DllImport("./inpout32.dll", EntryPoint="Out32")]
public static extern void Output(int adress, int value);
}

public partial class Form1 : Form
{
....
private void btnStart_Click(object sender, EventArgs e)
{
int toSend = 128;
PortAccess.Output(888, toSend);
}
}



 > ##### PTwr napisał(a)
> PS. od kiedy są te emotki na lewo od pisadełka postów ? dopiero teraz zauważyłem O.o

Odkąd pamiętam :)
0

jakoś tych emotek nie przyuważyłem O.o

dzięki za sampla ( na razie sampla miałem w VB =D )

a po co " ./ " a ścieżce do dllki?

0
Ptwr napisał(a)

a po co " ./ " a ścieżce do dllki?

To chyba wskazuje na katalog z plikiem wykonywalnym.

0

hmm może się przyda ta kropeczka
bo o ile się nie mylę to "../blabla" to zejście katalog niżej i szukanie tam pliku ?

0

Raczej wejście katalog wyżej.

0

wyżej czy niżej ...
zależy czy zielonym do góry =D

0

Jak dla mnie katalog nadrzędny jest wyżej niż podrzędny :)

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