Deutsch
Quelltexte/ Codesnippets

Auslesen Barcode Bcp5000 Scanner Steuern

 
Für den Barcode-Scanner BCP5000 habe ich den folgenden Auslese-Quelltext hergestellt z.B. für An-/ Einbindung an Firmensoftware. Das Programm liest den Scanner aus und schreibt die Daten in eine Textdatei und "löscht" den Scanner. Es gibt auch die ausgeklammerte Funktion um die Datensätze in eine Listbox zu kopieren.

Dankeschön auch an Michael Krug ( [...]  ) für die Steuerbefehle - bei ihm kann man auch diese Scanner bestellen.

Das Programm war/ ist notwendig da die mitgelieferte Auslesesoftware (natürlich) nicht funktionierte - "natürlich" war ein OCX oder eine Komponente "ungültig".

Barcodes drucken geht hiermit ganz einfach: [...] 
KompilierenMarkierenSeparieren
 {$cleq}
 {$runtime C:\dev\BCP5000\}
const outpFle="bcp5000output.txt"
/*
// Liste-Variante
long dataSet=bcp5000.createScannedDataList(4)
case dataSet==-1 : end messageBox("Scanner-Fehler.","Scanner-Fehler.",4096)
print "DataSets:",getCount(dataSet)
whileLoop 0,getCount(dataSet)-1
print getString$(dataSet,loop)
wend
*/
long comPort=val(readini$(progDir+"bcp5000.ini","setup","port"))

if comPort<1

    writeini progDir+"bcp5000.ini","setup","port"="0"
    shell "notepad "+progDir+"bcp5000.ini"
    end

endif

long fh=assign(outpFle)
casenot fh : end messageBox(outpFle+"-Fehler","Fehler.",4096)

if fileExists(outpFle)

    append fh

else

    rewrite fh

endif

case ioResult : end messageBox(outpFle+"-Fehler","Fehler.",4096)
string dta=bcp5000.createScannedDataList(comPort,false)
caseNot dta=="" : print #fh,dta
close fh
bcp5000.eraseData(comPort)
end

proc bcp5000.eraseData(long comPortNumber)

    long h=openCom("COM"+str$(comPortNumber),262144,262144)
    case h<1 : return -1//end messageBox("Scanner nicht gefunden.","Scanner nicht gefunden.",4096)
    casenot setCom(h,"COM"+str$(comPortNumber)+":19200,N,8,1")==0 : return -1//end messageBox("Scanner-SetCom-Fehler.","Scanner-SetCom-Fehler.",4096)
    writeCom(h,"\x02        E\x0D\x72\x03")
    caseNot comError(h)==0 : return -1//end messageBox("Scanner-WriteCom-Fehler.","Scanner-WriteCom-Fehler.",4096)
    closeCom(h)
    return 1

endProc

proc bcp5000.createScannedDataList(long comPortNumber,bool stringOrList)

    case pCount<2 : stringOrList=true
    long h=openCom("COM"+str$(comPortNumber),262144,262144)
    case h<1 : return -1//end messageBox("Scanner nicht gefunden.","Scanner nicht gefunden.",4096)
    casenot setCom(h,"COM"+str$(comPortNumber)+":19200,N,8,1")==0 : return -1//end messageBox("Scanner-SetCom-Fehler.","Scanner-SetCom-Fehler.",4096)
    writeCom(h,"\x02        D\x0D\x71\x03")
    caseNot comError(h)==0 : return -1//end messageBox("Scanner-WriteCom-Fehler.","Scanner-WriteCom-Fehler.",4096)
    string s
    long tme=getTickCount+15000

    while getTickCount<tme

        s=readCom$(h,262144)
        // caseNot comError(h)==0  : return -4 //end messageBox("Scanner-ReadCom-Fehler.","Scanner-ReadCom-Fehler.",4096)
        caseNot s=="" : break
        sleep 100

    wend

    long scanC=int(val(mid$(s,10,5))),ofs=15,lst
    string dte,dta,ns,scid=mid$(s,2,8)
    case stringOrList : lst=create("list",0)

    whileLoop scanC

        dte=format$("00",str$(ord(mid$(s,2+ofs,1))-16))+"."+format$("00",str$(ord(mid$(s,1+ofs,1))-16))+"."+"20"+format$("00",str$(ord(mid$(s,ofs,1))-16))+" "+format$("00",str$(ord(mid$(s,3+ofs,1))-16))+":"+format$("00",str$(ord(mid$(s,4+ofs,1))-16))+":"+format$("00",str$(ord(mid$(s,5+ofs,1))-16))
        ns=scid+" "+dte+" "
        inc ofs,7

        whileNot mid$(s,ofs,1)==","

            ns=ns+mid$(s,ofs,1)
            inc ofs,1

        wend

        if stringOrList

            addstring(lst,ns)

        else

            dta=dta+ns+"\n"

        endif

        inc ofs,2

    wend

    closeCom(h)
    case stringOrList : return lst
    return trim$(dta)

endProc


469 kB
Hochgeladen:17.12.2010
Ladeanzahl11
Herunterladen
 
17.12.2010  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.147 Betrachtungen

Unbenanntvor 0 min.
Uwe Lang29.02.2024
RudiB.26.02.2024
Manfred Barei09.12.2023
Normann Strübli30.01.2023
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

iF (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie