UDPversion

Dependencies:   XBee mbed NetServicesMin

xbee/xbee_lib.cpp

Committer:
recotana
Date:
2012-04-15
Revision:
1:3a46d2725374
Parent:
0:84a3b029656e

File content as of revision 1:3a46d2725374:

#include "mbed.h"
#include "types.h"
#include "config.h"
#include "XBee.h"
#include "xbee_lib.h"

#include "leds.h"
extern Serial pc;

XBee xbee(p13, p14);
ZBRxResponse zbRx = ZBRxResponse();

extern PrefServer pref;
extern PrefSender spref;
extern PrefReciever rpref;

void xbeeInit(void)
{

    pref.xbeeAdress = kMyXBeeAddress;
    spref.xbeeAdress = kLedSender;
    rpref.xbeeAdress = kLedReciever;

#ifdef _SERVER_TEST_MODE_
return;
#else

    LPC_UART1->MCR |= (1<<7); // CTSEN
    LPC_PINCON->PINSEL1 &= ~(3 << 2);
    LPC_PINCON->PINSEL1 |= (1 << 2); // UART CTS
    xbee.begin(kXBeeBoudRate);
    

    
    pc.printf("XBee setup OK!  XBee serial boudrate:%d address:%04X\r\n",kXBeeBoudRate,pref.xbeeAdress);
#endif
}

void xbeeSend(uint32_t addr , Payload *_payload)
{
#ifdef _SERVER_TEST_MODE_
return;
#else
    ledXBeeTx();
    
    XBeeAddress64 deviceAdr = XBeeAddress64(0x0013a200, addr);
    
    uint16_t length = sizeof(Payload);
    _payload->size = length;
    uint8_t tmp[length];
    
    memcpy(tmp , (uint8_t*)_payload , length);
    
    payloadToNetwork((Payload*)tmp);
    ZBTxRequest zbTx = ZBTxRequest(deviceAdr , tmp , length );
    
    xbee.send(zbTx);
    DBGF("+++++ xbee send!!\r\n");  
#endif 
}

void xbeeReadPacket(void)
{
#ifndef _SERVER_TEST_MODE_
    xbee.readPacket();
#endif
    
}
bool isXbeeAvaiable(void)
{
#ifdef _SERVER_TEST_MODE_
return false;
#else
   return xbee.getResponse().isAvailable();
#endif
}