workrarounds in vcard
This commit is contained in:
parent
31355b6a4a
commit
cf5f06b228
|
@ -34,10 +34,8 @@ uint8_t mac[5] = {1,2,3,2,1};
|
|||
|
||||
void ram(void)
|
||||
{
|
||||
memset(0,0,0);
|
||||
nrf_config_set(&config);
|
||||
|
||||
|
||||
if( sendKeys() )
|
||||
return;
|
||||
|
||||
|
@ -103,9 +101,15 @@ void sendPublicKey(void)
|
|||
FIL file;
|
||||
|
||||
if( f_open(&file, "pubx.key", FA_OPEN_EXISTING|FA_READ) ){
|
||||
lcdPrint("pubx.key");
|
||||
lcdRefresh();
|
||||
while(1);
|
||||
return;
|
||||
}
|
||||
if( f_read(&file, buf, 41, &readbytes) || readbytes != 41 ){
|
||||
lcdPrint("read x");
|
||||
lcdRefresh();
|
||||
while(1);
|
||||
return;
|
||||
}
|
||||
f_close(&file);
|
||||
|
@ -114,13 +118,22 @@ void sendPublicKey(void)
|
|||
exp[0] = 'P';
|
||||
bitstr_parse_export((char*)exp+2, buf);
|
||||
exp[1] = 'X';
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32, exp);
|
||||
delayms(10);
|
||||
|
||||
if( f_open(&file, "puby.key", FA_OPEN_EXISTING|FA_READ) ){
|
||||
lcdPrint("puby.key");
|
||||
lcdRefresh();
|
||||
while(1);
|
||||
|
||||
return;
|
||||
}
|
||||
if( f_read(&file, buf, 41, &readbytes) || readbytes != 41 ){
|
||||
lcdPrint("read x");
|
||||
lcdRefresh();
|
||||
while(1);
|
||||
|
||||
return;
|
||||
}
|
||||
f_close(&file);
|
||||
|
@ -128,6 +141,7 @@ void sendPublicKey(void)
|
|||
|
||||
exp[1] = 'Y';
|
||||
bitstr_parse_export((char*)exp+2, buf);
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32, exp);
|
||||
delayms(10);
|
||||
}
|
||||
|
@ -138,10 +152,12 @@ int receiveKey(uint8_t type, uint8_t *x, uint8_t *y)
|
|||
uint8_t buf[32];
|
||||
uint8_t n;
|
||||
|
||||
nrf_config_set(&config);
|
||||
n = nrf_rcv_pkt_time(1000, 32, buf);
|
||||
if( n == 32 && buf[0] == type && buf[1] == 'X' ){
|
||||
for(int i=0; i<NUMWORDS*4; i++)
|
||||
x[i] = buf[i+2];
|
||||
nrf_config_set(&config);
|
||||
n = nrf_rcv_pkt_time(100, 32, buf);
|
||||
if( n == 32 && buf[0] ==type && buf[1] == 'Y' ){
|
||||
for(int i=0; i<NUMWORDS*4; i++)
|
||||
|
@ -167,6 +183,7 @@ void sendMac(void)
|
|||
buf[4] = mac[2];
|
||||
buf[5] = mac[3];
|
||||
buf[6] = mac[4];
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32, buf);
|
||||
delayms(10);
|
||||
}
|
||||
|
@ -177,7 +194,7 @@ int sendKeys(void)
|
|||
char key;
|
||||
while( !done ){
|
||||
lcdClear();
|
||||
lcdPrintln("Sending PUBKEY");lcdRefresh();
|
||||
lcdPrintln("Sending PUBKEX");lcdRefresh();
|
||||
sendPublicKey();
|
||||
sendMac();
|
||||
lcdPrintln("Done");
|
||||
|
@ -217,6 +234,7 @@ int filetransfer_receive(uint8_t *mac, uint32_t const k[4])
|
|||
uint8_t metadata[32];
|
||||
|
||||
//nrf_set_rx_mac(0, 32, 5, mac);
|
||||
nrf_config_set(&config);
|
||||
n = nrf_rcv_pkt_time_encr(3000, 32, metadata, k);
|
||||
if( n != 32 )
|
||||
return 1; //timeout
|
||||
|
@ -279,6 +297,7 @@ int16_t rftransfer_receive(uint8_t *buffer, uint16_t maxlen, uint16_t timeout)
|
|||
unsigned int startTick = currentTick;
|
||||
|
||||
while(systickGetTicks() < (startTick+timeout) ){//this fails if either overflows
|
||||
nrf_config_set(&config);
|
||||
n = nrf_rcv_pkt_time(1000, MAXPACKET, buf);
|
||||
switch(state){
|
||||
case 0:
|
||||
|
|
|
@ -43,12 +43,9 @@ uint8_t mac[5] = {1,2,3,2,1};
|
|||
|
||||
void ram(void)
|
||||
{
|
||||
|
||||
nrf_config_set(&config);
|
||||
|
||||
|
||||
char file[13];
|
||||
selectFile(file,"TXT");
|
||||
selectFile(file,"CRD");
|
||||
nrf_config_set(&config);
|
||||
sendFile(file);
|
||||
}
|
||||
|
||||
|
@ -60,11 +57,13 @@ void sendR(uint8_t *rx, uint8_t *ry)
|
|||
for(int i=0; i<4*NUMWORDS; i++)
|
||||
exp[2+i] = rx[i];
|
||||
exp[1] = 'X';
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32, exp);
|
||||
delayms(10);
|
||||
exp[1] = 'Y';
|
||||
for(int i=0; i<4*NUMWORDS; i++)
|
||||
exp[2+i] = ry[i];
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32, exp);
|
||||
|
||||
delayms(10);
|
||||
|
@ -74,17 +73,47 @@ int receiveKey(uint8_t type, uint8_t *x, uint8_t *y)
|
|||
{
|
||||
uint8_t buf[32];
|
||||
uint8_t n;
|
||||
//static int count = 0;
|
||||
//for(n=0; n<32;n++)
|
||||
// buf[n] = 0;
|
||||
//lcdPrintln("get packet");
|
||||
//lcdPrintInt(count++);
|
||||
//lcdRefresh();
|
||||
//int reg5 = nrf_read_reg(5);
|
||||
//int reg11 = nrf_read_reg(0x11);
|
||||
//lcdPrint("reg5=");
|
||||
//lcdPrintInt(reg5);
|
||||
//lcdPrintln("");
|
||||
//lcdPrint("regx11=");
|
||||
//lcdPrintInt(reg11);
|
||||
//lcdPrintln("");
|
||||
//lcdRefresh();
|
||||
//delayms(1000);
|
||||
|
||||
nrf_config_set(&config);
|
||||
n = nrf_rcv_pkt_time(1000, 32, buf);
|
||||
if( n == 32 && buf[0] == type && buf[1] == 'X' ){
|
||||
//lcdPrintInt(n);
|
||||
//lcdPrintln(IntToStrX(*(uint32_t*)buf,8));
|
||||
//lcdPrintln(IntToStrX(*(uint32_t*)(buf+4),8));
|
||||
//lcdPrintln(IntToStrX(*(uint32_t*)(buf+8),8));
|
||||
//lcdPrintln(IntToStrX(*(uint32_t*)(buf+12),8));
|
||||
|
||||
//lcdRefresh();
|
||||
//delayms(1000);
|
||||
if( n == 32 && buf[0] == type && buf[1] == 'X' ){
|
||||
//lcdPrint("got packet");
|
||||
//lcdRefresh();
|
||||
//while(1);
|
||||
for(int i=0; i<NUMWORDS*4; i++)
|
||||
x[i] = buf[i+2];
|
||||
nrf_config_set(&config);
|
||||
n = nrf_rcv_pkt_time(100, 32, buf);
|
||||
if( n == 32 && buf[0] ==type && buf[1] == 'Y' ){
|
||||
for(int i=0; i<NUMWORDS*4; i++)
|
||||
y[i] = buf[i+2];
|
||||
return 0;
|
||||
}
|
||||
}else{
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
@ -104,6 +133,7 @@ void sendMac(void)
|
|||
buf[4] = mac[2];
|
||||
buf[5] = mac[3];
|
||||
buf[6] = mac[4];
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32, buf);
|
||||
delayms(10);
|
||||
}
|
||||
|
@ -113,6 +143,7 @@ int receiveMac(uint8_t *mac)
|
|||
uint8_t buf[32];
|
||||
uint8_t n;
|
||||
|
||||
nrf_config_set(&config);
|
||||
n = nrf_rcv_pkt_time(100, 32, buf);
|
||||
if( n == 32 && buf[0] == 'M' && buf[1] == 'C' ){
|
||||
for(int i=0; i<5; i++)
|
||||
|
@ -246,6 +277,7 @@ int filetransfer_send(uint8_t *filename, uint16_t size,
|
|||
//nrf_get_tx_max(5,macbuf);
|
||||
|
||||
//nrf_set_tx_mac(5, mac);
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc_encr(32, metadata, k);
|
||||
delayms(20);
|
||||
xxtea_encode_words((uint32_t *)buf, wordcount, k);
|
||||
|
@ -266,6 +298,7 @@ void rftransfer_send(uint16_t size, uint8_t *data)
|
|||
buf[3] = rand >> 8;
|
||||
buf[4] = rand & 0xFF;
|
||||
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32,buf); //setup packet
|
||||
delayms(20);
|
||||
uint16_t index = 0;
|
||||
|
@ -282,6 +315,7 @@ void rftransfer_send(uint16_t size, uint8_t *data)
|
|||
buf[i] = *data++;
|
||||
}
|
||||
index++;
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32,buf); //data packet
|
||||
delayms(20);
|
||||
}
|
||||
|
@ -291,6 +325,7 @@ void rftransfer_send(uint16_t size, uint8_t *data)
|
|||
buf[2] = crc & 0xFF;
|
||||
buf[3] = rand >> 8;
|
||||
buf[4] = rand & 0xFF;
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32,buf); //setup packet
|
||||
delayms(20);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue