Add debugmesh l0dable. (Can be used as l0nick :-)
This commit is contained in:
parent
8d0de435dc
commit
a52c028e66
|
@ -31,7 +31,7 @@ CRYPTFLAGS=-p
|
|||
skey=`cd .. && ./getkey.pl l0dable_sign`
|
||||
ekey=`cd .. && ./getkey.pl l0dable_crypt`
|
||||
|
||||
all: $(OBJS) $(ELFS) $(BINS) $(CODS) $(NIKS) 1boot.int debug.int config.int initanim.int
|
||||
all: $(OBJS) $(ELFS) $(BINS) $(CODS) $(NIKS) 1boot.int debug.int config.int initanim.int dbgmesh.int
|
||||
|
||||
$(LDFILE):
|
||||
-@echo "MEMORY" > $(LDFILE)
|
||||
|
@ -68,6 +68,9 @@ endif
|
|||
debug.int: debug.c0d .PHONY
|
||||
mv $< $@
|
||||
|
||||
dbgmesh.int: debug.c0d .PHONY
|
||||
mv $< $@
|
||||
|
||||
config.int: config.c0d .PHONY
|
||||
mv $< $@
|
||||
|
||||
|
|
|
@ -0,0 +1,175 @@
|
|||
#include <sysinit.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "basic/basic.h"
|
||||
#include "basic/config.h"
|
||||
|
||||
#include "lcd/render.h"
|
||||
#include "lcd/print.h"
|
||||
|
||||
#include "funk/nrf24l01p.h"
|
||||
#include "funk/mesh.h"
|
||||
|
||||
#include "usetable.h"
|
||||
|
||||
/**************************************************************************/
|
||||
void m_time(void);
|
||||
|
||||
void ram(void) {
|
||||
m_time();
|
||||
};
|
||||
|
||||
void m_time_details(int select) {
|
||||
getInputWaitRelease();
|
||||
|
||||
while(getInputWaitTimeout(50) == BTN_NONE){
|
||||
lcdClear();
|
||||
MPKT *mpkt = &meshbuffer[select];
|
||||
uint8_t *pkt = mpkt->pkt;
|
||||
|
||||
if (!mpkt->flags & MF_USED)
|
||||
lcdPrint("<unused>");
|
||||
else {
|
||||
lcdPrint("Type: ");
|
||||
char c[2] = {0, 0};
|
||||
c[0] = mpkt->pkt[0];
|
||||
lcdPrint(c);
|
||||
lcdNl();
|
||||
|
||||
lcdPrint("Gen: ");
|
||||
lcdPrintInt(MO_GEN(pkt) & 0xff);
|
||||
lcdNl();
|
||||
|
||||
lcdPrint("Time: ");
|
||||
lcdPrintInt(MO_TIME(pkt) & 0xffff);
|
||||
lcdNl();
|
||||
lcdPrint("Body: ");
|
||||
lcdNl();
|
||||
|
||||
int x = 0;
|
||||
for(uint8_t *body = MO_BODY(pkt); body < (pkt + 30); body++) {
|
||||
if (*body >= ' ' && *body < 128) {
|
||||
if (x > 12) {
|
||||
lcdNl();
|
||||
x = 0;
|
||||
}
|
||||
|
||||
char c[2] = {*body, 0};
|
||||
lcdPrint(c);
|
||||
x++;
|
||||
} else {
|
||||
if (x > 10) {
|
||||
lcdNl();
|
||||
x = 0;
|
||||
}
|
||||
|
||||
lcdPrint("\\");
|
||||
lcdPrintInt(*body & 0xff);
|
||||
x += 2;
|
||||
if (*body > 9)
|
||||
x++;
|
||||
if (*body > 99)
|
||||
x++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lcdRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
void m_time(void){
|
||||
int active=0;
|
||||
struct tm* tm;
|
||||
int select=0;
|
||||
char c[2]={0,0};
|
||||
getInputWaitRelease();
|
||||
delayms(100);
|
||||
while(1) {
|
||||
lcdClear();
|
||||
tm= mygmtime(getSeconds());
|
||||
lcdPrint(IntToStr(tm->tm_hour,2,F_LONG));
|
||||
lcdPrint(":");
|
||||
lcdPrint(IntToStr(tm->tm_min,2,F_LONG|F_ZEROS));
|
||||
lcdPrint(":");
|
||||
lcdPrint(IntToStr(tm->tm_sec,2,F_LONG|F_ZEROS));
|
||||
lcdNl();
|
||||
lcdPrint(IntToStr(tm->tm_mday,2,F_LONG));
|
||||
lcdPrint(".");
|
||||
lcdPrint(IntToStr(tm->tm_mon+1,2,0));
|
||||
lcdPrint(".");
|
||||
lcdPrint(IntToStr(tm->tm_year+YEAR0,4,F_LONG|F_ZEROS));
|
||||
lcdNl();
|
||||
|
||||
lcdNl();
|
||||
lcdPrint("<");
|
||||
|
||||
for(int i=0;i<MESHBUFSIZE;i++){
|
||||
if(!meshbuffer[i].flags&MF_USED){
|
||||
c[0]='_';
|
||||
}else{
|
||||
c[0]=meshbuffer[i].pkt[0];
|
||||
};
|
||||
lcdPrint(c);
|
||||
};
|
||||
lcdPrintln(">");
|
||||
|
||||
if(active){
|
||||
lcdPrint(" ");
|
||||
for(int i=0; i<MESHBUFSIZE; i++) {
|
||||
lcdPrint(i == select ? "^" : " ");
|
||||
}
|
||||
lcdNl();
|
||||
}else{
|
||||
lcdPrintln(" up to select");
|
||||
};
|
||||
|
||||
lcdPrint("Gen:");
|
||||
lcdPrint(IntToStrX(meshgen,2));
|
||||
lcdPrint(" ");
|
||||
lcdPrint(GLOBAL(nickname));
|
||||
lcdNl();
|
||||
lcdPrint("Inc:");
|
||||
lcdPrintInt(meshincctr);
|
||||
lcdNl();
|
||||
lcdPrint("Nice:");
|
||||
lcdPrintInt(meshnice);
|
||||
lcdNl();
|
||||
lcdRefresh();
|
||||
|
||||
uint8_t key = getInputWaitTimeout(100);
|
||||
if(active==1){
|
||||
switch(key) {
|
||||
case BTN_LEFT:
|
||||
select--;
|
||||
if (select < 0)
|
||||
select = MESHBUFSIZE - 1;
|
||||
break;
|
||||
case BTN_RIGHT:
|
||||
select++;
|
||||
if (select >= MESHBUFSIZE)
|
||||
select = 0;
|
||||
break;
|
||||
case BTN_ENTER:
|
||||
m_time_details(select);
|
||||
break;
|
||||
case BTN_UP:
|
||||
active=0;
|
||||
break;
|
||||
case BTN_DOWN:
|
||||
// Exit
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
switch(key) {
|
||||
case BTN_UP:
|
||||
active=1;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
};
|
||||
};
|
||||
if (key != BTN_NONE)
|
||||
getInputWaitRelease();
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue