...
Code Block |
---|
#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‰‰llepaalle do { if (BSP_BUTTON1()) // odotetaan ett‰etta 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‰leinvalein } // kun linkki onnistunut laitetaan vihre‰vihrea ledi p‰‰llepaalle BSP_TOGGLE_LED1(); // radion k‰ynnistys SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_RXON, 0); // laitetaan viestin ensimm‰iseenensimmaiseen alkioon arvo 1 msg[0] = 1; // vastaan otin lukee sen vihreen‰vihreena ledin‰ledina while (1) { NWK_DELAY(100); msg[1] = ++viestiLaskuri; // viestin toiseen alkioon viestien m‰‰r‰maara SMPL_Send(sLinkID1, msg, sizeof(msg)); // l‰hetet‰‰nlahetetaan 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‰‰llepaalle return 1; } } return 0; } |