Пример #1
0
void c_abc_open(struct pipe *p, struct stackmodule_i *module) {
    int start_tm = START_TM;
    channel_set_attributes(p->channel->channelno, p->channel->attrlist);
    p->channel->hdrsize = chameleon_hdrsize(p->channel->attrlist);
    PRINTF("~c_abc_open \n");
    PRINTFE("\n %d \n", DURATION_TM(start_tm));
}
Пример #2
0
/*--------------------API Implementations--------------------------*/
void
mware_bootstrap(uint16_t channel, const struct mware_callbacks *m) {
	subscription_init();
	broadcast_open(&connection, channel, &connection_cb);
	channel_set_attributes(channel, attributes);
	callback = m;
}
Пример #3
0
/*---------------------------------------------------------------------------*/
void
abc_open(struct abc_conn *c, uint16_t channelno,
	  const struct abc_callbacks *callbacks)
{
  channel_open(&c->channel, channelno);
  c->u = callbacks;
  channel_set_attributes(channelno, attributes);
}
Пример #4
0
/*---------------------------------------------------------------------------*/
void
multihop_open(struct multihop_conn *c, uint16_t channel,
              const struct multihop_callbacks *callbacks)
{
    unicast_open(&c->c, channel, &data_callbacks);
    channel_set_attributes(channel, attributes);
    c->cb = callbacks;
}
Пример #5
0
/*---------------------------------------------------------------------------*/
void
unicast_open(struct unicast_conn *c, uint16_t channel,
	     const struct unicast_callbacks *u)
{
  broadcast_open(&c->c, channel, &uc);
  c->u = u;
  channel_set_attributes(channel, attributes);
}
Пример #6
0
/*---------------------------------------------------------------------------*/
void
broadcast_open(struct broadcast_conn *c, uint16_t channel,
	  const struct broadcast_callbacks *u)
{
  abc_open(&c->c, channel, &broadcast);
  c->u = u;
  channel_set_attributes(channel, attributes);
}
Пример #7
0
/*---------------------------------------------------------------------------*/
void 
tikirimc_open(struct tikirimc_conn *c, uint16_t channel, 
    const struct tikirimc_callbacks *u)
{
	start_channel = channel;
  tikirimc_system_open(&c->c, start_channel, &su);
  c->u = u;
	channel_set_attributes(start_channel, attributes);
}
Пример #8
0
/*---------------------------------------------------------------------------*/
void
trickle_open(struct trickle_conn *c, clock_time_t interval,
        uint16_t channel, const struct trickle_callbacks *cb) {
    broadcast_open(&c->c, channel, &bc);
    c->cb = cb;
    c->q = NULL;
    c->interval = interval;
    c->interval_scaling = 0;
    channel_set_attributes(channel, attributes);
}
Пример #9
0
/*---------------------------------------------------------------------------*/
void p_broadcast_open(struct p_broadcast_conn *c, uint16_t channel)
{
	if (c == NULL)
	{
		PRINTF("[pbroadcast.c] Error: Broadcast Connection is NULL\n");
		return;
	}

	abc_open(&(c->abc), channel, &callbacks);
	channel_set_attributes(channel, attributes);
}
Пример #10
0
/*---------------------------------------------------------------------------*/
void
runicast_open(struct runicast_conn *c, uint16_t channel,
	  const struct runicast_callbacks *u)
{
  stunicast_open(&c->c, channel, &runicast);
  channel_set_attributes(channel, attributes);
  c->u = u;
  c->is_tx = 0;
  c->rxmit = 0;
  c->sndnxt = 0;
}
Пример #11
0
/*---------------------------------------------------------------------------*/
void
collect_open(struct collect_conn *tc, uint16_t channels,
             const struct collect_callbacks *cb)
{
#if !COLLECT_ANNOUNCEMENTS
    neighbor_discovery_open(&tc->neighbor_discovery_conn, channels,
                            CLOCK_SECOND * 2,
                            CLOCK_SECOND * 10,
                            CLOCK_SECOND * 60,
                            &neighbor_discovery_callbacks);
#endif /* !COLLECT_ANNOUNCEMENTS */
    runicast_open(&tc->runicast_conn, channels + 1, &runicast_callbacks);
    channel_set_attributes(channels + 1, attributes);
    tc->rtmetric = RTMETRIC_MAX;
    tc->cb = cb;
#if COLLECT_ANNOUNCEMENTS
    announcement_register(&tc->announcement, channels, tc->rtmetric,
                          received_announcement);
    announcement_listen(2);
#else
    neighbor_discovery_start(&tc->neighbor_discovery_conn, tc->rtmetric);
#endif /* COLLECT_ANNOUNCEMENTS */
    neighbor_init();
}
Пример #12
0
/*---------------------------------------------------------------------------*/
void c_multihop_open(struct pipe *p, struct stackmodule_i *module) {
	channel_set_attributes(p->channel_no, p->attrlist);
	c_rnd_init();
}
Пример #13
0
void
c_unicast_open(struct pipe *p, struct stackmodule_i *module)
{
  channel_set_attributes(p->channel_no, p->attrlist);
  PRINTF("c_unicast_open\n");
}
Пример #14
0
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(example_abc_process, ev, data)
{
	static struct etimer et;

	static struct channel *c;

	PROCESS_BEGIN();
	char buffer[32];	
	
	//button_sensor.activate();
	SENSORS_ACTIVATE(button_sensor);
	
	printf("ready to rock\n");
	
	static int i, j, k;
	
	
	//cc2420_init();
	//cc2420_set_pan_addr(panId, 0 /*XXX*/, ds2411_id);
	//cc2420_set_channel(26);
	


	//cc2420_set_txpower(31);

	cc2420_on();

	driver = nullmac_init(&cc2420_driver);
	driver->on();	
	channel_open(c, 128);channel_set_attributes(128, attributes);		
	packetbuf_clear();
	
	driver->set_receive_function(recv);
	packetbuf_clear();
	

	//set_receive_function(driver);	

	

	
	
	while(1) {
		//PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event && data == &button_sensor);
		
		for (j = 0; j < 10000; j++)
			k = j/23;
			
		sprintf(buffer, "ping %d, %d\0",i, k);
		
		printf("Attempting to send %s\n", buffer);

		// send the message straight to the radio
		//cc2420_send ( buffer, (int)strlen(buffer) );

		packetbuf_clear();

		packetbuf_copyfrom(&buffer, (int)strlen(buffer));
		driver->send();
				
		printf("Message sent\n");
		leds_toggle(LEDS_RED);

		i = i + 1;
	}

	PROCESS_END();
}
Пример #15
0
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(example_abc_process, ev, data)
{
	
	static struct channel *c;
	static struct etimer et;

	PROCESS_BEGIN();
	char buffer[32];	
	
	//button_sensor.activate();
	SENSORS_ACTIVATE(button_sensor);
	
	
	printf("ready to rock\n");
	
	//ds2411_init();
	static int i;
	
	
	//cc2420_init();
	//cc2420_set_pan_addr(panId, 0 /*XXX*/, ds2411_id);
	//cc2420_set_channel(26);

	//abc_open(&abc, 128, &abc_call);
//  set_rime_addr();	
//  cc2420_init();
  //cc2420_set_pan_addr(panId, 0 , ds2411_id);
//  cc2420_set_channel(RF_CHANNEL);

  //cc2420_set_txpower(31);
  //nullmac_init(&cc2420_driver);
  //rime_init(&nullmac_driver);


	//cc2420_set_txpower(31);

	//cc2420_on();
	channel_init();

	packetbuf_clear();

	driver = nullmac_init(&cc2420_driver);	
        //rime_init(driver);
	//driver = sicslowmac_init(&cc2420_driver);
	
	cc2420_set_channel(26);
	channel_open(c, 34);		
	/*packetbuf_clear();*/
	
	driver->set_receive_function(recv);
	//packetbuf_clear();
	
	channel_set_attributes(34, attributes);
	//set_receive_function(driver);	

	driver->on();	
	leds_toggle(LEDS_RED);
	
	packetbuf_clear();
	etimer_set(&et, CLOCK_SECOND * 2 + random_rand() % (CLOCK_SECOND * 2));
	PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
	leds_toggle(LEDS_RED);
	PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event && data == &button_sensor);
	

	while(1)
	{
		if (i % 20 == 19)
		{
			PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event && data == &button_sensor);
		}
		else
		{

			printf("wait!");
			etimer_set(&et, CLOCK_SECOND * 0.5 +  random_rand() % (CLOCK_SECOND) * 0.25);
				
			PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
		}	
		sprintf(buffer, "ping %d\0",i);
		
		printf("Attempting to send %s\n", buffer);

		// send the message straight to the radio
		//cc2420_send ( buffer, (int)strlen(buffer) );
		packetbuf_clear();

		packetbuf_copyfrom(&buffer, (int)strlen(buffer));
                //driver->on();
		//cc2420_driver.send(&buffer, (int)strlen(buffer));
		//cc2420_send ( &buffer, (int)strlen(buffer) );
		
		driver->send();
		
		//rime_output();		
		//abc_send(&abc);
		//chameleon_output(c);
		//driver->off(1);		
		printf("Message sent\n");
		leds_toggle(LEDS_YELLOW);

		i = i + 1;
	}

	PROCESS_END();
}