Ancora Canon SDK

Vorrei tornare a parlare delle Canon SDK ( o EDSDK ), un potente strumento che Canon mette a disposizione dei suoi consumatori. Scrissi qualcosa a riguardo in questo post, ora vi vorrei dare qualche dettaglio in più in merito agli strumenti a disposizione. Una volta aperto il pacchetto delle SDK ( versione per Windows, esiste pure una versione per Mac ) ci troveremo davanti a tre cartelle: Document, EDSDK e Sample. Nella prima troviamo il vademecum del programmatore, con le sue 150 pagine di references. In EDSDK troviamo il fulcro delle SDK, ossia le DLL, le librerie e headers, senza di queste il vostro lavoro non può nemmeno cominciare. Nell'ultima cartella invece troviamo degli esempi, creati da Canon, con lo scopo di darci degli indizi sulla tecnica di programmazione necessaria per controllare da PC la nostra DLSR e capire come utilizzare le API disponibili. Le attuali EDSDK ci permetto di iniziare a lavorare immediatamente con i seguenti tre linguaggi: C++, Visual Basic .NET e C#. Di questi abbiamo già i wrapper pronti all'uso, dovremmo solo scrivere il nostro codice e fare la chiamata ai metodi ( possibilmente con i parametri giusti 😀 ). Se invece vogliamo agire fuori dagli schemi,

Continua a leggere >>>

Canon SDK, you can!

Ebbene sì, tra le mie tante passione c'è un posticino riservato alla fotografia. Oggi vi voglio parlare delle SDK ( Software Development Kit) per fotocamere DSLR Canon EOS. Questo kit contiene tonnellate su tonnellate di API utilizzabili per controllare la reflex Canon EOS da un pc tramite cavo USB. Nel mondo pratico, Canon mette a disposizione miglia di blocchetti LEGO che possono essere combinati dal programmatore per realizzare qualsiasi cosa voglia. Fortunatamente, Canon non ha fatto la bravata di distribuire queste SDK o ED-SDK ( come le chiamano loro, sono come i francesi voglion cambiare nome a tutto 😀 ) a pagamento, o limitarne la distribuzione solo a personale autorizzato. Per entrarne in possesso vi basterà compilare un piccolo modulo di richiesta sul sito DIDP di Canon. Compilate la richiesta con attenzione ed in lingua inglese, poi dovrete aspettare qualche giorno ( 2 giorni nel mio casi ) per l'attivazione dell'account. La documentazione allegata al pacchetto è OTTIMA, sono circa 160 pagine in cui viene spiegato tutto esaustivamente. Troveremo quindi la definizione di tutte le API, di tutti gli errori e di tutti i settaggi della DSLR. In poche parole la BIBBIA del programmatore, in gergo il malloppo vien chiamato

Continua a leggere >>>

VBScript-Mania!

Devo proprio dirlo, VBScript è un linguaggio di scripting veramente potente, offre moltissime classe che possono manipolare le impostazioni avanzate del sistema operativo. Oggi ho creato un piccolo VBScript che attiva e disattiva il servizio di Hamachi e la scheda di rete virtuale che crea. Il solito prerequisito è che il servizio "Hamachi2Svc" e la scheda di rete "Hamachi Network Interface" siano disattivi. Lo script è scaricabile a questo indirizzo.

Continua a leggere >>>

Xor Swap: scambiare il valore di due variabili senza variabile d'appoggio

Evidentemente non ho niente di meglio da fare nel giorno di natale. 🙂 Vediamo un po' a cosa serve questo algoritmo. Se avete un po' di basi di programmazione sapreste che scambiare il valore contenuto in due variabili è un operazione comunissima. Il modo più semplice per effettuare questa operazione è di usare una variabile d'appoggio per contenere uno dei due valori e poi fare lo scambio. tmp := A A := B B := tmp Direi quasi banale, no? Senonché questo modo prevede la creazione di una variabile temporanea. Esiste tuttavia un algoritmo che fa lo stesso lavoro e non richiede nessuna variabile temporanea. Sto parlando dello Xor Swap, il nome deriva appunto da scambio con OR esclusive ( operazione bit a bit XOR ). Vediamo l'algoritmo: X := X XOR Y Y := X XOR Y X := X XOR Y Il bello di questo algoritmo è l'efficienza e la facilità nel ricordarlo. Vediamone un'implementazione in Java ed in C. public static void main(String[] args) { int x = 10; int y = 20; System.out.println("x = " + x + " y = " + y); x = x^y; y = x^y; x = x^y; System.out.println("x = "

Continua a leggere >>>

Modulo per gestione delle operazioni su file in C

Le operazioni che coinvolgono i file sul C ogni tanto possono dare qualche problemuccio, ho quindi realizzato questa interfaccia, con lo scopo di facilitare la gestione dei file. Ovviamente se siete dei guru in C questa interfaccia non vi servirà praticamente a niente 😀 Per poterla utilizzare basterà copiare il file .c e .h nella cartella in cui si troveranno i file che utilizzeranno le funzioni messe a disposizione dall'interfaccia. Basterà poi includere il file .h nel vostro progetto e potrete usare tutte le funzioni qui elencate: int FI_INIT ( FI_FILE *file, char *fname, long size ); int FI_OPEN ( FI_FILE *file ); int FI_CLOSE ( FI_FILE *file ); int FI_WRITE ( FI_FILE *file , void *userData ); int FI_READ ( FI_FILE *file , void *userData ); int FI_SEEK ( FI_FILE *file , long rec, int pos ); int FI_EOF ( FI_FILE *file ); Nel file FInt.h ( FInt = File Interface =D ) troverete la spiegazione ed un esempio di cosa fa ciascuna funzione. Ultima cosa, io l'interfaccia la ho realizzata utilizzando il Dev-c++, dovrebbe andare anche con gcc e altri compilatori. FInt.rar

Continua a leggere >>>