Access Easylase.dll from Python
Verfasst: Fr 03 Sep, 2010 3:30 pm
Ich versuche, die Easylase-USB-Karte ueber die mitgelieferte .dll von Python unter Windows 7 aus anzusteuern, scheitere aber leider. Die API der Funktion ist so dokumentiert:
Hier http://www.laserfreak.net/forum/viewtop ... 1&p=117056 steht, dass das erste Argument (CardNumber) auch ein pointer sein soll. Mein einfachster code sieht also so aus:
Davon kriege ich immer eine exception: access violation reading 0x012F7000 (oder eine andere Adresse). Meine Vermutung ist, das Python den pointer frame nicht richtig uebergiebt. Kann mir da jemand helfen?
Danke schonmal,
Benjamin
Code: Alles auswählen
Function EasyLaseWriteFrame(CardNumber:integer, Datapointer:pointer, Byteanzahl:integer, Punktspeed :word):boolean
Senden eines Laserframes ab @Datapointer an Karte Nummer (CardNumber). Die maximale Framegröße beträgt 16000 Bildpunkte, entprechend 128.000 Bytes. Der Wert Punktspeed enthält die Ausgabegeschwindigkeit in PPS für diesen Frame und reicht von 1000 bis 65535.
CardNumber = 0 - Anzahl Karten
Byteanzahl = 0 – 1FFFFh
Punktspeed = 1000 - FFFFh
Rückgabewert = true -> Okay, = false -> USB Fehler.
Code: Alles auswählen
from ctypes import *
elib = CDLL("jmlaser.dll")
cid = c_int(elib.EasyLaseGetCardNum()-1)
frame = create_string_buffer(17)
ok = elib.EasyLaseWriteFrame(byref(cid),frame,hex(16),hex(2500))
Danke schonmal,
Benjamin