Exemplo n.º 1
0
void net_node_init(void){

	local.b0 = *(&(DEVINFO->UNIQUEL)+0);
	local.b1 = *(&(DEVINFO->UNIQUEL)+1);
	local.b2 = *(&(DEVINFO->UNIQUEL)+2);
	local.b3 = *(&(DEVINFO->UNIQUEL)+3);
	local.b4 = 0x00;

	broadcast.b0 = 0x55;
	broadcast.b1 = 0xAA;
	broadcast.b2 = 0xff;
	broadcast.b3 = 0xAA;
	broadcast.b4 = 0x55;

	// local and broadcast recive adresses and tx on local address
	Radio_init(&local, &broadcast);
}
int main(void)
{
    WdtGo(T3CON_ENABLE_DIS);//stop watch-dog

    uart_init();
    led_init();

    Radio_init();//inicializuje radio prenos
    SD_init();//nacita kartu a vytvori subor prijaty cez radio prenos


    for(i=0; i<29; i++) {

        Radio_recieve();//pocka na prijatie jedneho paketu

        if (RIE_Response == RIE_Success)
        {
            printf("\n\r-> %s \n@ RSSI %d ",Buffer,(int)RSSI);
            fr = f_printf(&fil,"\n\r-> %s \n@ RSSI %d \n",Buffer,(int)RSSI);
        }
        else
        {
            printf("\n\r-> ERROR");
            fr = f_printf(&fil,"\n\r-> ERROR");
        }
    }

    RIE_Response = RadioTerminateRadioOp();

    fr=f_close(&fil);//koiec zapisu na kartu
    printf("\nzatvaram\n");
    if(fr)printf("chyba pri zatvarani suboru %d\n",fr);

    while (1)//ukonceny zapis
    {
        DioTgl(pADI_GP4,BIT2);
        Delay();
    }



}
Exemplo n.º 3
0
void net_base_init(void){
	struct radio_address local;
	struct radio_address broadcast;

	//memcpy(&local, (void *) &(DEVINFO->UNIQUEL), 4);
	local.b0 = *(&(DEVINFO->UNIQUEL)+0);
	local.b1 = *(&(DEVINFO->UNIQUEL)+1);
	local.b2 = *(&(DEVINFO->UNIQUEL)+2);
	local.b3 = *(&(DEVINFO->UNIQUEL)+3);
	local.b4 = 0x00;

    broadcast.b0 = 0x55;
	broadcast.b1 = 0xAA;
	broadcast.b2 = 0xff;
	broadcast.b3 = 0xAA;
	broadcast.b4 = 0x55;

	// local and broadcast recive adresses and tx on local address
	Radio_init(&local, &broadcast);
}
Exemplo n.º 4
0
void net_test_init(uint8_t test){
	struct radio_address local;
	struct radio_address broadcast;

	//memcpy(&local, (void *) &(DEVINFO->UNIQUEL), 4);
	local.b0 = *(&(DEVINFO->UNIQUEL)+0);
	local.b1 = *(&(DEVINFO->UNIQUEL)+1);
	local.b2 = *(&(DEVINFO->UNIQUEL)+2);
	local.b3 = *(&(DEVINFO->UNIQUEL)+3);
	local.b4 = 0x00;

    broadcast.b0 = 0x55;
	broadcast.b1 = 0xAA;
	broadcast.b2 = 0xff;
	broadcast.b3 = 0xAA;
	broadcast.b4 = 0x55;

	// local and broadcast recive adresses and tx on local address
	Radio_init(&local, &broadcast);

	if (test == NET_TEST_TX_ONLY) {
		struct net_packet_broadcast p;

		Radio_enable(false);
		Radio_setMode(Radio_Mode_TX, false);

		p.hello[0] = 'h';
		p.hello[1] = 'e';
		p.hello[2] = 'l';
		p.hello[3] = 'l';
		p.hello[4] = 'o';

		while(true) {
			DBG_probe_on(DBG_Probe_1);
			p.time = RTC_getTime();
			p.tick = RTC_getTickCount();
			Radio_loadbuf_broadcast(&p);
			Radio_enable(true);
			for(volatile uint8_t i=0; i < 9; ++i) {
				__NOP();
			}
			Radio_enable(false);
			while(radio_has_packets_to_sent()){
				__WFI();
			}
			DBG_probe_off(DBG_Probe_1);
			delay(250);
			delay(250);
		}
	} else if (test == NET_TEST_RX_ONLY) {
		Radio_setMode(Radio_Mode_RX, false);
		Radio_enable(true);
		//uint8_t i = 0;
		while(true){
			if(Radio_available() > 0) {
				struct net_packet_broadcast buf;
				Radio_recive((uint8_t *) &buf, sizeof(struct net_packet_broadcast));
				//++i;
				//if (i > 5) {
				//	RTC_reset_irq(abs((buf.tick % RTC_S) - (RTC_getTickCount() % RTC_S)));
				//	i = 0;
				//}
				DBG_probe_toggle(DBG_Probe_1);
			}
		}
	} else if ( test == NET_TEST_RX_TX) {
		struct net_packet_broadcast sent;
		struct net_packet_broadcast recv;
		sent.hello[0] = 'h';
		sent.hello[1] = 'e';
		sent.hello[2] = 'l';
		sent.hello[3] = 'l';
		sent.hello[4] = 'o';


		Radio_setMode(Radio_Mode_TX, false);
		Radio_loadbuf_broadcast(&sent);
		Radio_enable(true);
		for(volatile int i=0; i < 10; ++i) {
			__NOP();
		}
		Radio_enable(false);
		while (radio_has_packets_to_sent());

		while(true){
			Radio_setMode(Radio_Mode_RX, false);
			Radio_enable(true);
			while (Radio_available() == 0);
			Radio_recive((uint8_t *) &recv, sizeof(struct net_packet_broadcast));
			Radio_enable(false);
			Radio_setMode(Radio_Mode_TX, false);
			Radio_loadbuf_broadcast(&sent);
			Radio_enable(true);
			for(volatile int i=0; i < 150; ++i) {
				__NOP();
			}
			Radio_enable(false);
			while (radio_has_packets_to_sent());

		}
	} else {
		while(true);
	}

}