[Alg/ Delphi] barcodescanner uitlezen + hardware aansturen

Pagina: 1
Acties:
  • 215 views sinds 30-01-2008
  • Reageer

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 00:12

Tomatoman

Fulltime prutser

Topicstarter
In Delphi ga ik een programma bouwen dat twee dingen moet doen: gegevens van een barcodescanner uitlezen en externe hardware aansturen. Het gaat om een prototype van een apparaat en het Delphiprogramma moet voorlopig even doen wat later in een eenvoudig stukje hardware geïntegreerd zal worden. Het gaat bij de software dus voornamelijk om een proof of concept.

Het uiteindelijke doel is serieproductie van het kant en klare product. Aan het prototype wordt op dit moment geknutseld. Aangezien het prototype nog niet gereed is, kan ik nu nog wat suggesties indienen voor de te kiezen hardware. Even de uitgangspunten op een rijtje.
  • Pc: notebook met een nog te kiezen Windows-besturingssysteem. Wordt waarschijnlijk Windows XP.
  • Software: ga ik bouwen in Delphi. Ik ben een ervaren programmeur (denk ik :)), maar heb weinig ervaring met hardware interfacing.
  • Barcodescanner: nog geen model of type gekozen.
  • Aan te sturen externe hardware: waarschijnlijk alleen een paar actuators en wat reed-contacten.
  • Aansturing van hardware: ik vermoed dat hier gekozen zal worden voor een serieel protocol. Mijn voorkeur gaat voorlopig uit naar USB, omdat dat de mogelijkheid van een toekomstige interface naar pc's niet uitsluit.
  • Het is een project van een paar vrienden die dit - behoorlijk serieus - in hun vrije tijd aan het uitwerken zijn. Het budget is beperkt.
Nu mijn vragen:
  1. Hoe worden barcodescanners normaliter vanuit zelfgeschreven software benaderd? Via een gestandaardiseerde API of misschien via een ActiveX control?
  2. Zijn er componenten of standaard API's om hardware serieel aan te sturen? Ik wil zo min mogelijk geknutsel en het moet robuust zijn.
De vragen die ik stel zijn misschien open deuren, maar ik benieuwd naar de do's en vooral don'ts. Misschien kunnen jullie me met wat tips voor valkuilen behoeden.

Een goede grap mag vrienden kosten.


Verwijderd

Probeer eens een barcodescanner te vinden die je kan aansturen via de COM-poort verreweg de eenvoudigste aansturing. Je kan die COM-poort openen, lezen, schrijven en sluiten als een normaal bestand.
En voor te weten hoe ze benaderd worden gewoon een PDF zoeken van de gekochte scanner.
Normaal zal het zoiets zijn.
INITIALISATIE -> scanner activeren (wacht tot hij een code ontvangt)
ONTVANGEN -> scanner stuurt code door via COM-poort
fileread -> geeft bytes jouw code
Doe er iets mee in een database of zo -> bv. plak er een naam op

Verwijderd

Makkelijkst is een barcode scanner met een keyboard wedge, dan sluit je ;m dus gewoon op de keyboard aansluiting aan en krijg je de barcode's gewoon als tekst binnen.

Verwijderd

Da's waar :) Maar als hij het later 'in een stukje hardware' wil implementeren zal het wel het gemakkelijkst zijn de scanner rechtstreeks aan te spreken. Want zo'n keyboard driver lijkt me moeilijk in een PIC te programmeren ;)

Verwijderd

Verwijderd schreef op 18 september 2003 @ 00:19:
Da's waar :) Maar als hij het later 'in een stukje hardware' wil implementeren zal het wel het gemakkelijkst zijn de scanner rechtstreeks aan te spreken. Want zo'n keyboard driver lijkt me moeilijk in een PIC te programmeren ;)
Klopt, had ik niet zo goed gelezen :)
Maar voor de software te ontwikkelen is het wel ff makkelijk starten op deze manier. Maar idd de com-poort scanners zijn ook zo moeilijk niet.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Verreweg de meeste scanners werken via een RS232 of een PS/2 verbinding.

Als het later in een embedded uP moet komen zou ik kiezen voor een RS232 aansluiting, USB kan wel maar is een stuk meer hardware / ontwikkelwerk.
De protocollen die darvoor gebruikt worden zijn allemaal anders, dus daar zul je gewoon zelf wat voor moeten bouwen.

Ik zou er wel op letten dat je via je aansluiting het ding kunt configureren. Sommige scanners doen dit dmv het scannen van bepaalde barcodes. Dit werkt in de praktijk niet lekker.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • ArieProductions
  • Registratie: Januari 2002
  • Laatst online: 27-11-2024
Voor Delphi en de buitenwereld is het volgende boek wel informatief

PC-poorten onder Windows
meten, regelen en besturen via de standaardpoorten

te bestellen bij www.elektuur.nl

"Quidquid latine dictum sit, altum videtur" (Whatever is said in Latin sounds profound)


  • Belgar
  • Registratie: Januari 2002
  • Laatst online: 17-08 22:31

Belgar

Archmaster ranzige code..

Zie bovenstaande :)

beetje offtopic: Wil je de hardware direct in je eigen scanner verwerken (kan ik niet helemaal opmaken) dan is simpel serieel idd alles wat je nodig hebt. 90% van de basiscompenenten (die ik ken) sturen een serieel signaal in 'standaard ascii' afgesloten met 11111111 of iets dergelijks. Ik heb er toevallig 2 jaar geleden naar gekeken voor een klein voorraadbeheer-systeempje

...Als het maar werkt


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
tomatoman schreef op 17 September 2003 @ 22:38:
• Aan te sturen externe hardware: waarschijnlijk alleen een paar actuators en wat reed-contacten.
• Aansturing van hardware: ik vermoed dat hier gekozen zal worden voor een serieel protocol. Mijn voorkeur gaat voorlopig uit naar USB, omdat dat de mogelijkheid van een toekomstige interface naar pc's niet uitsluit.
Ik ben ff verward over wat je hiermee bedoeld.

Is het zo dat je wat digitale uitgangen wilt aansturen vanuit je applicatie ?
Draait die applicatie op een uP of op een PC.

In het eerste geval zou ik zeker niet serieel gaan communiceren, gewoon een digitaal signaaltje is dan voldoende. Als je het modulair wilt houden zou je nog kunnen denken aan een I2C bus.

In het tweede geval zou ik een standaard IO kaart pakken waarbij de drivers + SDK worden meegeleverd.

Het geheel klinkt behoorlijk als een embedded toepassing trouwens. Je zou ook kunnen denken aan een standaard uP ( Zoals een PIC, of een PSoC )
Als je dan de 'besturing' in deze uP maakt kun je eventueel een tweede serieele verbinding gebruiken voor een koppeling naar een extern systeem ( PC ).

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Rum
  • Registratie: Augustus 2002
  • Laatst online: 07-03 13:06

Rum

Om te communiceren met hardware via com-poort (of virtuele com-poort via USB) gebruiken wij hier op het werk altijd CPort (download hier). Hiermee lezen wij ook barcode-readers uit. Over het algemeen spugen barcode-readers namelijk gewoon ascii.

Verwijderd

Heb zelf voor het communiceren met een scanner (via seriele poort) het Delphi component SerialNG gebruikt. Zie http://www.domis.de/cms/i...press&func=display&ceid=7

Ook het ActiveX component MSComm is misschien een mogelijkheid, dit werkte echter niet onder NT.
Pagina: 1