[VB.NET] Serial Programming Commands naar Barcode scanner

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • basovic88
  • Registratie: December 2007
  • Niet online
Ik heb een programma geschreven in VB.NET dat "contact" maakt met een barcode scanner (Datalogic M8300) via een RS232 verbinding.

Ik wil graag de Barcode Scanner configureren via zogenaamde Serial Programming Commands i.p.v. door speciale configuratiebarcodes in te scannen of door gebruik te maken van Datalogic Aladdin.

Waarom? Ik wil als iemand een barcode scanned, de barcode uitlezen via de RS232 verbinding. Indien deze valide is/geaccepteerd kan worden, wil ik graag de LED groen laten oplichten. Indien de barcode ongeldig is, wil ik de scanner laten BEEPEN en de LED rood laten oplichten.

Dit is mogelijk via de Serial Programming Commands, deze zijn te vinden in de reference manual van de scanner:
https://easeofaccess.scan...t/Send.aspx?file=SRM-P080
(vanaf bladzijde 220)

Echter, als ik iets schrijf naar mijn barcode scanner (mySerialPort.Write("S+S*" & vbCrLf), dit command herstelt de standaard instellingen), geeft de scanner mij de volgende "barcode" terug:
/*Two-Ways Out of Sequence!(from Host to Gun 1390)*/

1390 is het "IP" van de scanner. Zoeken op Google of in de Ref. levert niets op.
Heeft iemand ervaring met Serial Commands en Datalogic barcode scanners? Of misschien een oplossing?

EDIT:

The Master cradle can transmit warning messages to the Host regarding wrong
reception of data. Example:
/*Two-Ways Out of Sequence!(.....)*/
This message is transmitted to the Host by the Master cradle when the
Master cradle receives a closing string from the Host for a Two-way tx
communication, but this was either not open or already closed, therefore the
data will be lost.


Indien ik ACK/NACK ofwel Two-way tx communication enable, dan krijg ik de error-message niet meer.
Echter, als ik Serial Configuration Commands verzend (bv. $+$* plus een CRLF) dan reageert de scanner niet.

