Naar aanleiding van het printerpoort artikel op deze site ben ik aan de lsag gegaan.
Ik heb om te beginnen inpout32.dll gebruikt en een programma geschreven in vb6, waarmee ik ledjes aan en uit kon schakelen. Werkt allemaal naar behoren.
Wanneer ik mijn programma afsluit en in windows xp bijv windows verkenner open, dan worden ineens mijn uitgangen van de printerpoort allemaal hoog. Terwijl mijn eigen programmaatje niet eens draait.

Ik wil in de toekomst een robotarm erop aan sluiten, en dan kan ik niet gebruiken dat mijn robotarm meest vreemde capriolen uithaald als ik in windows bezig ben.
Ik ben dus opzoek naar een oplossing hiervoor.

Verder vraag ik me af of ik met de inpout32.dll ook een c++ programma op af kan vuren. Of heb ik dan een andere dll nodig?

Dat is een vervelende eigenschap van Windows. De paar oplossing die ik zo zou weten:

  • Geen Windows gebruiken, maar bijv. DOS of Linux.
  • Een failsafe aansturings protocol gebruiken tussen pc en robotarm. Dat vereist dus wel een protocol interpreter in de robotarm. Moet met een simpele uC (AVR, PIC etc...) te doen zijn.

inpout32.dll is ook te gebruiken in combinatie met C/C++. Zie de code voorbeelden op officiele site van inpout32.dll

ik heb de source van zo'n dll en ook de c++ zooi daarvoor hebbe? mail me maar.

Op 27 november 2005 18:55:50 schreef Marcel:
Dat is een vervelende eigenschap van Windows. De paar oplossing die ik zo zou weten:

  • Geen Windows gebruiken, maar bijv. DOS of Linux.
  • Een failsafe aansturings protocol gebruiken tussen pc en robotarm. Dat vereist dus wel een protocol interpreter in de robotarm. Moet met een simpele uC (AVR, PIC etc...) te doen zijn.

inpout32.dll is ook te gebruiken in combinatie met C/C++. Zie de code voorbeelden op officiele site van inpout32.dll

dos is je veiligste keuz. Linux doet ook dergelijike dingen.

probleem van ene multitasking operating systeem is dat er andere drivers hun poot kunnen komen 'slaan' in je io gebeuren.
vandaar dat onder windows eigenlijk alleen een printerdriver toegang krijgt. die IOport omzielt die beveiliging. als je dergelijke dingen wilt doen moet je zelf een kernel mode driver schrijven die de poort 'lockt' voor andere processen. dan kan dat niet meer. ( ook ioport kan er dan niet meer aan ). dergelijike driver is gene kattepis ...

Daarom is Windows dan ook bepaald niet multitasking te noemen.
het feit dat er meerde events naar meerdere windows gestuurd kunnen worden maakt een systeem niet multitasking !
het feit dat taken geheel onafhankelijk van elkaar kunnen draaien,
het systeem niet kunnen lamleggen omdat het systeem taken pre-emptive uitvoert maakt het wel een Multitasking systeem.

Wat de vraag van spruce betreft,
waarom haal je de dll weer weg als je de poort kenlijk toch nog nodig hebt.
eventueel hardware matig oplossen mbv een 74ls373 .

Windows blijft idd een schimmig systeem (het is gewoon een rommeltje)