diff --git a/firmware/applications/default.c b/firmware/applications/default.c index 004d0e2..415175e 100644 --- a/firmware/applications/default.c +++ b/firmware/applications/default.c @@ -31,6 +31,7 @@ void main_default(void) { break; case BTN_RIGHT: GLOBAL(develmode)=1; + applyConfig(); break; case BTN_DOWN: usbMSCInit(); diff --git a/firmware/applications/final/exe.c b/firmware/applications/final/exe.c index bd7c7c1..d277caa 100644 --- a/firmware/applications/final/exe.c +++ b/firmware/applications/final/exe.c @@ -19,3 +19,9 @@ void execute_menu(void){ lcdRefresh(); }; +//# MENU |devel +void execute_devel(void){ + while(getInput()!=BTN_NONE); + executeSelect("INT"); + lcdRefresh(); +}; diff --git a/firmware/applications/final/util.c b/firmware/applications/final/util.c index 5dbca8f..a3c8c10 100644 --- a/firmware/applications/final/util.c +++ b/firmware/applications/final/util.c @@ -6,15 +6,19 @@ #include "lcd/render.h" #include "lcd/print.h" +#include "lcd/image.h" #include "usb/usbmsc.h" +#include "filesystem/ff.h" +#include "filesystem/select.h" + #include "core/iap/iap.h" /**************************************************************************/ -//# MENU msc +//# MENU usb_storage void msc_menu(void){ lcdClear(); lcdPrintln("MSC Enabled."); @@ -46,3 +50,20 @@ void tick_alive(void){ return; }; + +// //# MENU img img +void t_img(void){ + char fname[FILENAMELEN]; + selectFile(fname, "LCD"); + lcdLoadImage(fname); + lcdRefresh(); + getInputWait(); +}; + +// //# MENU img anim +void t_ani(void){ + char fname[FILENAMELEN]; + selectFile(fname, "LCD"); + lcdShowAnim(fname,1000); +}; + diff --git a/firmware/basic/menu.c b/firmware/basic/menu.c index fc1fe48..43a353f 100644 --- a/firmware/basic/menu.c +++ b/firmware/basic/menu.c @@ -1,6 +1,7 @@ #include #include "basic/basic.h" +#include "basic/config.h" #include "lcd/print.h" @@ -11,7 +12,7 @@ uint8_t menuflags=0; void handleMenu(const struct MENU *the_menu) { uint8_t back = 0; int8_t menuselection = 0; - uint8_t numentries = 0; + uint8_t numentries; uint8_t visible_lines = 0; uint8_t current_offset = 0; @@ -21,6 +22,9 @@ void handleMenu(const struct MENU *the_menu) { for (numentries = 0; the_menu->entries[numentries].text != NULL ; numentries++); + if(the_menu->entries[numentries-1].text[0]=='|' && !GLOBAL(develmode)) + numentries--; + visible_lines = lcdGetVisibleLines()-1; // subtract title line if(menuflags&MENU_BIG) @@ -81,8 +85,8 @@ void handleMenu(const struct MENU *the_menu) { break; case BTN_ENTER: lcdClear(); - lcdPrintln("Called..."); - lcdRefresh(); +// lcdPrintln("Called..."); +// lcdRefresh(); getInputWaitRelease(); if (the_menu->entries[menuselection].callback!=NULL) the_menu->entries[menuselection].callback(); @@ -91,7 +95,7 @@ void handleMenu(const struct MENU *the_menu) { if (menuflags&MENU_JUSTONCE) return; - getInputWait(); +// getInputWait(); break; case BTN_NONE: /* timeout */ diff --git a/firmware/funk/mesh.c b/firmware/funk/mesh.c index 6ff2c27..21459e6 100644 --- a/firmware/funk/mesh.c +++ b/firmware/funk/mesh.c @@ -11,6 +11,7 @@ char meshgen=0; // Generation char meshincctr=0; char meshmsg=0; +char meshnice=0; MPKT meshbuffer[MESHBUFSIZE]; uint32_t const meshkey[4] = { @@ -89,11 +90,19 @@ void mesh_sendloop(void){ else uint32touint8p(0,MO_BODY(meshbuffer[0].pkt)); + MO_BODY(meshbuffer[0].pkt)[4]=meshnice; + for (int i=0;i $(LDFILE) @@ -55,6 +55,9 @@ $(LDFILE): 1boot.int: 1boot.c0d .PHONY mv $< $@ +debug.int: debug.c0d .PHONY + mv $< $@ + clean: rm -f *.o *.elf *.bin usetable.h diff --git a/firmware/l0dable/debug.c b/firmware/l0dable/debug.c index a0d29f8..ff9fd50 100644 --- a/firmware/l0dable/debug.c +++ b/firmware/l0dable/debug.c @@ -204,6 +204,9 @@ void m_time(void){ lcdPrint("Inc:"); lcdPrintInt(meshincctr); lcdNl(); + lcdPrint("Nice:"); + lcdPrintInt(meshnice); + lcdNl(); lcdRefresh(); delayms_queue(50); }while ((getInputRaw())==BTN_NONE); @@ -217,7 +220,7 @@ void ChkFunk(){ lcdPrint("cfg:"); lcdPrintln(IntToStrX(nrf_read_reg(R_CONFIG),2)); lcdPrintln("Resets:"); - lcdPrintln(IntToStr(nrf_check_reset(),3,0)); + lcdPrintln(IntToStr(_nrfresets,3,0)); lcdRefresh(); while(!getInputRaw())work_queue(); };