Forum: Mikrocontroller und Digitale Elektronik Parallelport Taster Einlesen, Led's ansteuern mit eigenen Programm


von Moritz (Gast)


Lesenswert?

Hallo,

Ich wollte für meinen Sever ein Gehäuse bauen, und an dem Vorne 2 Taster 
mit denen ich Programme steuern kann (1x ein Programm beenden, und über 
den anderen Taster den Server in den Ruhezustand bringen) und 3Led's 
machen (Die mir anzeigen ob 1. Eine Lanverbindung (1) besteht, 2. Eine 
Lanverbindung (2) besteht und 3. Ob sonst alles O.K. ist). Die Led's 
sind da weil ich ja keinen Monitor habe.
Das alles wollte ich über den Parallelport lösen, jetzt wollte ich 
wissen was für Programmierfähigkeiten ich brauche (Elektronik hab ich 
voll im Griff), Programmieren kann ich allerdings noch gar nicht daher 
wollte ich wissen welche Sprache ich da am besten lernen sollte 
(Anfänger usw.)

Dann wollte ich noch wissen ob ihr zufällig jemanden (Eine Website) 
kennt auf der etwas ähnliches realisiert wurde.

Server ist Windows-basiert.

MFG Moritz

von Uwe (Gast)


Lesenswert?

Da ist die Sprache nicht so wichtig. Für einen SERVER ?!? mit Windows ? 
und das auch noch sicher ?
Da wirst du dir wohl eigenen Treiber für schreiben müßen 
(höchstwarscheinlich Kernel) da Windows keine direkten Hardwarezugriffe 
mehr so einfach unterstützt. Windows behandelt den Parallelport nur noch 
als Drucker -> Das heißt du kannst ne Datei hinschicken über den 
entsprechenden Druckertreiber.
Es gibt jedoch Tools die als Notlösung funktionieren (wie z.B. GiveIO) 
und deiner Software den entsprechenden IO Privileg Level verpassen.
Aber das ist KEINE LÖSUNG für einen RICHTIGEN Server.
Mikrocontroller an RS232 oder USB ist angesagt. Ist Enfacher und 
eleganter.

von olykar (Gast)


Lesenswert?

Hallo,

schön gedacht, leider ist es nicht so einfach. Windows lässt 
grundsätzlich keinen direkten Zugriff auf die Ports zu, das könntest du 
am einfachsten  über dazu vorhandenen DLL-s realisieren, ob jetzt c++, 
c#, ist nicht so relevant. Für das know-how musst du ein bisschen 
googlen, man kann einiges finden.

von Peter D. (peda)


Lesenswert?

Moritz schrieb:
> Programmieren kann ich allerdings noch gar nicht daher
> wollte ich wissen welche Sprache ich da am besten lernen sollte
> (Anfänger usw.)

Und dann willst Du an den tiefsten Windows-Eingeweiden rumpfuschen???

Nimm PS/2 oder USB und laß Windows in Ruhe.

Irgendwo hab ich mal was gesehen mit nem ATtiny45, der über USB 
Tasteneingaben macht.


Peter

von Jörg S. (joerg-s)


Lesenswert?

Parallelport ist doch OK, ich weiss nicht was ihr alle habt. Natürlich 
muss man heutzutage noch einen Treiber zwischen tun, aber Hexenwerk ist 
das ja nun auch nicht.
Alternativ würde ich einen FTDI Chip nehmen und die IOs direkt benutzen. 
Da ist man dann aber wieder bei SMD ICs.

