Typical 41

138 views
Skip to first unread message

Tomas Falcone

unread,
Oct 7, 2013, 4:02:04 PM10/7/13
to sou...@googlegroups.com


Salve,ho configurato il mio arduino uno +eth come antifurto.
Sketch allegato.

Adesso ho un problema in SoulissApp.
Non visualizzo i sensori dell'antifurto.
Immagini allegate


garage_eth.ino

Alessandro

unread,
Oct 7, 2013, 4:05:14 PM10/7/13
to sou...@googlegroups.com
Salve,

per usare l'antifurto servono sia il 42 che il 41. Il primo funge da master, e raccoglie lo stato automaticamente da tutti i dispositivi 41.
In effetti servirebbe un messaggio di avvertimento quando il 42 non viene trovato ...
Credo tu possa far riferimento agli esempi relativi e ad un'altra discussione qui sul forum :)

Alessandro


2013/10/7 Tomas Falcone <tomas....@gmail.com>

--
You received this message because you are subscribed to the Google Groups "souliss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to souliss+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Tomas Falcone

unread,
Oct 7, 2013, 4:46:27 PM10/7/13
to sou...@googlegroups.com
Ma il typical 42 non serve per i nodi peer?
io vorrei fare un antifurto cablato, con un solo arduino.
Ho provato ad inserire un po di codice e giocarci, ma riesco a visualizzare i "sensori" . Pero se non è possibile mi accontento ;-)

Di Maio, Dario

unread,
Oct 8, 2013, 12:36:14 AM10/8/13
to sou...@googlegroups.com

Si, in effetti credo che ci manchi un tipico 43, analogo al 42 ma che lavori sulla stessa macchina.

Per ora, modifica il 42 in modo da non fargli inviare via rete lo stato. In questi giorni metto mano e scrivo il 43.
Se apri un issue, ne teniamo facilmente traccia.

Dario.

From mobile.

Tomas Falcone

unread,
Oct 8, 2013, 2:23:55 AM10/8/13
to sou...@googlegroups.com
Buongiorno,
ieri sera fino a notte tarda ho provato a modificare e rimodificare lo sketch, cercando di ingannare il framework.
non ci sono riuscito.
ho assegnato ad ogni senosre uno slot
poi li ho dichiarati come T42
ho eseguito nel programma principale la logica T42
e poi ho eseguito un LINKIO (come per il whacthdog)

Risultato:
i sensori si vedevano
cambiavano di stato, per visualizzare il cambiamento di stato in soulissapp dovevo premere il tasto aggiorna,
 ma appena entravano in allarme, non era possibile resettare o riarmare l'allarme, rimaneva in allarme, dove premere il tasto reset sull'arduino.

stasera se la moglie non rompe ;-) provo ad entrare e modifica il cuore di souliss
Inoltre la #define Souliss_T4n_NoAlarm 0x02 non è definita, 


--
You received this message because you are subscribed to a topic in the Google Groups "souliss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/souliss/sN1SP-fKHLg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to souliss+u...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.



--
Ing. Falcone Tomas
Via Pergolesi 6
61011 Gabicce Mare -PU-
Italia

Di Maio, Dario

unread,
Oct 8, 2013, 3:01:52 AM10/8/13
to sou...@googlegroups.com
Ciao Tomas,

stasera provo ad introdurre il nuovo tipico. Non veniva aggiornato lo stato in automatico, perché il T42 non attiva il flag data_change (essendo pensata per girare su un nodo diverso).

Cosa intendi con non è definita T4n_NoAlarm?

Grazie,
Dario.


2013/10/8 Tomas Falcone <>

--
You received this message because you are subscribed to the Google Groups "souliss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to souliss+u...@googlegroups.com.

Tomas Falcone

unread,
Oct 8, 2013, 3:18:44 AM10/8/13
to sou...@googlegroups.com

Grazie dell'assistenza.
Nel file typical 4n vengono mostrati i  possibili input della logica t41 tra cui T4n_NoAlarm.
Ma usandolo mi da errore come se non fosse dichiarato.

Tomas Falcone

unread,
Oct 8, 2013, 3:19:52 AM10/8/13
to sou...@googlegroups.com

Se hai issues più importanti lascia pure il mio problema indietro... Che non è urgente

Di Maio, Dario

unread,
Oct 8, 2013, 5:53:52 AM10/8/13
to sou...@googlegroups.com
Ciao Tomas,

