Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - Consulenza su come costruire algoritmo Client
Forum - Algoritmi - Consulenza su come costruire algoritmo Client

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
macco_cl (Normal User)
Rookie


Messaggi: 34
Iscritto: 27/02/2007

Segnala al moderatore
Postato alle 13:56
Mercoledì, 13/07/2016
Buongiorno a tutti,

da poco ho iniziato a lavorare con Python per un progetto di video sorveglianza che è installato in un laboratorio, sto sviluppando degli script per la parte client e la parte server, perché comunque vorrei archiviare dei dati.

L'obiettivo sarebbe quello di contare le persone che entrano ed escono dal laboratorio ed inoltre tramite un localizzatore salvare i dati di localizzazione nel DB.

Il sistema è composto da:

Un client rappresentato da un Raspberry al quale alla porta seriale è collegato un dispositivo il cui funzionamento deve essere costantemente controllato, una telecamera usata per contare le persone che è collegata direttamente al Raspberry.

Il Raspberry si dovrebbe occupare di fare nello stesso momento:

-delle richieste alla telecamera per vedere se persone sono entrate o uscite
-ricevere i dati di localizzazione
-controllare funzionamento dispositivo collegato alla porta seriale

Mi sto spaccando la testa nella progettazione di questo client, poiché vorrei crearlo in modo che fosse il più veloce possibile e che non perdesse nessun evento generato da parte dei dispositivi collegati ad esso.

Avevo pensato ad un client che fosse sempre attivo ovviamente tramite un loop While True, solo che se faccio le cose in modo sequenziale ho paura di perdere qualche evento....

Mi potreste aiutare? ci sto veramente impazzendo e non capisco se le mie sono paure infondate o veramente potrei perdere degli eventi, come ad esempio una persona che entra o esce dalla stanza o dei dati di localizzazione.

Ringrazio in anticipo per il vostro aiuto

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 14:30
Mercoledì, 13/07/2016
I Raspberry PI NON sono microcontrollori, anzi sono molto piu vicini ad un computer tradizionale, non essendo dispositivi strettamente embedded, presentano vantaggi e svantaggi, il primo vantaggio che gioca a tuo favore è che hai un sistema operativo completo sotto i piedi, il lavoro che su un microcontrollore dovresti fare tu è svolto per la maggior parte dal SO. Per esempio hai un supporto multithread che non avresti su un mC; per tanto senza grandi difficoltà dovresti riuscire a scrivere delle routine che non perdano alcun evento.
Tasto dolente del progetto, il riconoscimento delle entrate, come è effettuato? Hai gia delle routine scritte? è la telecamera che di suo rileva gli ingressi? Se cosi non fosse nel tuo progetto questo sarebbe indubbiamente il processo che detterebbe la velocità del tuo sistema(per tua fortuna le persone camminano lentamente)


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:00
Mercoledì, 13/07/2016
Ti consiglio cmq di verificare bene la questione della ripresa.

Sai che un aggeggio del genere potrebbe violare la legge?
e ti puoi beccare anche una bella denuncia?

Normalmente, la legge non permette la videoregistrazione in locali commerciali tranne alcune situazioni che
richiedono la video registrazione.

Ho trovato questo articolo per te.

L’art. 4 della Legge 300/70 (Statuto del Lavoratori) pone il DIVIETO dell’uso di impianti audiovisivi e di altri apparecchi che abbiano la finalità di controllo a distanza dell’attività lavorativa, ad eccezione dei casi giustificati da esigenze organizzative, produttive o di sicurezza. Da settembre 2015 le finalità del controllo a distanza dell’attività lavorativa possono essere anche per “tutela e difesa del patrimonio aziendale” (Vedi articolo JOBS ACT 2015 E VIDEOSORVEGLIANZA)

In questi casi è possibile installare gli impianti in oggetto a condizione che vi sia un accordo preventivo con le Rappresentanze sindacali. Se ciò non è possibile, il Datore di Lavoro deve richiedere una specifica Autorizzazione alla Direzione Provinciale del Lavoro della provincia nella quale ha sede l’unità produttiva interessata all’installazione.
La Direzione Provinciale del Lavoro, al fine del rilascio della propria autorizzazione, dovrà provvedere a svolgere un sopralluogo per verificare, in particolare, se l’angolo di ripresa delle telecamere sia o meno compatibile con il divieto sancito dall’art. 4 della legge n. 300/1970 ed eventualmente indicherà le prescrizioni da osservare.

Per “essere in regola” si dovrà quindi:

indicare con apposita modulistica la presenza delle videocamere;
redigere un documento interno sulle motivazioni e la scelta della videosorveglianza nell’area aziendale;
informare il personale dipendente raggiungendo un accordo con la RSU aziendale o, in sua mancanza, chiedere l’autorizzazione alla competente Direzione Provinciale del Lavoro (che DEVE essere preventiva all’installazione).


non credo che l'ispettorato del lavoro ti approverà una cosa del genere.

Noi in azienda abbiamo dovuto fare una dichiarazione scritta e registrata per poter avere un apparecchio di videoregistrazione per motivi di sorveglianza aziendale.

