[ elmagio @ 31.08.2009. 12:28 ] @


Zanima me da li netko može objasniti ili postaviti primjer kako u aplikaciji postaviti čitač za barcodove na symbol uređaju.

Skinuo sam Symbol SDK i primjere ali nikako nemogu skužiti kako dobiti barcod koji je uređaj pročitao?


lp,
[ draganmit @ 09.09.2009. 14:41 ] @
Koji Symbol uredjaj je upitanju ?
[ elmagio @ 10.09.2009. 12:30 ] @


Imam M9090 i PPT8800



lp,
[ Yeremiya @ 10.09.2009. 13:23 ] @
Najpre deklarišeš Reader, ReaderData i EventHandler da hvataš barkodove:
Code:

Symbol.Barcode.Reader MyReader = null;
Symbol.Barcode.ReaderData MyReaderData = null;
System.EventHandler BarEventHandler = null;


Zatim koristiš ove funkcije:
Code:

        // inicijalizacija reader-a
        private bool InitReader()
        {
            if (this.MyReader != null)
                return false;

            this.MyReader = new Symbol.Barcode.Reader();

            this.MyReaderData = new Symbol.Barcode.ReaderData(
                Symbol.Barcode.ReaderDataTypes.Text,
                Symbol.Barcode.ReaderDataLengths.MaximumLabel);

            this.BarEventHandler = new EventHandler(BarReader_ReadNotify);

            this.MyReader.Actions.Enable();

            this.MyReader.Parameters.Feedback.Success.BeepTime = 0;
            this.MyReader.Parameters.Feedback.Success.WaveFile = "\\windows\\alarm3.wav";

            return true;
        }

        // Zaustavi čitanje i zatvori reader
        private void TermReader()
        {
            if (this.MyReader != null)
            {
                this.MyReader.Actions.Disable();
                this.MyReader.Dispose();
                this.MyReader = null;
            }

            if (this.MyReaderData != null)
            {
                this.MyReaderData.Dispose();
                this.MyReaderData = null;
            }
        }

        // Započni čitanje
        private void StartRead()
        {
            if ((this.MyReader != null) &&
                 (this.MyReaderData != null))
            {
                this.MyReader.ReadNotify += this.BarEventHandler;
                this.MyReader.Actions.Read(this.MyReaderData);
            }
        }

        // Zaustavi sva čitanja
        private void StopRead()
        {
            if (this.MyReader != null)
            {
                this.MyReader.ReadNotify -= this.BarEventHandler;
                this.MyReader.Actions.Flush();
            }
        }

        // notifikacija, pokretanje HandleData funkcije koja, je li, operiše sa dobijenim barkodom
        private void BarReader_ReadNotify(object sender, EventArgs e)
        {
            Symbol.Barcode.ReaderData TheReaderData = this.MyReader.GetNextReaderData();

            if (TheReaderData.Result == Symbol.Results.SUCCESS)
            {
                this.HandleData(TheReaderData);
                this.StartRead();
            }
        }

        // operacije sa dobijenim kodom
        private void HandleData(Symbol.Barcode.ReaderData TheReaderData)
        {
               // ovde ubaciš svoje operacije sa kodom
               MessageBox.Show(TheReaderData.Text);
        }



Reader inicijalizuješ u npr. OnLoad funkciji tvog programa sa:
Code:
if (this.InitReader()) this.StartRead();


A zatvaraš ga u npr. Closing sa:
Code:
this.TermReader();


Nadam se da će ovaj source biti od pomoći.
[ elmagio @ 11.09.2009. 07:53 ] @


Uh jel ovo C+?




[ Yeremiya @ 11.09.2009. 09:32 ] @
C# je u pitanju. Kod koji sam napisao pre par poruka funkcioniše besprekorno na Symbol uređajima od mc3090 pa "na bolje". :)
[ elmagio @ 09.10.2009. 07:27 ] @

Evo mene opet. Konvertirao sam kod iz C# u VB.NET i imam sada problem na dijelu koda :


' Zapocni citanje
Private Sub StartRead()
If ((Not (Me.MyReader) Is Nothing) _
AndAlso (Not (Me.MyReaderData) Is Nothing)) Then
Me.MyReader.ReadNotify = (Me.MyReader.ReadNotify + Me.BarEventHandler)
Me.MyReader.Actions.Read(Me.MyReaderData)
End If
End Sub

' Zaustavi sva citanja
Private Sub StopRead()
If (Not (Me.MyReader) Is Nothing) Then
Me.MyReader.ReadNotify = (Me.MyReader.ReadNotify - Me.BarEventHandler)
Me.MyReader.Actions.Flush()
End If
End Sub



Javlja mi grešku :
'Public Event ReadNotify(sender As Object, e As System.EventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.