Zum programmieren würde ich VisualStudio von Microsoft empfehlen. Gibt's 
als kostenlose Version und man kann sich die Spache (VB, C#, etc.) 
aussuchen.

von Thomas E. (thomase)


Lesenswert?

Moritz schrieb:
> Server in den Ruhezustand

Kann der das überhaupt? Ist ja nicht gerade ein typischer Serverstatus.

Aber ich vermute mal Homeserver. Da macht das dann schon wieder Sinn.
Der SBS hat das jedenfalls nicht.

Moritz schrieb:
> Eine Lanverbindung (1) besteht

Das ist noch das einfachste. Ping auf bekannte Website und du weisst, ob 
deine Internetverbindung steht.

Moritz schrieb:
> 2. Eine Lanverbindung (2)

Kannst du auf der internen Seite genauso machen. Wenn allerdings kein 
Client antwortet, weil keiner eingeschaltet ist, nützt das nicht viel. 
Es sei denn, du benennst den Test um in "Clientstatus".

Moritz schrieb:
> Ob sonst alles O.K. ist

Da geht's natürlich ans "Eingemachte". Oder was willst du alles testen?

Jörg S. schrieb:
> Parallelport ist doch OK, ich weiss nicht was ihr alle habt.

Finde ich auch.

Was ist an "giveio" in Verbindung mit Parallelport auszusetzen? Ich geh' 
mal weiterhin vom Homeserver aus. Da sollte das auf jeden Fall erlaubt 
sein. Sofern der Server sich diesen XP-Treiber unterjubeln lässt.

Zwei Tasten kriegt man aber auch mit RS232 eingelesen. Drei LEDs wären 
da schon aufwendiger.

Die Pings sind in den Bordmitteln von C#/VB drin, RS232 auch, 
Parallelport ist schon ein ziemliches Gefriggel.


mfg.

von Thomas E. (thomase)


Lesenswert?

>C#/VB Express
Kommt noch etwas hinzu:

Das Ganze sollte natürlich als Service laufen und nicht unter einem 
angemeldeten Useraccount. Die Express-Versionen können afaik aber keine 
Services erstellen.

mfg.

von Moritz (Gast)


Lesenswert?

@ Thomas Eckmann:

Richtig ist ein Homeserver, Ruhezustand unterstützt er auch. Von mir aus 
kann man die 3. Led auch weglassen (Die mit der Anzeige ob alles OK ist) 
aber die beiden Taster und die 1. und 2. Led sollte auch auf jedenfall 
bleiben.

Als Port kann ich Seriell (RS232) und Parallel nehmen.
Am besten wäre es natürlich ohne µC, wenn es aber besser ist dann könnte 
ich auch einen Attiny2313 (Hab noch viele auf Lager) spendieren.

MFG Moritz

von Moritz (Gast)


Lesenswert?

kann mir da keiner mehr helfen?

von Thomas E. (thomase)


Lesenswert?

Moritz schrieb:
> Ruhezustand unterstützt er auch

Für den Netztaster, also nicht der Netzschalter an der Stromversorgung, 
sondern die ATX-Taste vorne, kannst du doch einstellen, welche Aktion 
beim Drücken ausgeführt werden soll. Beim Desktop kann man da auch 
"Ruhezustand" auswählen.

Runterfahren/Neustart machst du dann über Remote-Desktop. Sowieso.

Die Programmtaste ist natürlich ein anderes Thema. Wenn das Programm die 
Taste nicht selbst einliesst und sich dann geordnet beendet, kannst du 
das nur noch abschiessen.

Per Software, so wie mit dem Taskmanager. Nicht unbedingt die feine Art. 
Geht aber. Stellt sich nur die Frage, wie das Programm damit klarkommt. 
Was für ein Programm ist denn das?
Läuft das unter angemeldetem User-Account?. Müsste ja eigentlich. Ist 
für einen Server grundsätzlich nicht ratsam. Aber auch ein anderes 
Thema.

Bleiben noch die LEDs.

Die RS232 hat neben TX zwei Ausgänge, RTS und DTR.

Du nimmst einen MAX232, damit du vernünftige Pegel hast und schliesst 
die LEDS über Transistoren entsprechend an. Mit der Taste machst du das 
genauso, nur umgekehrt. Ohne Transistor natürlich.

Dann saugst du dir C#-Express aus dem Internet und arbeitest dich da 
ein.
Und dann geht's ans programmieren. Serielle Schnittstelle, Ping, 
Programm abschiessen.

Das geht alles mit Bordmitteln.

Wenn du das als normale "exe" zum Laufen hast, googelst du nach
"exe als service". Man kann nämlich auch eine "exe" wie einen Service 
starten. Zumindest bei dieser, die ja keine GUI braucht, sollte das 
keine Probleme bereiten. Unter dem Vorbehalt, daß der Server, müsste auf 
Server 2003 basieren, das mitmacht.
Unter XP geht das.

Ne Kleinigkeit ist das aber nicht.


mfg.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.