Ne approfitto per segnalare un'altra questione che mi è venuta in mente.
ho reperito tutti i comandi che è possibile dare tramite la libreria, ecco:
Canon D5(9); --> D5.shutterNow(); / D5.shutterDelayed();
Minolta A900(9); ---> A900.shutterNow(); / A900.shutterDelayed();
Nikon D5000(9); ---> D5000.shutterNow();
Olympus E5(9); ----> E5.shutterNow();/ E5.zoomin(50);/ E5.shutterNow();/ E5.zoomout(50);
Pentax K7(9);----> K7.shutterNow();
Sony A900(9); ----> A900.shutterNow(); / A900.shutterDelayed();
Il problema quindi non sussisterebbe solo nel leggere la eeprom e utilizzare CanonD5 oppure Minolta A900 ecc.. ma anche al momento dello scatto! Perchè se uso Canon D5() devo utilizzare D5.shutterNOW, se uso Minolta A900 devo usare A900.shutterNow() e così via...
Io avevo provato a fare una cosa del genere:
//MULTICAMERA IR CONTROL SELECTION (leggo la eeprom per vedere che fotocamera deve essere utilizzata
camera_index = EEPROM.read(0);
Serial.println(camera_index);
/*"Canon - 0"
"Nikon - 1"
"Minolta - 2"
"Olympus - 3"
"Pentax - 4"
"Sony" - 5*/
if(camera_index == 0)
{
Serial.println("canon");
Canon D5(11);
}
if(camera_index == 1)
{
Serial.println("nikon");
Nikon D5000(11);
}
if(camera_index == 2)
{
Serial.println("minolta");
Minolta A900(11);
}
if(camera_index == 3)
{
Serial.println("olympus");
Olympus E5(11);
}
if(camera_index == 4)
{
Serial.println("pentax");
Pentax K7(11);
}
if(camera_index == 5)
{
Serial.println("sony");
Sony A900(11);
}
Serial.println("Scatto con: ");
//qui eseguo ancora una volta il controllo di camera_index per controllare che segnale ir mandare per far scattare la foto
if(camera_index == 0)
{
Serial.println("canon");
D5.shutterNow();
}
if(camera_index == 1)
{
Serial.println("nikon");
D5000.shutterNow();
}
if(camera_index == 2)
{
Serial.println("minolta");
A900.shutterNow()
}
if(camera_index == 3)
{
Serial.println("olympus");
E5.shutterNow()
}
if(camera_index == 4)
{
Serial.println("pentax");
K7.shutterNow();
}
if(camera_index == 5)
{
Serial.println("sony");
A900.shutterNow()
}
Ma logicamente mi da errore in d5.shutternow() perchè la classe d5 di tipo canon si trova in una codizione if..![]()
EDIT:
Appena ho postato mi è venuto in mente questo:
camera_index = EEPROM.read(0);
if(camera_index == 0)
{
Serial.println("canon");
Canon D5(11);
D5.shutterNow();
}
if(camera_index == 1)
{
Serial.println("nikon");
Nikon D5000(11);
D5000.shutterNow();
}
if(camera_index == 2)
{
Serial.println("minolta");
Minolta A900(11);
A900.shutterNow();
}
if(camera_index == 3)
{
Serial.println("olympus");
Olympus E5(11);
E5.shutterNow();
}
if(camera_index == 4)
{
Serial.println("pentax");
Pentax K7(11);
K7.shutterNow();
}
if(camera_index == 5)
{
Serial.println("sony");
Sony A900(11);
A900.shutterNow();
}
- leggo la eeprom e memorizzo l'index in una variabile.
- ogni volta che devo scattare la foto, vedo l'index e da lì instanzo la classe di riferimento all'index e subito dopo scatto la foto..
Dovrebbe funzionare, devo provare un paio di reflex ora..xD
Non elegantissima come soluzione per ora però.. non mi viene in mente altro per il momento!