crashtest-r0ket/firmware/applications/tester/font.c

171 lines
3.3 KiB
C

#include <sysinit.h>
#include "basic/basic.h"
#include "lcd/lcd.h"
#include "lcd/print.h"
#include "lcd/allfonts.h"
#include "filesystem/ff.h"
#include "filesystem/select.h"
#include "funk/nrf24l01p.h"
#include "usb/usbmsc.h"
#include <string.h>
/**************************************************************************/
#define MAXNICK 20
char nickname[MAXNICK];
void nick_init(void){
FIL file[2]; /* File objects */
UINT readbytes;
int res;
res=f_open(&file[0], "nick.cfg", FA_OPEN_EXISTING|FA_READ);
lcdPrint("open:");
lcdPrintln(f_get_rc_string(res));
if(res){
lcdPrintln("no nick.cfg...");
return;
};
res = f_read(&file[0], nickname, MAXNICK-1, &readbytes);
lcdPrint("read:");
lcdPrintln(f_get_rc_string(res));
if(res){
return;
};
nickname[MAXNICK-1]=0;
// truncate at newline (or other control chars)
for(int i=0;i<MAXNICK;i++){
if(nickname[i]<32)nickname[i]=0;
};
lcdPrint("<");
lcdPrint(nickname);
lcdPrint(">");
lcdNl();
res=f_close(&file[0]);
lcdPrint("close:");
lcdPrintln(f_get_rc_string(res));
if(res){
return;
};
lcdPrintln("Done.");
};
char fontname[15];
void f_nick(void){
static char ctr=0;
char key;
static signed char x=10;
static signed char y=10;
while (1) {
lcdClear();
lcdFill(255);
setExtFont(fontname);
DoString(x,y,nickname);
setIntFont(&Font_7x8);
lcdSetCrsr(50,50);
lcdPrintInt(x);
lcdPrint("x");
lcdPrintInt(y);
lcdDisplay();
__asm volatile ("WFI");
__asm volatile ("WFI");
__asm volatile ("WFI");
__asm volatile ("WFI");
key= getInputRaw();
if(key & BTN_UP){
--y;//if(--y<0) y=0;
};
if (key & BTN_DOWN){
++y;//if(++y>=RESY) y=RESY-1;
};
if (key & BTN_LEFT){
--x;//if(--x<0) x=0;
};
if (key & BTN_RIGHT){
++x;//if(++x>=RESX) x=RESX-1;
};
if (key == BTN_ENTER){
lcdClear();
lcdPrintln("Done.");
lcdDisplay();
ctr++;
break;
};
};
};
void f_font(void){
if( selectFile(fontname,"F0N") != 0){
lcdPrintln("No file selected.");
return;
};
lcdClear();
lcdPrintln(fontname);
setExtFont(fontname);
lcdPrintln("PUabc€");
setIntFont(&Font_7x8);
lcdPrintln("done.");
lcdDisplay();
while(!getInputRaw())delayms(10);
};
void f_speedtest(void){
lcdClear();
lcdPrintln("Speedtest");
lcdNl();
lcdNl();
lcdPrintln("running...");
int start=getTimer();
int ctr=0;
while(ctr++<1000){
lcdRefresh();
};
start=getTimer()-start;
lcdPrint("Ticks:");
lcdPrintln(IntToStr(start,6,0));
lcdPrint("Tickspd:");
lcdPrintln(IntToStr(SYSTICKSPEED,3,0));
lcdRefresh();
getInputWait();
getInputWaitRelease();
};
void f_speedtest2(void){
lcdClear();
lcdPrintln("Speedtest");
lcdNl();
lcdNl();
lcdPrintln("running...");
int start=getTimer();
int ctr=0;
int tm;
while(!getInputRaw()){
ctr++;
tm=((getTimer()-start)*SYSTICKSPEED)*1000/ctr;
DoInt(0,32,tm);
lcdRefresh();
};
getInputWaitRelease();
};