#include "bsp.h"
#include "mrfi.h"
#include "nwk_types.h"
#include "nwk_api.h"
#include "bsp_leds.h"
#include "bsp_buttons.h"
void toggleLED(uint8_t);
static void linkTo(void);
static uint8_t viestiLaskuri=0;
static linkID_t sLinkID1 = 0;
static uint8_t sRxCallback(linkID_t);
void main(void)
{
BSP_Init(); // laudan alustus
SMPL_Init(sRxCallback); // radion alustus
BSP_TOGGLE_LED2(); // punanen ledi p‰‰lle
do {
if (BSP_BUTTON1()) // odotetaan ett‰ nappia painetaan
{
break;
}
} while (1);
linkTo(); // linkin muodostaminen
while (1) ;
}
static void linkTo()
{
uint8_t msg[2];//, delay =0;
while (SMPL_SUCCESS != SMPL_Link(&sLinkID1))
{
// ledit vilkkuu kunnes linkki on onnistunut
BSP_TOGGLE_LED1();
BSP_TOGGLE_LED2();
NWK_DELAY(50); // ledit vilkkuu 50ms v‰lein
}
// kun linkki onnistunut laitetaan vihre‰ ledi p‰‰lle
BSP_TOGGLE_LED1();
// radion k‰ynnistys
SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_RXON, 0);
// laitetaan viestin ensimm‰iseen alkioon arvo 1
msg[0] = 1; // vastaan otin lukee sen vihreen‰ ledin‰
while (1)
{
NWK_DELAY(100);
msg[1] = ++viestiLaskuri; // viestin toiseen alkioon viestien m‰‰r‰
SMPL_Send(sLinkID1, msg, sizeof(msg)); // l‰hetet‰‰n viesti
}
}
static uint8_t sRxCallback(linkID_t port) // viestin takaisin vastaanotto
{
uint8_t msg[2], len;
// tarkisetaan vastaan otetavan viestin ID
if (port == sLinkID1)
{
if ((SMPL_SUCCESS == SMPL_Receive(sLinkID1, msg, &len)))
{
BSP_TOGGLE_LED2(); // jos viestin vastaan otto onnistunut niin punanen ledi p‰‰lle
return 1;
}
}
return 0;
}
#include "bsp.h"#include "mrfi.h"#include "nwk_types.h"#include "nwk_api.h"#include "bsp_leds.h"#include "bsp_buttons.h"void toggleLED(uint8_t);static void linkTo(void);static uint8_t viestiLaskuri=0;static linkID_t sLinkID1 = 0;static uint8_t sRxCallback(linkID_t);void main(void){BSP_Init(); // laudan alustusSMPL_Init(sRxCallback); // radion alustus BSP_TOGGLE_LED2(); // punanen ledi p‰‰lle do { if (BSP_BUTTON1()) // odotetaan ett‰ nappia painetaan { break; } } while (1); linkTo(); // linkin muodostaminen while (1) ; }static void linkTo(){ uint8_t msg[2];//, delay =0; while (SMPL_SUCCESS != SMPL_Link(&sLinkID1)) { // ledit vilkkuu kunnes linkki on onnistunut BSP_TOGGLE_LED1(); BSP_TOGGLE_LED2(); NWK_DELAY(50); // ledit vilkkuu 50ms v‰lein } // kun linkki onnistunut laitetaan vihre‰ ledi p‰‰lle BSP_TOGGLE_LED1(); // radion k‰ynnistys SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_RXON, 0); // laitetaan viestin ensimm‰iseen alkioon arvo 1 msg[0] = 1; // vastaan otin lukee sen vihreen‰ ledin‰ while (1) { NWK_DELAY(100); msg[1] = ++viestiLaskuri; // viestin toiseen alkioon viestien m‰‰r‰ SMPL_Send(sLinkID1, msg, sizeof(msg)); // l‰hetet‰‰n viesti }}static uint8_t sRxCallback(linkID_t port) // viestin takaisin vastaanotto{uint8_t msg[2], len; // tarkisetaan vastaan otetavan viestin ID if (port == sLinkID1) { if ((SMPL_SUCCESS == SMPL_Receive(sLinkID1, msg, &len))) { BSP_TOGGLE_LED2(); // jos viestin vastaan otto onnistunut niin punanen ledi p‰‰lle return 1; } } return 0;}
|