Mini short-range chat app.
This commit is contained in:
parent
13d2192496
commit
bfac51e4ff
|
@ -0,0 +1,197 @@
|
|||
/* CCC MSN 0.1b @ CCC 2011 Germany
|
||||
* Developers:
|
||||
* - Simpson
|
||||
* - 0xCC
|
||||
*
|
||||
* Base Codes:
|
||||
* - sign.c (For Mesh Communication)
|
||||
* - blink.c (For Led Notification)
|
||||
*
|
||||
* */
|
||||
#include <sysinit.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "basic/basic.h"
|
||||
#include "basic/config.h"
|
||||
|
||||
#include "funk/nrf24l01p.h"
|
||||
#include "funk/rftransfer.h"
|
||||
|
||||
#include "lcd/render.h"
|
||||
#include "lcd/print.h"
|
||||
|
||||
#include "usetable.h"
|
||||
|
||||
/*Global Communication Config*/
|
||||
uint8_t mac[5] = {1,2,3,5,5};
|
||||
struct NRF_CFG config =
|
||||
{
|
||||
.channel= 81,
|
||||
.txmac= "\x1\x2\x3\x5\x5",
|
||||
.nrmacs=1,
|
||||
.mac0= "\x1\x2\x3\x5\x5",
|
||||
.maclen ="\x20",
|
||||
};
|
||||
|
||||
/*Possible Messages*/
|
||||
char msgs[5][20]={" Hi There!"," At Kourou"," At Baikonur","Party Hard!","Like a Boss!"};
|
||||
|
||||
void initDisplay(void);
|
||||
void initMesh(void);
|
||||
void waitMsg(void);
|
||||
void blink(void);
|
||||
|
||||
/*Main Loop*/
|
||||
void ram(void)
|
||||
{
|
||||
initDisplay();
|
||||
uint8_t key;
|
||||
do
|
||||
{
|
||||
key = getInput();
|
||||
if(key == BTN_DOWN)
|
||||
waitMsg();
|
||||
else if (key == BTN_UP)
|
||||
initMesh();
|
||||
} while(key != BTN_ENTER);
|
||||
}
|
||||
|
||||
/*Message Receiver*/
|
||||
void waitMsg()
|
||||
{
|
||||
uint8_t key;
|
||||
unsigned char buf[32];
|
||||
char sender_nick[10];
|
||||
int n,i;
|
||||
int index=0;
|
||||
int rcv =0;
|
||||
int try=0;
|
||||
do
|
||||
{
|
||||
key = getInput();
|
||||
if(1)
|
||||
{
|
||||
nrf_config_set(&config);
|
||||
n = nrf_rcv_pkt_time(100,32,buf);
|
||||
getInputWaitTimeout(100);
|
||||
if(n == 32)
|
||||
{
|
||||
index=buf[0];
|
||||
for(i=0;i<10;i++)
|
||||
sender_nick[i]=buf[i+1];
|
||||
lcdClear();
|
||||
lcdPrintln("");
|
||||
lcdPrintln("CCC MSN 0.1b");
|
||||
lcdPrintln("---------------");
|
||||
lcdPrintln(msgs[index]);
|
||||
lcdPrintln("");
|
||||
lcdPrintln("Received");
|
||||
lcdPrintln("");
|
||||
lcdPrintln("_______________");
|
||||
lcdPrintln(sender_nick);
|
||||
lcdRefresh();
|
||||
blink();
|
||||
rcv=1;
|
||||
try=0;
|
||||
} else if(rcv)
|
||||
{
|
||||
lcdClear();
|
||||
lcdPrintln("");
|
||||
lcdPrintln("CCC MSN 0.1b");
|
||||
lcdPrintln("-----------------");
|
||||
lcdPrintln("Waiting...");
|
||||
lcdPrint("Try ");
|
||||
lcdPrintln(IntToStr(try,5,0));
|
||||
lcdPrintln("");
|
||||
lcdPrintln(msgs[index]);
|
||||
lcdPrintln("_______________");
|
||||
lcdPrintln(sender_nick);
|
||||
lcdRefresh();
|
||||
}
|
||||
try++;
|
||||
}
|
||||
if(!rcv)
|
||||
{
|
||||
lcdClear();
|
||||
lcdPrintln("");
|
||||
lcdPrintln("CCC MSN 0.1b");
|
||||
lcdPrintln("-----------------");
|
||||
lcdPrintln("Waiting...");
|
||||
lcdPrintln("");
|
||||
lcdPrint("Try ");
|
||||
lcdPrintln(IntToStr(try,5,0));
|
||||
lcdPrintln("");
|
||||
lcdPrintln("_______________");
|
||||
lcdPrintln("W8 Users Auto");
|
||||
lcdRefresh();
|
||||
}
|
||||
}while(key != BTN_ENTER);
|
||||
initDisplay();
|
||||
}
|
||||
|
||||
/*Starter*/
|
||||
void initDisplay(void)
|
||||
{
|
||||
lcdClear();
|
||||
lcdPrintln("");
|
||||
lcdPrintln("CCC MSN 0.1b");
|
||||
lcdNl();
|
||||
lcdPrintln("Commands:");
|
||||
lcdPrintln("UP/Down");
|
||||
lcdPrintln("Press to Exit!");
|
||||
lcdPrintln("");
|
||||
lcdPrintln("_______________");
|
||||
lcdPrintln(GLOBAL(nickname));
|
||||
lcdRefresh();
|
||||
}
|
||||
|
||||
/*Start to Talk*/
|
||||
void initMesh(void)
|
||||
{
|
||||
char buf[32];
|
||||
uint8_t key;
|
||||
int index=0;
|
||||
int trys=0;
|
||||
int i;
|
||||
do
|
||||
{
|
||||
key = getInput();
|
||||
if(key == BTN_RIGHT)
|
||||
index=(index+1)%5;
|
||||
if(key == BTN_UP)
|
||||
{
|
||||
memset(buf,0,32);
|
||||
buf[0]=index;
|
||||
for(i=0;i<11;i++)
|
||||
buf[i+1]=GLOBAL(nickname)[i];
|
||||
nrf_config_set(&config);
|
||||
nrf_snd_pkt_crc(32,(uint8_t *)buf);
|
||||
trys=trys+1;
|
||||
}
|
||||
lcdClear();
|
||||
lcdPrintln("");
|
||||
lcdPrintln("CCC MSN 0.1b");
|
||||
lcdPrintln("-----------------");
|
||||
lcdPrintln(msgs[index]);
|
||||
lcdPrintln("");
|
||||
lcdPrint("Try ");
|
||||
lcdPrintln(IntToStr(trys,5,0));
|
||||
lcdPrintln("");
|
||||
lcdPrintln("_______________");
|
||||
lcdPrintln("UP To Send Msg");
|
||||
lcdRefresh();
|
||||
} while(key != BTN_ENTER);
|
||||
initDisplay();
|
||||
}
|
||||
|
||||
/*Led Blink*/
|
||||
void blink(void)
|
||||
{
|
||||
for (int x=0;x<20;x++)
|
||||
{
|
||||
gpioSetValue (RB_LED1, x%2);
|
||||
delayms(50);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue