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-4 – 5 maggio 2021DYPCN-10-20-xx_EthComProt_IT_1-4 – ITALIANO
© 2021 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-2
Revisione contenuti
6 marzo 2018
1-3
Revisione contenuti
21 marzo 2018
1-4
Aggiornamento comandi
5 maggio 2021
DynaPCN 10-20-xx Protocollo di Comunicazione Ethernet Rev. 1-4 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 Protocollo di Comunicazione Ethernet Rev. 1-4 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.
NOTE:
Il DynaPCN si comporta come “listening device” sulla porta TCP 5400
Per i comandi che restituiscono una risposta: attendere sempre che la risposta sia stata
ricevuta correttamente prima di chiudere la comunicazione
Tutti i parametri o le risposte numeriche (int e short) formate da più di un byte (per
esempio l’output di gcounters, o la funzione input0) seguono l’ordinamento da LSB (Less
Significant Byte) a MSB (Most Significant Byte).
Esempio:
Se gcounters restituisce “99 01 00 00 E7 01 00 00” (ci sono due contatori interi da 4 byte),
il risultato è il seguente:
Risultato in formato esadecimale
Risultato in formato decimale
00 00 01 99 (0x0199)
409
00 00 01 E7 (0x01e7)
487
È 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 che si invia, includere sempre 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 Protocollo di Comunicazione Ethernet Rev. 1-4
6
/ 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 0x00 : Disabilitata
Se 0x01 : 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
Stringa contenente: “disconnect”.
Un byte “0x00” è incluso come terminatore.
Codice Esempio
char response[11]; // "disconnect" + terminatore
SendString(sock, "disconnect");
RecvString(sock, response);
2.3 enable_pc
Comando enable_pc
Descrizione Comando Abilita o disabilità il conteggio persone
Parametro Unsigned char (1 byte)
Descrizione Parametro
Se 0x01 : abilita il conteggio persone
Se 0x00: 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 Protocollo di Comunicazione Ethernet Rev. 1-4 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 unsigned long (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 contiene la data corrente in formato DD/MM/YYYY.
La seconda contiene l’ora corrente in formato HH.MM.
Un byte “0x00” è incluso come terminatore al termine di ogni stringa.
Codice Esempio
char sysdate[16];
char systime[16];
SendString(sock,"gdatetime");
RecvString(sock,sysdate);
RecvString(sock,systime);
.
Elenco dei comandi DynaPCN 10-20-xx Protocollo di Comunicazione Ethernet Rev. 1-4
8
/ 18
2.7 gdoorstatus
Comando gdoorstatus
Descrizione Comando Restituisce lo stato della porta
Parametro
Descrizione Parametro
Risultato
unsigned char (1 byte).
Se 0x01 : La porta è aperta
Se 0x00 : 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 Protocollo di Comunicazione Ethernet Rev. 1-4 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 Protocollo di Comunicazione Ethernet Rev. 1-4
10
/ 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”).
Un byte “0x00” è incluso come terminatore.
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 unsigned char (1 byte):
Il primo byte indica la presenza/assenza di errori:
= 0x01
: Nessun errore
0x01 : Errore
I
l 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));
T
abella 3. Codici di Errore e loro significato
Codice d’errore
Significato
0
Nessun problema
1
Uno o entrambi i sensori video parzialmente occlusi
2
Un sensore video completamente occluso
3
Entrambi i sensori video completamente occlusi
4
Sensore video destro oscurato
8
Sensore video sinistro oscurato
12
Entrambi i sensori video oscurati
16
Elevata differenza di illuminazione tra sensori video destro e sinistro
20, 24, 28
Elevata differenza di illuminazione tra sensori video destro e sinistro, e entrambi i sensori
video occlusi
La differenza tra occlusione e oscuramento è la seguente:
Occlusione: condizione in cui un oggetto posto vicino a uno o a entrambi i sensori video, li copra parzialmente o
completamente. Tale condizione può presentarsi nel caso tipico in cui un sensore video venga coperto da una mano, da
un adesivo opaco, o da una gomma da masticare. Se questa condizione permane per un tempo sufficientemente lungo, è
necessario verificare che non vi siano oggetti posti sui sensori video che ne impediscano il corretto funzionamento
Oscuramento: condizione anomala di bassa illuminazione. Se questa condizione permane per un tempo sufficientemente
lungo, significa che il PCN sta lavorando in un ambiente troppo scuro per la sua configurazione. È necessario verificare
l'intensità dei LED all'infrarosso e valutare se sia necessario aumentarla.
DynaPCN 10-20-xx Protocollo di Comunicazione Ethernet Rev. 1-4 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 Protocollo di Comunicazione Ethernet Rev. 1-4
12
/ 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 (0x00) a 255 (0xFF):
Se 0x00 : Spenti
Se 0xFF : Intensità massima
Risultato
Codice Esempio
unsigned char val;
SendString(sock,"sled");
Recv(sock,&val,sizeof(val));
DynaPCN 10-20-xx Protocollo di Comunicazione Ethernet Rev. 1-4 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 installato (esempio: “1.6”).
Un byte “0x00” è incluso come terminatore.
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).
Se 0x01 : Livello logico alto
Se 0x00: 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).
Se 0x01 : Livello logico alto
Se 0x00: Livello logico basso
Codice Esempio
unsigned char val;
SendString(sock,"testin1");
Recv(sock,&val,sizeof(val));
Elenco dei comandi DynaPCN 10-20-xx Protocollo di Comunicazione Ethernet Rev. 1-4
14
/ 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 > 0x00 : 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 Protocollo di Comunicazione Ethernet Rev. 1-4 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
Valore intero (4 byte).
Se > 0x00 : 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 Protocollo di Comunicazione Ethernet Rev. 1-4
16
/ 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 Protocollo di Comunicazione Ethernet Rev. 1-4 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