[Delphi] USB-LPT directe communicatie

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een applicatie waarin directe communicatie met een paralelle poort plaatsvindt. Dit gaat met de WinIO library/driver en dit werkt perfect. Maar laat nou steeds vaker op moderne computers (en dan met name laptops) de paralelle poort weggelaten worden... Das jammer natuurlijk.

Sitecom heeft gelukkig een USB-to-parallel adapter, die een printerpoort installeert. Helaas installeert ie geen LPT2 ofzo, maar een USB001 poort (net zoals echte USB printers dat doen).

Nou vroeg ik me dus af hoe het mogelijk is om met zo'n soort poort directe communicatie te laten plaatsvinden. Met WinIO schrijf ik dus direct naar de poort, maar met zo'n virtuele poort gaat dat dus niet, zeker als je bedenkt dat ie niet eens een LPT poort aanmaakt. Ik heb al geprobeerd om een dummy-printer erop te installeren en dan "net use lpt2: \\werkbak\dummy" te doen, maar ook dat installeert geen echte direct-aan-te-spreken paralelle poort.

Wie weet een oplossing? Er zijn wel meer mensen die LPT direct aanspreken en dus ook met dit probleem komen te zitten...

日本!🎌


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Tja, ik zou bijna zeggen dat het je eigen schuld is ;) Had je maar niet direct de LPT poort aan moeten spreken, dan had er niets aan de hand geweest. Maar ik neem aan dat het voor jouw niet anders kon.

Waarschijnlijk kan je die USB001 poort volgens de normale windows manier gewoon aanspreken, maar dat geeft je niet de mogelijkheden die je hebt bij het direct aanspreken van een LPT poort.

Er zijn manieren om sommige USB devices direct aan te spreken, maar ik betwijfel of je daar wat aan hebt. Je zal dan namelijk ook moeten weten hoe je de USB-to-parallel adapter moet aanspreken.

We adore chaos because we like to restore order - M.C. Escher


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Topicstarter
En zou het niet mogelijk zijn met een printer driver (ook al hangt er geen printer aan)? Die zijn weliswaar niet in Delphi te maken, maar das niet zo erg. Maargoed, dan zit ik weer met het probleem van hoe ik die driver dus specifieke opdrachten geeft...

日本!🎌


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 14:22

Tomatoman

Fulltime prutser

Eerst een vraag vooraf: waarmee wil je communiceren?

Op het moment dat je dat je met een willekeurig apparaat wilt communiceren via een parallelle poort aan een USB-poort en je hebt geen drivers, heb je een behoorlijke slangenkuil voor jezelf gegraven. Je kunt gaan proberen dit zaakje aan de gang te krijgen, maar het lijkt me veel beter om bij de bron te beginnen.

Parallelle poorten zijn oud, eigenlijk veel te oud om nog nieuwe software voor te schrijven. Mocht je een apparaat willen bedienen dat via een parallelle poort werkt, dan moet je je eerst eens de vraag stellen of je niet veel beter een vervangend apparaat kan kopen dat via USB werkt. Dat kost misschien wat, maar programmeerwerk is ook niet gratis.

Ongeacht of je het apparaat via USB of een parallelle poort wilt aansturen, die WinIO driver is eigenlijk een hack waarmee je de poort direct kunt aanspreken. Daarvoor moet je weten hoe het communicatieprotocol van je apparaat in elkaar zit, moet je zelf de timing regelen en heb je nog veel meer randvoorwaarden.

Normaalgesproken doet een driver al het vuile werk voor je en hoef je je alleen zorgen te maken over hoe je met die driver communiceert. Je hoeft dan niets meer te weten over het apparaat of over de poort, maar alleen over de driver. Dit model is ook veel robuuster, want op het moment dat je naar een nieuwe Windowsversie overstapt of het apparaat vervangt, hoef je alleen een nieuwe driver te installeren en je bent klaar. Spreek je het apparaat (bijvoorbeeld via WinIO) direct aan, dan moet je de hele applicatie gaan ombouwen.

Wat ik je aanraad, is je concept nog eens tegen het licht houden. Wat je nu wilt gaan doen via een USB-naar-parallel-adapter, is vragen om problemen. Het idee om dan maar een printerdriver te gaan gebruiken is eigenlijk de omgekeerde wereld: je moet dan je apparaat gaan aanpassen zodat het zich als een printer gedraagt. Het verschijnt dus ook in je lijstje aangesloten printers. Geloof me, dat wil je echt niet :)

Een goede grap mag vrienden kosten.


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Topicstarter
Ik weet best dat het model van drivers erg robuust en handig is, maar het apparaat dat ik moet aansturen is behoorlijk legacy. Het gaat om een stappenmotorkaart voor een graveermachine. Daar is alleen maar een paralelle versie van op de markt. Ik vindt het van de makers van die kaart ook een beetje slordig dat het parallel aangestuurd wordt, ik zou veel liever een USB-only versie zien, maar die is er nou eenmaal niet.

En vanwege het feit dat computers niet langer per se een paralelle poort hoeven te hebben, moet het ook met virtuele paralelle poorten (op USB bijvoorbeeld) werken (tenminste dat zou fijn zijn).

We zijn nog wel wat onderzoek aan doen naar een apparaatje dat er tussen komt te hangen, maar het blijft erg legacy allemaal.

日本!🎌