Eurotech DynaPCN 10-20 Manuale del proprietario

Tipo
Manuale del proprietario
DynaPCN
-10-20-xx
Ethernet/POE Passenger & People Counter
PROTOCOLLO DI COMUNICAZIONE ETHERNET
Rev
1-3 – 21 marzo 2018 DYPCN-10-20-xx_EthComProt_IT_1-3 – ITALIANO
© 2018 Eurotech SpA - Via Fratelli Solari 3/A - 33020 AMARO (UD) - Italy
Tutela dei marchi
Tutti i marchi, marchi registrati, loghi, nomi di aziende, e nomi di prodotti contenuti in questo
documento appartengono ai rispettivi proprietari.
Cronologia delle revisioni
Revisione
Descrizione
Data
1-0
Primo rilascio
15 febbraio 2018
1-3
Revisione contenuti
6 marzo 2018
1-3
Revisione contenuti
21 marzo 2018
DynaPCN-10-20-xx Rev. 1-3 Sommario
3 /
18
Sommario
Tutela dei marchi ................................................................................................................................................ 2
Cronologia delle revisioni ................................................................................................................................... 2
Sommario .................................................................................................................................................................... 3
1 Introduzione ........................................................................................................................................................ 5
2 Elenco dei comandi ............................................................................................................................................ 6
2.1 diagnostic_en ........................................................................................................................................... 6
2.2 disconnect ................................................................................................................................................ 6
2.3 enable_pc ................................................................................................................................................. 6
2.4 fw_version ................................................................................................................................................ 7
2.5 gcounters .................................................................................................................................................. 7
2.6 gdatetime .................................................................................................................................................. 7
2.7 gdoorstatus ............................................................................................................................................... 8
2.8 input0 ........................................................................................................................................................ 8
2.9 input1 ........................................................................................................................................................ 9
2.10 ker_version ............................................................................................................................................. 10
2.11 pcn1001_status ...................................................................................................................................... 10
2.12 rdsave ..................................................................................................................................................... 11
2.13 reboot ..................................................................................................................................................... 11
2.14 reset........................................................................................................................................................ 11
2.15 restore .................................................................................................................................................... 12
2.16 sdatetime ................................................................................................................................................ 12
2.17 sled ......................................................................................................................................................... 12
2.18 sys_version ............................................................................................................................................ 13
2.19 testin0 ..................................................................................................................................................... 13
2.20 testin1 ..................................................................................................................................................... 13
2.21 version .................................................................................................................................................... 14
2.22 updateI ................................................................................................................................................... 14
2.23 updateF .................................................................................................................................................. 15
3 Logica di funzionamento ................................................................................................................................. 16
Notes .......................................................................................................................................................................... 17
(Questa pagina viene lasciata bianca intenzionalmente)
DynaPCN-10-20-xx Rev. 1-3 Introduzione
5 /
18
1 Introduzione
Questo documento descrive il protocollo di comunicazione Ethernet da utilizzare tra l’applicativo
utente e il DynaPCN.
In questo protocollo: il DynaPCN è il lato server, l’applicativo utente è il lato client.
Il DynaPCN si comporta come “listening device” sulla porta 5400.
È possibile usare un’ utility come Packet Sender (https://packetsender.com/download
) per testare la
funzionalità dei comandi.
Ogni comando viene rappresentato nel modo seguente:
Comando
Nome del comando
Descrizione Comando
Breve descrizione dello scopo del comando
Parametro
Formato e tipo del/i parametro/i ammesso/i
Descrizione Parametro
Descrizione del/i parametro/i: valore permesso, default ..
Risultato
Formato, tipo e significato del/i risultato/i ammesso/i
Codice Esempio
Esempio di codice (solo lato client)
Alla fine di ogni comando / parametro inviato, includere un byte “0x00” come terminatore.
La prima operazione da compiere è creare un socket di comunicazione tra l’applicativo utente e il
DynaPCN.
Di seguito è riportato un esempio di codice client per inizializzare la connessione con il DynaPCN.
#include <winsock2.h>
...
struct sockaddr_in my_addr_data,serv_addr_data;
SOCKET sock = socket(AF_INET,SOCK_STREAM,0);
memset((char *)&serv_addr,0,sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(PORT);
serv_addr.sin_addr.s_addr = inet_addr(ADDRESS);
if(connect(sock,(struct sockaddr *)&serv_addr, sizeof(sockaddr)) == -1)
{
printf(“Unable to connect to %s", ADDRESS);
return;
}
...
Elenco dei comandi DynaPCN-10-20-xx Rev. 1-3
/ 18
2 Elenco dei comandi
2.1 diagnostic_en
Comando
diagnostic_en
Descrizione Comando
Abilita o disabilita la diagnostica
Parametro
unsigned char ( 1 byte)
Descrizione Parametro
Stato della diagnostica:
Se 0 : Disabilitata
Se 1 : Abilitata
Risultato
Codice Esempio
unsigned char val = 1; // Abilita la diagnostica
SendString(sock, "diagnostic_en");
Send(sock,&val,sizeof(val));
2.2 disconnect
Comando
disconnect
Descrizione Comando
Chiude la comunicazione tra applicativo utente e PCN
Parametro
Descrizione Parametro
Risultato
Codice Esempio
SendString(sock,"disconnect");
2.3 enable_pc
Comando
enable_pc
Descrizione Comando
Abilita o disabilità il conteggio persone
Parametro
Unsigned char (1 byte)
Descrizione Parametro
Se 1 : abilita il conteggio persone
Se 0: disabilita il conteggio persone
Risultato
Stringa contenente:
“counting started”
“counting stopped
Un byte “0x00” è incluso come terminatore
Codice Esempio
unsigned char val = 1; // Abilita il conteggio persone
SendString(sock,"enable_pc");
Send(sock,&val,sizeof(val));
DynaPCN-10-20-xx Rev. 1-3 Elenco dei comandi
7 /
18
2.4 fw_version
Comando
fw_version
Descrizione Comando
Restituisce la versione installata del firmware FPGA
Parametro
Descrizione Parametro
Risultato
Stringa contenente la versione installata del firmware FPGA (ad esempio:“3.0”).
Un byte “0x00” è incluso come terminatore.
Codice Esempio
char version[32];
SendString(sock,"fw_version");
RecvString(sock,version);
2.5 gcounters
Comando
gcounters
Descrizione Comando
Restituisce il valore corrente dei contatori (In & Out)
Parametro
Descrizione Parametro
Risultato
Due variabili di tipo unsigned long (lunghe 4 byte).
Il primo numero è il valore del contatore In.
Il secondo numero è il valore del contatore Out.
Codice Esempio
unsigned long in,out;
SendString(sock,”gcounters”);
Recv(sock, &in,sizeof(in)); // contatore In
Recv(sock, &out,sizeof(out)); // contatore Out
2.6 gdatetime
Comando
gdatetime
Descrizione Comando
Restituisce data e ora correnti del PCN
Parametro
Descrizione Parametro
Risultato
Due stringhe.
La prima stringa contiene la data corrente in formato DD/MM/YYYY.
La seconda stringa contiene l’ora corrente in formato HH.MM.
Un byte “0x00” è incluso come terminatore
Codice Esempio
char sysdate[16];
char systime[16];
SendString(sock,"gdatetime");
RecvString(sock,sysdate);
RecvString(sock,systime);
.
Elenco dei comandi DynaPCN-10-20-xx Rev. 1-3
/ 18
2.7 gdoorstatus
Comando
gdoorstatus
Descrizione Comando
Restituisce lo stato della porta
Parametro
Descrizione Parametro
Risultato
unsigned char (1 byte).
Se 1 : La porta è aperta
Se 0 : La porta è chiusa
Codice Esempio
unsigned char val;
SendString(sock, "gdoorstatus");
Recv(sock, &val, sizeof(val));
2.8 input0
Comando
input0
Descrizione Comando
Imposta la funzionalità associata al Digital input 0
Parametro
unsigned short (2 byte)
Descrizione Parametro
Vedere Tabella 1
Risultato
Codice Esempio
// Per impostare la funzionalità Do nothing
unsigned short val = 0;
// Per impostare la funzionalità Reset counters
unsigned short val = 1;
// Per impostare la funzionalità Enable/Disable person counting
unsigned short val = 2;
// Per impostare la funzionalità Test
unsigned short val = 3;
// Per inviare il comando
SendString(sock,"input0");
Send(sock,&val,sizeof(val));
Tabella 1. Mappa funzionalità Digital Input0
Valore
Funzionalità
Descrizione
0
Do Nothing
Il segnale del Digital input viene ignorato
1
Reset Counters
Quando viene rilevato un fronte di salita i contatori
vengono azzerati
2
Enable/Disable Person Counting
Quando viene rilevato un fronte di salita viene fatto partire
il conteggio.
Quando viene rilevato un fronte di discesa viene fermato il
conteggio.
3
Test
Usato per testare il segnale
4
Reset Counters Reverse
Quando viene rilevato un fronte di discesa i contatori
vengono azzerati
5
Enable/Disable Person Counting Reverse
Quando viene rilevato un fronte di discesa viene fatto
partire il conteggio.
Quando viene rilevato un fronte di salita viene fermato il
conteggio.
DynaPCN-10-20-xx Rev. 1-3 Elenco dei comandi
9 /
18
2.9 input1
Comando
Input1
Descrizione Comando
Imposta la funzionalità associata al Digital Input 1
Parametro
unsigned short (2 byte)
Descrizione Parametro
Vedere Tabella 2
Risultato
Codice Esempio
// Per impostare la funzionalità Do nothing
unsigned short val = 0;
// Per impostare la funzionalità Reset counters
unsigned short val = 1;
// Per impostare la funzionalità Enable/Disable person counting
unsigned short val = 2;
// Per impostare la funzionalità Test
unsigned short val = 3;
// Per inviare il comando
SendString(sock,"input1");
Send(sock,&val,sizeof(val));
Tabella 2. Mappa funzionalità Digital Input1
Valore
Funzionalità
Descrizione
0
Do Nothing
Il segnale del Digital input viene ignorato
1
Reset Counters
Quando viene rilevato un fronte di salita i contatori
vengono azzerati
2
Enable/Disable Person Counting
Quando viene rilevato un fronte di salita viene fatto partire
il conteggio.
Quando viene rilevato un fronte di discesa viene fermato il
conteggio.
3
Test
Usato per testare il segnale
4
Reset Counters Reverse
Quando viene rilevato un fronte di discesa i contatori
vengono azzerati
5
Enable/Disable Person Counting Reverse
Quando viene rilevato un fronte di discesa viene fatto
partire il conteggio.
Quando viene rilevato un fronte di salita viene fermato il
conteggio.
Elenco dei comandi DynaPCN-10-20-xx Rev. 1-3
/ 18
2.10 ker_version
Comando
ker_version
Descrizione Comando
Restituisce la versione di kernel
Parametro
Descrizione Parametro
Risultato
Stringa contenente l’attuale versione di kernel (esempio: “2.1”)
Sample Code
char version[32];
SendString(sock,"ker_version");
RecvString(sock,version);
2.11 pcn1001_status
Comando
pcn1001_status
Descrizione Comando
Restituisce lo stato del PCN e i codici di errore della diagnostica
Parametro
Descrizione Parametro
Risultato
2 valori unsigned char ( 1 byte):
Il primo byte indica la presenza/assenza di errori:
= 1 : Nessun errore
≠ 1 : Errore
Il secondo byte specifica il tipo di errore (codice d’errore): vedere la Tabella 3.
Il secondo byte non ha alcun significato se il primo byte = 1
Codice Esempio
unsigned char status,code_error;
SendString(sock,"pcn1001_status");
// restituisce lo stato del PCN
Recv(sock,&status, sizeof(status));
// restituisce il codice di errore
Recv(sock,&code_error, sizeof(code_error));
Tabella 3. Codici di Errore e loro significato
Codice d’errore
Significato
1
Sensore video destro occluso
2
Sensore video sinistro occluso
3
Entrambi i sensori video occlusi
4
Sensore video destro oscurato
8
Sensore video sinistro oscurato
12
Entrambi i sensori video oscurati
16
Elevata differenza tra sensori video destro e sinistro
20,24,28
Elevata differenza tra sensori video destro e sinistro e entrambi i sensori video oscurati
La differenza tra occluso e oscurato è la seguente:
Occluso: questa è una condizione di mascheramento completo di uno o di entrambi i sensori video (esempio: un'etichetta
spessa attaccata sul sensore, o sensore rotto).
Sarebbe meglio verificare che il PCN sia ok
Oscurato: si tratta di una condizione più leggera rispetto a quella occlusa. In questo caso il mascheramento di uno o di
entrambi i sensori video è parziale e transitorio. Generalmente questa condizione non costituisce un problema per il
conteggio.
DynaPCN-10-20-xx Rev. 1-3 Elenco dei comandi
11 /
18
2.12 rdsave
Comando
rdsave
Descrizione Comando
Restituisce un buffer di dimensione variabile contenente il log file del PCN.
Parametro
Descrizione Parametro
Risultato
Valori restituiti:
Dimensione del log file: int (4 byte)
Buffer file: vettore di unsigned char di lunghezza <size>
Codice Esempio
int size = 0;
unsigned char *buffer;
FILE *out;
// Invia il comando
SendString(sock,"rdsave");
// Riceve la dimensione del buffer
Recv(sock,(char *)&size,sizeof(size));
buffer = new unsigned char [size];
// Riceve il buffer
Recv(sock,(char *)buffer,size);
fopen(out,”logfile.txt”,”w");
fwrite(buffer,size,1,out);
fclose(out);
delete [] buffer;
2.13 reboot
Comando
reboot
Descrizione Comando
Esegue il reboot del PCN
Parametro
Descrizione Parametro
Risultato
Codice Esempio
SendString(sock,"reboot");
2.14 reset
Comando
reset
Descrizione Comando
Azzera il valore dei contatori (In & Out)
Parametro
Descrizione Parametro
Risultato
Codice Esempio
SendString(sock,"reset");
Elenco dei comandi DynaPCN-10-20-xx Rev. 1-3
/ 18
2.15 restore
Comando
restore
Descrizione Comando
Ripristina le impostazioni di fabbrica del PCN
Parametro
Descrizione Parametro
Risultato
Codice Esempio
SendString(sock,"restore");
2.16 sdatetime
Comando
sdatetime
Descrizione Comando
Imposta data e ora nel PCN
Parametro
Strings
Descrizione Parametro
Stringa contenente data e ora correnti in formato MMDDhhmmYYYY
Esempio: 21 Maggio 2050 alle 15:39 = “052115392050”
Risultato
Codice Esempio
char datetime[16]; // MMDDhhmmYYYY
SendString(sock,"sdatetime");
SendString(sock,datetime);
2.17 sled
Comando
sled
Descrizione Comando
Imposta la luminosità dei LED
Parametro
Unsigned char (1 byte)
Descrizione Parametro
Valori da 0 a 255:
Se 0 : Spenti
Se 255 : Intensità massima
Risultato
Codice Esempio
unsigned char val;
SendString(sock,"sled");
Recv(sock,&val,sizeof(val));
DynaPCN-10-20-xx Rev. 1-3 Elenco dei comandi
13 /
18
2.18 sys_version
Comando
sys_version
Descrizione Comando
Restituisce la versione di Sistema Operativo installato nel DynaPCN-10-20-xx
Parametro
Descrizione Parametro
Risultato
Stringa contenente la versione di Sistema Operativo (esempio: “1.6”)
Sample Code
char version[32];
SendString(sock,"sys_version");
RecvString(sock,version);
2.19 testin0
Comando
testin0
Descrizione Comando
Restituisce il livello logico dell’ingresso
Parametro
Descrizione Parametro
Risultato
unsigned char (1 byte).
1 : Livello logico alto
0: Livello logico basso
Codice Esempio
unsigned char val;
SendString(sock,"testin0");
Recv(sock,&val,sizeof(val));
2.20 testin1
Comando
testin1
Descrizione Comando
Restituisce il livello logico dell’ingresso
Parametro
Descrizione Parametro
Risultato
unsigned char (1 byte).
1 : Livello logico alto
0: Livello logico basso
Codice Esempio
unsigned char val;
SendString(sock,"testin1");
Recv(sock,&val,sizeof(val));
Elenco dei comandi DynaPCN-10-20-xx Rev. 1-3
/ 18
2.21 version
Comando
version
Descrizione Comando
Restituisce la versione installata di imgserver
Parametro
Descrizione Parametro
Risultato
Stringa contenente la versione installata di imgserver (ad esempio: “2.3.11.”8).
Un byte “0x00” è incluso come terminatore.
Codice Esempio
char version[32];
SendString(sock,"version");
RecvString(sock,version);
2.22 updateI
Comando
updateI
Descrizione Comando
Aggiorna l’imgserver
Parametro
Intero (4 byte)
Vettore unsigned char (1byte * size)
Descrizione Parametro
Dimensione del log file
Buffer file: vettore di unsigned char di lunghezza <size> contenente il file da
aggiornare
Risultato
Valore intero (4 byte).
Se > 0 : aggiornamento completato con successo
Altrimenti : aggiornamento fallito.
Codice Esempio
int handle,status;
handle = fopen(FileName, “rb”);
int size = fseek(handle,0,2);
fseek(handle,0,0);
unsigned char *buffer = new unsigned char [size];
fread(handle, buffer, size);
fclose(handle);
SendString(sock,"updateI"); // Invia Comando
Send(sock,&size,sizeof(size)); // Invia la dimensione del file
Send(sock,(char *)buffer,size); // Invia il buffer
Recv(sock,(char *)&status,sizeof(status));
DynaPCN-10-20-xx Rev. 1-3 Elenco dei comandi
15 /
18
2.23 updateF
Comando
updateF
Descrizione Comando
Aggiorna il firmware FPGA
Parametro
Intero (4 byte)
Vettore unsigned char (1byte * size)
Descrizione Parametro
Dimensione del log file
Buffer file: vettore di unsigned char di lunghezza <size> contenente il file da
aggiornare
Risultato
Valre intero (4 byte).
Se > 0 : aggiornamento completato con successo
Altrimenti : aggiornamento fallito.
Codice Esempio
int handle,status;
handle = fopen(FileName, “rb”);
int size = fseek(handle,0,2);
fseek(handle,0,0);
unsigned char *buffer = new unsigned char [size];
fread(handle, buffer, size);
fclose(handle);
SendString(sock,"updateF"); // Invia Comando
Send(sock,&size,sizeof(size)); // Invia la dimensione del file
Send(sock,(char *)buffer,size); // Invia il buffer
Recv(sock,(char *)&status,sizeof(status));
Logica di funzionamento DynaPCN-10-20-xx Rev. 1-3
/ 18
3 Logica di funzionamento
Il seguente diagramma di flusso descrive la logica di funzionamento tipica.
Un ingresso digitale (0/1) del PCN è collegato a un circuito che riceve lo stato di apertura/chiusura
della porta e, in base allo stato di questa, abilita/disabilita il conteggio.
CONNECT
SDATETIME
RESET
Inizializzazione:
1. Connettere il PCN
2. Impostare data e ora correnti
3. Abilitare la diagnostica
4. Azzerare i contatori
GCOUNTERS
RESET
NO
NO
GDOORSTATUS
La porta è
chiusa?
La porta era
aperta in
precedenza?
SI
SI
Verifica stato delle porte e recupero
conteggi
:
1 Monitorare lo stato delle porte;
Il criterio di uscita è la
transizione dello stato della
porta: da aperta a chiusa
2 Recuperare i conteggi
3 Azzerare i contatori
DIAGNOSTIC_EN
DynaPCN-10-20-xx Rev. 1-3 Notes
17 /
18
Notes
EUROTECH.COM
HEADQUARTERS
Via Fratelli Solari, 3/a
33020 Amaro (UD)
– Italy
Tel:
+39 0433.485.411
Fax
: +39 0433.485.499
E
-mail: support.it@eurotech.com
Web:
www.eurotech.com
Per contattare la sede Eurotech locale: eurotech.com/contacts
Per contattare l' Eurotech Global Support Center
: support.eurotech.com
Per accedere all' Eurotech Download Area
: eurotech.com/download
All trademarks, registered trademarks, logos, trade names and products names contained in this document are the property of their respective owners.
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18

Eurotech DynaPCN 10-20 Manuale del proprietario

Tipo
Manuale del proprietario