Buonasera,
Probabilmente scrivo una castroneria ma, vengo al sodo.
Ho una scheda sd sulla quale una macchina aggiorna un file di log ogni volta che si verifica un evento ad un sensore ad essa collegata.
Vorrei collegare la stessa contemporaneamente ad un secondo lettore per leggere con arduino in web server il file ogni qual volta mi serve sapere se c’è stato un evento.
Beh, è abbastanza ovvio che la cosa va studiata e ci devono essere dei segnali che indicano lo stato di una transazione (segnali di sincronizzazione tra i due che vogliono usare lo stesso SPI) ... altrimenti sai che casino
Guglielmo
P.S.: ma questa cosa è in generale valida per ogni cosa a cui si vuole accedere da più utilizzatori.
Il problema è se la macchina inizia a scrivere quando arduino sta leggendo
Sincronizzare la macchina richiede modificarla o almeno modificarne il suo programma ed il suo cablaggio
Temo sia li il problema, non solo tecnico, anche relativo a sicurezze, garanzie e certificazioni
Si, certo, quello intendevo per sincronizzazione ... purtroppo l'OP NON ci ha dato alcuna informazione su questa "macchina" ... cosa è? Una cosa che ha realizzato lui? Un prodotto industriale?
Ovvio che a seconda dei casi ci può mettere o NON ci può mettere le mani dentro e quindi c'è poco da fare.
Comunque, alla domanda come si accede ad allo stesso device SPI da più controller, la risposta più semplice è usando un mux SPI ... ovviamete se il tutto è fattibile
La macchina è una vending machine che purtroppo non supporta nessun collegamento Wi-Fi/lan. Dovrei aggiornare, ovvero sostituire la scheda madre con nuovi protocolli mdb ecc.
La mia idea, siccome capita che qualche cliente dica di non aver ricevuto resto, era di leggere il file di log dove appunto mi segnala anche un resto non erogato, un overpay (cioè caricano soldi e scordano di premere tasti e dopo X secondi la macchina azzera) oppure controllare l’andamento della giornata.
Dei distributori sono proprietario, quindi nessun problema circa vincoli con comodato d’uso; però ovviamente è un discorso troppo articolato quindi lascio perdere.
Potrei anche, come diceva qualcuno, intercettare la comunicazione cctalk tra rendiresto, lettori banconote e monete ma sarete troppo un casino
Mi sa che, con una certa regolarità, ti tocca spostare a manina la SD card dalla macchina ad un lettore di SD per leggere, periodicamente, il file di log ...
A manina lo faccio già. Il discorso era arginare un problema prima che questo divenisse più grande.
10 giorni fa si bloccò il rendiresto e fui chiamato da un cliente verso le 11 di mattina ma, controllando i log, il problema si era verificato già dalle 9.
Ovviamente il discorso si fa grande se tutti venissero con 5/10€ e la macchina in pochi minuti può non erogare anche 20/30€ di resto…
A quel punto il log mi serviva per verificare se vi fosse un errore, magari controllando ogni ora ad esempio, e quindi attivarmi subito
2ª IPOTESI:
Se affrontassi l’argomento da un altro punto di vista?
Piuttosto che leggere un log scritto su di una sd, potrei collegarmi sulla linea cctalk del rendiresto ed intercettare/leggere in simultanea la comunicazione?
Conosco come funziona il cctalk, ma non so come questo si comporta in una situazione di errore; se ad esempio questo mandasse semplicemente una stringa per dichiarare lo stato di errore e si fermasse lì senza aggiornamenti periodici, io potrei trovarmela su arduino e leggerla, no?
oppure ciclicamente aggiorna lo stato e dopo un X secondi torna in standby?