Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
#include "bsp.h"
#include "mrfi.h"
#include "nwk_types.h"
#include "nwk_api.h"
#include "bsp_leds.h"
#include "bsp_buttons.h"
#include "nwk.h"

// static void linkFrom(void); // jos halutaan lähettää viestiä vastaanottimelta, poistetaan tämän kommentointi// static void linkFrom(void);
static volatile uint8_t  viestiVastaanotettu = 0;
static uint8_t sRxCallback(linkID_t);

void main (void)
{
    BSP_Init(); // laudan alustus
    SMPL_Init(sRxCallback); // radion ja SimpliTi alustus
    BSP_TOGGLE_LED1(); // vihreä ledi päälle
    do {
        if (BSP_BUTTON1()) // odotetaan että nappia painetaan
        {
        	SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_RXON, 0); // radion käynnistys
        	break;
        }
    } while (1);
    // linkFrom(); // jos halutaan lähettää viestiä vastaanottimelta, poistetaan tämän kommentointi    // linkFrom();
    while (1) ;
}


// jos halutaan lähettää viestiä vastaanottimelta, poistetaan tämän kommentointi
/*
static void linkFrom()
{
    uint8_t     msg[1];

    msg[0] = 1;

    while (1)
    {
        if (viestiVastaanotettu)
        {
            SMPL_Send(SMPL_LINKID_USER_UUD, msg, sizeof(msg));
            viestiVastaanotettu = 0;
        }
    }
}
*/

static uint8_t sRxCallback(linkID_t port) // viestin takaisin vastaanotto
{
    uint8_t msg[2], len;

    if (port == SMPL_LINKID_USER_UUD) // tarkisetaan vastaan otetavan viestin ID
    {
        if (SMPL_SUCCESS == SMPL_Receive(SMPL_LINKID_USER_UUD, msg, &len))
        {
            uint16_t led=msg[0];
            if (led == 2) BSP_TOGGLE_LED2();

            uint16_t led1=msg[1];
            if (led1 == 1) BSP_TOGGLE_LED1();

            // viestiVastaanotettu = 1; // jos halutaan lähettää viestiä vastaanottimelta, poistetaan tämän kommentointi            // viestiVastaanotettu = 1;

            return 1;
        }
    }
  return 0;
}

...

Code Block
#include "bsp.h"
#include "mrfi.h"
#include "nwk_types.h"
#include "nwk_api.h"
#include "bsp_leds.h"
#include "bsp_buttons.h"
#include "nwk.h"
 
static void linkTo(void);
static linkID_t sLinkID1 = 0;
static uint8_t sRxCallback(linkID_t);
 
void main(void) // Pääohjelma alkaa tästä
{
    BSP_Init(); // laudan alustus
    SMPL_Init(sRxCallback); // radion alustus
    BSP_TOGGLE_LED2(); // punanen ledi paalle
 
    do
    {
        if (BSP_BUTTON1()) // odotetaan etta nappia painetaan
        {
            break;
        }
    } while (1);

linkTo(); // linkin muodostaminen
while (1) ;
}
 
static void linkTo() // linkin muodostaminen
{
    uint8_t  msg[2];


    // kun linkki onnistunut laitetaan vihrea ledi paalle
    BSP_TOGGLE_LED1();
 
    // radion kaynnistys
    SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_RXON, 0); // valitaan radiocontrol ja action
 
    // valitaan kumpi viesti lähetetään takaisin ja kommentoidaan toinen
    msg[1] = 1;  // vastaan otin lukee sen vihreena ledinä
    msg[2] = 2;  // vastaan otin lukee sen punasena ledinä

    while (1)
    {
        if(BSP_BUTTON1())
        {
        NWK_DELAY(100); // 100ms delay
        SMPL_Send(SMPL_LINKID_USER_UUD, msg, sizeof(msg)); // lahetetaan viesti
        }
    }
}
 
static uint8_t sRxCallback(linkID_t port) // viestin takaisin vastaanotto
{
    uint8_t msg[2], len;
 
    // tarkisetaan vastaan otetavan viestin ID
    if (port == SMPL_LINKID_USER_UUD)
    {
          // tänne voi laittaan viestin vastaanotto...
    }
    return 0;
}