Autoit e Primera Disc Publisher SE

« Older   Newer »
  Share  
andreatrentin
CAT_IMG Posted on 17/6/2008, 16:51     +1   -1




Possiedo un duplicatore CD/DVD della Primera modello disc Pulisher SE comandato tramite PC.
Vorrei sviluppare del software per poter utilizzare questo duplicatore secondo le mie esigenze.
Per fortuna primera ha rilasciato delle API per poter sviluppare del software in modo indipendente.
Per scaricare le sdk tools:
--http://www.primera.com/downloads/support/SDK/PTRobot_1_3_4.zip--
Username = supportsdk
Password = sdk191
Alla fine si tratta di fare il dllcall di una dll (ptrobot.dll) ed agire di conseguenza in base alla risposte ricevute.
In partica la prima cosa da fare è inizializzare l'apparecchio tramite il comando PTRobot_Initialize.
Leggendo nel manaule fornito a corredo con le sdk trovo queste spiegazioni:
2.1.1 PTRobot_Initialize
///////////////////////////
//
// PTRobot_Initialize
//
// Description:
// Function to initialize internal data structures of
// the PTRobot module.
// Params:
// None
// Notes:
// Return:
// PTROBOT_OK if Successful
// PTROBOT_INTERNAL if an internal error occurred.
//
///////////////////////////
DWORD WINAPI PTRobot_Initialize();

se però utilizzo il comando autoit
$R=dllcall("ptrobot.dll","DWORD","PTRobot_Initialize")
non ottengo in risposta PTROBOT_OK oppure PTROBOT_INTERNAL
Dove sbaglio? Qual'è la sintassi corretta per utlizzare la funzione DLLCALL?
Grazie
 
Top
MatteoJug
CAT_IMG Posted on 17/6/2008, 17:22     +1   -1




La sintassi è:
CODICE
DllCall("dll","tipo di valore di ritorno","funzione"[,"tipo parametro","parametro"])
;//Puoi specificare più parametri, mettendo sempre prima il tipo, poi il parametro

Con la funzione DllCall() ti ritorna un array con:
[0] = Valore Ritorno
[1] = Parametro n° 1
[..]
[N] = Parametro n° N
Locicamente l'array, nel tuo esempio, ritornera con un solo elemento perche non hai specificato parametri.
[PS: Il "DWORD" è per le api, per autoit lo devi mettere minuscolo...anche se non dovrebbe essere case-sensitive]
 
Top
RedSkull92
CAT_IMG Posted on 17/6/2008, 20:31     +1   -1




Matteo dove posso prendere una buona guida su come utilizzare le dll in autoIt?(apparte l'help ufficiale)
 
Top
MatteoJug
CAT_IMG Posted on 17/6/2008, 21:11     +1   -1




Non credo esista una guida del genere...
Anche perchè alla fine, le poche funzioni che ci stanno sulle Dll in AutoIt, bene o male sono semplici...
 
Top
andreatrentin
CAT_IMG Posted on 17/6/2008, 21:21     +1   -1




Ho fatto un test ma ancora non ho il risultato voluto.
Ho provato a modificare il programma di test così
$R=DllCall("c:\pt\ptrobot.dll","dword","PTRobot_Initialize")
msgbox(0,"prova",$R)
Ma la finestra che appare non visualizza alcun dato, come se $R fosse una stringa vuota.
Viceversa se metto $R[0] ho come risulato 0
Gran parte dei comandi non prevede parametri, come specificato nella documentazione, quindi ritengo che la chiamata della dll sia corretta
Non riesco a capire cosa devo fare per ottenere in risposta PTROBOT_OK o PTROBOT_INTERNAL
Grazie
Andrea
 
Top
RedSkull92
CAT_IMG Posted on 17/6/2008, 23:36     +1   -1




prova a scrivere $R[1]
 
Top
andreatrentin
CAT_IMG Posted on 18/6/2008, 06:52     +1   -1




Autoit mi segnala errore
>"C:\Programmi\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\PT\test2.au3"
C:\PT\test2.au3 (2) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
msgbox(0,"prova",$R[1])
msgbox(0,"prova",^ ERROR
>Exit code: 1 Time: 0.341
 
Top
6 replies since 17/6/2008, 16:51   296 views
  Share