di seguito trovi il codice T42 patchato (c'è un errore nel riarmo) inseriscilo in  T4n.cpp eliminando il codice del vecchio T42.

U8 Souliss_Logic_T42(U8 *memory_map, U8 slot, U8 *trigger, U16 main_antitheft_address)
{
    // If the anti-theft is set and there is an alarm, set the output   
    if((memory_map[MaCaco_IN_s + slot] == Souliss_T4n_Alarm))
    {
        memory_map[MaCaco_OUT_s + slot] = Souliss_T4n_Alarm;
        memory_map[MaCaco_IN_s + slot] = Souliss_T4n_RstCmd;

        return MaCaco_send(main_antitheft_address, MaCaco_FORCEREGSTR, 0x00, MaCaco_IN_s + slot, 1, &memory_map[MaCaco_OUT_s + slot]);
    }
    else if((memory_map[MaCaco_IN_s + slot] == Souliss_T4n_ReArm))
    {   
        memory_map[MaCaco_OUT_s + slot] = Souliss_T4n_RstCmd;
        memory_map[MaCaco_IN_s + slot] = Souliss_T4n_RstCmd;       
    }
}

Per la funzionalità di peer locale sullo stesso nodo, utilizza il codice seguente, per semplicità, inseriscilo in testa al tuo sketch, prima del setup() e dopo le #define

U8 Souliss_Logic_T43(U8 *memory_map, U8 slot_main, U8 slot_peer)
{
    // If the anti-theft is set and there is an alarm, set the output   
    if((memory_map[MaCaco_IN_s + slot_peer] == Souliss_T4n_Alarm))
    {
        // Set the peer in alarm state
        memory_map[MaCaco_OUT_s + slot_peer] = Souliss_T4n_Alarm;
        memory_map[MaCaco_IN_s + slot_peer] = Souliss_T4n_RstCmd;
       
        // Put the main in alarm
        memory_map[MaCaco_IN_s + slot_main] = Souliss_T4n_Alarm;        
    }
    else if((memory_map[MaCaco_IN_s + slot_peer] == Souliss_T4n_ReArm))
    {   
        memory_map[MaCaco_OUT_s + slot_peer] = Souliss_T4n_RstCmd;
        memory_map[MaCaco_IN_s + slot_peer] = Souliss_T4n_RstCmd;       
    }       
}

Nel codice, dichiaralo come T42 (altrimenti non verrebbe riconosciuto da SoulissApp).

Se funziona correttamente, lo includo per la prossima release.

Ho aperto l'issue, se funziona, riporta li. Cos' rimane traccia anche per Alessandro.

Tomas Falcone

unread,
Oct 9, 2013, 5:04:01 PM10/9/13
to sou...@googlegroups.com
GRAZIE SKETCH PROVATO.
Ma in souliss APP, non mi aggiornato lo stato del sensore che ha fatto scattare allarme.

Tomas Falcone

unread,
Oct 9, 2013, 5:08:55 PM10/9/13
to sou...@googlegroups.com
Inoltre in soulissApp, dopo che è scattato l'allarme, vai a fare il ripristino allarme, rimane nella schermata la sirena, come in foto

Di Maio, Dario

unread,
Oct 9, 2013, 5:11:05 PM10/9/13
to sou...@googlegroups.com
Usi Souliss_T4n_Alarm come ingresso al tipico 43?

@Alessandro, potresti verificare che il 43 qui sotto si comporti correttamente anche con il 42 di SoulissApp?

Dario.


2013/10/9 Tomas Falcone <>

Tomas Falcone

unread,
Oct 9, 2013, 5:14:06 PM10/9/13
to sou...@googlegroups.com
si

Tomas Falcone

unread,
Oct 9, 2013, 5:20:27 PM10/9/13
to sou...@googlegroups.com
mi sembra che il tipico 42, non supporta il rstcmd

Tomas Falcone

unread,
Oct 9, 2013, 8:50:54 PM10/9/13
to sou...@googlegroups.com
modificato cosi, ed adesso funziona:

U8 Souliss_Logic_T43(U8 *memory_map, U8 slot_main, U8 slot_peer)
{  
  if((memory_map[MaCaco_IN_s + slot_peer] == Souliss_T4n_Alarm))
  {    
    memory_map[MaCaco_OUT_s + slot_peer] = Souliss_T4n_Alarm;
    memory_map[MaCaco_IN_s + slot_peer] = Souliss_T4n_RstCmd; 
    memory_map[MaCaco_IN_s + slot_main] = Souliss_T4n_Alarm;
  } 
}

poi nel loop aggiunto questo:

if (memory_map[MaCaco_IN_s + ANTITHEFT] != Souliss_T4n_Alarm)
        {
        memory_map[MaCaco_OUT_s + PIR] = Souliss_T4n_RstCmd;
        memory_map[MaCaco_OUT_s + CONTACT_1] = Souliss_T4n_RstCmd;
        memory_map[MaCaco_OUT_s + CONTACT_2] = Souliss_T4n_RstCmd;
        memory_map[MaCaco_OUT_s + CONTACT_3] = Souliss_T4n_RstCmd;
        }  

Di Maio, Dario

unread,
Oct 10, 2013, 11:19:58 AM10/10/13
to sou...@googlegroups.com
Stasera guardo, grazie :)

Dario.

Dario Di Maio

unread,
Oct 10, 2013, 2:51:59 PM10/10/13
to sou...@googlegroups.com
Da quanto vedo hai eliminato l' "else if" per il riarmo ed esegui il riarmo se il sistema non è in allarme.

Su due piedi, credo che il problema sia che SoulissApp non invia un comando di riarmo in multicast a tutti i nodi, ma solo al nodo principale.

Chiedo ad Alessandro di apportare la modifica, così non sarà necessario aggiungere quel codice nel loop().

Dario.
Reply all
Reply to author
Forward
0 new messages