diff --git a/firmware/applications/serial/config.c b/firmware/applications/serial/config.c deleted file mode 100644 index 0d8df7c..0000000 --- a/firmware/applications/serial/config.c +++ /dev/null @@ -1,38 +0,0 @@ -#include - -#include "basic/basic.h" - -#include "lcd/print.h" -#include "lcd/display.h" - -#include "filesystem/ff.h" - -#include - -/**************************************************************************/ - -void readcfg(void) { - readConfig(); -}; - -void savecfg(void){ - saveConfig(); -}; - -void applycfg(void){ - applyConfig(); -}; - -void show(void){ - lcdClear(); - lcdPrint("time:"); lcdPrintInt(globalconfig.time); lcdNl(); - lcdPrint("btrig:"); lcdPrintInt(globalconfig.backlighttrigger); lcdNl(); - lcdPrint("bval:"); lcdPrintInt(globalconfig.backlightvalue); lcdNl(); - lcdPrint("lcd:"); lcdPrintInt(globalconfig.lcdstate); lcdNl(); - lcdPrint("priv:"); lcdPrintInt(globalconfig.privacy); lcdNl(); - lcdRefresh(); -}; - -void lcdmirror(void){ - lcdToggleFlag(LCD_MIRRORX); -}; diff --git a/firmware/applications/serial/remote.c b/firmware/applications/serial/remote.c deleted file mode 100644 index be96720..0000000 --- a/firmware/applications/serial/remote.c +++ /dev/null @@ -1,274 +0,0 @@ -#include - -#include "basic/basic.h" -#include "basic/byteorder.h" - -#include "lcd/lcd.h" -#include "lcd/print.h" - -#include "funk/nrf24l01p.h" -#include "usbcdc/usb.h" -#include "usbcdc/usbcore.h" -#include "usbcdc/usbhw.h" -#include "usbcdc/cdcuser.h" -#include "usbcdc/cdc_buf.h" -#include "usbcdc/util.h" - -#include - -#define REMOTE_CHANNEL 91 -#define REMOTE_MAC "REM0T" - -#if CFG_USBMSC -#error "MSC is defined" -#endif - -#if !CFG_USBCDC -#error "CDC is not defined" -#endif - -/**************************************************************************/ - -uint32_t const remotekey[4] = { - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -}; - -void r_init(void){ - nrf_init(); - - struct NRF_CFG config = { - .channel= REMOTE_CHANNEL, - .txmac= REMOTE_MAC, - .nrmacs=1, - .mac0= REMOTE_MAC, - .maclen ="\x10", - }; - - nrf_config_set(&config); -}; - -void s_init(void){ - usbCDCInit(); - nrf_init(); - - struct NRF_CFG config = { - .channel= REMOTE_CHANNEL, - .txmac= REMOTE_MAC, - .nrmacs=1, - .mac0= REMOTE_MAC, - .maclen ="\x10", - }; - - nrf_config_set(&config); -}; - - void process(uint8_t * input){ - __attribute__ ((aligned (4))) uint8_t buf[32]; - puts("process: "); - puts(input); - puts("\r\n"); - if(input[0]=='M'){ - buf[0]=0x10; // Length: 16 bytes - buf[1]='M'; // Proto - buf[2]=0x01; - buf[3]=0x01; // Unused - - uint32touint8p(0,buf+4); - - uint32touint8p(0x41424344,buf+8); - - buf[12]=0xff; // salt (0xffff always?) - buf[13]=0xff; - nrf_snd_pkt_crc_encr(16,buf,remotekey); - nrf_rcv_pkt_start(); - }; - -}; - -#define INPUTLEN 99 -void r_recv(void){ - __attribute__ ((aligned (4))) uint8_t buf[32]; - int len; - - uint8_t input[INPUTLEN+1]; - int inputptr=0; - - nrf_rcv_pkt_start(); - puts("D start"); - - getInputWaitRelease(); - - while(!getInputRaw()){ - delayms(100); - - // Input - int l=INPUTLEN-inputptr; - CDC_OutBufAvailChar (&l); - - if(l>0){ - CDC_RdOutBuf (input+inputptr, &l); - input[inputptr+l+1]=0; - for(int i=0;i0){ - lcdPrint("Got!"); - lcdDisplay(); - break; - }; - delayms(10); - }; -}; - diff --git a/firmware/applications/serial/serial.c b/firmware/applications/serial/serial.c index 94d41b3..b7d547e 100644 --- a/firmware/applications/serial/serial.c +++ b/firmware/applications/serial/serial.c @@ -1,12 +1,12 @@ #include #include "basic/basic.h" +#include "basic/byteorder.h" #include "lcd/lcd.h" #include "lcd/print.h" #include "funk/nrf24l01p.h" - #include "usbcdc/usb.h" #include "usbcdc/usbcore.h" #include "usbcdc/usbhw.h" @@ -16,12 +16,23 @@ #include +#define REMOTE_CHANNEL 91 +#define REMOTE_MAC "REM0T" +#define MESH_CHANNEL 85 +#define MESH_MAC "MESHB" #define BEACON_CHANNEL 81 #define BEACON_MAC "\x1\x2\x3\x2\1" -uint32_t const testkey[4] = { - 0xB4595344,0xD3E119B6,0xA814D0EC,0xEFF5A24E +uint32_t const beaconkey[4] = { + 0xB4595344,0xD3E119B6,0xA814D0EC,0xEFF5A24E }; +uint32_t remotekey[4] = { + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff +}; +uint32_t meshkey[4] = { + 0x0, 0x0, 0x0, 0x0 +}; + #if CFG_USBMSC #error "MSC is defined" @@ -33,107 +44,231 @@ uint32_t const testkey[4] = { /**************************************************************************/ +uint32_t thekey[4] = { 0x0, 0x0, 0x0, 0x0 }; + +struct NRF_CFG config = { + .channel= BEACON_CHANNEL, + .txmac= BEACON_MAC, + .nrmacs=1, + .mac0= BEACON_MAC, + .maclen ="\x10", +}; + +int process(char * input); + +#define INPUTLEN 99 +void dwim(void){ + char input[INPUTLEN+1]; + int inputptr=0; -void ser_enable(void) { usbCDCInit(); -}; - -void ser_disable(void) { - usbCDCOff(); -}; - -#define myLEN 10 -void ser_read(){ - uint8_t buf[myLEN+1]; - int l=myLEN; - - lcdPrint("Bytes:"); - CDC_OutBufAvailChar (&l); - lcdPrintInt(l); - lcdNl(); - - lcdPrint("read:"); - CDC_RdOutBuf (buf, &l); - lcdPrintInt(l); - lcdNl(); - - buf[l]=0; - lcdPrintln(buf); -}; - -void ser_say(){ - puts("hello world\r\n"); -}; - -void f_init(){ - nrf_init(); - struct NRF_CFG config = { - .channel= BEACON_CHANNEL, - .txmac= BEACON_MAC, - .nrmacs=1, - .mac0= BEACON_MAC, - .maclen ="\x10", - }; - - nrf_config_set(&config); -}; - -void f_beacon(void){ - struct NRF_CFG config = { - .channel= BEACON_CHANNEL, - .txmac= BEACON_MAC, - .nrmacs=1, - .mac0= BEACON_MAC, - .maclen ="\x10", - }; - - nrf_config_set(&config); -}; - -int enctoggle=0; - -void f_enctog(){ - enctoggle=1-enctoggle; - lcdClear(); - lcdPrint("Encryption:"); - if(enctoggle) - lcdPrintln("ON"); - else - lcdPrintln("Off"); -}; - -void f_recser(void){ - __attribute__ ((aligned (4))) uint8_t buf[32]; - int len; - + delayms(500); getInputWaitRelease(); + puts("D start\r\n"); - do{ - len=nrf_rcv_pkt_time_encr(1000,sizeof(buf),buf,enctoggle?testkey:NULL); - - if(len==0){ - puts("(Timeout)\r\n"); - }; - puts("pkt: "); - puts("[");puts(IntToStrX(len,2));puts("] "); - puts(IntToStrX( *(int*)(buf+ 0),2 )); - puts(" "); - puts(IntToStrX( *(int*)(buf+ 1),2 )); - puts(" "); - puts(IntToStrX( *(int*)(buf+ 2),2 )); - puts(" "); - puts(IntToStrX( *(int*)(buf+ 3),2 )); - puts("."); - puts(IntToStrX( *(int*)(buf+ 4),8 )); - puts("."); - puts(IntToStrX( *(int*)(buf+ 8),8 )); - puts("."); - puts(IntToStrX( *(int*)(buf+ 12),4 )); - puts(" ["); - - len=crc16(buf,14); - puts(IntToStrX(len,4)); puts("]\r\n"); + while(!getInputRaw()){ delayms(10); - }while ((getInputRaw())==BTN_NONE); + // Input + int l=INPUTLEN-inputptr; + CDC_OutBufAvailChar (&l); + + if(l>0){ + CDC_RdOutBuf (input+inputptr, &l); + input[inputptr+l]=0; + puts(&input[inputptr]); + for(int i=0;i'9')?input[p]-'a'+10:input[p]-'0')*16+ + ((input[p+1]>'9')?input[p+1]-'a'+10:input[p+1]-'0'); +// puts(IntToStrX( c,2 )); +// puts("."); + buf[bp]=c; + bp++;p+=2; + }; +// puts("\r\n"); + + if(bp<10) bp=10; + + bp+=2; + puts("S Len:"); + puts(IntToStrX( bp,2 )); + puts("\r\n"); + + status=nrf_snd_pkt_crc_encr(bp,buf,thekey); + + puts("P "); + puts("[");puts(IntToStrX(bp,2));puts("] "); + for(int i=0;igetTimer()); + + nrf_rcv_pkt_end(); + }else{ + puts("D no action\r\n"); + }; + puts("D done.\r\n"); + return 0; }; diff --git a/firmware/applications/serial/util.c b/firmware/applications/serial/util.c index 8747264..0b30243 100644 --- a/firmware/applications/serial/util.c +++ b/firmware/applications/serial/util.c @@ -9,7 +9,6 @@ #include "filesystem/ff.h" #include "filesystem/select.h" #include "funk/nrf24l01p.h" -#include "usb/usbmsc.h" #include @@ -29,55 +28,8 @@ void show_ticks(void) { }; -void adc_light(void) { - int dx=0; - int dy=8; - dx=DoString(0,dy,"Light:"); - DoString(0,dy+16,"Night:"); - while ((getInputRaw())==BTN_NONE){ - DoInt(dx,dy,GetLight()); - DoInt(dx,dy+16,isNight()); - DoInt(dx,dy+8,globalconfig.backlighttrigger); - lcdDisplay(); - }; - dy+=8; - dx=DoString(0,dy,"Done."); -}; - void gotoISP(void) { DoString(0,0,"Enter ISP!"); lcdDisplay(); ISPandReset(); } - -void lcd_mirror(void) { - lcdToggleFlag(LCD_MIRRORX); -}; - -void lcd_invert(void) { - lcdToggleFlag(LCD_INVERTED); -}; - -void adc_check(void) { - int dx=0; - int dy=8; - // Print Voltage - dx=DoString(0,dy,"Voltage:"); - while ((getInputRaw())==BTN_NONE){ - DoInt(dx,dy,GetVoltage()); - lcdDisplay(); - }; - dy+=8; - dx=DoString(0,dy,"Done."); -}; - -void msc_menu(void){ - DoString(0,8,"MSC Enabled."); - lcdDisplay(); - usbMSCInit(); - getInputWaitRelease(); - getInputWait(); - DoString(0,16,"MSC Disabled."); - usbMSCOff(); -}; - diff --git a/firmware/applications/serial/uuid.c b/firmware/applications/serial/uuid.c deleted file mode 100644 index 601a5f7..0000000 --- a/firmware/applications/serial/uuid.c +++ /dev/null @@ -1,26 +0,0 @@ -#include - -#include "basic/basic.h" - -#include "lcd/lcd.h" -#include "lcd/print.h" - -#include "funk/nrf24l01p.h" - -#include - -#include "funk/rftransfer.h" -#include "funk/openbeacon.h" - -#include "core/iap/iap.h" - -/**************************************************************************/ - -void f_uuid(void) { - IAP_return_t iap_return; - iap_return = iapReadSerialNumber(); - lcdPrintIntHex(iap_return.Result[0]); lcdNl(); - lcdPrintIntHex(iap_return.Result[1]); lcdNl(); - lcdPrintIntHex(iap_return.Result[2]); lcdNl(); - lcdPrintIntHex(iap_return.Result[3]); lcdNl(); -}