[ Voor 19% gewijzigd door basovic88 op 08-06-2010 20:16 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het eerste wat me opvalt is dat in de documentatie staat dat je alleen een CR moet sturen, en dat jij een CR/LF stuurt. Misschien gaat het daar mis.

En misschien is het een copy paste fout, maar in je eerste voorbeeld zeg je S+S* terwijl in de docs staat dat het over $ tekens gaat.

[ Voor 31% gewijzigd door Woy op 08-06-2010 20:55 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • basovic88
  • Registratie: December 2007
  • Niet online
Woy schreef op dinsdag 08 juni 2010 @ 20:54:
Het eerste wat me opvalt is dat in de documentatie staat dat je alleen een CR moet sturen, en dat jij een CR/LF stuurt. Misschien gaat het daar mis.

En misschien is het een copy paste fout, maar in je eerste voorbeeld zeg je S+S* terwijl in de docs staat dat het over $ tekens gaat.
Inderdaad zeg, CR i.p.v. CR/LF.
Het werkt! Ik was er al zolang mee bezig dat ik het gewoon niet goed gelezen heb.

Echter, ik wil nu werken met ACK/NACK.
Dit is terug te vinden op pagina 169.

Als ik een barcode scan moet ik binnen een X aantal milliseconden een ACK character of een NACK character teruggeven. Als ik een ACK character meegeef, dan zal de barcode scanner een "goed" signaal afgeven een de medewerker, in het geval van een NACK zal de scanner een "fout" signaal afgeven.

When ACK/NACK is enabled (in Two-Way tx mode), the Host sends an ACK
character (06 HEX) in the case of good reception or the NACK character (15 HEX)
requesting re-transmission, in the case of bad reception. Only after the ACK
character is received by the BC-80X0 does the reader respond with the good
reception tone.
If the BC-80X0 does not receive an ACK or NACK, transmission is ended after the
RX Timeout.


Nu is de vraag hoe krijg ik een ACK (0x06 hex) character (meer op: Wikipedia: Acknowledge character) als String verzonden naar de scanner?

[ Voor 49% gewijzigd door basovic88 op 08-06-2010 23:24 ]


Acties:
  • 0 Henk 'm!

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 09-09 22:04

CodeIT

Code IT

Dit kan je doen door een byte array te declareren en deze te sturen
Visual Basic .NET:
1
2
Dim tBuf() as byte = {&H06}
SerialPort.Write(tBuf,0,tBuf.Length)

Acties:
  • 0 Henk 'm!

  • Digital-DNA
  • Registratie: Juli 2000
  • Laatst online: 05-09 14:03

Digital-DNA

Gedigitaliseerd tot op het bot

basovic88 schreef op dinsdag 08 juni 2010 @ 20:01:
Ik wil graag de Barcode Scanner configureren via zogenaamde Serial Programming Commands i.p.v. door speciale configuratiebarcodes in te scannen of door gebruik te maken van Datalogic Aladdin.
...
Dit is mogelijk via de Serial Programming Commands, deze zijn te vinden in de reference manual van de scanner.
...
Even een kickje, ik probeer momenteel iets vergelijkbaars te doen. Ik heb een service gemaakt in C# die barcodes van M8300 scanners verwerkt en feedback verzendt.

Het lukt me prima om teksten op de display te tonen en de LED's en beeper aan te sturen volgens de handleiding (p206 en verder):
http://www.manualslib.com...8330.html?page=206#manual

Alleen moet het ook mogelijk zijn om de configuratie van de scanner aan te passen, de handleiding heeft hier een apart hoofdstuk voor:
http://www.manualslib.com...8330.html?page=220#manual

Dit lukt mij echter niet. Dit zou bijvoorbeeld de aiming system moeten uitschakelen:

code:
1
2
3
char delimiter = '-';
char carriageReturn = '\x0D';
serialPort.Write(scannerID + delimiter + "$+Bj0$-" + carriageReturn);


Maar ik zie alleen dat de configuratiestring op de display getoond wordt ipv dat de configuratie wijzigt. Ik had al wat zitten proberen met \x1B escape characters, maar geen succes.

Ik lees hier dat basovic88 wel de configuratie wist te wijzigen. Iemand tips?

www.nintendocasemods.com


Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 07:01

Damic

Tijd voor Jasmijn thee

En andere waarden, kun je die wel veranderen?

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • Digital-DNA
  • Registratie: Juli 2000
  • Laatst online: 05-09 14:03

Digital-DNA

Gedigitaliseerd tot op het bot

Ik heb andere waarden geprobeerd zoals backlight aanzetten (IE1), beeper volume aanpassen (BH0) e.d., maar dat werkt ook niet. De configuratiestring wordt niet uitgevoerd maar alleen getoond op de display.

Vreemde is dat op die pagina 206 van de manual expliciet staat dat je message niet met "$+" mag beginnen omdat 'ie dan in configuratiemode zou gaan. Dit suggereert dus dat dit wel mogelijk moet zijn.

Met $+ ga je in configuratiemode en met $- sla je de wijzigingen op, daartussen zou je dingen moeten kunnen instellen.

www.nintendocasemods.com


Acties:
  • 0 Henk 'm!

  • Digital-DNA
  • Registratie: Juli 2000
  • Laatst online: 05-09 14:03

Digital-DNA

Gedigitaliseerd tot op het bot

Ik heb contact gehad met de leverancier, die me wist te vertellen dat wat ik probeer te doen alleen kan als de scanner in de cradle (basisstation) zit. Ze hadden me ook een andere handleiding gestuurd waarin dit expliciet vermeld staat.

Teksten op de display tonen kan wel, led en beeper aansturen ook, maar configuratie aanpassen dus niet tenzij de scanner in de cradle zit. Jammer, maar nu weet ik tenminste wel waar ik aan toe ben.

www.nintendocasemods.com


Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 07:01

Damic

Tijd voor Jasmijn thee

Ha dat is goed en slecht nieuws

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag

Pagina: 1