From 2e1f1a69d169fe1b808fbea46c1f8911cf3a104b Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Thu, 4 Aug 2011 14:54:16 +0200 Subject: [PATCH] Mesh now turns message LED on on new message --- firmware/applications/final/mesh.c | 8 ++++++++ firmware/funk/mesh.c | 7 ++++++- firmware/funk/mesh.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/firmware/applications/final/mesh.c b/firmware/applications/final/mesh.c index ef3fa22..dceaffb 100644 --- a/firmware/applications/final/mesh.c +++ b/firmware/applications/final/mesh.c @@ -128,6 +128,9 @@ void m_choose(){ char list[99]; int i=0; + meshmsg=0; + gpioSetValue (RB_LED1, 0); + while(1){ char *p=list; strcpy(p,"Note"); @@ -231,5 +234,10 @@ void m_choose(){ void tick_mesh(void){ if(GLOBAL(privacy)<2) mesh_systick(); + if(_timectr%64) + if(meshmsg){ + gpioSetValue (RB_LED1, 1); + meshmsg=0; + }; }; diff --git a/firmware/funk/mesh.c b/firmware/funk/mesh.c index e15656d..ee64126 100644 --- a/firmware/funk/mesh.c +++ b/firmware/funk/mesh.c @@ -9,6 +9,7 @@ char meshgen=0; // Generation char meshincctr=0; +char meshmsg=0; MPKT meshbuffer[MESHBUFSIZE]; uint32_t const meshkey[4] = { @@ -124,9 +125,13 @@ void mesh_recvloop(void){ // only accept newer/better packets if(mpkt->flags==MF_USED) - if(MO_TIME(buf)pkt)) + if(MO_TIME(buf)<=MO_TIME(mpkt->pkt)) continue; + if((MO_TYPE(buf)>='A' && MO_TYPE(buf)<='C') || + (MO_TYPE(buf)>='A' && MO_TYPE(buf)<='C')) + meshmsg=1; + memcpy(mpkt->pkt,buf,MESHPKTSIZE); mpkt->flags=MF_USED; diff --git a/firmware/funk/mesh.h b/firmware/funk/mesh.h index 2ff8f35..1fe069d 100644 --- a/firmware/funk/mesh.h +++ b/firmware/funk/mesh.h @@ -30,6 +30,7 @@ typedef struct { extern char meshgen; // Generation extern char meshincctr; // Time checker +extern char meshmsg; // Is there something interesting? extern MPKT meshbuffer[MESHBUFSIZE]; void initMesh(void);