Ma ci hanno negato il consenso di registrare durante l'orario di lavoro.
Sopratutto non ci hanno dato il permesso di vedere il lavoro svolto dagli operai.

In poche parole,
Ci hanno dato la possibilità di videoregistrare si, Ma di non avere un monitor per osservare le persone o gli operai cosa fanno.

Mentre possiamo averete telecamere di videosorveglianza ma non di videoregistrazione.
per guardare l'entrata dell'azienda al cancello. E sapere chi e chi esce ma non guardare chi sta in auto.
Come posizionate, possiamo vedere il veicolo ed il numero di targa ma non i passeggeri.


Ultima modifica effettuata da Thejuster il 13/07/2016 alle 15:07


PM Quote
Avatar
macco_cl (Normal User)
Rookie


Messaggi: 34
Iscritto: 27/02/2007

Segnala al moderatore
Postato alle 15:23
Mercoledì, 13/07/2016
Allora, ringrazio tutti e due per il vostro aiuto...Per quanto riguarda la gestione delle leggi non ci sono problemi in quanto l'accesso in laboratorio è permesso solo a determinate persone che hanno acconsentito tramite documenti di non aver nessun problema riguardante il progetto (ovviamente l'ho fatta in breve qui), inoltre la telecamera non registra alcun video e non viene nemmeno usata per ottenere alcun tipo di immagine, ma conta solamente le persone e non è in grado di riconoscere i volti.

Per quanto riguarda la domanda tecnica la telecamera ha gia dentro di se un programma sviluppato dalla casa produttrice che offre già il conteggio delle persone e quindi a me basta effettuare una richiesta http e mi viene ritornato il conteggio delle persone entrate e uscite, il mio problema rimane rendere il più efficiente possibile il Client software che devo scrivere.

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 15:45
Mercoledì, 13/07/2016
Il fatto che i soggetti delle riprese siano informati ed acconsentano poco importa al legislatore. Probabilmente hai più possibilità di non incorrere in problemi giudiziari in quanto come dici tu, non svolgi un attività di registrazione fine ad essa, quindi nessuno potrebbe mai accedere direttamente al video. Molte di queste normative sono state scritte quando l'attiva di videoregistrazione era cosa per pochi, indubbiamente al giorno d'oggi andrebbe riformulate correttamente, ma come si sa le normative riguardanti la tecnologia del 2000 vengono scritte ora XD

Ritornando ad argomenti seri, se tutto il lavoro lo fa la telecamera ti sfido a saturare un rasp con delle richieste ad essa. Come ho detto in precedenza le persone camminano, un aggiornamento al secondo sarebbe gia esagerato!


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
macco_cl (Normal User)
Rookie


Messaggi: 34
Iscritto: 27/02/2007

Segnala al moderatore
Postato alle 16:13
Mercoledì, 13/07/2016
quindi tu mi consiglieresti di non preoccuparmi nemmeno di una programmazione multi thread ma di fare solo un codice sequenziale?

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:04
Mercoledì, 13/07/2016
Calma calma, un applicazione del genere deve essere per forza multi thread, o almeno non ha senso non sfruttare questa funzionalità. Ma al giorno d'oggi sono pochi i campi dove ancora si predilige una programmazione sincrona, il mondo è multi thread, se vuoi spingerti a fare un applicazione poco poco complessa pensare di gestire tutto su un singolo thread diventa complicato e controproducente; poi ovviamente bisogna vedere il caso specifico, ma in linea generale un applicazione che comunica su una rete, se è possibile, è buona norma che sia divisa su piu thread.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
macco_cl (Normal User)
Rookie


Messaggi: 34
Iscritto: 27/02/2007

Segnala al moderatore
Postato alle 10:14
Giovedì, 14/07/2016
Perfetto...Se devo essere sincero non sono molto pratico di programmazione Multi Thread, avresti voglia di aiutarmi e magari inizialmente mettere giù un algoritmo in pseudo codice in modo già da potermi fare uno schema mentale? te ne sarei veramente grato

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 15:37
Giovedì, 14/07/2016
Allora io sono solito svolgere programmazione multithread in C#, e multi-task "simulata" in C su microcontrollori (ma questa è un altra orribile storia) non ho minimamente esperienza su Python; ma i punti base sono sempre gli stessi.
Devi pensare ad un processo come un contenitore di thread, il processo più semplice si compone di un solo thread. Quando avvi un programma generalmente questo è single thread, durante l'esecuzione del main thread questo può generare altri thread che per quello che interessa a te, ad una prima analisi, non sono altro che programmi che vengono eseguiti in parallelo al processo principale. Un thread può accedere a determinate aree di memoria del processo principale, ma implementa uno stack proprio.
Prima di iniziare a scrivere il listato del tuo programma, mettiti a tavoli e determina quali operazioni ha senso vengano eseguite in parallelo, e soprattutto determina la priorità di risorse (es. Se un thread si occupa di registrare i dati sul DB non potrà farlo finché il thread che si interfaccia con la telecamera non gli avrà fornito i dati da registrare)

Per il resto su internet hai solo l'imbarazzo della scelta tra guide e spiegazioni riguardo la programmazione asincrona.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo