Ed eccomi con un'altra domanda arducosa.
Intento Buon 25 Aprile.
Oggi riparavo una dome dell'impianto TVS di casa.E sono incappato in un vecchio problema.
Nonostante il DVR sia di marca , Hikvision, non ha i preset interni per collegare un evento ad una azione.
Spiego meglio, una telecamera fissa guarda il viale e fornisce un allarme (evento) all'attraversamento di una linea, se arriva qualcuno scatta se va via non accade nulla, all'evento una delle dome si dirige , tramite preset, al punto interessato, dando una ulteriore inquadratura.
Questo accadeva con un DVR cinese di infima qualità , con un prestigioso Hilvision questo non si può fare.
Ho messo insieme un arduino che pilota le dome ma non riesco a creare un comando di richiamo preset.
In tutto il web pare che nessuno ne abbia necessità , tutti vogliono il controllo PTZ, come se comprassi una dome per posizionarla fissa.
Allego il codice che ho usato, segue la domanda.
const int P_LEFT = 10; //left
const int P_UP = 11; //up
const int P_RIGHT = 9; //right
const int P_DOWN = 12; //down
const int P_ZOOM_IN = 8; //zoom in
const int P_ZOOM_OUT = 7; //zoom out
const int P_PRESET = 6; //preset1 prova
const byte address = 1; //camera address
byte speed = 15; // can be changed by pressing left+up or left+down Disabilitato
for (int i = 0; i < 7; i++)
{
SerialRS.write(bytes[i]);
Serial.print(bytes[i], HEX); //debug
Serial.print(bytes[i], DEC); //debug
}
Serial.println(); //debug
}
void blinkLED()
{
for (int i = 0; i < 4; i++)
{
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
}
Io sostituirei tutti i comandi di input con preset , solo che questo non lo fa.
I manuali PELCO D, appunto il protocollo usato, dicono quanto segue.
Set Preset 0xFF Address 0x00 0x03 0x00 Preset ID SUM
Clear Preset 0xFF Address 0x00 0x05 0x00 Preset ID SUM
Call Preset 0xFF Address 0x00 0x07 0x00 Preset ID SUM
Dove oxFF è fisso, Address è l'indirizzo 485, 0x00 fisso,0x07 comando call preset,0x00 anch'esso zero, poi il valore del preset, infine il checksum.
Senza di esso(corretto) il comando non verrà eseguito.
Ho provato a inserire il comando, ma a debug mi pare la stringa non viene costruita correttamente.
Quindi aspetto domande, critiche, correzioni ecc ecc..
Grazie della pazienza.
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito